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 11.3.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 11.3.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 Manualpage
(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 11.3.3, „CID-keyed Fonts“.
X.Org 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, inklusive 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 bekommt 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 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 beeinflussen, 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 11.3. Mögliche Parameter von fc-list
Parameter | Bedeutung und mögliche Werte |
|---|---|
family | Der Name der Fontfamilie, zum Beispiel
|
foundry | Der Fonthersteller, zum Beispiel |
style | Der Fontstil, zum Beispiel |
lang | Die Sprache(n), die der Font unterstützt. Zum Beispiel
|
weight | Der Fettheitsgrad, zum Beispiel
|
slant | Der Kursivitätsgrad, meist
|
file | Der Dateiname unter dem der Font gespeichert ist. |
outline |
|
scalable |
|
bitmap |
|
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 benötigt mehr Speicher.
Es gibt einige grundlegende Schwächen des X11 Core-Font-Systems. Man kann sagen, dass es 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.
Der X-Server muss wissen, welche Fonts an welcher Stelle im System verfügbar
sind. Diese Zuordnung wird mit Hilfe der Variable der Variable
FontPath vorgenommen. Diese Variable enthält die
Pfadangabe zu allen gültigen Font-Verzeichnissen. In jedem dieser
Verzeichnisse liegt eine Datei fonts.dir, die alle im
Verzeichnis verfügbaren Fonts enthält. Der X-Server generiert
FontPath beim Start. Er sucht eine gültige
fonts.dir Datei in jedem der
FontPath-Einträge in der Konfigurationsdatei
/etc/X11/xorg.conf. Die
FontPath-Einträge sind in der Files
Section zu finden. Um den aktuellen Wert von
FontPath auszugeben, verwenden Sie den Befehl
xset q. Die Pfadangabe kann mit
xset zur Laufzeit des X-Servers geändert werden.
xset +fp <Pfad> fügt einen
Pfad hinzu, xset -fp <Pfad>
löscht einen nicht benötigten Pfad.
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 erreichen Sie dies, indem Sie sich durch Eingeben des Kommandos
su und anschließende Eingabe des Root-Passwortes in
einem Terminal zu root machen,
su ü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. | |