ConTeXt 也有十幾年的歷史了,由於和 LaTeX 的差異性太大,所以非人一直無法上手。上個月破斧沉舟,將 MikTeX 移除了。改安裝 ConTeXt Standalone,強迫自己在使用 Windows 時,只能使用 ConTeXt。只是非人幾乎不使用 Windows,所以學習的進度非常緩慢。目前只是將 ConTeXt Standalone 安裝成功而已。
非人的筆記本
隨便寫寫
2013年5月4日星期六
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}才能正確地顯示中文書簽。
2012年8月28日星期二
LaTeX package: unicode-math
在編輯 LaTeX 文件時,常常會發現想要的數學符號,不知在哪一個套件裡有定義?為什麼數學符號要分別在那麼多的套件定義?原因是當時的字型檔能放的字數是少的可憐。
現在 LaTeX 有了很大的進步,xelatex 和 lualatex 都能夠直接使用系統的 (unicode) 字型。理所當然,數學符號也可以 unicode 來編碼。所以,當我們使用 xelatex (lualatex 還沒試過) 編譯 LaTeX 文件時,可以使用 unicode-math 這個套件。
在文件中加入
\usepackage{unicode-math}
\setmathfont{xits-math.otf}想要知道那些數學符號的 TeX 指令,只需要將 unimath-symbols.ltx 編譯成 pdf 檔就可以了,指令為
lualatex unimath-symbols.ltx
另外,在 Fileformat.Info 這個網頁中列出了 unicode 編碼的數學符號。