Wie werden unbekannte Schriften ersetzt?

14

Angenommen, ich habe ein fremdes Textdokument, das ich mit einem Textbearbeitungsprogramm öffne, das Schriftarten erkennt (z. B. LibreOffice Writer). In diesem Dokument werden möglicherweise einige Schriftarten verwendet, die in meiner Ubuntu-Installation nicht verfügbar sind (z. B. Garamond).

Die Frage ist: Wie entscheidet Ubuntu, welche der installierten Schriften als Ersatz für die unbekannte Schrift verwendet wird? Liest es eine der Eigenschaften der Schrift und sucht es nach einer ähnlichen? Wird immer eine Standard-Ersatzschrift verwendet? Sucht es nach ähnlichen Schriftnamen?

Zusätzlich möchte ich wissen, ob ich dieses Verhalten irgendwie ändern oder manuelle Schriftart-Aliase festlegen kann, um z. B. die kostenlose Schriftart EB-Garamont anstelle der unfreien Garamont automatisch zu verwenden ?

Byte Commander
quelle
Diese Frage entstand, als ich die Frage hier beantwortete: superuser.com/a/945192/418736
Byte Commander

Antworten:

9

Ich denke, es wird nicht von Ubuntu, sondern vom Programm (LibreOffice, OpenOffice usw.) entschieden. Ich konnte an sich nichts mit LibreOffice zu tun haben, aber OpenOffice hat ein schönes Wiki mit einigen Details zur Funktionsweise dieses "Font Fallback". Es kann auch allgemein auf LibreOffice angewendet werden.

Ich reproduziere einige Abschnitte aus dem Wiki unten zur Verdeutlichung. Es ist schwer besser zu erklären als das, was im Wiki steht , also lese es besser von dort aus:

Was ist Font Fallback in OpenOffice.org 2?

Font-Fallback wird aktiviert, wenn eine nicht auf dem System installierte Schriftart angefordert wird. (Nicht installiert bedeutet: für OOo nicht verfügbar). OOo versucht dann, eine andere Schriftart zu verwenden, als die, die OOo kennt und die der angeforderten Schriftart so nahe wie möglich kommt.

Wie funktioniert Font Fallback?

Damit Font-Fallback zufriedenstellende Ergebnisse liefert, muss OOo die Ähnlichkeiten von Fonts kennen. OOo muss wissen, dass es zum Beispiel Helvetica anstelle von Arial , aber nicht Comic Sans ersetzen kann . Diese Aufgabe ist nicht so einfach, wie es sich anhört, da viele Schriftarten vorhanden sind und OOo nicht über alle Bescheid wissen kann.

OOo verwendet mehrere Möglichkeiten, um einen geeigneten Ersatz zu finden:

  • Vom System bereitgestellte Schrift-Alias-Informationen (z. B. aus einer fonts.dir Datei )
  • Hardcodierte Liste der Fallback-Schriften von VCL.xcu(zuerst ausprobiert)
  • Alternative Schreibweisen für Schriftnamen
  • Font-Attribute (zB hat es CJK-Zeichen, ist es eine Symbol-Schriftart) oder Stil ( Serife / Nicht-Serife , Proportional / Nicht-Proportional)

wenn auch das alles scheitert:

  • Verwenden Sie eine Standardschriftart

Nicht direkt verwandt, aber dieses TLDP-Dokument ist eine gute Lektüre.

Ron
quelle