让netscape字型更美丽 有朋友问到 fonts.dir 及fonts.alias 的问题, 因为最近转了一些 TTF 给 X-window 用, 正好来讲一下使用经验. 找到一个转 TTF 为BDF 的程式TTF2BDF.exe(1.1版), 是Li Wei Jih 写的, 这是个在Win95里跑的, 它可以把 True Type 转成 BDF 格式. 再把它丢给Linux/FreeBSD....里X-window 附的程式 "bdftopcf" 转成 PCF 格式. 指令是: cat m20.BDF bdftopcf -o m20.pcf 再 gzip m20.pcf 以产出 m20.pcf.gz 『P.S. XFree 3.3 以后可以用 gzip 压缩字(如 xxxxx.pcf.gz), 之前 是用compress 压缩字(如:xxxxx.pcf.Z) 3.3版可以较省空间.』 有的机组我目前没有用 CXserver, 而是直接用原来的 Xserver, 因此直接在 /usr/X11/lib/fonts/misc 下放置各国字型, 包括台湾、日本、韩国、中国 等等字型都放在一齐, 举例如下:这是日本JIS 字集: jiskan24.pcf.gz -jis-fixed-medium-r-normal--24-230-75-75-c-240-尾长,删 jiskan16.pcf.gz -jis-fixed-medium-r-normal--16-150-75-75-c-160-尾长,删 这是韩国KSC 字集: hanglm16.pcf.gz -daewoo-mincho-medium-r-normal--16-120-100-100-尾长,删 hanglm24.pcf.gz -daewoo-mincho-medium-r-normal--24-170-100-100-尾长,删 这是中国GB 字集: cclib16st.pcf.gz -cclib-song-medium-r-normal--16-160-72-72-c-160尾长,删 cclib24st.pcf.gz -cclib-song-medium-r-normal--24-240-72-72-c-240尾长,删 P.S.以上『外国』字集在 XFree86 3.3 以前是灌了 X 就有, 3.3 起要人工 另外放进去. 以下是自行 DIY 产出的部份台湾Big-5 字集: kt40.pcf.gz -tw-web-medium-r-normal--40-400-100-100-c-400-big5-0 kt33.pcf.gz -tw-web-medium-r-normal--33-330-100-100-c-340-big5-0 r30.pcf.gz -tw-web-medium-r-normal--30-300-100-100-c-300-big5-0 r27.pcf.gz -tw-web-medium-r-normal--27-270-100-100-c-280-big5-0 li23.pcf.gz -tw-web-medium-r-normal--23-230-100-100-c-240-big5-0 li20.pcf.gz -tw-web-medium-r-normal--20-200-100-100-c-200-big5-0 m17.pcf.gz -tw-web-medium-r-normal--17-170-100-100-c-180-big5-0 m16.pcf.gz -tw-web-medium-r-normal--16-160-72-72-c-160-big5-0 m15.pcf.gz -tw-web-medium-r-normal--15-150-100-100-c-160-big5-0 m13.pcf.gz -tw-web-medium-r-normal--13-130-100-100-c-140-big5-0 li23.pcf.gz -li-edi-medium-r-normal--23-230-100-100-c-240-big5-0 h20.pcf.gz -he-edi-medium-r-normal--20-200-100-100-c-200-big5-0 kt20.pcf.gz -kt-edi-medium-r-normal--20-200-100-100-c-200-big5-0 m20.pcf.gz -m-edi-medium-r-normal--20-200-100-100-c-200-big5-0 li16.pcf.gz -li-edi-medium-r-normal--16-160-72-72-c-160-big5-0 et16.pcf.gz -et-edi-medium-r-normal--16-160-72-72-c-160-big5.et-0 m15i.pcf.gz -mi-edi-medium-r-normal--15-150-100-100-c-160-big5-0 在 fonts.dir 里的这些都是用手工编写的喔! 为什么不是用 mkfontdir 产出呢? 其实fonts.dir 并不一定要由执行 mkfontdir 来产生, 只要你知道它的格 式, 例如在用 "TTF2BDF.exe" 转字型时, 可以看到它的「格式标示」, 因 此可以用任何editor 加以编辑, 特别是以下的用法时, 根本无法用 mkfontdir 产出如预期『可以使用』的 fonts.dir, 非用手工编辑不可. 这些由TTF 转来的字不管是 x 字 y 字 z 字, 都用完全同样的「尾巴」: xxxx.pcf.gz -big5-font-medium-r-normal--20-200-100-100-c-200-big5-0 yyyy.pcf.gz -big5-font-medium-r-normal--20-200-100-100-c-200-big5-0 zzzz.pcf.gz -big5-font-medium-r-normal--20-200-100-100-c-200-big5-0 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 因此, 假如你转来三种 20 点阵的字, 但若是用 mkfontdir 做的话, 结果只 剩 zzzz.pcf.gz 在 fonts.dir 里面, 因为它们的 标示格式 「-big5-font-medium-r.........」完全一样, 而mkfontdir 根本 不知道你给它的是不一样的东东. 使用多个『同级字』有什么用呢? 我为了给不同环境使用不同的字型, 用手工的方式, 把同是 20 点字的加以 分类为 -xx-web-..... 或者 -xx-edi-..... 有 -web- 是要给Netscape 用, 而 -edi- 是要给其他editor 或shell(如crxvt) 用. 注意: 在 fonts.dir 里所有字型的「格式标示」不可以重复 这有什么特别呢? 请看 -web- 那一组, 完全没有「重复出现同级字」这是因为Netscape 在换选 字型时 Option --> General Preferences --> Fonts 时, 只会找同一类标示 的字, 我把要给Netscape 用的字都改成 -xxx-web-....., 这样, 在Netscape 里看文章时就会有大小及字型变化, 例如大标题显示的是『勘亭流』中标题显 示的是『圆体』小标显示的是『隶书』本文部份则是『明体』......不像在 Win95 的环境里整篇都呆呆的用同一型字..... 美观吧 而 fonts.alias 则只要把已经加入 fonts.dir 里的字组整行 copy 过来, 并 把xxxx.pcf.gz 的 「.pcf.gz」去掉就可以, 或者为了「呼叫」时易记, 可以 给它任何一个你容易记的名字, 例如本来是 m20.pcf.gz 去掉后变成 m20, 但 你可以把它改成 ming20 去呼叫 m20.pcf.gz 就在fonts.alias 写成: ming20 -m-edi-medium-r-normal--20-200-100-100-c-200-big5-0 用 li20 去呼叫 li20.pcf.gz 就写成 li20 -tw-web-medium-r-normal--20-200-100-100-c-200-big5-0 简单做个结语, fonts.dir 可以依须要用手工编写, fonts.alias 的「标示格示」要跟fonts.dir 完全一样, 就是: aabbcc.pcf.gz -aa-bb-ccc-ddd-ee-ff-00-11-22-33 <---在fonts.dir xxyyz -aa-bb-ccc-ddd-ee-ff-00-11-22-33 <---在fonts.alias 呼叫方式: 在 Netscape 只认 fonts.dir 里的 -aa-bb-ccc-ddd-ee-ff-11-22-33 来呼叫aabbcc.pcf.gz 在 crxvt 可以用 xxyyz 来呼叫 aabbcc.pcf.gz 遗漏及错误之处还请大家指正、补充及提出大家的使用经验.
(出处:http://www.sheup.com)