適用版本:Ubuntu 24.04以上。本文分享的概念亦適用其他Linux發行版。
Ubuntu系統用LibreOffice Writer開啟.docx文件,標楷體一律都會變成用其他字型顯示,跟Windows電腦Word看來完全不同,怎麼回事呢?
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的標楷體字型來用#
開啟Windows電腦的
C:\Windows\Fonts\
資料夾,複製kaiu.ttf
字型檔。或者自行在網路上搜尋下載標楷體字型。將.ttf字型檔傳到Ubuntu電腦,開啟檔案管理器,點二下安裝字型
或者用指令安裝,在下載目錄開啟終端機,將.ttf檔複製到系統目錄
/usr/share/fonts/truetype/
:
sudo cp kaiu.ttf /usr/share/fonts/truetype/
fc-cache -fv
- 重新啟動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/
目錄裡面已經有一系列預先定義的字型替換規則。
使用
fc-list
指令列出Linux系統已安裝的字型。新增fontconfig設定檔
mkdir -p ~/.config/fontconfig/
vim ~/.config/fontconfig/fonts.conf
- 填入下列內容。這裡範例是告訴系統,遇到標楷體 (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>
- 更新字型快取
fc-cache -fv
3. 系統界面全部變成標楷體了怎麼辦?#
有時候會遇到這個bug,一安裝楷體字型,部份Linux程式就會變成以楷體顯示中文,醜死了。
不知道為什麼,Linux發行版只要安裝任一種楷體,有些程式界面的中文字就會全部變成標楷體,這是什麼返祖現象嗎?以前對Linux不熟悉害我很長時間不敢任意裝字體,只得解除安裝標楷體。
可,最好的解決方法肯定不是移除字型。
我們可以透過fontconfig調整字型優先級來解決以上問題,將優先字型設定為Google Noto Fonts就好了。