[DOC] Poorman's Chinese Type1 font for CJK-latex
以下是 poorman 的 cjk-latex 中文 Type1 字型的製作方法,因為版權的
關係,這裡只能講方法。是以 Big5 繁體中文為例,gb 簡體中文原理應該
相同。
◎ 所需工具
ttf2pfb: freetype-contribe
t1asm: freetype-contribe or t1utils
printafm: GhostScript
afm2tfm: tetex
pfaedit http://bibliofile.mc.duke.edu/gww/FreeWare/PfaEdit/
* XFree86-4.x 版 freetype 已附上。但 freetype2 改版後已無這些工具
,得另行下載 freetype1 的 source 來編譯。
* Windows 上除 pfaedit 外皆有這些工具。
◎ 參考資料
From: smallbull.bbs@bbs.cis.nctu.edu.tw (smallbull)
Newsgroups: tw.bbs.comp.tex
Subject: Re: 請問一下cjk的問題
Date: 03 May 2001 10:26:25 GMT
From: scenario@bbs.ee.ntu.edu.tw (papa)
Newsgroups: tw.bbs.comp.tex
Subject: Re: 請問一下cjk的問題
Date: 06 May 2001 15:09:15 GMT
* 很感謝兩位提供的心得及經驗,沒有他們的幫忙,這篇文章無法完成。
◎ 字型
目前是以全真字型 avmfv.ttf(全真中仿宋) 為例,這是有版權的,因此只
提供方法。另外台大字型(ntu 系列)也可以,文鼎字型因為是 Unicode
編碼,得另行轉碼,也有轉好的,請至陳弘毅教授的 ChiTex 網站下載:
ftp://dongpo.math.ncu.edu.tw/tex-archive/local/chitex/chitex/unix/6.1.2p7/
nbsmi00lp.ttf.gz 這是 big5 編碼,gb 碼的是 ngkaioomp.ttf.gz。
如要自行轉碼的話,請下載 bkai34.afm(gkai33.afm) 配合 ttf_edit 來轉
碼。ttf_edit 的使用說明在 http://truetex.com/ttf_edit。;
◎ 步驟
1. 由 TTF 產生 ps 檔
ttf2pfb -c -pid 3 -eid 4 -plane 1 avmfv -o avmfv01 avmfv.ttf
......
ttf2pfb -c -pid 3 -eid 4 -plane 58 avmfv -o avmfv58 avmfv.ttf
造至 avmfv58.ps。可自行寫 sh script 來做比較方便。
* 全真字型可至 plane 58,文鼎的只到 55 就可以了,視字型而定。
2. 修改 ps 檔
FullName 改成 avmfvxx(xx 視字型 plane 號碼)
Family Name 改成 avmfv
請自行用編輯器或 perl/python 來做。
3. 由 ps 產生 pfb 檔
t1asm -b avmfv01.ps > avmfv01.pfb
......
t1asm -b avmfv58.ps > avmfv58.pfb
請自行寫 sh script 來做。
4. 製作 afm 及 tfm 檔
printafm avmfv01.pfb
......
printafm avmfv58.pfb
afm2tfm avmfv01.afm
......
afm2tfm avmfv58.afm
請自行寫 sh script 來做。
5. 安裝字型步驟
將各字型及其描述檔 copy 至以下目錄。
$TEXMF/fonts/afm/CJK/
$TEXMF/fonts/tfm/CJK/
$TEXMF/fonts/type1/CJK/
* $TEXMF 是您安裝 tetex 的路徑。
新增 $TEXMF/tex/latex/CJK/Bg5/c00avmfv.fd 內容如下:
\def\fileversion{4.2.0}
\def\filedate{1998/12/13}
\ProvidesFile{c00avmfv.fd}[\filedate\space\fileversion]
\DeclareFontFamily{C00}{avmfv}{\hyphenchar \font\m@ne}
\DeclareFontShape{C00}{avmfv}{m}{n}{<-> CJK * avmfv}{}
\DeclareFontShape{C00}{avmfv}{bx}{n}{<-> CJKb * avmfv}{\CJKbold}
\endinput
* 我的心得是不用 \CJKbold 摸擬粗體字,不好看,另用真正的粗體字型
代替。
新增 $TEXFM/dvips/config/avmfv.map 內容如下:
avmfv01 avmfv01 <avmfv01.pfb
......
avmfv58 avmfv58 <avmfv58.pfb
在 $TEXFM/dvips/config/config.ps 最後加上
p +avmfv.map
執行 texhash 或 mktexslr。
◎ 測試
以下為各 plane 的字,以便測試是否可以正常由 dvips 自 pfb 中取出。
如果發生 Second number not found in Char string of '/FontName' 的
錯誤,視最後看出在哪一個 plane,把這個 pfb 由 pfaedit 轉存一下即
可,即由 pfaedit 開取這個 pfb 字型,然後 File => Generate Fonts...
=> Save 即可,原先的 afm, tfm 可以不必更動。
* gb 碼請自行撿字做測試。文鼎字型的話 plane 24 か 不必做測試。
請將以下內容納入 CJK enviroment,並使用 avmfv 字型。
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22
糎 ㄝ 反 年 李 彿 南 研 悟 財 啟 造 無 黑 義 對 遠 確 操 應 濾 贈
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
躍 か 冊 扙 冾 阼 氡 除 浣 偲 惊 紽 媏 琮 趉 搵 葸 嗼 碴 誏 潽 諘
45 46 47 48 49 50 51 52 53 54 55
憨 膮 檑 薈 鮨 繰 譀 醷 鐱 蘼 ??
這樣產生的 ps 檔相當漂亮,轉成 pdf 也很漂亮,不過轉成 pdf 的話,使
用 dvipdfm 較 ps2pdf 佳,檔案會比較小。為和中文配合,英文也請使用
Type1 字型,\usepackage{times} 或 dvips -P cmz your.dvi。
◎ TODO
1. 文鼎 TTF 由於陳教授提供的 bkai34.afm 沒有日文字型,這個 afm 可能
得另行補足。
2. 寫一個 perl script 來自動化產生、安裝。
3. ttf_edit 並不是 free software,可能得從 ttf2pfb 著手,看是否能用
於 Unicode 編碼的 TTF。另加強 ttf2pfb 能用於 TTC。
ps. 請各位用力的指正,謝謝!
--
Warm Regards,
Edward G.J. Lee(李果正)
--*-- The best kind of learning is learning by doing. --*--
Reply to: