精華區beta FreeBSD 關於我們 聯絡資訊
http://freebsd.sinica.edu.tw/zh-tut/bdf-newchar.html 23.33. 如何造字? 造字的問題,目前筆者會的只有造點陣字而已。 首先,找到你要改的字型檔,在這邊假設是 kc15f.bdf,我只會改 BDF 格式的, 然後把點陣的格式嵌入該字型檔內。 以 '文' 為例,先得到他的 ENCODING: # echo "文" | hexdump 0000000 e5a4 000a 0000003 # printf %d 0xa4e5 42213 以及他的 ucs-2: # echo "文" | iconv -f big5 -t ucs-2 | hexdump 0000000 8765 0a00 0000004 我們在這邊以 (方方土) 為例,他的 big5 code 是 0x964f(38479), ucs-2 code 是 0x5803。 先找到 CHARS 13867,因為我們要加新字, 所以改成 CHARS 13868。 然後到這個檔的最後,找最後一個 STARTCHAR 加一,在這邊是 STARTCHAR 13868 為最後一個,所以加一, 然後將字塞最後,並在 ENDFONT 之前。 STARTCHAR 13869 ENCODING 38479 SWIDTH 31 0 DWIDTH 16 0 BBX 15 15 1 -3 BITMAP 1830 1424 FEFE 2040 3C78 2488 4488 5528 8A10 0180 0110 3FF8 0100 0104 FFFE ENDCHAR BITMAP 的內容請參考 http://partners.adobe.com/asn/developer/pdfs/tn/5005.BDF_Spec.pdf 然後跟著以下的方式作來讓 X 認識你所造的字: # cd /usr/X11R6/lib/X11/fonts/encodings/large/ # cp big5.eten-0.enc.gz big5.eten-0.enc.gz.bak # gunzip big5.eten-0.enc.gz # chmod 644 big5.eten-0.enc # vim big5.eten-0.enc 0x964F 0x5803 # chmod 444 big5.eten-0.enc # gzip big5.eten-0.enc # cd /usr/X11R6/lib/X11/fonts/local # fetch kc15f.bdf # mkfontdir # crxvt -fm -kc-fixed-medium-r-normal--16-160-72-72-c-160-big5-0 # perl -e 'print pack("CC", 0x96, 0x4F);' -- ※ Origin: SayYA 資訊站 <bbs.sayya.org> ◆ From: statue.netlab.cse.yzu.edu.tw > -------------------------------------------------------------------------- < 發信人: "Edward G.J. Lee" <edt1023@speedymail.org>, 看板: FreeBSD 標 題: Re: [log] 如何造字? 發信站: GNU/Linux/*BSD Dreamer Club (Fri Dec 27 23:52:40 2002) 轉信站: Ptt!news.ntu!spring!news.nctu!newsfeed.media.kyoto-u.ac.jp!logbridge.u [On 2002-12-26], you wrote: : http://freebsd.sinica.edu.tw/zh-tut/bdf-newchar.html : 23.33. 如何造字? : 造字的問題,目前筆者會的只有造點陣字而已。 [...] PfaEdit 可以造 TTF/OTF/Type1/CID-Keyed font/bdf/pcf bdf 也可以使用 xmbdfed。 直接去填 binary value 太辛苦了。不過,縱使有 GUI,我 造一次就怕到了……,眼睛會弄壞掉。 理想的話是有現成,沒有版權問題的字模,導出圖檔後,由 PfaEdit/xmbdfed 直接 import 進去。 李果正 --- Posted via news://freenews.netfront.net Complaints to news@netfront.net