2011年1月23日 星期日

Palm 漢化音标

 是用在字典的音標嗎?
或是製作帶音標的文件?

 (轉)
本教程以GMX格式音标为例,Supermemo、Sugarmemo等类同。

基础知识:
FontHack v 和Fonts4OS5格式的字体的本质实际上都是一样的,都是PALMOS5下的标准格式,可以用PRCEDIT编缉转换。FontHack v 字体只含一组字体,Fonts4OS5字体一般内含四组字体。

Palm格式的字体的头部有符干部分是空白(未做定义的),GMX大大解决音标的办法就是将该部分利用起来(具体可见下文)。
Supermemo、Sugarmemo的办法是将大写英文字母或(和)数字字符改成音标(可参考TOMPDA踏网嬉游版主的音标对照表)。



个人认为GMX大大的方法最好,不影响其他英文字母和数字的显示,缺点在于无法在PALM上输入音标。
_________________
素材:
Fonts4OS5自带的字体(可以从Palmgear下载Fonts4OS5 trail版)

所需工具:
1、pilrc.exe
2、fextract.exe
3、DoubleFont.exe (eCool大大制作,再次感谢)
4、PRCEdit.exe
5、pifont.exe
6、notepad.exe (windows自带,不提供下载)

教程:

1、新建一个文件夹,将pilrc.exe、fextract.exe、DoubleFont.exe放在该文件夹(下称工作文件夹)下。

2、提取.pfn文件
完全自制一个全新的字体,工作量实在太大了,最好的办法就是在现有的字体基础上进行修改(律师提示:您就不要想对修改后的字体主张版权了,也不要将修改后的字体用于牟取商业利益)。

我们以Fonts4OS5自带的字体为基础:(以Tahoma 22.prc为例)。

将Tahoma 22.prc复制至工作文件夹,并改名为Tahoma22.prc(将文件名中的空格去掉)。

进入命令提示符模式(即DOS模式,用TotalCommand会更方便些),进入工作文件夹,执行:

fextract Tahoma22.prc

工作文件夹下会出现16个文件,将以.pft结尾的删除,用不到。其他文件说明如下:
a-11x11.pfn 极小字体
a-22x22.pfn 标准字体
b-12x11.pfn 极小粗体
b-24x33.pfn 标准粗体
c-14x13.pfn 小字体
c-28x26.pfn 大字体
d-15x13.pfn 小粗体
d-30x26.pfn 大粗体
(上述文件可能因Fonts4OS的版本不同而有小的区别)

3、编辑字体
(以a-11x11.pfn和a-22x22.pfn为例,说明制作一组字体的过程)
用pifont.exe打开a-22x22.pfn可以看到如下图:

360872-1-embed.jpg
下载 (117.38 KB)
2009-5-31 08:34


比较一下我修改后的(注意,我这里拼音没改,只改了音标):

360873-2-embed.jpg
下载 (114.32 KB)
2009-5-31 08:34


你要做的工作就是增加和修改GMX所定义的音标(那三个下面带点的M、N、I似乎没用到过,个人认为可以不改——04/4/23补充:还是不改的好,PALM系统内会用到的,英文音标里似乎也用不到那三个下面带点的M、N、I,莫非是其他语种的???)

在未有定义的部分(灰色部分,自0x01起)按Insert插入,相应位置全部插入完毕后,保存,退出pifont.exe。

用notepad.exe打开a-22x22.pfn后将刚才插入的部分补足至22行。即:

Glyph 1
------
------
------
------
------
------
------
------
------
------

补足至:
Glyph 1
------
------
------
------
------
------
------
------
------
------
------
------
------
------
------
------
------
------
------
------
------
------

注意:要保证所有的行数均与FRectHeight一致。

保存,关闭notepad.exe。

其他几个 .pfn文件也做同样的处理。

再用pifont.exe打开这些.pfn文件,开始“画”字体。pifont.exe用法不难,请自行尝试。

注意:同步处理a-11x11.pfn和a-22x22.pfn,并保证a-22x22.pfn的每一个字符的高(Height)、宽(Width)均是a-11x11.pfn的一倍整。

关于DoubleFont.exe的用途:
其实可以不必用到它。
通过DoubleFont.exe可以将一个.pfn文件的字型放大一倍至一个新的.pfn文件,你可以在修改完a-11x11.pfn后,用 DoubleFont.exe将其转成一个名为a-11x11_HighDensity.pfn的文件,再将a- 11x11_HighDensity.pfn中Glyph 1 至Glyph 31部分的内容(其它部分不要用,原有字型已经变形了,文首的FontType段数据也是错误的),复制到a-22x22.pfn中,这样再到 pifont.exe中编辑a-22x22.pfn就可以在a-11x11.pfn音标字符的双倍大小上进行修改,能够减少一些工作,并且可以保证高、宽不出错。

修改完成后,保存,退出pifont.exe,用notepad.exe打开a-11x11.pfn和a-22x22.pfn。
将首行的FontType由37376改为36864;至未尾,将Glyph -1部份修改至符合高、宽要求(务必!)。

4、转换字体至FontHack v 格式PRC文档

在工作文件夹新建一文本文档,命名为work,用notepad.exe打开,输入以下内容:

FONTFAMILY ID 8888 FONTID 200 LOCALE "enUS"
BEGIN
FONT "a-11x11.pfn" DENSITY 72
FONT "a-22x22.pfn" DENSITY 144
END

保存,退出notepad.exe,将后缀名改为.rcp,即改名为work.rcp。

进入命令提示符模式(即DOS模式),进入工作文件夹,执行:

pilrc -ro -creator fHKv -type Font -LE32 work.rcp Font-KDic-S.prc

"Font-KDic-S.prc"即转换后的文档,该文档即FontHack v 格式的字体。

如果转换不成功请按提示到相应的文件的行数去查找有无长、宽错误。
如果转换成功但同步入PALM使用时发现字符有错位,请检查:两个文件中的字符(Glyph )是否一一对应,有无缺漏。

FontHack v 格式的音标字体制作完成。

5、将FontHack v 字体转成Fonts4OS5字体。
(将Fonts4OS5字体转成FontHack v 字体也是同理,不再赘述)

用PRCEdit.exe打开Font-KDic-S.prc和Tahoma22.prc(即Fonts4OS5字体原始文档)。

打开Tahoma22.prc的Misc键,可以看到有afnx 32000,afnx 32001,afnx 32002,afnx 32003四个值,分别对应的就是解开后的a-*x*.pfn,b-*x*.pfn,b-*x*.pfn,b-*x*.pfn。
我们上文修改的正是a-*x*.pfn,所以应当用修改后的结果替换afnx 32000。
删除(剪切)afnx 32000。

打开Font-KDic-S.prc的Misc键,可以看到只有afnx 8888这一个值。复制它,粘贴到Tahoma22.prc的Misc键下,将ID改为32000。

如果想改变该字体在Fonts4OS5中显示的名称,可将PRC name一并修改(比如改为Tahoma22-Kdic),以与原字体相区别。

退出PRCEdit.exe,别忘了保存修改。

其他几组字体(即afnx 32001,afnx 32002,afnx 32003)修改类似,不再重复。

Fonts4OS5格式的音标字体制作完成。

(全文完)