我在 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) 中,表情符号会按预期显示(以常规大小的颜色显示,或显示为豆腐):
为什么会发生这种情况,我该如何解决?
这里有几个问题:
EmojiOneMozilla.ttf
(最初捆绑在 Firefox 中,也包含在 PureBrowser fork 中),它包含彩色表情符号。(旁注:由于许可更改,请使用最新版本的 Firefox 捆绑包Twemoji
。)当遇到表情符号字符时,浏览器会在这三种字体之间进行选择以决定如何呈现它们。上面的顺序是优先顺序,恰好也是覆盖率增加的顺序,所以旧的/常见的表情符号在 Deja Vu 中呈现,在 Emoji One 中呈现更新的表情符号,在严重缩放的 Noto Emoji 中呈现前沿的表情符号。
“正确”的解决方案是修复浏览器和/或 Noto,以便 Noto 表情符号在浏览器中的缩放是正确的。此外,更新字体提示,使彩色表情符号优先于系统默认字体。解决这些问题并非易事。对于初学者,请参阅:
同时,一种解决方法是替换
EmojiOneMozilla.tff
为正确缩放且符号覆盖率与 Noto 相同或更好的彩色表情符号字体: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,在这种情况下,您必须重新添加它。