simsun 是微軟向 ZHONGYI Electronic Co. 購買的中文簡體字型, 也是簡體 Windows 使用者最習慣的電腦字。
# cd /usr/ports/outta-port/simsun # make install clean
simsun.ttc 有兩個 faces,第零個 face 是 SimSun,英文字型是不等寬的, 第一個是NSimSun,等寬的英文字型, 預設會使用第零個,如果要使用NSimSun的話,必須另外設定。
因為 NSimSun 宣稱自己是 monospaced 字型, 但實際上它有兩種固定寬度:中文的全形以及英文的半形, 造成 freetype 誤判所有字都是跟中文的全形一樣寬, 使得英文字和中文字會等寬。
可以修改 freetype 的 globaladvance flag 或是 spacing, 0 是 proportional 的 spacing,100 是 mono,110 是 charcell:
<match target="font"> <test name="family"><string>NSimSun</string></test> <edit name="globaladvance"><bool>false</bool></edit> </match> <match target="font"> <test name="family"><string>NSimSun</string></test> <edit name="spacing"><int>0</int></edit> </match>
Note: 記得在 ~/.fonts.conf 的頭尾加上
<?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig> ... </fontconfig>
若要使用等寬的 NSimSun,在 X11 Core Font 上, 則是 xtt 的功能來選取 Face 1 的 NSimSun 來顯示,也就是在最前面加上 fn=1,並檢查 Spacing 欄位是否為 m,SimSun 的 Spacing 欄位是 p。 如果安裝 chinese/ttfm 會自動加入兩個 face。
simsun.ttc -misc-SimSun-medium-r-normal--0-0-0-0-p-0-iso8859-1 fn=1:simsun.ttc -misc-NSimSun-medium-r-normal--0-0-0-0-m-0-iso8859-1