[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[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.  --*--

-- 
| This message was re-posted from debian-chinese-big5@lists.debian.org
| and converted from big5 to gb2312 by an automatic gateway.



Reply to: