De standaard lettertypen van X11 zijn allerminst ideaal voor het typische bureaubladprogramma. Grote presentatielettertypen zien er hoekig en onprofessioneel uit en kleine lettertypen zijn bijna onleesbaar. Er zijn diverse gratis, kwalitatief goede Type1 (PostScript®) lettertypen die meteen gebruikt kunnen worden met X11. De URW lettertypecollectie (x11-fonts/urwfonts) heeft bijvoorbeeld hoge kwaliteit versies van standaard Type1 lettertypen (Times Roman®, Helvetica®, Palatino® en anderen). De Freefonts collectie (x11-fonts/freefonts) heeft nog meer lettertypen, maar de meesten ervan zijn bedoeld om in grafische software als Gimp gebruikt te worden en zijn niet compleet genoeg om als schermlettertypen te gebruiken. Daarbij kan X11 zonder veel moeite ingesteld worden om TrueType® lettertypen te gebruiken. Meer informatie staat in X(7) of de paragraaf over TrueType® Lettertypen.
Om de bovenstaande Type1 lettertypecollectie van de Portscollectie te installeren:
#
cd /usr/ports/x11-fonts/urwfonts
#
make install clean
Dat geldt ook voor de freefont en andere collecties. Om de
X server te vertellen dat deze lettertypen bestaan, dient de
volgende regel toegevoegd te worden aan het instellingenbestand
van de X server (/etc/X11/xorg.conf
):
FontPath "/usr/local/lib/X11/fonts/URW/"
Ook kan op de commando regel in de X sessie het volgende gestart worden:
%
xset fp+ /usr/local/lib/X11/fonts/URW
%
xset fp rehash
Dit werkt wel, maar zodra de X sessie wordt afgesloten is
het weer verdwenen tenzij het is toegevoegd aan het
opstartbestand (~/.xinitrc
voor een
normale startx
sessie of
~/.xsession
als er wordt aangemeld met een
grafische aanmeldmanager als XDM).
Een derde manier is het gebruik van het nieuwe bestand
/usr/local/etc/fonts/local.conf
: zie
hiervoor de paragraaf over Anti-aliasing.
Xorg heeft ingebouwde
ondersteuning voor het renderen van TrueType® lettertypen. Er
zijn twee verschillende modules die deze functionaliteit
activeren. In dit voorbeeld wordt de freetype module gebruikt
omdat deze beter werkt met de andere lettertypen die back-ends
renderen. Om de freetype module te activeren dient de volgende
regel toegevoegd te worden aan het onderdeel
"Module"
van
/etc/X11/xorg.conf
.
Load "freetype"
Hierna dient een map voor de TrueType® lettertypen gemaakt
te worden (bijvoorbeeld
/usr/local/lib/X11/fonts/TrueType
) en alle
TrueType® lettertypen moeten naar deze map gekopieerd worden.
TrueType® lettertypen kunnen niet direct van een Macintosh®
gehaald worden. Ze moeten in een UNIX®/MS-DOS®/Windows®
formaat zijn voor X11. Zodra de bestanden naar deze map zijn
gekopieerd, kan ttmkfdir gestart
worden om een fonts.dir
bestand te maken
zodat de X lettertyperenderer weet waar deze nieuwe bestanden
zijn geļnstalleerd. ttmkfdir
zit in de
FreeBSD Portscollectie als x11-fonts/ttmkfdir.
#
cd /usr/local/lib/X11/fonts/TrueType
#
ttmkfdir -o fonts.dir
Nu moet de TrueType® map toe aan het lettertypepad toegevoegd worden. Dit gebeurt op dezelfde wijze als boven is beschreven voor Type1 lettertypen:
%
xset fp+ /usr/local/lib/X11/fonts/TrueType
%
xset fp rehash
of door een FontPath
regel toe te voegen
aan xorg.conf
.
Dat is alles. Nu herkennen Gimp, Apache OpenOffice en alle andere X applicaties de geļnstalleerde TrueType® lettertypen. Extreem kleine lettertypen (zoals hoge resolutie tekst op een webpagina) en extreme grote lettertypen (in StarOffice™) zien er nu veel beter uit.
Alle lettertypen die X11 in de mappen
/usr/local/lib/X11/fonts/
en
~/.fonts/
staan zijn automatisch beschikbaar
voor anti-aliasing in applicaties die Xft ondersteunen. De meeste
recente applicaties ondersteunen Xft, inclusief
KDE, GNOME, en
Firefox.
Om te kunnen regelen welke lettertypen gebruik maken van
anti-alias of om de eigenschappen van anti-aliasing in te
stellen kan
/usr/local/etc/fonts/local.conf
gemaakt
of gewijzigd worden. In dit bestand kunnen speciale
eigenschappen van het Xft lettertypesysteem aangepast worden.
Deze paragraaf beschrijft wat eenvoudige mogelijkheden.
Meer details staan in fonts-conf(5).
Dit bestand moet in het XML formaat opgemaakt worden.
Hoofdletters en kleine letters worden onderscheiden en alle
tags moeten netjes worden afgesloten. Het bestand begint met
de gewone XML header gevolgd door een DOCTYPE definitie en
daarna de <fontconfig>
tag:
<?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig>
Zoals al eerder is vermeld zijn alle lettertypen in
/usr/local/lib/X11/fonts/
en in
~/.fonts/
al geschikt gemaakt voor
Xft applicaties. Als naast deze twee mappen nog een andere
lettertypen moeten kunnen bevatten, dan dient een soortgelijke
regel als de onderstaande aan
/usr/local/etc/fonts/local.conf
toegevoegd
te worden:
<dir>/pad/naar/mijn/fonts</dir>
Na het toevoegen van nieuwe lettertypen en zeker nieuwe lettertypemappen dienen de lettertypecaches opnieuw opgebouwd worden met:
#
fc-cache -f
Anti-aliasing maakt randen een beetje wazig wat kleine teksten beter leesbaar maakt en voorkomt “trapvorming” van grote letters. Maar het kan oogkramp veroorzaken als het op normale tekst wordt toegepast. Om lettertypen kleiner dan 14 punten uit te sluiten van anti-aliasing moeten de volgende regels toegevoegd worden:
<match target="font"> <test name="size" compare="less"> <double>14</double> </test> <edit name="antialias" mode="assign"> <bool>false</bool> </edit> </match> <match target="font"> <test name="pixelsize" compare="less" qual="any"> <double>14</double> </test> <edit mode="assign" name="antialias"> <bool>false</bool> </edit> </match>
Spatiėring voor sommige enkel gespatieerde lettertypen kan ook ongepast zijn bij anti-aliasing. Dit lijkt vooral een probleem te zijn bij KDE. Een mogelijke oplossing hiervoor is het vergroten van de spatiėring van die lettertypen naar 100:
<match target="pattern" name="family"> <test qual="any" name="family"> <string>fixed</string> </test> <edit name="family" mode="assign"> <string>mono</string> </edit> </match> <match target="pattern" name="family"> <test qual="any" name="family"> <string>console</string> </test> <edit name="family" mode="assign"> <string>mono</string> </edit> </match>
Het bovenstaande hernoemt de standaardnamen van lettertypen
naar "mono"
). Voeg daarna het volgende
toe:
<match target="pattern" name="family"> <test qual="any" name="family"> <string>mono</string> </test> <edit name="spacing" mode="assign"> <int>100</int> </edit> </match>
Bepaalde lettertypen, zoals Helvetica, kunnen problemen
hebben met anti-aliasing. Dit uit zich meestal in een
lettertype dat verticaal door midden lijkt gesneden. Op zijn
ergst kan het applicaties laten crashen. Om dit te
voorkomen kan overwogen worden om ook de volgende regels toe
te voegen aan local.conf
:
<match target="pattern" name="family"> <test qual="any" name="family"> <string>Helvetica</string> </test> <edit name="family" mode="assign"> <string>sans-serif</string> </edit> </match>
Als de wijzigingen in local.conf
zijn
gemaakt dient niet vergeten te worden het bestand te eindigen
met de tag </fontconfig>
tag. Als dit
niet gedaan wordt, dan worden de wijzigingen niet
gezien.
Als laatste kunnen gebruikers hun eigen instellingen aan
een persoonlijk .fonts.conf
bestand
toevoegen. Om dit te doen moet iedere gebruiker het bestand
~/.fonts.conf
maken. Ook dit bestand moet
in het XML formaat zijn.
Nog een laatste punt: bij een LCD scherm kan sub-pixel
sampling prettig zijn. Eigenlijk zorgt dit er voor dat de
(horizontaal gesplitste) rode, groene en blauwe componenten
gewijzigd worden om de horizontale resolutie te verbeteren.
Het resultaat is geweldig. Voeg hiervoor de volgende regels
ergens aan local.conf
toe:
<match target="font"> <test qual="all" name="rgba"> <const>unknown</const> </test> <edit name="rgba" mode="assign"> <const>rgb</const> </edit> </match>
Afhankelijk van het soort beeldscherm kan
rgb
veranderd moeten worden in
bgr
, vrgb
of
vbgr
. Experimenteren levert de beste
instelling op.
All FreeBSD documents are available for download at http://ftp.FreeBSD.org/pub/FreeBSD/doc/
Questions that are not answered by the
documentation may be
sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.