Vor etwas längerer Zeit fragte ein Webdesigner im Forum von ubuntuusers.de nach Screenshots seiner Website, welche mit Linux-Browsern aufgerufen wurde. In einem anderen Thread wurde vom gleichen Webdesigner nachgefragt welche Schriftarten standardmäßig unter den diversen Linux-Distributionen installiert sind bzw. mit welchen man in Normalfall immer rechnen kann. Daraus entwickelte sich eine Diskussion über gutes Webdesign bzw. die Abhängigkeit eines Webdesigners von den vorhandenen Schriftarten.
Ich habe schon im Forum eine kurze Erklärung verfasst, warum manche Webseiten unter Linux sehr oft recht bescheiden ausschauen (Komische Schrift, zerrissenes Layout usw.) und wie man dieses Problem recht einfach beseitigen kann (Aus Nutzer -und aus Webdesignersicht)
Wie wählt mein Browser die Schriftarten aus?
Zuallererst möchte ich die Grundlagen, wie ein Browser unter Linux seine Schriftarten auswählt, erläutern. Jeder moderne Browser bietet in seinen Konfigurationsdialogen eine Möglichkeit an die Schriften, welche zum Darstellen der Webseiten benutzt werden sollen, auszuwählen. In den meisten Fällen beschränkt sich die Auswahl auf drei Möglichkeiten :
- Serif
- Sans Serif
- Monospace
Ersteres sind Serifenschriften (z.B. Times New Roman oder DejaVu Serif), zweiteres Schriften ohne Serifen (z.B. Arial oder DejaVu Sans) und letzteres Schriften mit fester Breite (z.B. Courier New oder DejaVu Sans Mono). Zusätzlich lässt sich noch die Größe der Schriften und die Minimalgröße der Schriften festlegen (Beispiel Firefox, Opera bietet wesentlich tiefergehende Möglichkeiten zur Schrifteinstellung)
Warum zeigt mir der Browser dann trotz allem einige Seiten mit einer anderen Schrift an?
Hier kommt nun ein Element von HTML ins Spiel :
Wird im HTML-Code explizit eine bestimmte Schriftart vorgegeben (z.B. Verdana auf ubuntuusers.de oder Spiegel Online), übergeht der Browser die vorgegebenen Schriftarten und benutzt die im HTML-Code angegebenen. In der Regel sieht das dann so im Quellcode einer Seite aus (Auszug aus einer CSS-Datei von Spiegel Online) :
font-family: verdana, arial, helvetica, geneva, sans-serif;
Zuerst soll der Browser die Seite mit der Schriftart “Verdana” anzeigen. Falls diese nicht vorhanden ist, soll “Arial” benutzt werden, falls diese wiederum nicht vorhanden ist, wird “Helvetica” versucht, dann “Geneva” und falls alle Stricke reißen soll die im Browser unter “sans-serif” vorgegebene Schriftart benutzt werden.
Warum sieht dann stellenweise die Schrift in meinen Browser immer noch so bescheiden aus?
Jetzt könnte man als Benutzer meinen das alles in Butter ist. In der Regel hat man ja auch unter Linux die Windows-Schriftarten “Verdana” und “Arial” installiert (z.B. durch das Paket “msttcorefonts” bzw. “ttf-mscorefonts-installer”). Leider ist das nicht immer der Fall. So ist z.B. in der Grundinstallation der meisten Distributionen aus Lizenz-technischen Gründen dieses Paket nicht enthalten. Normalerweise wäre auch das kein Problem, da der Browser im Zweifelsfall einfach die unter “sans-serif” angegebene Schriftart benutzt, da in der Auswahl der Schriften im Browser kein Helvetica auftaucht, diese also nicht vorhanden ist.
Jedoch besitzen moderne Linux-Distributionen ein Schrift-Konfigurationssystem namens “Fontconfig”, welches dafür sorgt das das System auch bei nicht vorhandenen Schriftarten eine (mehr oder weniger) fehlerfreie Ausgabe auf dem Bildschirm liefert. Dieses lässt sich sehr flexibel auf die eigenen Bedürfnisse anpassen, hat in der Grundkonfiguration aber eine, gelinde gesagt, hirnrissige Einstellung, welche für die schlechte Darstellung der Schriften sorgt :
Findet der Browser, um auf das obige Beispiel zurückzukommen, weder die Schriftart “Verdana” noch “Arial”, benutzt dieser die in Fontconfig vorgebene Alternative für die Schriftart “Helvetica”. Und das ist im Normalfall die Postscript-Schriftart “Nimbus Sans”. Und da die Schriftart “Helvetica” somit vorhanden ist, gibt es auch kein Ausweichen auf “sans-serif”. Und gerade diese Schriftart ist nicht gerade für ihr gutes Aussehen auf Bildschirmen bekannt und sorgt immer wieder für Beschwerden im Stil von “Warum sieht die Schrift unter Firefox stellenweise so bescheiden aus!”.
Besonders blöd wird die Situation, wenn der Webdesigner explizit die Schriftart “Helvetica” ganz an den Anfang der Liste im Tag “font-family” setzt (z.B. auf der Webseite von Canonical). Dann hilft auch nämlich auch kein Installieren von “Arial” oder “Verdana” mehr, der Browser benutzt immer die Schriftart “Nimbus Sans” als Ersatz für das nicht vorhandene “Helvetica”. Die meisten Benutzer greifen dann einfach zur Radikalmethode und verbieten dem Browser per Konfigurationsoption das Benutzen aller anderen Schriftarten. Doch es geht auch eleganter.
Fontconfig die “Nimbus”-Schriftart abgewöhnen
Um Fontconfig, Firefox und allen anderen Anwendungen das Ersetzen der Schriftart “Helvetica” gegen “Nimbus Sans” abzugewöhnen ohne die Schriften löschen zu müssen oder den Browser umzukonfigurieren, gibt es eine ganz einfache Methode :
Man löscht einfach alle Vorkommen von “Nimbus” in den Dateien unter “/etc/fonts/conf.avail”. Unter Ubuntu kommt dieser Name nur in drei Dateien vor (Bei anderen Distributionen dürften die Dateinamen und Vorkommen identisch sein):
- 30-metric-aliases.conf
- 45-latin.conf
- 60-latin.conf
Um die Sache etwas zu vereinfachen, biete ich die geänderten Dateien zum Download an :
Fontconfig-Dateien ohne Nimbus-Schriften
Die im TAR-Archiv enthaltenen Dateien müssen einfach nur nach “/etc/fonts/conf.d” entpackt werden. Vorher sollte man aber auf alle Fälle die Originaldateien sichern um bei Nichtgefallen bzw. Problemen die Änderungen schnell wieder rückgängig machen zu können.
Startet man jetzt den Browser neu bzw. loggt sich neu ein, wird die Schriftart “Nimbus Sans” nicht mehr als Ersatz für den Schrifttyp “sans-serif” verwendet, sondern eine der Schriftarten aus der Liste “DejaVu Sans”, “Liberation Sans” oder”Arial” (Bzw. eine andere Ersatzschriftart aus den, in den Fontconfig-Dateien gelisteten Schriftarten).
Somit benutzen Firefox und andere Browser endlich vernünftige Bildschirmschriften und man muss sich als Benutzer nicht mehr mit einem schlechten Schriftbild rumärgern.