GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Warum sind einige Emoji B&W und andere zu groß?

Ich verwende PureBrowser (~=Firefox ESR 52.8.0) auf PureOS (~=Debian-Haupttest) und habe fonts-noto-color-emoji-0~20180424-2 installiert.

Wenn ich https://en.wikipedia.org/wiki/List_of_Emojis besuche, bemerke ich Folgendes:

  • einige Emoji werden in Farbe gerendert (wie erwartet)
  • Einige Emojis werden als Strichzeichnungen und nicht in Vollfarbe dargestellt
  • Einige Emojis werden farbig dargestellt, sind aber viel zu groß
  • Fehlende Emojis erscheinen als „Tofu“ (wie erwartet)

Dies bleibt nach dem Ausführen von fc-cache -f -v bestehen .

Wenn ich diesen Text kopiere und in den Texteditor (gedit) einfüge, erscheint das Emoji wie erwartet (entweder in Farbe in normaler Größe oder als Tofu):

Warum passiert das und wie kann ich es beheben?

Akzeptierte Antwort:

Hier spielen mehrere Probleme eine Rolle:

  • Die Standard-Systemschriftart ist Deja Vu Sans, sie enthält das schwarz-weiße Emoji.
  • Der Browser bündelt seine eigene Emoji-spezifische Schriftart namens EmojiOneMozilla.ttf (ursprünglich in Firefox gebündelt, auch in der PureBrowser-Fork enthalten), enthält es farbige Emojis. (Nebenbemerkung:Aufgrund von Lizenzänderungen bündeln neuere Versionen von Firefox Twemoji stattdessen.)
  • Sie haben auch Noto Emoji installiert, es enthält neuere Farb-Emoji in einem anderen Stil. Die Skalierung dieser Schriftart wird von der Firefox-Version, von der PureBrowser abgezweigt wurde, falsch gehandhabt.

Wenn ein Emoji-Zeichen gefunden wird, wählt der Browser zwischen diesen drei Schriftarten aus, um zu entscheiden, wie sie dargestellt werden. Die obige Reihenfolge ist die Reihenfolge der Priorität, die zufällig auch eine Reihenfolge der zunehmenden Abdeckung ist, sodass ältere/allgemeine Emojis in Deja Vu, neuere Emojis in Emoji One und topaktuelle Emojis in schlecht skalierten Noto-Emojis gerendert werden.

Die „richtige“ Lösung besteht darin, den Browser und/oder Noto so zu reparieren, dass die Skalierung von Noto-Emoji im Browser korrekt ist. Aktualisieren Sie außerdem die Schriftarthinweise, sodass farbige Emoji-Symbole gegenüber der Standardschriftart des Systems bevorzugt werden. Die Lösung dieser Probleme ist nicht trivial. Für den Anfang siehe:

  • https://github.com/googlei18n/noto-emoji/issues/36
  • https://superuser.com/questions/1111369
  • https://github.com/eosrei/emojione-color-font/issues/17

In der Zwischenzeit besteht eine Problemumgehung darin, EmojiOneMozilla.tff zu ersetzen mit einer farbigen Emoji-Schriftart, die korrekt skaliert wird und eine gleiche oder bessere Symbolabdeckung als Noto hat:

  • Laden Sie die neueste Version von Twemoji/eosrei von https://github.com/eosrei/twemoji-color-font/releases herunter (im ZIP-Format)
  • Extrahieren Sie TwitterColorEmoji-SVGinOT.ttf
  • Löschen Sie /usr/lib/purebrowser/fonts/EmojiOneMozilla.ttf
  • Kopieren Sie TwitterColorEmoji-SVGinOT.ttf in diesen Ordner

Jetzt erscheinen die Noto-Emoji-Symbole nicht, da das Twemoji-TTF die gleiche Emoji-Abdeckung hat. Wenn sich die Noto-Abdeckung verbessert und Ihr Noto-Paket aktualisiert wird, tritt das Problem bei allen neuen Emoji-Symbolen erneut auf. An diesem Punkt müssen Sie auf eine neue Version von Twemoji/eosrei warten und die Problemumgehung erneut anwenden.

Verwandte:Wie kann man die GNOME-Shell-Aktivitätsleiste immer klein machen?

Wenn Ihr PureBrowser-Paket aktualisiert wird, fügt es möglicherweise EmojiOneMozilla.ttf erneut hinzu, in diesem Fall müssen Sie es erneut löschen. Es kann TwitterColorEmoji-SVGinOT.ttf entfernen, in diesem Fall müssen Sie es erneut hinzufügen.


Linux
  1. Linux – Warum verwenden wir Su – und nicht nur Su?

  2. Warum wird empfohlen, für einige Anwendungen eine Gruppe und einen Benutzer zu erstellen?

  3. Warum Deis und was ist das?

  4. Warum unterscheiden sich Linux-Systemrufnummern in x86 und x86_64?

  5. Warum werden sowohl `make clean` als auch `make mrproper` verwendet?

7 Gründe, warum ich Manjaro Linux verwende und Sie es auch sollten

Linux – Warum sind wahr und falsch so groß?

Wann wird ein Signal behandelt und warum frieren einige Informationen ein?

Warum sind wahr und falsch so groß?

Warum gibt es `/lib` und `/lib64` aber nur `/bin`?

Warum werden einige CPU-Modelle der Intel-Familie 6 (Core 2, Pentium M) nicht von intel_idle unterstützt?