下列程序中的範例,將展示如何在配置檔中加入新的 PCF、TrueType 或 Type1 印表機內建字型。
請完成此程序,以更換目前所配置的字型。在頭兩個步驟中,用來顯示範圍 0x00000021 - 0x0000007f 中字元的 PCF 字型,由 TrueType 字型來取代。
在增加新的字型之前,請先在配置檔案中查看與目前配置的字型相對應的各種元件。
FontNameAlias iso88591R PCF /usr/openwin/lib/X11/fonts/75dpi/courR18PCF.Z FontNameAlias iso88591B PCF /usr/openwin/lib/X11/fonts/75dpi/courB18PCF.Z . . . FontGroup iso88591 PCF iso88591R iso88591B . . . MapCode2Font 0x00000020 0x0000007f iso88591 . . . CnvCode2Font iso88591R _xuiso88591 /usr/lib/lp/locale/$LANG/mp/xuiso88591.so CnvCode2Font iso88591B _xuiso88591 /usr/lib/lp/locale/$LANG/mp/xuiso88591.so
例如,您可以將 /usr/openwin/lib/locale/ja/X11/fonts/TT/HG-MinchoL.ttf 字型對映到 en_US.UTF-8 語言環境。由於 HG-MinchoL.ttf 是 Unicode TrueType 字型檔,因此使用 .so 模組對映功能即可直接傳回內送的 ucs-2 字碼點。
unsigned short _ttfjis0201(unsigned short ucs2) { return(ucs2); }
若要對映 PCF 檔案,例如 /usr/openwin/lib/locale/ja/X11/fonts/75dpi/gotmrk20.pcf.Z,請檢查 /usr/openwin/lib/locale/ja/X11/fonts/75dpi/fonts.dir 檔案中與 XLFD 相應的下列編碼:
-sun-gothic-medium-r-normal--22-200-75-75-c-100-jisx0201.1976-0
若是 jisx0201 編碼方式,請準備好從 ucs-2 對映至 jisx0201 的共用物件。取得對映表,以建立 .so 模組。若是 Unicode 語言環境,請在 ftp.unicode.org/pub/MAPPINGS/ 目錄中尋找對映至 Unicode 的字元集。
使用這些對映來撰寫 xu2jis0201.c 檔案:
unsigned short _xu2jis0201(unsigned short ucs2) { if(ucs2 >= 0x20 && ucs2 <= 0x7d ) return (ucs2); if(ucs2==0x203e) return (0x7e); if(ucs2 >= 0xff61 && ucs2 <= 0xff9f) return (ucs2 - 0xff60 + 0xa0); return(0); }
當您建立對映檔時,請包含所有 usc-2 至 jisx0201 的實例。
cc -G -o xu2jis0201.so xu2jis0201.c