Das Installieren zusätzlicher Fonts unter SUSE LINUX ist sehr einfach. Es genügt die Fonts in ein beliebiges Verzeichnis zu kopieren, das sich im X11 Font-Pfad (siehe Abschnitt 4.2.1.2. “X11 Core-Fonts”) befindet und, damit die Fonts auch über das neue Xft-Fontrendering-System benutzbar sind, auch ein Unterverzeichnis der in /etc/fonts/fonts.conf konfigurierten Verzeichnisse ist (siehe Abschnitt 4.2.1.1. “Xft”).
Sie können die Fontdateien manuell als root in solch ein geeignetes Verzeichnis kopieren, zum Beispiel nach /usr/X11R6/lib/X11/fonts/truetype, oder auch den KDE Fontinstaller im KDE Kontrollzentrum dazu benutzen. Das Ergebnis ist identisch.
Anstelle die Fonts tatsächlich zu kopieren, können Sie natürlich auch symbolische Links anlegen, wenn Sie zum Beispiel lizensierte Fonts auf einer gemounteten Windows Partition haben und diese nutzen möchten. Anschließend rufen Sie SuSEconfig --module fonts auf.
SuSEconfig --module fonts ruft das Skript /usr/sbin/fonts-config auf, das die Konfiguration der Fonts übernimmt. Für Details was dieses Skript tut, lesen Sie bitte die zugehörige Manual-Page (man fonts-config).
Es spielt keine Rolle, welche Typen von Fonts installiert werden sollen, die Prozedur ist die gleiche für Bitmap-Fonts, TrueType/OpenType-Fonts und Type1-(PostScript)-Fonts. Alle diese Fontarten können in jedes beliebige Verzeichnis installiert werden. Lediglich CID-keyed Fonts sind ein Spezialfall, siehe Abschnitt 4.2.1.3. “CID-keyed Fonts”.
XFree enthält zwei völlig verschiedene Font-Systeme, das alte X11 Core-Font-System und das völlig neu entworfene Xft/fontconfig System. Im Folgenden wird auf beide Systeme kurz eingegangen.
Beim Entwurf von Xft wurde von Anfang an darauf geachtet, dass es skalierbare Fonts, inclusive Antialiasing, gut unterstützt. Bei Benutzung von Xft werden die Fonts im Gegensatz zum X11 Core-Font-System von dem Programm gerendert, welches die Fonts benutzt und nicht vom X-Server. Dadurch bekommmt das jeweilige Programm Zugriff auf die Fontdateien selbst und volle Kontrolle über Details, wie die Glyphen genau gerendert werden. Zum einen wird dadurch die korrekte Darstellung von Text in manchen Sprachen erst möglich, zum anderen ist der direkte Zugriff auf die Fontdateien sehr hilfreich, um Fonts zum Drucken zu einzubetten (engl. to embed) und so zu erreichen, dass der Ausdruck tatsächlich so aussieht wie die Bildschirmausgabe.
Die beiden Desktopumgebungen KDE und Gnome, Mozilla und viele andere Applikationen benutzen unter SUSE LINUX bereits standardmäßig Xft. Xft wird also bereits von erheblich mehr Applikationen benutzt als das alte X11 Core-Font-System.
Xft benutzt die Fontconfig-Bibliothek um Fonts zu finden und um die Art und Weise wie sie gerendert werden zu beeinflussen. Das Verhalten von fontconfig wird durch eine systemweite Konfigurationsdatei /etc/fonts/fonts.conf und eine benutzerspezifische Konfigurationsdatei ~/.fonts.conf gesteuert. Jede dieser fontconfig Konfigurationsdateien muss mit
<?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig>
beginnen und mit
</fontconfig>
enden. Um Verzeichnisse, in denen nach Fonts gesucht wird hinzuzufügen, können Sie Zeilen wie die folgende
<dir>/usr/local/share/fonts/</dir>
hinzufügen. Das ist aber selten nötig. Das benutzerspezifische Verzeichnis ~/.fonts ist bereits per Default in /etc/fonts/fonts.conf eingetragen. Wenn ein Benutzer also für sich persönlich zusätzliche Fonts installieren möchte, genügt es, diese nach ~/.fonts zu kopieren.
Sie können auch Regeln einfügen, um das Aussehen der Fonts zu beinflussen, zum Beispiel
<match target="font"> <edit name="antialias" mode="assign"> <bool>false</bool> </edit> </match>
um das Antialiasing für alle Fonts auszuschalten, oder
<match target="font"> <test name="family"> <string>Luxi Mono</string> <string>Luxi Sans</string> </test> <edit name="antialias" mode="assign"> <bool>false</bool> </edit> </match>
wenn Sie es nur für bestimmte Fonts ausschalten möchten.
Die meisten Applikationen benutzen standardmäßig die Fontnamen sans-serif (oder das äquivalente sans), serif oder monospace. Dies sind keine wirklich existierenden Fonts sondern nur Aliases, die abhängig von der eingestellten Sprache auf einen geeigneten Font aufgelöst werden.
Jeder Benutzer kann sich leicht Regeln zu seiner ~/.fonts.conf hinzufügen um zu erreichen, dass diese Aliases auf seine Lieblingsfonts aufgelöst werden:
<alias> <family>sans-serif</family> <prefer> <family>FreeSans</family> </prefer> </alias> <alias> <family>serif</family> <prefer> <family>FreeSerif</family> </prefer> </alias> <alias> <family>monospace</family> <prefer> <family>FreeMono</family> </prefer> </alias>
Weil fast alle Applikationen diese Aliase standardmäßig verwenden, wirkt das fast für das ganze System. Sie bekommen so mit sehr geringem Aufwand Ihre Lieblingsfonts fast überall, ohne in jedem Program einzeln die Fonteinstellungen ändern zu müssen.
Um festzustellen, welche Fonts überhaupt installiert und verfügbar sind, gibt es das Kommando fc-list.
fc-list "" gibt zum Beispiel eine Liste aller Fonts aus. Möchten Sie wissen, welche skalierbaren Fonts (:outline=true) verfügbar sind, die alle für Hebräisch benötigen Glyphen enthalten (:lang=he), und sich für alle diese Fonts den Fontnamen (family), den Stil (style), den Fettheitsgrad (weight) und den Dateinamen, der den Font enthält ausgeben lassen, können Sie zum Beispiel folgendes Kommando benutzen:
fc-list ":lang=he:outline=true" family style weight file
Die Ausgabe dieses Kommandos könnte zum Beispiel so aussehen:
/usr/X11R6/lib/X11/fonts/truetype/FreeSansBold.ttf: FreeSans:style=Bold:weight=200
/usr/X11R6/lib/X11/fonts/truetype/FreeMonoBoldOblique.ttf: FreeMono:style=BoldOblique:weight=200
/usr/X11R6/lib/X11/fonts/truetype/FreeSerif.ttf: FreeSerif:style=Medium:weight=80
/usr/X11R6/lib/X11/fonts/truetype/FreeSerifBoldItalic.ttf: FreeSerif:style=BoldItalic:weight=200
/usr/X11R6/lib/X11/fonts/truetype/FreeSansOblique.ttf: FreeSans:style=Oblique:weight=80
/usr/X11R6/lib/X11/fonts/truetype/FreeSerifItalic.ttf: FreeSerif:style=Italic:weight=80
/usr/X11R6/lib/X11/fonts/truetype/FreeMonoOblique.ttf: FreeMono:style=Oblique:weight=80
/usr/X11R6/lib/X11/fonts/truetype/FreeMono.ttf: FreeMono:style=Medium:weight=80
/usr/X11R6/lib/X11/fonts/truetype/FreeSans.ttf: FreeSans:style=Medium:weight=80
/usr/X11R6/lib/X11/fonts/truetype/FreeSerifBold.ttf: FreeSerif:style=Bold:weight=200
/usr/X11R6/lib/X11/fonts/truetype/FreeSansBoldOblique.ttf: FreeSans:style=BoldOblique:weight=200
/usr/X11R6/lib/X11/fonts/truetype/FreeMonoBold.ttf: FreeMono:style=Bold:weight=200
Die wichtigsten Parameter, die mit fc-list abgefragt und ausgegeben werden können, sind:
Tabelle 4.2. Mögliche Parameter von fc-list
| Parameter | Bedeutung und mögliche Werte |
|---|---|
| family | Der Name der Fontfamilie, zum Beispiel FreeSans |
| foundry | Der Fonthersteller, zum Beispiel urw |
| style | Der Fontstil, zum Beispiel Medium, Regular, Bold, Italic, Heavy, ... |
| lang | Die Sprache(n), die der Font unterstützt. Zum Beispiel de für Deutsch, ja für Japanisch, zh-TW für traditionelles Chinesisch, zh-CN für vereinfachtes Chinesisch ... |
| weight | Der Fettheitsgrad, zum Beispiel 80 für nicht fett, 200 für fett. |
| slant | Der Kursivitätsgrad, meist 0 für nicht kursiv, 100 für kursiv. |
| file | Der Dateiname unter dem der Font gespeichert ist. |
| outline | true wenn es sich um einen Outline-Font handelt, sonst false. |
| scalable | true wenn es sich um einen skalierbaren Font handelt, sonst false. |
| bitmap | true wenn es sich um einen Bitmap-Font handelt, sonst false. |
| pixelsize | Die Größe des Fonts in Pixel. Im Zusammenhang mit fc-list nur sinnvoll für Bitmap-Fonts. |
Heutzutage unterstützt auch das X11 Core-Font-System nicht nur Bitmap-Fonts, sondern auch skalierbare Fonts wie Type1-Fonts, TrueType/OpenType-Fonts und auch CID-keyed Fonts. Auch Unicode-Fonts werden bereits seit längerer Zeit unterstützt.
Ursprünglich wurde wurde das X11 Core-Font-System 1987 für X11R1 entwickelt um monochrome Bitmap-Fonts zu verarbeiten und man merkt bis heute, dass alle oben erwähnten Erweiterungen nachträglich hinzugefügt wurden.
Zum Beispiel werden skalierbare Fonts nur ohne Antialiasing und Subpixel-Rendering unterstützt und das Laden großer, skalierbarer Fonts mit Glyphen für viele Sprachen kann sehr langsam sein. Auch die Benutzung von Unicode Fonts kann langsam sein und verschwendet erheblich mehr Speicher als notwendig.
Es gibt viele andere grundlegende Schwächen des X11 Core-Font-Systems und man kann wahrscheinlich sagen, dass es hoffnungslos veraltet und nicht mehr sinnvoll erweiterbar ist. Es muss aus Gründen der Rückwärtskompatibilität verfügbar bleiben, aber soweit wie möglich sollte man das modernere Xft/fontconfig System verwenden.
Beachten Sie bitte, dass nur Verzeichnisse vom X-Server beachtet werden, die
im Abschnitt Files der Datei /etc/X11/XF86Config als FontPath eingetragen sind.
eine gültige font.dir Datei besitzen (wird von SuSEconfig generiert).
nicht zur Laufzeit des X-Servers mit Hilfe des Kommandos xset -fp abgemeldet wurden.
bzw. zur Laufzeit des X-Servers mit Hilfe des Kommandes xset +fp eingebunden wurden.
Wenn der X-Server bereits läuft, können neu installierte Fonts in bereits eingebundenen Verzeichnisse mit dem Kommando xset fp rehash zur Verfügung gestellt werden. Dieses Kommando wird von SuSEconfig --module fonts bereits aufgerufen.
Da das Kommando xset Zugriff auf den laufenden X-Server benötigt, kann das allerdings nur funktionieren, wenn SuSEconfig --module fonts aus einer Shell gestartet wurde, die Zugriff auf den laufenden X-Server hat. Am einfachsten ereichen Sie dies, indem Sie sich durch Eingeben des Kommandos sux und anschließende Eingabe des Root-Passwortes in einem Terminal zu root machen, sux übergibt die Zugriffsrechte des Benutzers, der den X-Server gestartet hat, an die Rootshell.
Zum Testen, ob die Fonts richtig installiert wurden und tatsächlich über das X11 Core-Font-System verfügbar sind, können Sie das Kommando xlsfonts verwenden, das alle verfügbaren Fonts auflistet.
SUSE LINUX verwendet standardmäßig UTF-8 Locales, daher sollten Sie in der Regel Unicode-Fonts verwenden, die Sie daran erkennen, dass der von xlsfonts gelistete Fontname mit iso10646-1 endet. Alle verfügbaren Unicode-Fonts können Sie sich also mit xlsfonts | grep iso10646-1 anzeigen lassen.
Fast alle unter SUSE LINUX verfügbaren Unicode-Fonts enthalten mindestens alle nötigen Glyphen für die europäischen Sprachen, für die früher die Encodings iso-8859-* verwendet wurden.
Im Gegensatz zu den anderen Fonttypen ist es bei CID-keyed Fonts nicht egal, in welches Verzeichnis sie installiert werden. Sie sollten auf jeden Fall nach /usr/share/ghostscript/Resource/CIDFont installiert werden. Für Xft/fontconfig spielt das zwar keine Rolle, aber Ghostscript und das X11 Core-Font-System erfordern dies.
![]() | Tipp |
|---|---|
Weitere Informationen zum Thema Fonts unter X11 erhalten Sie unter http://www.xfree86.org/current/fonts.html. | |