說明 MacTeX + CJKutf8 + DVIPDFMx 的環境下,新增中文 TrueType 字形的詳細步驟。
本文可能已經過時,請斟酌參考。
DVIPDFMx 的優點
在利用 CJK package 進行中文文稿由 DVI 編譯為 PDF 的時候,若採用 DVIPDFMx 就可以直接利用 TrueType 字型檔而不用使用 Type 1 字型檔。除此之外,DVIPDFMx 也是藉由 Ghostscript 的管路來產生 PDF,所以 Ghostscript 的參數也是可以在編譯時一併使用,功能仍不輸給較傳統的 latex + dvips + ps2pdf 方法。另外,利用自行撰寫的 shell script 也可以使 latex + dvipdfmx 的過程在 TeXShop 中方便運行。
運行環境及所需軟體
- OS
- MAC OS X 4 Tiger
- TeX system
- MacTeX-2007 Package
- 原始中文字型
- TrueType 之 TTF 或 TTC 字型檔
- (選用)純文字編輯器
- Smultron
- (選用)造字改字應用程式
- FontForge
開工
以下我們以 cwming.ttf 為例。
利用 ttf2tfm 產生 TFM 檔
一個中文字型檔必定會產生大量的 TFM 檔。我們先把 cwming.ttf 放在桌面上 cwming 資料夾中,再到 Terminal 中輸入
cd ~desktop/cwming ttf2tfm cwming.ttf cwming@Unicode@以到達工作路徑並以生成 TFM 檔。經過等待,你就會在該資料夾中得到一大堆 TFM 檔。其中,
cwming@Unicode@ 表示生成的 TFM 是以 cwming 做檔名頭,而以 Unicode 編碼運行。
若對於 ttf2tfm 想了解更多,請在 Terminal 中輸入 man ttf2tfm 或 ttf2tfm --help 以取得其說明文件。
如果你的原中文字型檔是 TTC,請了解一下 ttf2tfm -f 的用法。
如果你要動用到 FontForge 先修改字型,那也可以在 FontForge 中在輸出新 TTF 檔時一併輸出 TFM 檔。
把 TFM 搬到正確的位置
在 /usr/local/texlive/2007/texmf-dist/fonts/tfm/ 中先建一個 cwming 資料夾,再把方才所有的 TFM 檔搬到這裡,這都需要管理者權限。在 Terminal 中輸入
cd /usr/local/texlive/2007/texmf-dist/fonts/tfm sudo mkdir cwming sudo mv ~/desktop/cwming/*.tfm /usr/local/texlive/2007/texmf-dist/fonts/tfm/cwming/即可。
把 TTF/TTC 搬到正確的位置
在 /usr/local/texlive/2007/texmf-dist/fonts/truetype/ 中先建一個 cwming 資料夾,再把方才的 TTF 或 TFM 檔搬到這裡,這都需要管理者權限。在 Terminal 中輸入
cd /usr/local/texlive/2007/texmf-dist/fonts/truetype sudo mkdir cwming sudo mv ~/desktop/cwming/cwming.ttf /usr/local/texlive/2007/texmf-dist/fonts/truetype/cwming/即可。
修改 cid-x.map
利用純文字編輯器開啟 /usr/local/texlive/2007/texmf/fonts/map/dvipdfm/dvipdfmx/cid-x.map,對在新的一列中加入
cwming@Unicode@ unicode :0:cwming.ttf
即可。若需說明,請仔細看看 cid-x.map。
製作 FD 描
利用純文字編輯器製作 c70cwming.fd,其中 c70 是因為你用 Unicode。c70cwming.fd 的內容就定義了 LaTeX 指令如何控制這個新字型,例如
\ProvidesFile{c70cwming.fd}
\DeclareFontFamily{C70}{cwming}{\hyphenchar \font\m@ne}
\DeclareFontShape{C70}{cwming}{m}{n}{<-> CJK * cwming}{}
\DeclareFontShape{C70}{cwheib}{b}{n}{<-> CJKb * cwheib}{}
\DeclareFontShape{C70}{cwheib}{bx}{n}{<-> CJKb * cwheib}{}
\DeclareFontShape{C70}{cwming}{m}{it}{<-> CJK * cwkai}{}
\DeclareFontShape{C70}{cwming}{bx}{it}{<-> CJKb * cwkai}{}
就是定義了以 cwming 為 CJK 字型時的 Normal、Bold、Italic 與 Bold Italic 是什麼字型了。當然,其它的字型你也要一一裝上去才有的用。
之後把 c70cwming.fd 放到 /usr/local/texlive/2007/texmf-dist/tex/latex/CJK/UTF8/ 中即可。
更新 TeX 索引
在 Terminal 中輸入 sudo texhash 。以更新 TeX 索引。這樣就完成了。現在已經可以使用 latex filename;dvipdfmx filename 了。
TEX 檔範例
\documentclass[10pt,a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage{CJKutf8}
\begin{document}
\begin{CJK}{UTF8}{cwming}
\CJKtilde
測試看看。
\clearpage
\end{CJK}
\end{document}
與 TeXShop 的配合
請見陳念波老師所寫的「如何在 Mac OS X 上裝設 LaTeX 以及 CJK 套件 (TeX Live 2007)」中的「在 TeXShop 裡方便的使用 latex + dvipdfmx 工作流程」。
與 Ghostscript 的配合
請見 /usr/local/texlive/2007/texmf-config/dvipdfm/config/dvipdfmx.cfg 中的 D "gs..." 及 Ghostscript 官網上 ps2pdf 的說明文件。簡單來說,就是把 ps2pdf 中的參數寫在 D "gs..." 裡。