6.13. simsun - 微軟宋體 TrueType 字型

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

Table 6-2. 宋體字體速查表

檔名 PostScript name Font Family Font Family
simsun.ttc SimSun SimSun 宋體
simsun.ttc NSimSun NSimSun 新宋體