這是在 Gentoo 上和 CJK LaTeX with UTF-8 奮戰多時的記錄,有需要的人可以參考參考。
cjk-latex 環境的安裝:
這都有現成的 ebuild 檔可以透過 portage 加以管理,
- tetex 3.0_p1_r3: TeX 的本體套件,目前 Gentoo 在各硬體平台上應該都被標記為 Masked 的,請自行解除限制後安裝起來。
- app-text/dvipdfmx 20050201: 用於將 .dvi 檔轉成 .pdf 檔時使用。這個版本也是 Masked 的,請自行解除限制後安裝起來。
- cjk-latex 4.7.0: 中日韓 LaTeX 的支援套件,日前 Gentoo 上暫時沒有此版本的 ebuild 檔,不過在 Gentoo bugzilla 上有個 4.6.0 版的 ebuild, 請直接下載並更名成 cjk-latex-4.7.0.ebuild 後透過 PORTDIR_OVERLAY 方式加以安裝。安裝前請先下載 ftp://ftp.ctan.org/tex-archive/fonts/CJK.tar.gz 字型檔並改名為 cjk-4.7.0-fonts.tar.gz 後放到 /usr/portage/distfiles 下再開始 emerge 即可完成安裝動作(如果有錯誤發生時,請檢查下載的安裝檔案大小是否正確。(若已下載 cjk-4.5.2-fonts.tar.gz 時則可以直接更名即可)
- cjk-4.7.0-doc.tar.gz: 2113101 bytes
- cjk-4.7.0.tar.gz: 535037 bytes
中文字型的支援準備:
- 中文字碼對應表:有兩個套件可以提供此對應表
- app-text/acroread-7.0.8
- virtual/ghostscript: 不管是 app-text/ghostscript-esp 還是 app-text/ghostscript-gpl 都可以。
- 中文 TrueType 字型安裝:嗯,反正想用那個字型請隨意,只要是 TrueType 就好(我不知道 Type1 字型要怎麼裝… )。此處以 media-fonts/cjkuni-fonts 作為範例,它會安裝 ukai 及 uming 兩種字體。
- 中文字型資訊檔製作工具:mktfm.sh、ttf2tfm ( 請選擇符合硬體架構的版本)。mktfm.sh 放在預定要製作字型資料的目錄(假設為 $WORKPATH)下,ttf2tfm 要放在 $PATH 下。
- Unicode.sfd 對照檔:[Cjk] full Unicode support added,注意那個下載的檔案雖然檔名叫 Unicode.sfd.obj 但實際上應該是 Unicode.sfd.bz2 ,用 bunzip2 解開後放到 mktfm.sh 同一目錄下。
中文字型的配置程序:
- 以 root 身份設定以下環境變數並建立相關目錄(※請注意,這是針 tetex 3 的設定):
- TEXMFLOCAL=/usr/local/share/texmf
- TEXMFFONT=$TEXMFLOCAL/fonts/truetype && mkdir -p $TEXMFFONT
- TEXMFTFM=$TEXMFLOCAL/fonts/tfm && mkdir -p $TEXMFTFM
- TEXMFENC=$TEXMFLOCAL/fonts/enc && mkdir -p $TEXMFENC
- TEXMFSFD=$TEXMFLOCAL/fonts/sfd && mkdir -p $TEXMFSFD
- TEXMFDVIPDFM=$TEXMFLOCAL/fonts/map/dvipdfm && mkdir -p $TEXMFDVIPDFM
- TEXMFUTF8FD=$TEXMFLOCAL/tex/latex/cjk-latex/UTF8 && mkdir -p $TEXMFUTF8FD
- 將 Unicode.sfd 搬移到 $TEXMFSFD 目錄下
mv $WORKPATH/Unicode.sfd $TEXMFSFD
在製作字型資訊時也需要這個 Unicode.sfd 檔,所以另行建個檔案連結到工作目錄下 ln -s $TEXMFSFD/Unicode.sfd $WORKPATH/Unicode.sfd
- 建立字型聯結以便製作字型資訊相關檔案
ln -s /usr/share/fonts/cjkuni-fonts/ukai.ttf $WORKPATH/ukai.ttf
- 到 $WORKPATH 下執行 mktfm.sh 以便建立 Unicode 環境下所需的 *.tfm 、*.enc 、*.fd 及 cid-x.map.append 等相關檔案
cd $WORKPATH && ./mktfm.sh ukai.ttf ukai Unicode
- 在 $TEXMFTFM 下建立一個存放 ukai 字型資訊的目錄,其中 CJK 只是用來表示中日韓字型存放區
mkdir -p $TEXMFTFM/CJK/ukai
- 將 *.tfm 檔全部搬移到 $TEXMFTFM/CJK/ukai 中
mv $WORKPATH/*.tfm $TEXMFTFM/CJK/ukai
- 在 $TEXMFENC 下建立一個存放 ukai 字型資訊的目錄,其中 CJK 只是用來表示中日韓字型存放區
mkdir -p $TEXMFENC/CJK/ukai
- 將 *.enc 檔全部搬移到 $TEXMFENC/CJK/ukai 中
mv $WORKPATH/*.enc $TEXMFENC/CJK/ukai
- 將 *.fd 檔搬到 $TEXMFUTF8FD 下
- 將 cid-x.map.append 附加到 $TEXMFDVIPDFM/cid-x.map 中
cat $WORKPATH/cid-x.map.append >> $TEXMFDVIPDFM/cid-x.map
- 將字型檔連結到 $TEXMFFONT 下
ln -s /usr/share/fonts/cjkuni-fonts/ukai.ttf $TEXMFFONT/ukai.ttf
- 重覆以上步驟完成所有字型檔的配置動作,最後執行 texhash 登錄所有的檔案。沒有執行 texhash 的話將會出現一大堆字型對應錯誤的訊息。
※ 備註:
- 如果要產生的是 Big5 編碼下使用的字型資訊檔,那麼在 mktfm.sh 時必須將 Unicode 字樣換成 Big5 ,這個參數正是作為指定字形資訊檔欲使用的編碼設定。
- 不同編碼下的字形描述檔 *.fd 有不同的檔名及對應的儲放位置,例如 Big5 編碼的字形描述檔檔名為 c00xxxx.fd,儲放目錄則為 $TEXMFLOCAL/tex/latex/cjk-latex/Bg5 。
- 若想產生 GBK 編碼所使用的字形檔,可以找一下 gbkfont 這個工具程式協助。
CJK LaTeX 4.7.0 環境測試
請下載符合前述作業設定的
cjk.tex 嘗試編譯,若能正常編成 cjk.dvi 再輸出成
cjk.pdf 檔時,即可確認 cjk latex 環境已經 ready 。
ada@www ~/latex $ latex cjk
This is pdfeTeX, Version 3.141592-1.30.5-2.2 (Web2C 7.5.5)
entering extended mode
(./cjk.tex
LaTeX2e <2003/12/01>
Babel <v3.8d> and hyphenation patterns for american, french, german, ngerman, b
ahasa, basque, bulgarian, catalan, croatian, czech, danish, dutch, esperanto, e
stonian, finnish, greek, icelandic, irish, italian, latin, magyar, norsk, polis
h, portuges, romanian, russian, serbian, slovak, slovene, spanish, swedish, tur
kish, ukrainian, nohyphenation, loaded.
(/usr/share/texmf/tex/latex/base/article.cls
Document Class: article 2004/02/16 v1.4f Standard LaTeX document class
(/usr/share/texmf/tex/latex/base/size10.clo))
(/usr/share/texmf/tex/latex/cjk-latex/CJKutf8.sty
(/usr/share/texmf/tex/latex/oberdiek/ifpdf.sty)
(/usr/share/texmf/tex/latex/base/inputenc.sty
(/usr/share/texmf/tex/latex/base/utf8.def
(/usr/share/texmf/tex/latex/base/t1enc.dfu)
(/usr/share/texmf/tex/latex/base/ot1enc.dfu)
(/usr/share/texmf/tex/latex/base/omsenc.dfu)))
(/usr/share/texmf/tex/latex/cjk-latex/CJK.sty
(/usr/share/texmf/tex/latex/cjk-latex/mule/MULEenc.sty)
(/usr/share/texmf/tex/latex/cjk-latex/CJK.enc))
(/usr/share/texmf/tex/latex/base/fontenc.sty)) (./cjk.aux)
(/usr/share/texmf/tex/latex/cjk-latex/UTF8/UTF8.bdg)
(/usr/share/texmf/tex/latex/cjk-latex/UTF8/UTF8.enc)
(/usr/share/texmf/tex/latex/cjk-latex/UTF8/UTF8.chr)
(/usr/local/share/texmf/tex/latex/cjk-latex/UTF8/c70ukai.fd) [1] (./cjk.aux) )
Output written on cjk.dvi (1 page, 4436 bytes).
Transcript written on cjk.log.
ada@www ~/latex $ dvipdfmx cjk
cjk.dvi -> cjk.pdf
[1
** NOTICE: This document contains `Preview & Print' only licensed font **
]
** WARNING ** UCS-4 TrueType cmap table...75370 bytes written
手動安裝 cjk-latex 4.7.0 的方法
※ 請先下載以下檔案,集中放入工作目錄 $WORKPLACE (自選) 下:
- tetex-src-3.0_p1.tar.gz
- tetex-texmf-3.0.tar.gz
- cjk-4.7.0.tar.gz
- dvipdfmx-20050831.tar.gz
建立 texmf main tree
cd $WORKPLACE
mkdir -p /usr/share/texmf
tar zxvf tetex-texmf-*.tar.gz -C /usr/share/texmf
編譯及安裝 tetex
cd $WORKPLACE
tar zxvf tetex-src-*.tar.gz
cd tetex-src-3.0
./configure --prefix=/usr/share/texmf \
--datadir=/usr/share \
--disable-multiplatform
make && make world
安裝 CJK
cd $WORKPLACE
mkdir -p /usr/share/texmf/tex/latex/cjk-latex/
tar zxvf cjk-4.7.0.tar.gz
cd cjk-4.7.0
cp -R texinput/* /usr/share/texmf/tex/latex/cjk-latex/
安裝 dvipdfmx
cd $WORKPLACE
tar xzvf dvipdfmx-*.tar.gz
cd dvipdf*
./configure --prefix=/usr --with-kpathsea=/usr/share/texmf
make
make install
安裝字體
請參考
替 LaTeX CJK 新增字型 說明。