歡迎

本站利用 MathJax 顯示數學式子,請安裝 STIX Font 以確保數學式子顯示無誤,安裝方法請參閱 MathJax Font Help

2014年7月16日星期三

MacTeX 2014

近來入手了一台 MacBook Pro,就開始使用不一樣的 TeX system。原先的 Linux 下,是使用 TeXLive,用 LuaLaTeX 來處理中文。但有次更新後,在使用上出了問題,所以就改用 XeLaTeX 處理中文。畢竟 XeTeX 當初是在 Mac 上開發出來的,問題應該會比較少。

日子過得好快,一轉眼又過了一年。混到自己都很心虚。

2013年5月4日星期六

學習使用 ConTeXt

ConTeXt 也有十幾年的歷史了,由於和 LaTeX 的差異性太大,所以非人一直無法上手。上個月破斧沉舟,將 MikTeX 移除了。改安裝 ConTeXt Standalone,強迫自己在使用 Windows 時,只能使用 ConTeXt。只是非人幾乎不使用 Windows,所以學習的進度非常緩慢。目前只是將 ConTeXt Standalone 安裝成功而已。

2012年10月8日星期一

MikTeX 令人混亂的更新模式

以前 MikTeX 的更新比較單純,自動安裝的套件都是放在 MikTeX 的安裝目錄中。但是自從使用 Windows 7 後,維護變得複雜了,分為兩種:一種為 Admin,另一種是給一般的使用者。主要是 Windows 7 中,MikTeX 自動安裝的套件會放在個人目錄下,必須要使用一般使用者的維護,才能更新個人目錄下的 MikTeX 套件。

在上一篇文章中,非人所遇到的問題,便是因為不熟悉這種更新模式所造成的。主要是非人用 "Package Manager (Admin)" 安裝了 xeCJK 這個套件,然後在 xelatex 時,自動安裝了 l3kernel 及 l3packages 的套件。後來非人使用 "Update (Admin)" 來更新套件,xeCJK 更新了,但 l3kernel 及 l3packages 並沒有更新。

知道這個原因後,就解決了上一篇的問題。暫時不用換成 TeXLive。

2012年10月4日星期四

使用 xeCJK 在 MikTeX 中編譯失敗

在 Windows 下,使用 MikTeX 編輯中文文件。非人發覺使用 xelatex + xeCJK 是比較方便的,不過最近發現 xeCJK 更新了,但是相關的套件卻一直未更新,造成在編譯的過程一直失敗。不知道何時才會有更新。

看來要找個時間換成 TeXLive。

2012年9月15日星期六

A problem with memoir class + lualatex

這是昨天碰到的問題,使用 lualatex 編譯下列的 TeX 檔

\documentclass{memoir}

\usepackage{luatexja-fontspec}
\begin{document}
Hello World!
\end{document}

會出現下列的錯誤訊息:

! LaTeX Error: Command \printglossary already defined.
               Or name \end... illegal, see p.192 of the manual.

See the LaTeX manual or LaTeX Companion for explanation.
Type  H   for immediate help.
 ...                                              
                                                  
l.150 ...and\printglossary{\@input@{\jobname.gls}}

這是 memoir 和 luatexja-fontspec 都定義了 \printglossary 所造成的錯誤。在網路上,有看到類似的問題,解決的方法是用 \let\printglossary\relax 將 memoir 定義的 \printglossary 取消,再載入 luatexja-fontspec 即可編譯成功。所以 TeX 要改成下列的樣子:

\documentclass{memoir}
\let\printglossary\relax
\usepackage{luatexja-fontspec}
\begin{document}
Hello World!
\end{document}

雖然這樣可以解決了,但是由於更改了 memoir 的定義,不知到哪裏會出現無法預期的排版錯誤。

2012年9月4日星期二

Windows 下的 LuaLaTeX

在 Windows 底下,使用 xelatex 應該是比較好的選擇。雖然 xelatex 和 lualatex 都能夠使用系統的字型,但是 lualatex 卻有一個先天上的缺點,只能使用字型的英文名稱,不能使用字型的中文名稱。例如,wqy-microhei.ttc 這個字型的英文名稱是「WenQuanYi Micro Hei」,而中文名稱是「文泉驛微米黑」。要在 lualatex 使用這個字型就要使用

\setmainfont{WenQuanYi Micro Hei}

而不能用

\setmainfont{文泉驛微米黑}

在 Linux 的作業系統下,很容易可以獲得字型的中、英文名稱,但在 Windows 下,比較容易得知字型的中文名稱,至於英文名稱非人還不清楚要如何得知。所以,非人在 Windows 下使用 lualatex 時,一度不曉得該如何設定中文字型。所幸,直接使用字型的檔案名稱是可以被接受的。

\setmainfont{wqy-microhei.ttc}

2012年8月30日星期四

改用 LuaLaTeX

unicode-math 這個套件雖然不錯,但是使用 xelatex,似乎還是有一些的問題。就非人這幾天碰到的就有 \underbrace 消失不見及數學式子中 f ' 會黏在一起。前一個問題,在網路上有人提到可用 tikz 套件用畫圖的方式將括弧畫上去。而第二個問題也可以設個命令解決,但是非人有一些大檔案只想小小的修改,不想一行一行地看。所以非人就想到是否改用 lualatex 會不會好一點。事實證明了 lualatex 不會產生上述兩個問題。不過,卻產生了新的問題。積分符號在沒有給上標或下標時,會留太多的空白。看來,到目前為止,還沒有一個完美的組合。(2013.05.04 更新:忘了之前在哪邊看到的解決方法,用 \int^{}_{} 取代 \int 就可以了。)

如果是英文的文件,那麼直接改用 lualatex 編譯就可以了。如果是中文的文件,以非人的習慣會使用 xeCJK 這個套件。但是 xeCJK 是專屬於 xelatex 的,所以必須移除。要換上 luatexja-fontspec 這個套件。設定中文字型的指令也要改一下,改 \setCJKmainfont\setmainjfont。luatexja 是日本人開發的,聽說對中文的支援不是很好。如果不是很堅持中文排版的內規,其實也可以了。

另外,如果用 beamer + lualatex 製作簡報檔的話,要加上

\hypersetup{unicode=true}

才能正確地顯示中文書簽。