6.21. oto - Open Type Organizer 程式

Joe Man post 到 zh-l10n 的文章中節錄部分如下:

Open Type Organizer(oto) 這個小小程式硬是要得! 它可以將原本只有 big5 或 gb 編碼的 TrueType 字再加入一個 unicode 編碼,但絕對不會攪亂原本的字型。[big5 部份是由 Joe Man 修正的, 請大家幫忙測試 :)] 這個方案還有一個好處... 因 OpenOffice 只認 Unicode 編碼的 TrueType 字,引至很多 Big5 編碼的字不能用。 現在只要將轉變後的字抄到 OpenOffice 下的 share/fonts/truetype/ 就可以用了。好! Joe Man 已經測試了幾個王漢宗教授的字型, (確係靚)!---廣東話 :)

安裝 chinese/oto

wangttf 的字型只有 Big5 編碼,所以幫她加上 Unicode 編碼。

# oto wcl-01.ttf wcl-01-unicode.ttf
# ttfinfo wcl-01.ttf
TTFINFO_FONT_FILE="wcl-01.ttf"
TTFINFO_FONT_NAME="unknown"
TTFINFO_FONT_PSNAME="unknown"
TTFINFO_FOUNDRY_NAME="misc"
TTFINFO_WEIGHT_NAME="medium"
TTFINFO_WIDTH="normal"
TTFINFO_NUMCMAP="1"
TTFINFO_CMAP0="3,4"
TTFINFO_CMAPNAME0="Windows,Big 5"
TTFINFO_MAPNUM="1"
TTFINFO_FONTMAP1="-misc-unknown-medium-r-normal--0-0-0-0-c-0-big5-0"
# ttfinfo wcl-01-unicode.ttf
TTFINFO_FONT_FILE="wcl-01-2.ttf"
TTFINFO_FONT_NAME="unknown"
TTFINFO_FONT_PSNAME="unknown"
TTFINFO_FOUNDRY_NAME="misc"
TTFINFO_WEIGHT_NAME="medium"
TTFINFO_WIDTH="normal"
TTFINFO_NUMCMAP="2"
TTFINFO_CMAP0="3,1"
TTFINFO_CMAPNAME0="Windows,Unicode"
TTFINFO_CMAP1="3,4"
TTFINFO_CMAPNAME1="Windows,Big 5"
TTFINFO_MAPNUM="1"
TTFINFO_FONTMAP1="-misc-unknown-medium-r-normal--0-0-0-0-c-0-big5-0"

oto 另外一個好用的功能就是能修改字型的屬性:

% oto NTU_KAI.TTF > test
% iconv -f utf-8 -t big5 test > test.big5
% vi test.big5
% iconv -f big5 -t utf-8 test.big5 > test.utf-8
% oto NTU_KAI.TTF ntu-kai-new.ttf --names test.utf-8

編輯 test.big5 把 (Microsoft,Unicode,Chinese - Taiwan) .... at ...: 改成您想要顯示的字,使用 iconv 可能要注意並非整個檔都是 utf-8 編碼的, 大概把 Unicode 那些區段自己找出來轉成 big5 編輯後再寫回去, 最後再搭配 --names 來把屬性改掉。

以下是 Edward G.J. Lee(李果正) 所貢獻的。

Pfaedit 也是可以修改字型的屬性

#!/usr/bin/env pfaedit
# Reencoding a font to Unicode TTF.
# By Edward G.J. Lee, this code is public domain.
# $1: your TTF name.

if ($argc != 2)
  Print("usage: ", $0, " your.tt[fc]")
  Quit(1)
endif

Print("Loading ", $1, "...")
Open($1)

SetFontNames("myfont","myfont","myfont")

Reencode("iso10646-1")

ClearHints()
Print("Generating fonts...")
Generate($1 + ".ttf")

Close()
Quit(0)

chmod +x unifont.pe 就可以執行了(Unix-like 系統/環境)。這個 script 會把不是 Unicode 的 TTF 轉成 Unicode TTF。其中 ps name 的部份請自 行更改,這裡是使用 myfont。

./unifont.pe your.ttf

就可以了,會產生 your.ttf.ttf,再自行更改檔名。

WWW: oto project