为什么有些表情符号黑白而另一些则太大?

为什么有些表情符号黑白而另一些则太大?

我正在 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) 中,表情符号将按预期显示(或者以常规大小的颜色显示,或者以豆腐的形式显示):

相同的表情符号在文本编辑器中正确显示

为什么会发生这种情况,我该如何解决?

答案1

这里有几个问题:

  • 默认的系统字体是Deja Vu Sans,它包含黑白表情符号。
  • 该浏览器捆绑了自己的表情符号特定字体EmojiOneMozilla.ttf(最初捆绑在 Firefox 中,也包含在 PureBrowser 分支中),它包含彩色表情符号。 (旁注:由于许可变更,最新版本的 Firefox 捆绑了Twemoji。)
  • 您还安装了Noto Emoji,它包含不同风格的新颜色表情符号。 PureBrowser 派生的 Firefox 版本无法正确处理此字体的缩放。

当遇到表情符号字符时,浏览器会在这三种字体之间进行选择,以决定如何呈现它们。上面的顺序是优先顺序,这恰好也是覆盖范围增加的顺序,因此旧的/常见的表情符号在 Deja Vu 中呈现,较新的表情符号在 Emoji One 中呈现,而前沿的表情符号在严重缩放的 Noto 表情符号中呈现。

“正确”的解决方案是修复浏览器和/或 Noto,以便浏览器中 Noto 表情符号的缩放正确。此外,更新字体提示,以便彩色表情符号比系统默认字体更受青睐。解决这些问题并非易事。对于初学者来说,请参阅:

与此同时,一种解决方法是替换EmojiOneMozilla.tff为可正确缩放且符号覆盖率与 Noto 相同或更好的彩色表情符号字体:

  • 从以下位置下载最新的 Twemoji/eosrei 版本https://github.com/eosrei/twemoji-color-font/releases(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,在这种情况下您将必须重新添加它。

相关内容