如何替換未知字型?

如何替換未知字型?

假設我有一個外文文字文檔,使用可識別字體的文字編輯工具(例如 LibreOffice Writer)開啟。在本文檔中,可能使用了一些在我的 Ubuntu 安裝上不可用的字型(例如 Garamond)。

問題是:Ubuntu 如何決定使用哪一種已安裝的字型來取代未知字型?它是否會讀取字體的任何特徵並尋找類似的特徵?是否始終使用預設替換字型?它會搜尋相似的字體名稱嗎?

除此之外,我想知道是否可以以某種方式改變這種行為或設定手動字體別名以自動使用例如免費字體EB-加拉蒙而不是非免費的加拉蒙

答案1

我認為這不是由 Ubuntu 決定的,而是由程式(LibreOffice、OpenOffice 等)決定的。我看不到任何與 LibreOffice 相關的內容本身但 OpenOffice 有一個不錯的維基百科有關此“字體後備”如何工作的一些詳細資訊。一般來說,它也可能適用於 LibreOffice。

為了澄清起見,我複製了下面 wiki 中的一些部分。很難比書中的內容更能解釋維基百科,所以最好從那裡閱讀:

OpenOffice.org 2 中的字型回退是什麼?

每當系統上未安裝請求的字型時,字型後備就會啟動。 (未安裝意味著:OOo 不可用)。然後,OOo 嘗試使用與 OOo 所知的字體不同的字體,盡可能與所要求的字體相符。

字體後備如何運作?

為了讓字體回退產生令人滿意的結果,OOo 必須以某種方式了解字體的相似性。 OOo 必須知道它可以替代黑體代替宋體, 但不是漫畫字體。這項任務並不像聽起來那麼容易,因為存在許多字體,而 OOo 無法了解所有字體。

OOo 使用多種方法來尋找合適的替代品:

  • 系統提供的字體別名資訊(例如,來自fonts.dir 文件
  • 後備字體的硬編碼列表,來自VCL.xcu(首先嘗試)
  • 替代字體名稱拼寫
  • 字體屬性(例如,是否有 CJK 字符,是否為符號字體)或樣式 (襯線/無襯線,比例/非比例)

如果這一切也失敗了:

  • 使用預設字體

沒有直接關係,但是TLDP 文件值得一讀。

相關內容