LyX 1.5.0 beta1 + MiKTeX + CJKutf8
Posted by tjwei on 星期三, 3月 28, 2007
LyX 1.5 將會支援 utf8 code 的編輯,這也意味著可以直接在上面編輯中文文件了。其實我目沒有需要用到這個功能,但是有可能會用到,所以測試並且解決了一些問題。
- 首先先說明 MiKTeX 的安裝,我使用 LyX 內含的 MiKTeX 2.5 版,安裝後使用 MiKTeX 設定程式,增加語言裡面的 CJK 套件。
- 但是 CJK 套件的版本不夠新,沒有 utf8 的支援,所以請下載 CJK Latex 4.7 以後的版本。下載後解開檔案,然後把 texinput 目錄下的檔案放到適當的位置。我是直接覆蓋到c:\Program Files 下 MiKTeX 程式目錄下面舊版 cjk 相關的位置。
- 然後再安裝中文字型。我是抓 CWT1 的 cwfs 字型。在 windows 下面當然無法直接安裝,但是可以閱讀 install.sh 檔,然後手動 copy 檔案。我是用 cygwin 來執行這個檔案。先 ln -s MiKTeX 的目錄到 /tex,把 HOME 設成 /tex。但是這樣還是不能執行,因為 MiKTeX 是 windows 的程式,傳回值跟 install.sh 預期的不同。所以直接修改 install.sh,把終止 install 的部份直接 remark 掉就行了。這樣,就能成功的 copy 檔案到適當位置。
- 最後,你還要修改一下 updmap.cfg 這個檔案,這有很多方法可以弄,我是直接修改 MiKTeX 的檔案,反正電腦只有我在用。在裡面加上
Map cwfsu.map
這一行。當然不同的字型就會有不同的 map。然後執行一下 updmap, refresh 一下你的系統。 - 原則上這時應該就能使用 CJK,可以先測試一下。
- 接下來是 LyX 的部份。到官網下載 1.5 之後的版本。原則上,只要把 document -> setting -> language -> encoding 改成 utf8 就可以了。這時理論上來說,存檔時就會把 utf8 的編碼存進去。
- 所以在 Preamable 放入
\usepackage{CJKutf8}
內文使用用 Ctrl-L 插入 TeX 指令\begin{CJK}{UTF8}{cwfsb}
以及\end{CJK}
然後在這兩個中間就能使用中文了。 - 可惜我的 LyX 1.5 beta 1 雖然能夠正確 export latex 檔,但是只要 preview 或者 export dvi/pdf 等等檔案都會 crash,這個應該是因為某些 dll 不相容的問題。所以我做了一個 workaround。先設定快速鍵到 buffer-preview latex 上,這個在 tools->preferences -> look and feel -> user interface 裡面的 binding 檔案中。我是直接把 buffer-preview dvi 的 dvi 改成 latex。
- 然後,寫一個程式來翻譯 latex 成為 dvi 並且檢視。並且把 tools->preferences -> file format 中 latex (plain) 的 viewer 設定成這個程式就行了。我是用 python 寫的,程式碼如下:
import os, win32api, sys
這樣看起來可能有一點複雜,不過不用花太多時間去深入 hack。我相信如果把 LyX 重新 compile 一次應該就可以了。
basepath=sys.argv[1][:sys.argv[1].rfind("/")]
output=sys.argv[1][:-4]+".dvi"
os.system('latex -output-directory="'+basepath+'" "'+sys.argv[1]+'"')
win32api.ShellExecute(0,"open",output,"","",1)
Categories: 數學