让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
遗漏及错误之处还请大家指正、补充及提出大家的使用经验.