web-dev-qa-db-ja.com

一部の絵文字白黒とその他の絵文字が大きすぎるのはなぜですか?

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を実行した後も持続します。

Some emoji render as line art, others are too big

そのテキストをコピーしてテキストエディタ(gedit)に貼り付けると、絵文字は期待どおりに表示されます(通常のサイズのカラーまたは豆腐のいずれか)。

The same emoji appear correctly in Text Editor

なぜこれが起こっているのですか、どうすれば修正できますか?

3
david.libremone

ここではいくつかの問題が発生しています。

  • デフォルトのシステムフォントはDejaVu Sansで、白黒の絵文字が含まれています。
  • ブラウザには、EmojiOneMozilla.ttf(元々はFirefoxにバンドルされていましたが、PureBrowserフォークにも含まれています)と呼ばれる独自の絵文字固有のフォントがバンドルされており、カラー絵文字が含まれています。 (補足:ライセンスの変更により、Firefoxの最近のバージョンは代わりにTwemojiをバンドルします。)
  • また、能登絵文字をインストールしました。これには、異なるスタイルの新しい色の絵文字が含まれています。このフォントのスケーリングは、PureBrowserがフォークされているFirefoxのバージョンによって正しく処理されません。

絵文字が検出されると、ブラウザはこれら3つのフォントから選択して、レンダリング方法を決定します。上記の順序は優先順位であり、カバレッジが増加する順序でもあるため、古い/一般的な絵文字はDeja Vuでレンダリングされ、最新の絵文字はEmoji Oneでレンダリングされ、最先端の絵文字は縮尺の悪い能登絵文字でレンダリングされます。

「正しい」解決策は、ブラウザやNotoを修正して、ブラウザのNoto絵文字のスケーリングが正しくなるようにすることです。さらに、フォントヒントを更新して、システムのデフォルトフォントよりもカラー絵文字記号が優先されるようにします。これらの問題を解決することは簡単ではありません。手始めに、以下を参照してください。

それまでの間、回避策の1つは、EmojiOneMozilla.tffを、正しく拡大縮小され、能登と同等以上のシンボルカバレッジを持つカラー絵文字フォントに置き換えることです。

  • 最新のTwemoji/eosreiリリースを https://github.com/eosrei/twemoji-color-font/releases (Zip形式)からダウンロードします。
  • 抽出TwitterColorEmoji-SVGinOT.ttf
  • 削除/usr/lib/purebrowser/fonts/EmojiOneMozilla.ttf
  • TwitterColorEmoji-SVGinOT.ttfをそのフォルダーにコピーします

Twemoji TTFの絵文字カバレッジが等しいため、能登絵文字記号は表示されなくなりました。 Notoのカバレッジが向上し、Notoパッケージが更新されると、新しい絵文字シンボルで問題が再発します。その時点で、新しいTwemoji/eosreiのリリースを待って、回避策を再適用する必要があります。

PureBrowserパッケージが更新されると、EmojiOneMozilla.ttfが再度追加される場合があります。その場合は、再度削除する必要があります。 TwitterColorEmoji-SVGinOT.ttfが削除される場合があります。その場合は、再度追加する必要があります。

4
david.libremone