Difference between revisions of "Fonts (正體中文)"

From ArchWiki
Jump to navigation Jump to search
(simplification and beautification of wikilinks, fixing whitespace, capitalization and section fragments (https://github.com/lahwaacz/wiki-scripts/blob/master/link-checker.py (interactive)))
(partial update)
Line 1: Line 1:
 
[[Category:正體中文]]
 
[[Category:正體中文]]
 
[[Category:Fonts (正體中文)]]
 
[[Category:Fonts (正體中文)]]
[[Category:Graphics and desktop publishing (正體中文)]]
+
 
 
[[cs:Fonts]]
 
[[cs:Fonts]]
 
[[de:Schriftarten]]
 
[[de:Schriftarten]]
Line 13: Line 13:
 
{{Related articles start (正體中文)}}
 
{{Related articles start (正體中文)}}
 
{{Related2|Font configuration|字型設定 (英)}}
 
{{Related2|Font configuration|字型設定 (英)}}
 +
{{Related|Infinality}}
 
{{Related2|Java Runtime Environment Fonts|Java 執行環境字型 (英)}}
 
{{Related2|Java Runtime Environment Fonts|Java 執行環境字型 (英)}}
 
{{Related2|MS Fonts|微軟字型 (英)}}
 
{{Related2|MS Fonts|微軟字型 (英)}}
 +
{{Related|Metric-compatible fonts}}
 
{{Related articles end}}
 
{{Related articles end}}
 
{{翻譯狀態|Fonts|2014-01-25|285531}}
 
{{翻譯狀態|Fonts|2014-01-25|285531}}
 +
{{Translateme|在[#字型軟體包]之後都尚未sync到2016-06-27}}
 
摘自[[Wikipedia:Computer font|維基百科]]:
 
摘自[[Wikipedia:Computer font|維基百科]]:
 
:「'''電腦字型''' (computer font),或稱'''字型''' (font),是包含字 (glyph)、字元或符號 (如 dingbats) 的電子檔案資料。」
 
:「'''電腦字型''' (computer font),或稱'''字型''' (font),是包含字 (glyph)、字元或符號 (如 dingbats) 的電子檔案資料。」
Line 57: Line 60:
 
或只搜尋 {{ic|ttf}} 字型:
 
或只搜尋 {{ic|ttf}} 字型:
 
  $ pacman -Ss ttf
 
  $ pacman -Ss ttf
 
某些字型,像是 {{pkg|terminus-font}},會安裝在 {{ic|/usr/share/fonts/local}},這個目錄預設沒有被加進字型路徑。將以下內容加入 {{ic|~/.xinitrc}},就可以在 X11 使用這類字型:
 
{{bc|
 
xset +fp /usr/share/fonts/local
 
xset fp rehash
 
}}
 
如果執行第一行指令後出現以下錯誤
 
{{bc|
 
$ xset +fp /usr/share/fonts/local/
 
xset:  bad font path element (#0), possible causes are:
 
    Directory does not exist or has wrong permissions
 
    Directory missing fonts.dir
 
    Incorrect font server address or syntax
 
}}
 
需要執行
 
{{bc|
 
# cd /usr/share/fonts/local;mkfontdir
 
}}
 
  
 
=== 建立軟體包 ===
 
=== 建立軟體包 ===
Line 80: Line 65:
 
您應該將管理字型的工作交給 pacman。字型可以打包成一份 Arch 軟體包,還可以透過 [[AUR]] 和社群分享。這裡有一個建立基本軟體包的範例。若想要更了解如何組建軟體包,請閱讀 [[PKGBUILD]]。
 
您應該將管理字型的工作交給 pacman。字型可以打包成一份 Arch 軟體包,還可以透過 [[AUR]] 和社群分享。這裡有一個建立基本軟體包的範例。若想要更了解如何組建軟體包,請閱讀 [[PKGBUILD]]。
  
{{bc|<nowiki>
+
字型檔案的家族名稱可以使用 {{ic|fc-query}} 指令取得。例如: {{ic|fc-query -f '%{family[0]}\n' /path/to/file}}。使用的格式請參考 FcPatternFormat(3) 手冊之說明。
pkgname=ttf-fontname
+
 
 +
{{hc|PKGBUILD|<nowiki>
 +
pkgname=fontname-fonts
 
pkgver=1.0
 
pkgver=1.0
 
pkgrel=1
 
pkgrel=1
pkgdesc="custom fonts"
+
pkgdesc="一些關於此字型之描述"
 
arch=('any')
 
arch=('any')
 
depends=('fontconfig' 'xorg-font-utils')
 
depends=('fontconfig' 'xorg-font-utils')
Line 91: Line 78:
  
 
package() {
 
package() {
   install -d "$pkgdir/usr/share/fonts/TTF"
+
   install -Dm644 $pkgname/font.otf "$pkgdir"/usr/share/fonts/family_name/font.otf
   cp -dpr --no-preserve=ownership "$srcdir/$pkgname/"*.ttf "$pkgdir/usr/share/fonts/TTF/"
+
   install -Dm644 $pkgname/font_bold.otf "$pkgdir"/usr/share/fonts/family_name/font_bold.otf
 
}
 
}
 
</nowiki>}}
 
</nowiki>}}
  
這份 PKGBUILD 假定字型為 TrueType 類型。之後還必須建立一份安裝檔案 ({{ic|ttf-fontname.install}}) 更新字型快取:
+
{{hc|fontname-fonts.install|<nowiki>
 
 
{{bc|<nowiki>
 
 
post_install() {
 
post_install() {
  echo -n "Updating font cache... "
+
   fc-cache -s
   fc-cache -fs >/dev/null
 
  mkfontscale /usr/share/fonts/TTF /usr/share/fonts/Type1
 
  mkfontdir /usr/share/fonts/TTF /usr/share/fonts/Type1
 
  echo "done"
 
 
}
 
}
  
Line 115: Line 96:
 
}
 
}
 
</nowiki>}}
 
</nowiki>}}
 
若需要更方便的 ttf 字型建立方式,可以使用 [[AUR]] 提供的 {{AUR|makefontpkg}}。
 
  
 
=== 手動安裝 ===
 
=== 手動安裝 ===
Line 122: Line 101:
 
要為系統新增一個軟體庫未收錄的字型,建議方法是[[#建立軟體包]]。採用這個方式讓 pacman 之後能夠移除或升級字型。不過您也可以用手動的方式安裝字型。
 
要為系統新增一個軟體庫未收錄的字型,建議方法是[[#建立軟體包]]。採用這個方式讓 pacman 之後能夠移除或升級字型。不過您也可以用手動的方式安裝字型。
  
若要將字型安裝到系統 (讓所有使用者都能使用),將字型資料夾移至 {{ic|/usr/share/fonts/}} 目錄。如果只要為單一使用者安裝字型,則改移至 {{ic|~/.fonts/}} 目錄。
+
若要將字型安裝到系統 (讓所有使用者都能使用),將字型資料夾移至 {{ic|/usr/share/fonts/}} 目錄。為了使得這些字型檔案能夠被所有使用者讀取,使用 [[chmod]] 指令設定正確的權限:檔案至少必須是 {{ic|0444}},而目錄則是 {{ic|0555}}。若要安裝給單一使用者,則將自行檔案安裝於 {{ic|~/.local/share/fonts}} 目錄。(注意:{{ic|~/.fonts/}} 的用法已經不被支援了)
  
要讓 X 伺服器可以直接載入字型 (不使用「字型伺服器」),需要將新增字型的所在目錄加為 FontPath 項目。這個項目位在[[Xorg#Configuration|您的 Xorg 設定檔案]] (例如  {{ic|/etc/X11/xorg.conf}} 或 {{ic|/etc/xorg.conf}}) 的 ''Files'' 區。更多詳細資訊請參閱[[#讓字型搭配 X.Org]]。
+
要讓 X 伺服器可以直接載入字型 (不使用「字型伺服器」),需要將新增字型的所在目錄加為 FontPath 項目。這個項目位在[[Xorg#Configuration|您的 Xorg 設定檔案]] (例如  {{ic|/etc/X11/xorg.conf}} 或 {{ic|/etc/xorg.conf}}) 的 ''Files'' 區。更多詳細資訊請參閱[[#舊版應用程式]]。
  
 
接著更新 fontconfig 字型快取:
 
接著更新 fontconfig 字型快取:
  
 
  $ fc-cache -vf
 
  $ fc-cache -vf
 
=== 手動安裝:進階方式 ===
 
 
如果您有特殊的字型收集需求:使用商業字型、使用不同格式的字型、安裝/移除字型檔相當頻繁,或只是希望可以更能夠控制存取自己的字型資源,那就相當適合用手動的方式來安裝維護字型。採用這種方案會獲得很多好處:
 
 
* 避免重複安裝不同版本、格式的同一種字型家族 (一個常見原因是算繪問題)。
 
* 字型可使用多個非標準的實體來源 (例如額外的硬碟、分割區)。
 
* 避免依賴隱晦又佔體積的本地字型來源 (例如 TeX Live & {{ic|09-texlive-fonts.conf}},或是從 AUR 抓下來的某個字型集合);您可能只需要其中 5 種字型,卻連帶安裝其它 55 種不需要的字型。
 
* 避免字型算繪問題,因為您的 fontconfig 設定檔已被調成和與安裝在系統的那份不同的格式。
 
* 只要觀察主字型目錄下的內容,就能夠確定系統上有哪種格式的字型家族可供應用程式使用。您不需要複雜、佔用大量資源的字型管理程式;{{Pkg|gtk2fontsel}} 和基本的指令工具 (如 {{Pkg|fontconfig}} 軟體包下的 {{ic|fc-query}}) 就可以將這件差事辦得又快又好。
 
* 當您安裝或升級單一字型,所有應用程式都可以使用該版本,包含 LaTeX 相關軟體。
 
* 有必要的話,可以快速啟用 / 停用某個字型家族,因為您知道它們在哪個目錄下 (除錯時很好用)。
 
* 不需擔心有任何多餘的 {{ic|/etc/fonts/conf.avail/nn-foo.conf}} fontconfig 檔案會潛在跟您的算繪設定起衝突 (特別是當您使用[[Font configuration#Patched_packages|自訂的字型設定與修補過的函式庫]])。
 
* 長遠來看,可以省下那些因軟體包管理者的失誤,解決問題和清除衝突所浪費的寶貴時間。
 
 
實作上有幾種方式,有必要的話可由任何軟體包管理員採用。以下所舉出的實作方式相當有效率,即使字型數目眾多也相當安全。
 
 
* 我們要將字型來源位置 (例如 {{ic|/usr/share/fonts.avail}}:這是我們要存放字型的位置) 和包含字型家族軟連結的目錄 ({{ic|/usr/share/fonts}}) 給分隔開來。
 
 
* 將每個字型家族分別放在一個明確命名的子目錄下。命名規則必須一致且明確,例如這樣:
 
 
{{bc|<nowiki>
 
<ttf|otf|t1>-<字型作者或組織(選用)>-<字型家族名稱>
 
</nowiki>}}
 
 
字型來源目錄的內容會長得像這樣:
 
 
{{bc|<nowiki>
 
$ ls /usr/share/fonts.avail
 
 
/usr/share/fonts.avail/otf-heuristica
 
/usr/share/fonts.avail/ttf-liberation
 
/usr/share/fonts.avail/ttf-ms-arial
 
...
 
</nowiki>}}
 
 
* 我們不會動到 TeX Live 的字型目錄,以避免 LaTeX 軟體發生任何問題。既然我們可以使用多個位置,我們將在 {{ic|/usr/share/fonts}} 建立軟連結,讓應用程式可以存取特定的字型家族:
 
 
{{bc|<nowiki>
 
# cd /usr/share/fonts
 
# ln -s ../fonts.avail/otf-heuristica .
 
# ln -s /opt/texlive/texmf-dist/fonts/truetype/public/opensans ttf-texlive-open.sans
 
</nowiki>}}
 
 
結果如下:
 
 
{{bc|<nowiki>
 
$ ls /usr/share/fonts
 
 
ttf-liberation        -> ..fonts.avail/ttf-liberation
 
ttf-ms-arial          -> ..fonts.avail/ttf-ms-arial
 
otf-heuristica        -> ..fonts.avail/otf-heuristica
 
otf-texlive-tex.gyre  -> /opt/texlive/texmf-dist/fonts/opentype/public/tex-gyre
 
ttf-texlive-open.sans -> /opt/texlive/texmf-dist/fonts/truetype/public/opensans
 
...
 
</nowiki>}}
 
 
最後,依照慣例執行:
 
 
{{bc|<nowiki>
 
# fc-cache && mkfontscale && mkfontdir
 
</nowiki>}}
 
 
[[TeX Live]] Wiki 文章內也有一個類似做法,比較簡單,但較適用於單一使用者的情境,而非全域設定。
 
  
 
=== 舊版應用程式 ===
 
=== 舊版應用程式 ===
Line 204: Line 119:
  
 
  $ for dir in /font/dir1/ /font/dir2/; do xset +fp $dir; done && xset fp rehash
 
  $ for dir in /font/dir1/ /font/dir2/; do xset +fp $dir; done && xset fp rehash
 +
 +
又或者,若字型被安裝在不同的子資料夾如 {{ic|/usr/share/fonts}} :
 +
 +
$ for dir in * ; do if [  -d  "$dir"  ]; then cd "$dir";xset +fp "$PWD" ;mkfontscale; mkfontdir;cd .. ;fi; done && xset fp rehash
  
 
有時候 X 伺服器會無法成功載入字型資料夾,這時您需要重新掃描所有 {{ic|fonts.dir}} 檔案:
 
有時候 X 伺服器會無法成功載入字型資料夾,這時您需要重新掃描所有 {{ic|fonts.dir}} 檔案:
Line 213: Line 132:
  
 
  $ xlsfonts | grep fontname
 
  $ xlsfonts | grep fontname
 +
 +
{{note|許多套件在安裝時會自動設定Xorg以使用字型,若是這種情況,則不需要執行本步驟。}}
 +
 +
這也可以在 {{ic|/etc/X11/xorg.conf}} 或是 {{ic|/etc/X11/xorg.conf.d}} 設定檔中全域設置。
 +
 +
以下是一個必須要加到 {{ic|/etc/X11/xorg.conf}} 檔案中的例子。請依照特定字型的需求自行增減設定中的路徑。
 +
 +
# Let X.Org know about the custom font directories
 +
Section "Files"
 +
    FontPath    "/usr/share/fonts/100dpi"
 +
    FontPath    "/usr/share/fonts/75dpi"
 +
    FontPath    "/usr/share/fonts/cantarell"
 +
    FontPath    "/usr/share/fonts/cyrillic"
 +
    FontPath    "/usr/share/fonts/encodings"
 +
    FontPath    "/usr/share/fonts/misc"
 +
    FontPath    "/usr/share/fonts/truetype"
 +
    FontPath    "/usr/share/fonts/TTF"
 +
    FontPath    "/usr/share/fonts/util"
 +
EndSection
  
 
=== Pango 警告訊息 ===
 
=== Pango 警告訊息 ===
Line 220: Line 158:
 
  (process:5741): Pango-WARNING **: failed to choose a font, expect ugly output. engine-type='PangoRenderFc', script='latin'
 
  (process:5741): Pango-WARNING **: failed to choose a font, expect ugly output. engine-type='PangoRenderFc', script='latin'
  
如果您看到與上面類似的錯誤,或者應用程式內的字元變成了方框,您需要新增字型並更新字型快取。這個範例使用 {{Pkg|ttf-liberation}} 字型演示,並以 root 執行以套用至全系統。
+
如果您看到與上面類似的錯誤,或者應用程式內的字元變成了方框,您需要新增字型並更新字型快取。這個範例使用 {{Pkg|ttf-liberation}} 字型演示(成功安裝此套件之後),並以 root 執行以套用至全系統。
 
 
# pacman -S ttf-liberation
 
  -- 略過部分輸出,假設安裝已經成功 --
 
 
   
 
   
  # fc-cache -vfs
+
  # fc-cache
 
  /usr/share/fonts: caching, new cache contents: 0 fonts, 3 dirs
 
  /usr/share/fonts: caching, new cache contents: 0 fonts, 3 dirs
 
  /usr/share/fonts/TTF: caching, new cache contents: 16 fonts, 0 dirs
 
  /usr/share/fonts/TTF: caching, new cache contents: 16 fonts, 0 dirs
Line 239: Line 174:
 
  LiberationMono-Regular.ttf: "Liberation Mono" "Regular"
 
  LiberationMono-Regular.ttf: "Liberation Mono" "Regular"
  
=== 讓字型搭配 X.Org ===
+
== 終端機字型 ==
 +
 
 +
{{Note|本節是關於 [[Wikipedia:Linux console|Linux console]]。對於提供更多功能的其他的終端機(支援全 Unicode 字型、現代的顯示卡等等),請參考 [[fbterm]] 、 [[KMSCON]] 或之類的相關專案。}}
  
為了讓 [[Xorg]] 可以找到並使用您新安裝的字型,必須將字型路徑加入 {{ic|/etc/X11/xorg.conf}} (另一個 X.Org 設定檔也可以)。
+
預設的條件下 [[Wikipedia:Virtual console|虛擬終端機]] 使用核心內建的字型與 [[Wikipedia:CP437|CP437]] <sup>[https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/drivers/tty/vt/Makefile#n4]</sup>字元表, 但這是很容易修改的。
  
這是必須加入 {{ic|/etc/X11/xorg.conf}} 的範例內容。根據您的字型需求新增/移除路徑。
+
[[Wikipedia:Linux console|Linux 虛擬終端機]] 預設使用 UTF-8 編碼,但由於使用了標準的 VGA 相容偵緩衝,一個虛擬終端機被限制只能使用標準的 256 或 512 個字符。若一個字型超過 256 個字符,則色彩就會從 16 種降級到 8 種。為了指配正確的符號以顯示給訂的 Unicode,便需要一種特殊的轉換表,''unimap''。現在大多數虛擬終端機字型都有內建這個功能,傳統上則需要分開載入。
# 讓 X.Org 知道自訂字型目錄
 
Section "Files"
 
    FontPath    "/usr/share/fonts/100dpi"
 
    FontPath    "/usr/share/fonts/75dpi"
 
    FontPath    "/usr/share/fonts/cantarell"
 
    FontPath    "/usr/share/fonts/cyrillic"
 
    FontPath    "/usr/share/fonts/encodings"
 
    FontPath    "/usr/share/fonts/local"
 
    FontPath    "/usr/share/fonts/misc"
 
    FontPath    "/usr/share/fonts/truetype"
 
    FontPath    "/usr/share/fonts/TTF"
 
    FontPath    "/usr/share/fonts/util"
 
EndSection
 
  
== 終端機字型 ==
+
{{Pkg|kbd}} 套件提供了改變虛擬終端機字型及字型對應的工具。可用的字型被存放在 {{ic|/usr/share/kbd/consolefonts/}} 目錄中,這些副檔名為 ''.psfu'' or ''.psfu.gz'' 的檔案具有內建的 Unicode 轉換表。
  
[[Wikipedia:Virtual console|虛擬終端機]]使用核心內建字型,預設顯示 ASCII 字元,這兩種設定都可以輕易改變。
+
Keymaps, the connection between the key pressed and the character used by the computer, are found in the subdirectories of {{ic|/usr/share/kbd/keymaps/}}, see [[Keyboard configuration in console]] for details.
  
終端機字型限定為 256 或 512 個字元。可供使用的字型存放在 {{ic|/usr/share/kbd/consolefonts/}} 目錄。
+
鍵盤映射 (Keymap) 是按鍵和電腦使用字元的對應關係表,可以在 {{ic|/usr/share/kbd/keymaps/}} 的子目錄下找到。詳細資訊請參照  [[Keyboard configuration in console]] 。
  
鍵盤映射 (Keymap) 是按鍵和電腦使用字元的對應關係表,可以在 {{ic|/usr/share/kbd/keymaps/}} 的子目錄下找到。
+
{{Note|替換這些字型可能造成某些問題,因為有些程式預期標準的 VGA 風格字型,如某些畫線的圖形軟體。}}
  
 
=== 預覽和測試 ===
 
=== 預覽和測試 ===
  
{{提示|一個整理過的預覽影像資料庫:[http://alexandre.deverteuil.net/consolefonts/consolefonts.html Linux 終端機字型截圖]。}}
+
{{提示|一個整理過的預覽影像資料庫:[http://alexandre.deverteuil.net/pages/consolefonts Linux 終端機字型截圖]。}}
  
 
''showconsolefont'' 指令會以表格形式顯示可用字與字元:
 
''showconsolefont'' 指令會以表格形式顯示可用字與字元:
Line 274: Line 198:
 
  $ showconsolefont
 
  $ showconsolefont
  
''setfont'' 工具可以暫時改變字型,讓使用者可以決定是否要採為預設值。只要指定字型名稱即可 (這些字型位於 {{ic|/usr/share/kbd/consolefonts/}})
+
''setfont'' 工具可以暫時改變字型,讓使用者認為那是固定的字型。只要指定字型名稱即可 (這些字型位於 {{ic|/usr/share/kbd/consolefonts/}}),例如:
 
 
$ setfont Lat2-Terminus16
 
 
 
您可以用 {{ic|-m}} 選項指定使用什麼字元集:
 
  
  $ setfont Lat2-Terminus16 -m 8859-2
+
  $ setfont lat2-16 -m 8859-2
  
如果對新換的字型不滿意,用以下指令可以還原至預設字型 (就算終端機顯示亂碼,這個指令依然可以執行 -- 將指令「盲打」進去即可):
+
需注意字型名稱的大小寫呈現,不可混淆。如果對新換的字型不滿意,用以下指令可以還原至預設字型 (就算終端機顯示亂碼,這個指令依然可以執行,將指令「盲打」進去即可):
  
 
  $ setfont
 
  $ setfont
Line 288: Line 208:
 
{{註記|''setfont'' 只作用於目前正在使用的終端機。其它終端機無論活躍與否都不受影響。}}
 
{{註記|''setfont'' 只作用於目前正在使用的終端機。其它終端機無論活躍與否都不受影響。}}
  
=== 更改預設字型 ===
+
=== 持續性的設定 ===
  
{{ic|/etc/vconsole.conf}} 的 {{ic|FONT}} {{ic|FONT_MAP}} 變數可用來改變預設字型。
+
{{ic|/etc/vconsole.conf}} 的 {{ic|FONT}} 用來在開機時設定字型,對於所有的虛擬終端機都是固定的,詳情請參見 {{ic|man 5 vconsole.conf}} 的說明。
  
 
若要顯示 ''Č, ž, đ, š'' 或 ''Ł, ę, ą, ś'' 之類的字元,使用 {{ic|lat2-16.psfu.gz}} 這個字型:
 
若要顯示 ''Č, ž, đ, š'' 或 ''Ł, ę, ą, ś'' 之類的字元,使用 {{ic|lat2-16.psfu.gz}} 這個字型:
  
 +
{{hc|/etc/vconsole.conf|2=
 +
...
 
  FONT=lat2-16
 
  FONT=lat2-16
 +
FONT_MAP=8859-2
 +
}}
  
這代表使用 ISO/IEC 8859 字元的第二部分,大小設定為 16。您可以使用其它值更改字型大小 (如 {{ic|lat2-08}})。您可以在[[wikipedia:ISO/IEC_8859#The_Parts_of_ISO.2FIEC_8859|維基百科的這張表]]查詢 8859 規格定義的區域。如果您經常在沒有 X 伺服器的終端機上工作,建議可以使用一種 Terminus 字型。比如說 ter-216b,代表包含 latin-2 部分,大小 16,粗體字。ter-216n 是正常磅數的版本。Terminus 字型大小最大可以到 32。
+
這代表使用 ISO/IEC 8859 字元的第二部分,大小設定為 16。您可以使用其它值更改字型大小 (如 {{ic|lat2-08}})。您可以在[[wikipedia:ISO/IEC_8859#The_Parts_of_ISO.2FIEC_8859|維基百科的這張表]]查詢 8859 規格定義的區域。
  
現在設定適當的字型映射,若使用 lat2-16 則會是:
+
若要為早期的使用者空間套用指定字型,在 {{ic|/etc/mkinitcpio.conf}} 使用 {{ic|keymap}} 的設定。更多資訊請參閱 [[Mkinitcpio#HOOKS]]。
 
 
FONT_MAP=8859-2
 
 
 
若要為早期的使用者空間套用指定字型,在 {{ic|/etc/mkinitcpio.conf}} 使用 {{ic|keymap}} 勾子。更多資訊請參閱 [[Mkinitcpio#HOOKS]]。
 
  
 
如果開機時字型沒有任何變化,或只變化一下就回復原樣,則有可能是因為圖形驅動啟動時字型被重設,然後終端機被切至幀緩衝 (framebuffer)。提早載入圖形驅動可以避免這個問題。若要在套用 {{ic|/etc/vconsole.conf}} 之前將幀緩衝準備好,請參閱[[Kernel mode setting#Early KMS start|核心模式設定#提早啟動 KMS]]、[https://bbs.archlinux.org/viewtopic.php?id=145765] 或其它方式。
 
如果開機時字型沒有任何變化,或只變化一下就回復原樣,則有可能是因為圖形驅動啟動時字型被重設,然後終端機被切至幀緩衝 (framebuffer)。提早載入圖形驅動可以避免這個問題。若要在套用 {{ic|/etc/vconsole.conf}} 之前將幀緩衝準備好,請參閱[[Kernel mode setting#Early KMS start|核心模式設定#提早啟動 KMS]]、[https://bbs.archlinux.org/viewtopic.php?id=145765] 或其它方式。
Line 309: Line 229:
 
以下是收錄於官方軟體庫和 [[AUR]] 的字型軟體包列表,種類繁多,可依照需求選用。若字型有廣泛的萬國碼 (Unicode) 支援,會加註 "Unicode" 標記,詳情請參閱字型專案或相關的維基百科頁面。
 
以下是收錄於官方軟體庫和 [[AUR]] 的字型軟體包列表,種類繁多,可依照需求選用。若字型有廣泛的萬國碼 (Unicode) 支援,會加註 "Unicode" 標記,詳情請參閱字型專案或相關的維基百科頁面。
  
一位 Github 使用者 Ternstor 用 python 腳本產生 [http://ternstor.github.com/archfonts/extra.html extra], [http://ternstor.github.com/archfonts/community.html community] 和 [http://ternstor.github.com/archfonts/aur.html AUR] 庫內字型的 PNG 圖像,您可以在那裡預覽以下所提到的字型。
+
一位 Github 使用者 Ternstor 用 python 腳本產生含有所有官方及 AUR 套件庫字型的 PNG 圖像的 HTML 文件,請參照 [https://github.com/ternstor/distrofonts/blob/master/archfonts.py]
 +
 
 +
=== 古文字 ===
 +
 
 +
*{{AUR|ttf-ancient-fonts}} - 包含了許多古文明字型的 Unicode 符號集合
  
 
=== 盲文點字 ===
 
=== 盲文點字 ===
 
*{{Pkg|ttf-ubraille}} - 包含 Unicode '''盲文點字'''符號的字型
 
*{{Pkg|ttf-ubraille}} - 包含 Unicode '''盲文點字'''符號的字型
 +
 +
=== 表情符號(顏文字) ===
 +
 +
設計用來表示表情的圖形化符號集合。
 +
 +
* emojione-color-fontAUR - a complete, independent, open-source emoji set focused on design correctness
 +
* twemoji-color-fontAUR - Twitter's open-sourced emoji glyphs
 +
* ttf-symbola - provides many Unicode symbols, including emoji, in outline style
 +
* noto-fonts-emoji - Google's own emoji font, like on Android or Google Hangouts
 +
 +
部份新增的符號在 Noto 字型中的顯示不佳。
  
 
=== 國際 (非英語系) 使用者 ===
 
=== 國際 (非英語系) 使用者 ===
 
應用程式與瀏覽器會根據 fontconfig 設定和 Unicode 文字可用的字型來選擇其顯示字型。用指令 {{ic|<nowiki>fc-list :lang="雙字母的語言代碼"</nowiki>}} 列舉系統安裝了哪些可對應該語言的字型。例如,列舉已經安裝的阿拉伯文字型,以及支援阿拉伯字的字型:
 
應用程式與瀏覽器會根據 fontconfig 設定和 Unicode 文字可用的字型來選擇其顯示字型。用指令 {{ic|<nowiki>fc-list :lang="雙字母的語言代碼"</nowiki>}} 列舉系統安裝了哪些可對應該語言的字型。例如,列舉已經安裝的阿拉伯文字型,以及支援阿拉伯字的字型:
{{hc|$ fc-list :lang&#61;ar &#124; cut -d: -f1|2=
+
{{hc|$ fc-list -f '%{file}\n' :lang&#61;ar|2=
 
<nowiki>
 
<nowiki>
 
/usr/share/fonts/TTF/FreeMono.ttf
 
/usr/share/fonts/TTF/FreeMono.ttf
Line 326: Line 261:
 
}}
 
}}
  
若要在多國語言的網站 (如維基百科、Arch Linux wiki) 正確描繪字形,安裝這些軟體包:{{Pkg|ttf-freefont}}, {{Pkg|ttf-arphic-uming}}, {{Pkg|ttf-baekmuk}}
+
若要在多國語言的網站 (如維基百科、Arch Linux wiki) 正確描繪字形,請安裝下列軟體包組合之一:
 +
* Google 的 [http://www.google.com/get/noto/ Noto] 以支援所有語言為目標。[[Install|安裝]] {{Pkg|noto-fonts}}、 {{Pkg|noto-fonts-cjk}} 以及 {{Pkg|noto-fonts-emoji}}。
 +
* 另外一個能夠良好涵蓋多語言環境的字型組合是 {{Pkg|ttf-freefont}}{{Pkg|ttf-arphic-uming}} 以及 {{Pkg|ttf-baekmuk}}
  
 
==== 阿拉伯和烏爾都文字 ====
 
==== 阿拉伯和烏爾都文字 ====
*{{AUR|ttf-qurancomplex-fonts}} - 位於麥地那的 King Fahd Glorious Quran Printing Complex 製作的字型
+
* {{AUR|ttf-amiri}} - A classical Arabic typeface in Naskh style poineered by Amiria Press
*{{AUR|ttf-amiri}} - 一個典型的阿拉伯文謄抄體 (Naskh) 字型,一開始由 Amiria Press 採用
+
* {{AUR|ttf-qurancomplex-fonts}} - Fonts by King Fahd Glorious Quran Printing Complex in al-Madinah al-Munawwarah
*{{AUR|ttf-sil-lateef}} - 來自 SIL 的 Unicode 阿拉伯文字型
+
* {{AUR|ttf-qurancomplex-fonts}} - 位於麥地那的 King Fahd Glorious Quran Printing Complex 製作的字型
*{{AUR|ttf-sil-scheherazade}} - 來自 SIL 的 Unicode 阿拉伯文字型
+
* {{AUR|ttf-arabeyes-fonts}} - Collection of free Arabic fonts
*{{AUR|ttf-arabeyes-fonts}} - 自由的阿拉伯文字型集合
+
* {{AUR|ttf-sil-lateef}} - 來自 SIL 的 Unicode 阿拉伯文字型
 +
* {{AUR|ttf-sil-scheherazade}} - 來自 SIL 的 Unicode 阿拉伯文字型
 +
* {{AUR|ttf-urdufonts}} - Urdu fonts (Jameel Noori Nastaleeq (+kasheeda), Nafees Web Naskh, PDMS Saleem Quran Font) and font configuration to set Jameel Noori Nastaleeq as default font for Urdu
 +
 
 +
==== 緬甸文 ====
 +
 
 +
* {{AUR|ttf-my-paduk}} - Padauk font for Myanmar/Birmania
 +
* {{AUR|ttf-myanmar-fonts}} - 121 Fonts from myordbok.com
  
 
==== 中日韓越文字 ====
 
==== 中日韓越文字 ====
 +
 +
===== Pan-CJK =====
 +
* {{Pkg|noto-fonts-cjk}} - 一個支援簡/繁中文、日文及韓文的大型字型集合,並具有一致的設計。是下者的別名。
 +
* {{Pkg|adobe-source-han-sans-otc-fonts}}
  
 
===== 中文字 =====
 
===== 中文字 =====

Revision as of 05:48, 27 June 2016

zh-CN:Fonts

翻譯狀態: 本文章是 Fonts 的翻譯版本。最近一次的翻譯時間:2014-01-25。點擊本連結查看英文頁面之後的變更。

Tango-preferences-desktop-locale.pngThis article or section needs to be translated.Tango-preferences-desktop-locale.png

Notes: 在[#字型軟體包]之後都尚未sync到2016-06-27 (Discuss in Talk:Fonts (正體中文)#)

摘自維基百科

電腦字型 (computer font),或稱字型 (font),是包含字 (glyph)、字元或符號 (如 dingbats) 的電子檔案資料。」

注意,某些字型的授權有訂定合理使用限制。

字型格式

現今電腦所使用的字型中,絕大部分屬於點陣 (bitmap) 或輪廓 (outline)資料格式。

點陣字型
由點 (像素) 陣列構成的圖像,代表每種字樣、大小的字 (glyph)。
輪廓字型
又稱作向量 (vector) 字型。使用貝茲曲線 (Bézier curve)、繪圖指引和數學公式描繪每個字,產生的字元可以縮放至任意大小。

常見副檔名

  • bdf, bdf.gz – 點陣字型,bitmap distribution format 的縮寫,以及用 gzip 壓縮的 bdf
  • pcf, pcf.gz – 點陣字型,portable compiled font 的縮寫,以及用 gzip 壓縮的 pcf
  • psf, psfu, psf.gz, psfu.gz – 點陣字型,PC screen font 與 PC screen font Unicode 的縮寫,以及用 gzip 壓縮的版本 (跟 X.Org 不相容)
  • pfa, pfb – 輪廓字型,PostScript font ASCII 與 PostScript font binary 的縮寫。PostScript 字型內建印表機指令。
  • ttf – 輪廓字型,TrueType font 的縮寫。原本設計為 PostScript 字型的替代品。
  • otf – 輪廓字型,OpenType font 的縮寫。TrueType 附帶 PostScript 排版指令。

TrueType 與 OpenType 的技術差異,在大部分的用途之下可被忽略。某些 OpenType 字型使用了 ttf 副檔名。

其他格式

排版程式 TeX 與字型軟體 Metafont 有它們自己算繪字元的方法。這兩個程式使用的字型副檔名有 *pk, *gf, mfvf

FontForge 字型編輯程式會將字型存為自己的文字檔格式 sfd,這是 spline font database 的縮寫。

SVG 格式也有一套自己的字型描述方法。

安裝

安裝字型的方式有很多種。

Pacman

透過 pacman 可以安裝啟用軟體庫的字型。使用以下指令搜尋可供使用的字型:

$ pacman -Ss font

或只搜尋 ttf 字型:

$ pacman -Ss ttf

建立軟體包

您應該將管理字型的工作交給 pacman。字型可以打包成一份 Arch 軟體包,還可以透過 AUR 和社群分享。這裡有一個建立基本軟體包的範例。若想要更了解如何組建軟體包,請閱讀 PKGBUILD

字型檔案的家族名稱可以使用 fc-query 指令取得。例如: fc-query -f '%{family[0]}\n' /path/to/file。使用的格式請參考 FcPatternFormat(3) 手冊之說明。

PKGBUILD
pkgname=fontname-fonts
pkgver=1.0
pkgrel=1
pkgdesc="一些關於此字型之描述"
arch=('any')
depends=('fontconfig' 'xorg-font-utils')
source=("http://someurl.org/$pkgname.tar.bz2")
install=$pkgname.install

package() {
  install -Dm644 $pkgname/font.otf "$pkgdir"/usr/share/fonts/family_name/font.otf
  install -Dm644 $pkgname/font_bold.otf "$pkgdir"/usr/share/fonts/family_name/font_bold.otf
}
fontname-fonts.install
post_install() {
  fc-cache -s
}

post_upgrade() {
  post_install
}

post_remove() {
  post_install
}

手動安裝

要為系統新增一個軟體庫未收錄的字型,建議方法是#建立軟體包。採用這個方式讓 pacman 之後能夠移除或升級字型。不過您也可以用手動的方式安裝字型。

若要將字型安裝到系統 (讓所有使用者都能使用),將字型資料夾移至 /usr/share/fonts/ 目錄。為了使得這些字型檔案能夠被所有使用者讀取,使用 chmod 指令設定正確的權限:檔案至少必須是 0444,而目錄則是 0555。若要安裝給單一使用者,則將自行檔案安裝於 ~/.local/share/fonts 目錄。(注意:~/.fonts/ 的用法已經不被支援了)

要讓 X 伺服器可以直接載入字型 (不使用「字型伺服器」),需要將新增字型的所在目錄加為 FontPath 項目。這個項目位在您的 Xorg 設定檔案 (例如 /etc/X11/xorg.conf/etc/xorg.conf) 的 Files 區。更多詳細資訊請參閱#舊版應用程式

接著更新 fontconfig 字型快取:

$ fc-cache -vf

舊版應用程式

對於不支援 fontconfig 的舊版應用程式 (例如 GTK+ 1.x 應用程式和 xfontsel),必須在字型目錄下建立索引:

$ mkfontscale
$ mkfontdir

或者,用一行指令將多個資料夾包含進來:

$ for dir in /font/dir1/ /font/dir2/; do xset +fp $dir; done && xset fp rehash

又或者,若字型被安裝在不同的子資料夾如 /usr/share/fonts

$ for dir in * ; do if [  -d  "$dir"  ]; then cd "$dir";xset +fp "$PWD" ;mkfontscale; mkfontdir;cd .. ;fi; done && xset fp rehash

有時候 X 伺服器會無法成功載入字型資料夾,這時您需要重新掃描所有 fonts.dir 檔案:

# xset +fp /usr/share/fonts/misc # 告知 X 伺服器新的目錄
# xset fp rehash                # 強制進行新的掃描

檢查字型是否被包含進來:

$ xlsfonts | grep fontname
Note: 許多套件在安裝時會自動設定Xorg以使用字型,若是這種情況,則不需要執行本步驟。

這也可以在 /etc/X11/xorg.conf 或是 /etc/X11/xorg.conf.d 設定檔中全域設置。

以下是一個必須要加到 /etc/X11/xorg.conf 檔案中的例子。請依照特定字型的需求自行增減設定中的路徑。

# Let X.Org know about the custom font directories
Section "Files"
    FontPath    "/usr/share/fonts/100dpi"
    FontPath    "/usr/share/fonts/75dpi"
    FontPath    "/usr/share/fonts/cantarell"
    FontPath    "/usr/share/fonts/cyrillic"
    FontPath    "/usr/share/fonts/encodings"
    FontPath    "/usr/share/fonts/misc"
    FontPath    "/usr/share/fonts/truetype"
    FontPath    "/usr/share/fonts/TTF"
    FontPath    "/usr/share/fonts/util"
EndSection

Pango 警告訊息

若您的系統有在使用 Pango,它會從 fontconfig 讀取字型來源。

(process:5741): Pango-WARNING **: failed to choose a font, expect ugly output. engine-type='PangoRenderFc', script='common'
(process:5741): Pango-WARNING **: failed to choose a font, expect ugly output. engine-type='PangoRenderFc', script='latin'

如果您看到與上面類似的錯誤,或者應用程式內的字元變成了方框,您需要新增字型並更新字型快取。這個範例使用 ttf-liberation 字型演示(成功安裝此套件之後),並以 root 執行以套用至全系統。

# fc-cache
/usr/share/fonts: caching, new cache contents: 0 fonts, 3 dirs
/usr/share/fonts/TTF: caching, new cache contents: 16 fonts, 0 dirs
/usr/share/fonts/encodings: caching, new cache contents: 0 fonts, 1 dirs
/usr/share/fonts/encodings/large: caching, new cache contents: 0 fonts, 0 dirs
/usr/share/fonts/util: caching, new cache contents: 0 fonts, 0 dirs
/var/cache/fontconfig: cleaning cache directory   
fc-cache: succeeded

您可以測試預設字型是否已經設置:

# fc-match
LiberationMono-Regular.ttf: "Liberation Mono" "Regular"

終端機字型

Note: 本節是關於 Linux console。對於提供更多功能的其他的終端機(支援全 Unicode 字型、現代的顯示卡等等),請參考 fbtermKMSCON 或之類的相關專案。

預設的條件下 虛擬終端機 使用核心內建的字型與 CP437 [1]字元表, 但這是很容易修改的。

Linux 虛擬終端機 預設使用 UTF-8 編碼,但由於使用了標準的 VGA 相容偵緩衝,一個虛擬終端機被限制只能使用標準的 256 或 512 個字符。若一個字型超過 256 個字符,則色彩就會從 16 種降級到 8 種。為了指配正確的符號以顯示給訂的 Unicode,便需要一種特殊的轉換表,unimap。現在大多數虛擬終端機字型都有內建這個功能,傳統上則需要分開載入。

kbd 套件提供了改變虛擬終端機字型及字型對應的工具。可用的字型被存放在 /usr/share/kbd/consolefonts/ 目錄中,這些副檔名為 .psfu or .psfu.gz 的檔案具有內建的 Unicode 轉換表。

Keymaps, the connection between the key pressed and the character used by the computer, are found in the subdirectories of /usr/share/kbd/keymaps/, see Keyboard configuration in console for details.

鍵盤映射 (Keymap) 是按鍵和電腦使用字元的對應關係表,可以在 /usr/share/kbd/keymaps/ 的子目錄下找到。詳細資訊請參照 Keyboard configuration in console

Note: 替換這些字型可能造成某些問題,因為有些程式預期標準的 VGA 風格字型,如某些畫線的圖形軟體。

預覽和測試

提示: 一個整理過的預覽影像資料庫:Linux 終端機字型截圖

showconsolefont 指令會以表格形式顯示可用字與字元:

$ showconsolefont

setfont 工具可以暫時改變字型,讓使用者認為那是固定的字型。只要指定字型名稱即可 (這些字型位於 /usr/share/kbd/consolefonts/),例如:

$ setfont lat2-16 -m 8859-2

需注意字型名稱的大小寫呈現,不可混淆。如果對新換的字型不滿意,用以下指令可以還原至預設字型 (就算終端機顯示亂碼,這個指令依然可以執行,將指令「盲打」進去即可):

$ setfont
註記: setfont 只作用於目前正在使用的終端機。其它終端機無論活躍與否都不受影響。

持續性的設定

/etc/vconsole.confFONT 用來在開機時設定字型,對於所有的虛擬終端機都是固定的,詳情請參見 man 5 vconsole.conf 的說明。

若要顯示 Č, ž, đ, šŁ, ę, ą, ś 之類的字元,使用 lat2-16.psfu.gz 這個字型:

/etc/vconsole.conf
...
 FONT=lat2-16
 FONT_MAP=8859-2

這代表使用 ISO/IEC 8859 字元的第二部分,大小設定為 16。您可以使用其它值更改字型大小 (如 lat2-08)。您可以在維基百科的這張表查詢 8859 規格定義的區域。

若要為早期的使用者空間套用指定字型,在 /etc/mkinitcpio.conf 使用 keymap 的設定。更多資訊請參閱 Mkinitcpio#HOOKS

如果開機時字型沒有任何變化,或只變化一下就回復原樣,則有可能是因為圖形驅動啟動時字型被重設,然後終端機被切至幀緩衝 (framebuffer)。提早載入圖形驅動可以避免這個問題。若要在套用 /etc/vconsole.conf 之前將幀緩衝準備好,請參閱核心模式設定#提早啟動 KMS[2] 或其它方式。

字型軟體包

以下是收錄於官方軟體庫和 AUR 的字型軟體包列表,種類繁多,可依照需求選用。若字型有廣泛的萬國碼 (Unicode) 支援,會加註 "Unicode" 標記,詳情請參閱字型專案或相關的維基百科頁面。

一位 Github 使用者 Ternstor 用 python 腳本產生含有所有官方及 AUR 套件庫字型的 PNG 圖像的 HTML 文件,請參照 [3]

古文字

盲文點字

表情符號(顏文字)

設計用來表示表情的圖形化符號集合。

  • emojione-color-fontAUR - a complete, independent, open-source emoji set focused on design correctness
  • twemoji-color-fontAUR - Twitter's open-sourced emoji glyphs
  • ttf-symbola - provides many Unicode symbols, including emoji, in outline style
  • noto-fonts-emoji - Google's own emoji font, like on Android or Google Hangouts

部份新增的符號在 Noto 字型中的顯示不佳。

國際 (非英語系) 使用者

應用程式與瀏覽器會根據 fontconfig 設定和 Unicode 文字可用的字型來選擇其顯示字型。用指令 fc-list :lang="雙字母的語言代碼" 列舉系統安裝了哪些可對應該語言的字型。例如,列舉已經安裝的阿拉伯文字型,以及支援阿拉伯字的字型:

$ fc-list -f '%{file}\n' :lang=ar
/usr/share/fonts/TTF/FreeMono.ttf
/usr/share/fonts/TTF/DejaVuSansCondensed.ttf
/usr/share/fonts/truetype/custom/DroidKufi-Bold.ttf
/usr/share/fonts/TTF/DejaVuSansMono.ttf
/usr/share/fonts/TTF/FreeSerif.ttf

若要在多國語言的網站 (如維基百科、Arch Linux wiki) 正確描繪字形,請安裝下列軟體包組合之一:

阿拉伯和烏爾都文字

  • ttf-amiriAUR - A classical Arabic typeface in Naskh style poineered by Amiria Press
  • ttf-qurancomplex-fontsAUR - Fonts by King Fahd Glorious Quran Printing Complex in al-Madinah al-Munawwarah
  • ttf-qurancomplex-fontsAUR - 位於麥地那的 King Fahd Glorious Quran Printing Complex 製作的字型
  • ttf-arabeyes-fontsAUR - Collection of free Arabic fonts
  • ttf-sil-lateefAUR - 來自 SIL 的 Unicode 阿拉伯文字型
  • ttf-sil-scheherazadeAUR - 來自 SIL 的 Unicode 阿拉伯文字型
  • ttf-urdufontsAUR - Urdu fonts (Jameel Noori Nastaleeq (+kasheeda), Nafees Web Naskh, PDMS Saleem Quran Font) and font configuration to set Jameel Noori Nastaleeq as default font for Urdu

緬甸文

中日韓越文字

Pan-CJK
中文字
  • ttf-twAUR - 台灣 (中華民國) 教育部標準楷書、宋體字型。
  • wqy-microhei - 無襯線形式的高品質中日韓越 (CJKV) 輪廓字型。
  • wqy-zenhei - 黑體 (無襯線) 的中文輪廓字型,附帶點陣宋體 (也支援部分日韓字元)。
  • ttf-arphic-ukai - 楷書 (帶有筆觸) Unicode 字型 (建議啟用反鋸齒)
  • ttf-arphic-uming - 明體 (印刷) Unicode 字型
  • opendesktop-fonts - 新宋字型,之前為 ttf-fireflysung
  • wqy-bitmapfont - 點陣宋體 (襯線) 中文字型
  • ttf-hannom - 中文、越南文 TrueType 字型
日文字
  • otf-ipafont - 正規的日文哥特體 (無襯線) 與明朝體 (襯線) 字形集;其中一項高品質的開放原始碼字形。openSUSE-ja 的預設字形。
  • ttf-vlgothicAUR - 日文哥特體字形。Debian/Fedora/Vine Linux 的預設字型
  • ttf-mplusAUR - 現代哥特體的日文輪廓字型。包含所有日文平假名/片假名、Basic Latin、Latin-1 Supplement、Latin Extended-A、IPA Extensions。另外還有大部分日文漢字、希臘字母、西里爾字與越南文字,可以 7 磅 (等比例) 或 5 磅 (等寬) 字重顯示。
  • ttf-monapoAUR - 日文字型,可正確顯示 2ch 的 Shift JIS 藝術創作
  • ttf-sazanami - 自由的日文 TrueType 字型。已經過期無人維護,但在某些環境下可當作備案字型使用。
韓文字

希臘文字

幾乎所有 Unicode 字型都包含希臘字元集 (也包含多調變音符號)。某些額外的字型軟體包未包含完整的 Unicode 集,但擁有高品質的希臘字字形 (當然包含拉丁字):

  • otf-gfsAUR - 由 Greek Font Society 選用的 OpenType 字型
  • ttf-mgopenAUR - 來自 Magenta 的專業 TrueType 字型

希伯來文字

  • culmusAUR - 自由的希伯來文字型集合

印地文字

(This one contains a "look of disapproval" that might be more to your liking than the bdf-unifont one mentioned elsewhere in this document)
  • lohit-fontsAUR - 來自 Fedora 專案的印地文 TrueType 字型 (包含 Oriya 字型以及更多)

高棉文字

僧伽羅文字

  • ttf-lklugAUR - 僧伽羅文 (Sinhala) Unicode 字型

塔米爾文字

  • ttf-tamilAUR - 塔米爾文 (Tamil) Unicode 字型

藏文字

數學字型

Microsoft 字型

參閱微軟字型

Apple Mac OS X 字型

等寬字型

有一些建議要給各位。每個使用者所偏好的字型不同,因此要找到您心目中的理想字型,就請多加嘗試。 如果您沒有太多時間,可以閱讀 Dan Benjamin 的部落格文章:Top 10 Programming Fonts (前十名適合寫程式的字型)。

這裡有 Trevor Lowing 整理的一長串字型清單:http://www.lowing.org/fonts/

TrueType 字型

點陣字型

無襯線字型

手寫體

襯線字型

未分類字型

X11 的字型採用順序

Fontconfig 會自動選擇符合目前需求的字型。這麼說好了,假設有一個包含英文和中文的視窗,如果預設字型不支援中文,就會換成有中文字支援的字型來顯示。

Fontconfig 透過 $XDG_CONFIG_HOME/fontconfig/fonts.conf,讓每個使用者都可以設定自己的偏好順序。 如果您希望在自己偏好的襯線字體後面加上一種中文字型當候補,檔案會看起來像這樣:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<alias>
   <family>serif</family>
   <prefer>
     <family>您偏好的拉丁字襯線字型名稱</family>
     <family>您的中文字型名稱</family>
   </prefer>
 </alias>
</fontconfig>

您也可以新增無襯線和等寬字型的部分。更多資訊可參考 fontconfig 手冊。

字型別名

Linux 下有數個字型別名,實際上它們指向別的真實字型,這是為了讓所有應用程式使用的字型能夠相似。最常見的別名有:serif 襯線字型 (如 DejaVu Serif);sans-serif 無襯線字型 (如 DejaVu Sans);以及 monospace 等寬字型 (如 DejaVu Sans Mono)。不過這些別名所代表的字型可能會有變化,且通常它們不會顯示在 KDE 和其他桌面環境的字型管理工具之中。

若要查詢別名所代表的字型,執行:

$ fc-match monospace
DejaVuSansMono.ttf: "DejaVu Sans Mono" "Book"

在上面的範例中,DejaVuSansMono.ttf 是 monospace 別名所指向的字型。

小提示

從官方軟體庫安裝字型

您可以將官方軟體倉庫有提供的字型全部抓下來安裝。

所有字型
# pacman -S $(pacman -Ssq font)
所有 TrueType 字型
# pacman -S $(pacman -Ssq ttf)

應用程式專用的字型快取

Matplotlib (python-matplotlibpython2-matplotlib) 使用自己的字型快取,因此更新字型後記得移除 $HOME/.matplotlib/fontList.cache,這樣它才會再產生一次快取並找到新字型 [4]

另請參閱