快轉到主要內容

解決Ubuntu無法顯示標楷體,安裝額外的Windows中文字型

· 民國114年乙巳年
·
切換繁體/簡體
分類   Linux系統 Linux使用技巧
標籤   Ubuntu LibreOffice Freedesktop Specifications
目錄

適用版本:Ubuntu 24.04以上。本文分享的概念亦適用其他Linux發行版。

Ubuntu系統用LibreOffice Writer開啟.docx文件,標楷體一律都會變成用其他字型顯示,跟Windows電腦Word看來完全不同,怎麼回事呢?

Windows檢視.docx文件
Ubuntu檢視.docx文件,沒有顯示標楷體

Ubuntu內建Google Noto Fonts字型家族,用於顯示多國語言的文字。當我們開啟含有標楷體的.docx文件的時候,由於Linux系統沒有這個字型,因此不論是在LibreOffice Writer還是Google文件網頁版,它就會回退到Noto Sans CJK字型來顯示中文字,導致字型錯誤。這在影印文件的時候會非常困擾。

所以我們得手動安裝標楷體字型,讓Ubuntu得以顯示標楷體。

若要安裝其他Windows才有的字型,也是如法炮製。

1. 認識Windows標楷體與替代方案
#

了解一下標楷體問題,再挑選解決方案。

Windows系統的標楷體,名字準確來說是「華康標楷體」,乃華康科技(威鋒數位)參考中華民國教育部標準字體所研發的字型。Microsoft向其購買之後,內建在Windows系統給大家使用。

因為授權條款因素,Ubuntu套件庫無法收錄標楷體字型。另外像新細明體、微軟正黑體、Times New Roman沒有收錄在Ubuntu套件庫也是因為授權條款。

Ubuntu有一個套件叫做ttf-mscorefonts-installer,裝了之後就能在Linux使用Windows字型,但裡面只有Times New Roman這類英文字型,沒有中文字型。

針對這類授權字型,使用者需要自行取得.ttf字型檔安裝。以標楷體來說,最快的方式就是從Windows電腦複製過來,再塞到Linux系統的字型目錄即可。

但為何不建議這樣做呢?

嚴格來說,從Windows系統複製標楷體,或者從網路上下載標楷體,再裝到Linux字型目錄是違反授權條款的。

比較好的方式是改用類似標楷體且允許自由使用的字型,譬如:

  • 文鼎楷書體 + 台灣方音符號 AR PL UKai TW MBE
  • 全字庫正楷體 TW-Kai-Ext
  • 教育部標準楷體 TW-MOE-Std-Kai
  • cwTeX楷書 cwTeXKai

這些楷體字型Ubuntu都有提供套件,無需手動下載。

然而這樣做有壞處,第一,別人給你的.docx文件內嵌的字型是指向「標楷體」,要手動用LibreOffice Writer開啟檔案,修改字型再存檔,有很多文件要處理的話就會很麻煩。第二,如果.docx檔案之後還要傳檔給別人用,安裝這種非正規的楷體,可能變成對方電腦沒有這種字型,導致無法顯示。

此外,這幾個楷體的字型寫法跟標楷體有些微不同。

嘛,一般人應該不需要在意字型授權問題。如果只是要做出指定格式文件的話,就別太在意過程了啦。直接複製Windows的標楷體字型來用最快。

2. 顯示標楷體的解決方案
#

解決方案1:複製Windows的標楷體字型來用
#

  1. 開啟Windows電腦的C:\Windows\Fonts\資料夾,複製kaiu.ttf字型檔。或者自行在網路上搜尋下載標楷體字型。

  2. 將.ttf字型檔傳到Ubuntu電腦,開啟檔案管理器,點二下安裝字型

  3. 或者用指令安裝,在下載目錄開啟終端機,將.ttf檔複製到系統目錄/usr/share/fonts/truetype/

sudo cp kaiu.ttf /usr/share/fonts/truetype/

fc-cache -fv
  1. 重新啟動LibreOffice,開啟.docx文件應該就能顯示標楷體了。

解決方案2:改用類似標楷體的字型
#

視需求安裝楷體字型套件,不用全裝。

安裝文鼎楷書體,安裝後顯示的字型名稱為AR PL UKai

sudo apt install fonts-arphic-ukai

安裝全字庫正楷體,安裝後顯示的字型名稱為全字庫正楷體

sudo apt install  fonts-cns11643-kai

安裝教育部標準楷體,安裝後顯示的字型名稱為教育部標準楷體

sudo apt install fonts-moe-standard-kai

安裝cwTeX,安裝後顯示的字型名稱為cwTeX 楷書

sudo apt install fonts-cwtex-kai

接著開啟LibreOffice Writer,選取文件文字,替換掉字型。

解決方案3:使用類似標楷體的字型去顯示標楷體
#

好繞口…其實就是替身攻擊啦。

Linux桌面環境可以透過fontconfig工具來調整系統的字型優先順序,也能用一個字型替代顯示另一個字型。好處是不需要安裝需要授權的標楷體字型,亦不需要手動替換文件內的字型。壞處就是自欺欺人,只有你看得到。

順帶一提,Ubuntu系統的/etc/fonts/conf.d/目錄裡面已經有一系列預先定義的字型替換規則。

  1. 使用fc-list指令列出Linux系統已安裝的字型。

  2. 新增fontconfig設定檔

mkdir -p ~/.config/fontconfig/

vim ~/.config/fontconfig/fonts.conf
  1. 填入下列內容。這裡範例是告訴系統,遇到標楷體 (Linux顯示的名稱為DFKai-SB) 就用教育部標準楷體 (TW-MOE-Std-Kai) 去顯示。
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">

<fontconfig>

<match target="pattern">
  <test name="family">
    <string>DFKai-SB</string>
  </test>
  <edit name="family" mode="prepend" binding="strong">
    <string>TW-MOE-Std-Kai</string>
  </edit>
</match>

</fontconfig>
  1. 更新字型快取
fc-cache -fv

3. 系統界面全部變成標楷體了怎麼辦?
#

有時候會遇到這個bug,一安裝楷體字型,部份Linux程式就會變成以楷體顯示中文,醜死了。

不知道為什麼,Linux發行版只要安裝任一種楷體,有些程式界面的中文字就會全部變成標楷體,這是什麼返祖現象嗎?以前對Linux不熟悉害我很長時間不敢任意裝字體,只得解除安裝標楷體。

可,最好的解決方法肯定不是移除字型。

我們可以透過fontconfig調整字型優先級來解決以上問題,將優先字型設定為Google Noto Fonts就好了。

參考資料
#

相關文章

fontconfig調整Linux中文預設字型的優先順序,修正字型模糊、Emoji亂碼的問題
分類   Linux系統 Linux使用技巧
標籤   Ubuntu LibreOffice Freedesktop Specifications
什麼是.desktop檔案?Linux桌面Desktop Entry用途解說
分類   Linux系統 Linux使用技巧
標籤   Freedesktop Specifications GNOME KDE Plasma
Ubuntu如何連接Apple AirPods Pro藍牙耳機並查看電量
分類   Linux系統 Linux使用技巧
標籤   AirPods GNOME Ubuntu KDE Plasma PipeWire

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。為防止垃圾內容,有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。若要上傳圖片請善用圖床網站。