為什麼有些表情符號 B&W 和其他的太大了?
我在 PureOS(~= Debian 主要測試)上執行 PureBrowser(~= Firefox ESR 52.8.0)並已
fonts-noto-color-emoji-0~20180424-2
安裝。當我訪問https://en.wikipedia.org/wiki/List_of_Emojis時,我觀察到:
- 一些表情符號呈現顏色(如預期的那樣)
- 一些表情符號呈現為線條藝術,而不是全彩
- 一些表情符號呈現顏色,但太大了
- 缺少的表情符號顯示為“豆腐”(如預期的那樣)
這在執行後仍然存在
fc-cache -f -v
。如果我將該文本複制並粘貼到文本編輯器 (gedit) 中,表情符號會按預期顯示(以正常大小的顏色顯示,或顯示為豆腐):
為什麼會發生這種情況,我該如何解決?
這裡有幾個問題:
- 預設系統字型是 Deja Vu Sans,它包含黑白表情符號。
- 瀏覽器捆綁了自己的表情符號特定字型
EmojiOneMozilla.ttf
(最初捆綁在 Firefox 中,也包含在 PureBrowser fork 中),它包含彩色表情符號。(旁注:由於許可更改,請使用最新版本的 Firefox 捆綁包Twemoji
。)- 您還安裝了 Noto Emoji,它包含不同風格的新顏色表情符號。派生 PureBrowser 的 Firefox 版本錯誤地處理了此字型的縮放。
當遇到表情符號字元時,瀏覽器會在這三種字型之間進行選擇以決定如何呈現它們。上面的順序是優先順序,恰好也是覆蓋率增加的順序,所以舊的/常見的表情符號在 Deja Vu 中呈現,在 Emoji One 中呈現更新的表情符號,在嚴重縮放的 Noto Emoji 中呈現前沿的表情符號。
“正確”的解決方案是修復瀏覽器和/或 Noto,以便 Noto 表情符號在瀏覽器中的縮放是正確的。此外,更新字型提示,使彩色表情符號優先於系統預設字型。解決這些問題並非易事。對於初學者,請參閱:
- https://github.com/googlei18n/noto-emoji/issues/36
- https://superuser.com/questions/1111369
- https://github.com/eosrei/emojione-color-font/issues/17
同時,一種解決方法是替換
EmojiOneMozilla.tff
為正確縮放且符號覆蓋率與 Noto 相同或更好的彩色表情符號字型:
- 從https://github.com/eosrei/twemoji-color-font/releases下載最新的 Twemoji/eosrei 版本(zip 格式)
- 提煉
TwitterColorEmoji-SVGinOT.ttf
- 刪除
/usr/lib/purebrowser/fonts/EmojiOneMozilla.ttf
- 複製
TwitterColorEmoji-SVGinOT.ttf
到那個文件夾現在 Noto 表情符號不會出現,因為 Twemoji TTF 具有相同的表情符號覆蓋率。如果 Noto 覆蓋率提高並且您的 Noto 包得到更新,任何新的表情符號都會再次出現問題。此時,您將不得不等待新的 Twemoji/eosrei 版本並重新應用解決方法。
如果您的 PureBrowser 軟體包得到更新,它可能會重新添加 EmojiOneMozilla.ttf,在這種情況下您將不得不再次刪除它。它可能會刪除 TwitterColorEmoji-SVGinOT.ttf,在這種情況下,您必須重新添加它。