| ||||||||
adm | Find | login register |
之前有人問到,他的 paper 需要寫一些中文,但邀稿單位只接受原始稿,而且邀稿單位並沒有安裝中文字型,因此編譯原始稿時無法順利生成含中文的 pdf 檔。附上所有字型,檔案又太大,這該如何是好呢? 其實 TeX 系統可以直接從字型取字,而一個含 255 個字的 Type 1 字型檔也只不過是一、二百 Kbytes,因此很容易就可以附在原始稿中,這樣邀稿單位收到原始稿時就可以自行編譯了。 以下的例子以文稿中需要「這是中文測試。」這幾個中文字。我們可以使用 fontforge 製作一個 cfont Type 1 字型,從原有的中文 pfb 字型檔中 copy 需要的 glyph 過去就行了。當然,為了可以 copy&paste,你最好把每個中文字的 Unicode 碼給編上去。然後產生 Type 1 字型(含 afm, tfm, enc ),這些字型檔只要是放在原始文稿的工作目錄,編譯時就會找得到。
那麼要怎麼知道哪個字在哪個字型上呢?請下載 charucs:
edt1023@zenwalk:~$ charucs 這 是 所以「這」在 cwmu90.pfb,「是」在 cwmu66.pfb(這裡以 cwm 字型為例)。這樣你就可以開始載入這些字型,把所需要的字 copy 過去,並把 Unicode 碼編上去。當然,如果你熟悉 fontforge script,你可以寫個 script 來執行,讓他自動去 copy 所需要的字到新字型,並產生所需要 Type 1 字型檔,這樣就不用使用 GUI click 來 click 去了。 那麼文稿該怎麼寫呢?以下是一個例子:
\documentclass{article} 編譯就依一般英文稿編譯就對了。
latex cfont-test.tex 或使用 xelatex 一次就完成: xelatex cfont-test.tex 如果你要使用 pdflatex,那麼文稿中要加入必要的設定,請參考例子裡頭註解起來的部份。 例子原始文稿的 tarball 可以在這裡下載: edited: 3
| |||||||||||
| |||||||||||
應該都適用。當然如果嫌麻煩的話(因為還要熟悉一下 fontforge 的操作),弄個圖檔就可以了,但這樣的排版彈性就差很多了。 edited: 1
| |||||||||||
我在 Vista + MiKTeX 2.7 測試,tarball 的例子是可以順利編譯。 比較麻煩的是 fontforge 在 Windows 安裝的話需要 cygwin 之類的東西。像我是直接裝 VirtualBox。在上頭裝個 GNU/Linux 來用 fontfoge。 edited: 1
|
| ||||||||
adm | Find | login register |