Fonts
Linux系統上瀏覽器的字型選擇機制
實際上,我認為我的問題太基礎了,但是,即使在網際網路上進行了深入搜尋之後,我仍然不明白瀏覽器如何選擇特定字型來在 Linux 系統上呈現特定腳本。我知道 Linux 系統有fontconfig用於管理應用程序中的字型渲染,但 fontconfig 的行為與瀏覽器不一致。主要是,**Chromium 及其衍生產品並不總是遵守 fontconfig 規則。**他們嘗試自己選擇字型。另一方面,Firefox 及其衍生產品與 Linux 系統的集成非常好他們傾向於遵守 fontconfig 設置。我嘗試了不同的瀏覽器來測試它們的行為,發現即使我們在 fontconfig 中為特定字型配置了規則,我們仍然需要更多的調整才能在瀏覽器之間獲得一致的行為。他們傾向於選擇自己的字型。這讓我感到困惑。所以我對此的問題是:
- 瀏覽器如何實際選擇字型作為其UI 字型以及用於呈現特定腳本的字型?
- 我知道我們可以在 CSS 中指定字型,但是如果我們不指定它們會發生什麼?瀏覽器將如何回退字型?
- fontconfig 在瀏覽器中的作用是什麼?瀏覽器是否使用 fontconfig 或其他東西來優先考慮字型?
- 我錯過了什麼嗎?
請幫助我消除我的困惑。任何幫助將不勝感激。
經過長時間研究 fontconfig 和瀏覽器的行為,我知道了以下幾點:
- Fontconfig 是一個相對較小但複雜的軟體。它有一種算法,可以匹配給定條件和渲染參數的最佳字型。這些條件和參數統稱為“模式”。
- 字型有幾個特徵,不同的字型也可能有一些共同的特徵。因此,在為給定模式選擇字型時,必須檢查系統上的所有字型以查看它們的相關性。某些字型具有一些優於其他字型的特徵。例如。某些字型可能具有對奇異腳本/符號的 Unicode 支持,但繪圖質量可能較差。同時,某些字型可能具有相對較少數量的腳本/符號的 Unicode 支持,但具有良好的繪圖質量。在這種情況下,fontconfig 會嘗試更喜歡更可能呈現給定字元集的字型,並且實際上可能會忽略繪圖質量。所以我們根本無法保證fontconfig的結果,因為它們更多地依賴於字型檔本身,並請求應用程序的具體要求。最後,作為使用者,我們總是知道什麼字型適合給定的情況。但是 fontconfig 不知道。顯然,它無法了解字型中的美學、質量和錯誤。它只是將每種字型視為一種字型。
- 一些應用程序,如瀏覽器和圖形設計套件,也可以根據需要使用自己的模式和字型。在這種情況下,他們可能會請求 fontconfig,或自行執行。
- 我們可以在不同的系統上重現 fontconfig 的優先級行為,但那些系統應該具有完全相同版本的字型檔、配置文件和渲染框架。否則,如果某些字型檔具有更新的指標或腳本/語言數據,則它可能比另一個更受歡迎。
- 最好在你的主目錄中設置你自己的 fonts.conf 文件,以幫助 fontconfig 匹配正確的字型,以防它無法匹配。
更多資訊:https ://www.freedesktop.org/software/fontconfig/fontconfig-user.html