XFree86 Font Deuglification Mini HOWTO

Doug Holland, meldroc@frii.com,
Vertaald door: Ellen Bokhorst, bokkie@nl.linux.org

v1.0, 23 november 1999


Hoe lelijke en onleesbare X Window fonts te corrigeren.

1. Introductie

Één van de meest ergerlijke problemen die ik had, had te maken met de grove standaardfonts en font-instellingen van X (ik heb het hier specifiek over XFree86, andere versies van X zijn mogelijk beter). Veel programma's maken gebruik van standaardfonts met vaste breedte wanneer een font van variabele breedte beter van toepassing zou zijn. Andere programma's maken gebruik van fonts die belachelijk klein en onleesbaar zijn. De fonts die met XFree86 worden geleverd zijn amper adequaat voor de taak. Het komt met een redelijk aardig courierfont, maar de Times en Helvetica fonts zijn gewoon bitmap fonts die als pixels worden weergegeven wanneer geschaald. Jasses!

In deze HOWTO wordt een poging ondernomen te laten zien hoe diverse font-instellingen aan te passen, nieuwe fonts te installeren, en andere dingen te doen die de weergave en leesbaarheid van fonts op de X Window Desktop enorm zullen verbeteren. Dit wordt gedaan door het FontPath in het XF86Config bestand aan te passen, door switches aan de X-server commandoregel in startx of xdm toe te voegen, door het toevoegen van nieuwe fonts, door het installeren van de TrueType fontserver xfstt, en door het gebruiken van een mogelijkheid in de K Desktop Environment 1.1 waarmee font-instellingen in veel applicaties, waaronder niet-KDE apps, automatisch worden aangepast, om die fonts en kleuren in te stellen zodat ze met de stijl-instellingen van KDE overeenkomen.

Commentaar, correcties, aanvullingen en kritiek zijn altijd welkom. Je kunt me bereiken via meldroc@frii.com.

1.1 Wijzigingslog

2. Het XF86Config Bestand

De eerste plaats om te kijken wanneer je op zoek bent naar een oplossing voor de font-problemen is het XF86Config bestand. (de gebruikelijke lokatie is /usr/X11/lib/X11/XF86Config of /etc/X11/XF86Config). Mocht je dat nog niet hebben geraden, het belangrijkste deel van dit bestand met betrekking tot fonts is het FontPath.. Voordat we ons daarmee gaan bezighouden, zou dit een goed moment zijn om de andere delen van je X-configuratie er op na te zien. Slechte instellingen voor de monitor kunnen zelfs meer hoofdpijn veroorzaken dan slechte fonts, dus zorg ervoor dat je refresh rate zo hoog is als je monitor aankan (85 Hz is geweldig, 75 Hz is OK, 60 Hz is pijnlijk).

2.1 Instellen van Het FontPath

Gebruik je favoriete teksteditor en wijzig XF86Config. Vrijwel aan het begin van het bestand, zou je iets moeten zien als:

FontPath        "/usr/X11R6/lib/X11/fonts/misc/"
FontPath        "/usr/X11R6/lib/X11/fonts/Type1/"
FontPath        "/usr/X11R6/lib/X11/fonts/Speedo/"
FontPath        "/usr/X11R6/lib/X11/fonts/75dpi/"
FontPath        "/usr/X11R6/lib/X11/fonts/100dpi/"                             

Het FontPath geeft X aan waar het de fonts kan vinden die het gebruikt om tekst op je scherm weer te geven. De volgorde is belangrijk -- wanneer een X-applicatie X verzoekt om wat tekst weer te geven, pakt de X-server meestal het font dat in gebruik is. Daarna neemt de X-server het FontPath door en pakt het 't eerste font dat het tegenkomt welke overeenkomt met de criteria van de X-client, en geeft het dan weer.

In het standaard FontPath worden de 75dpi fonts typisch vóór de 100dpi-fonts geplaatst. Als je een scherm met hoge resolutie hebt, betekent dit zeer kleine fonts. De eerste fijnafstemming die je toe zal passen is het omwisselen van de 75dpi & 100dpi FontPath regels.

FontPath        "/usr/X11R6/lib/X11/fonts/misc/"
FontPath        "/usr/X11R6/lib/X11/fonts/Type1/"
FontPath        "/usr/X11R6/lib/X11/fonts/Speedo/"
FontPath        "/usr/X11R6/lib/X11/fonts/100dpi/"
FontPath        "/usr/X11R6/lib/X11/fonts/75dpi/"

Vervolgens geef je op dat je de voorkeur geeft aan ongeschaalde bitmap-fonts. Als je ooit gebruik maakt van Netscape of enig ander programma dat de titels weergeeft met het gebruik van grote fonts, zal je bemerken dat die fonts als pixels worden weergegeven. Dit is erg lelijk en moet worden gecorrigeerd. Voeg :unscaled dus toe aan het einde van de misc, 100dpi & 75dpi fonts. Je kunt zelfs zowel ongeschaalde als geschaalde fonts gebruiken als je dat wilt, plaats de ongeschaalde FontPath regels gewoon als eerste om X aan te geven dat je de voorkeur geeft aan ongeschaalde fonts als dat mogelijk is.

FontPath        "/usr/X11R6/lib/X11/fonts/misc:unscaled"
FontPath        "/usr/X11R6/lib/X11/fonts/100dpi:unscaled"
FontPath        "/usr/X11R6/lib/X11/fonts/75dpi:unscaled"
FontPath        "/usr/X11R6/lib/X11/fonts/Type1"
FontPath        "/usr/X11R6/lib/X11/fonts/Speedo"
FontPath        "/usr/X11R6/lib/X11/fonts/misc"
FontPath        "/usr/X11R6/lib/X11/fonts/100dpi"
FontPath        "/usr/X11R6/lib/X11/fonts/75dpi"

Start X opnieuw op na het maken van deze wijzigingen. Ziet de desktop er niet al beter uit?

3. X-Server Commandoregel Opties

Het volgende dat je moet doen is het aanpassen van de commandoregel-opties voor de X-server. Met de -dpi switch wordt aangegeven dat de schermresolutie in dots per inch is. Aangezien tegenwoordig een heleboel systemen gebruik maken van schermen met hoge resulutie, bestaat de kans dat ze op 100 dpi zullen werken.

Als je X vanaf de console commando-prompt start, typ je:

startx -dpi 100.

Als je xdm voor grafische logins gebruikt, zal je het bestand /usr/X11/lib/X11/xdm/Xservers moeten wijzigen, waarin de commandoregel voor de Xserver staat. In die van mij staat de regel:

:0 local /usr/X11R6/bin/X -dpi 100 -gamma 1.6

Meer informatie is te vinden in de X en Xserver man pages.

4. TrueType Fonts (Één van de paar dingen waar Windows goed voor is)

Omdat de jongens bij Redmond zich zeer interesseren voor de weergave van hun software (in tegenstelling tot de interne werking;) bouwen ze ondersteuning voor TrueType fonts in Windows. Windows 95 en bijna iedere andere variant van Windows wordt geleverd met Arial, Times New Roman, en Courier New, die globaal genomen equivalent zijn aan Helvetica, Times en Courier. TrueType fonts zijn schaalbaar, dus zien ze er in groot formaat goed uit, en ze worden goed aangeduid, dus zijn in klein formaat goed leesbaar. Veel windows-applicaties worden met vele TrueType fonts geleverd. Stop je Windows-CD nog niet in de magnetron, je zal er eerst nog de fonts af willen halen.

4.1 xfstt

Helaas wordt XFree86 niet met ingebouwde ondersteuning voor TrueType geleverd, dus zal je het zelf toe moeten voegen. De eenvoudigste manier om dit te doen is met xfstt, een vrij-verkrijgbare TrueType fontserver.

Installatie

xfstt is erg makkelijk te installeren. Als eerste zal je de tarball (tararchief) van het web moeten downloaden. De huidige versie is te vinden op http://metalab.unc.edu/pub/Linux/X11/fonts/Xfstt-0.9.10.tgz

Zodra je de tarball hebt, pak je het uit.

tar -zxvf Xfstt-0.9.10.tgz

Bouw het dan en installeer het. Lees het INSTALL-bestand voor snelle instructies, alhoewel het er geen is waar je je hoofd over hoeft te breken. make; make install is al hetgeen je moet doen. Zodra dat is gebeurd, kopieer je de Truetype fonts, die je van diverse bronnen te pakken hebt kunnen krijgen, naar /usr/ttfonts, en ben je klaar om van start te gaan. Start xfstt door het intikken van:

xfstt --sync        # werkt de font-database van xfstt bij
xfstt &             # draait xfstt in de achtergrond.

Typ vervolgens

xset +fp unix/:7100 # stelt X op de hoogte van xfstt.

of voeg

FontPath "unix/:7100"

toe aan je XF86Config om X op de hoogte te stellen van de font-service.

Aanpassen van de standaard-fontgrootte

Als je TrueType fonts zeer klein worden weergegeven, helpen de volgende commando's.

Voeg de -dpi switch toe aan de commandoregel van je X-server (zie sectie 3 over hoe je dit doet).

Gebruik de --res switch om xfstt aan te geven dat het de standaardresolutie moet verhogen. Gebruik de volgende commandoregel:

xfstt --res 120

4.2 xfs

xfs is een alternatieve fontserver dat nu in de op RedHat gebaseerde distributies is opgenomen. xfs is gebaseerd op de FreeType Font library en voorziet in een vergelijkbare functionaliteit als xfstt. xfs is in staat tot het leveren van zowel de TrueType als de Type 1 fonts, als ook de huidige X-fonts.

Installatie

De eerste stap is het toevoegen van de TrueType Fonts aan je linux-bestandssysteem. Su naar root, en maak een directory voor de fonts aan:

mkdir /usr/share/fonts/ttfonts

Voeg de fonts dan aan deze directory toe, hetzij door ze te kopiëren vanuit je Windows-systeem:

cp /mnt/win/path_to_fonts/*ttf  /usr/share/fonts/ttfonts/

of door de beschikbare fonts direct te downloaden vanaf Microsoft.

Deze fonts bevinden zich in zelfuitpakkende zip-archieven. Je kunt ze toch onder linux installeren:

unzip <TTFONT.EXE>

De bestandsnamen van de fonts moeten in kleine letters staan. Een snelle en eenvoudige manier om ze te converteren is ze naar een DOS (FAT16) bestandssysteem te kopiëren en ze dan terug te kopiëren. DOS doet niet in hoofdletters. Ga voor de meer op linux gerichte wijze naar de directory met de fonts met typ dan:

ls *TTF | while read f
do
 [ -f "$f" ] && mv -f "$f" "`echo \"$f\" | tr A-Z a-z`"
done

Je zal bij het typen van ieder regel de ">" prompt krijgen, druk aan het einde van iedere bovenstaande regel op return. Merk op dat de leestekens -- de "dubbele aanhalingstekens" belangrijk zijn! Zodra de TrueType fonts juist zijn geïnstalleerd, typ je als root:

ttmkfdir -o fonts.scale
mkfontdir

Voer deze commando's iedere keer dat je font-directory wijzigt, opnieuw uit. Wijzig vervolgens het xfs font configuratiebestand, /etc/X11/fs/config, om je TrueType-fonts aan de lijst met fonts van de server toe te voegen:

catalogue = /usr/X11R6/lib/X11/fonts/misc:unscaled,
            /usr/X11R6/lib/X11/fonts/100dpi:unscaled,
            /usr/X11R6/lib/X11/fonts/75dpi:unscaled,
            /usr/X11R6/lib/X11/fonts/misc,
            /usr/X11R6/lib/X11/fonts/Type1,
            /usr/X11R6/lib/X11/fonts/Speedo,
            /usr/share/fonts/default/Type1,
            /usr/share/fonts/ttfonts,
            /usr/X11R6/lib/X11/fonts/100dpi,
            /usr/X11R6/lib/X11/fonts/75dpi

Als alternatief kun je gebruik maken van het commando 'chkfontpath --add <font>' om fonts toe te voegen. Nu je er toch mee bezig bent, wil je wellicht ook de standaardpuntgrootte wijzigen.

default-point-size = 140

Dit geeft me 14 punten, in plaats van de standaard 12. Een aantal X apps maken hier gebruik van, een aantal doen dit niet. Zorg er vervolgens voor dat de FontPath-regel er in /etc/X11/XF86Config zo uitziet:

FontPath "unix/:-1"

Merk op dat dit ook met "unix/:7100" zou moeten kunnen, maar met de initiële release lukte dit niet. Plaats voor iedere bestaande FontPath een '#' aangezien je het niet langer nodig hebt. Het xfs-package zelf zou reeds geïnstalleerd moeten zijn met de andere XFree packages. Om er zeker van te zijn dat het als één van de standaardservices draait gebruik je óf 'ntsysv' óf

chkconfig --add xfs

xfs zal nu iedere keer bij het booten worden opgestart. Start X nu opnieuw op om het nieuwe FontPath te forceren en start/herstart xfs

/etc/rc.d/init.d/xfs restart

Je zou nu een functionerende fontserver moeten hebben. Je kunt controleren in welke fonts wordt voorzien:

xlsfonts | less

of controleer het verder met xfontsel of nog beter met gfontsel!

5. KDE

KDE is énén van de beste dingen die Linux en X sinds lange tijd is overkomen. Het voorziet in een consistente gebruikersinterface die een lange weg heeft te gaan Linux voor de gemiddelde niet-nerd toegankelijk te maken. Meer informatie over KDE is te vinden op http://www.kde.org/. Dus waarom waarom steek ik hier zijn loftrompet af? Dit komt omdat KDE 1.1 een nieuwe mogelijkheid heeft waarmee de fonts & kleuren in je programma's, inclusief de niet-KDE applicaties met KDE's huidige stijl consistent maken.

5.1 Toekennen van KDE-fonts & kleuren aan niet-KDE apps

Dit is erg makkelijk. Start gewoonweg de KDE Control Center, ga naar Desktop, en ga in Desktop naar Style. Hier zul je een toggle switch gelabeld "Apply fonts and colors to non-KDE apps" aantreffen. Zet het aan, klik op OK en je bent klaar! De volgende keer dat je veel van de X-applicaties opstart, zullen ze van dezelfde kleuren en fonts gebruik maken waarvan KDE-applicaties gebruik maken. De één zal deze mogelijkheid beter vinden dan de ander, maar als je het niet prettig vindt, kun je het altijd nog uitzetten.

6. Fonts in specifieke applicaties aanpassen

6.1 Netscape Navigator/Communicator

Netscape Communicator is in het bijzonder vatbaar voor font-problemen. Als je de standaard FontPath gebruikt, zullen fonts erg klein en erg lelijk zijn. Het eerste dat je zal willen doen, is het corrigeren van je XF86Config FontPath (zie sectie 2). Het gebruik van 100dpi fonts verbetert de leesbaarheid enorm. Wellicht dat je ook je font-instellingen in Edit/ Preferences, onder Appearance/Fonts aan wilt passen. Om af te geraken van de in pixels weergegeven bitmap-fonts, zet je de optie "Allow Scaling" in de font-selectie uit.

Als je xfstt of xfs hebt, is Netscape perfect in staat om TrueType-fonts te gebruiken. Het hanteert xfstt's spitsvondigheid echter niet fatsoenlijk. In Edit/Preferences kun je TrueType-fonts als de variabele fonts en fonts met vaste breedte opgeven; Netscape zal het formaat echter niet herinneren nadat je het hebt afgesloten. Als je bij het starten van de X-server de switch -dpi of de --res switch in xfstt niet hebt gebruikt, zal je zeer kleine fonts krijgen. Zodra ik deze correcties toepaste, werkte de TrueType fonts geweldig.

6.2 WordPerfect

Komt spoedig.

6.3 StarOffice

Komt spoedig.

7. Credits

Samengesteld door Doug Holland

Email: meldroc@frii.com

WWW: http://www.frii.com/~meldroc/

Extra aanvullingen door:

Met dank aan:

8. Rechtsgeldigheden

Copyright © 1999 door Doug Holland.

Tenzij anders vastgesteld, vallen Linux HOWTO documenten onder copyright door de respectieve auteurs. Linux HOWTO documenten mogen geheel of gedeeltelijk via elke fysiek of elektronisch medium worden gereproduceerd en gedistribueerd, zolang deze copyright melding behouden blijft op alle kopieën. Commerciële herdistributie is toegestaan en wordt aangemoedigd; de auteur zou echter graag in kennis worden gesteld van een dergelijke distributie.

Alle vertalingen, afgeleide werken, of verzamelde werken waarin Linux HOWTO documenten zijn verenigd moeten van deze copyright melding zijn voorzien. Dat wil zeggen dat je geen afgeleide werken van een HOWTO mag produceren en aanvullende beperkingen mag opleggen op de distributie ervan.

Uitzonderingen op deze regels worden onder bepaalde condities verleend; neem alsjeblieft contact op met de Linux HOWTO coördinator via het hieronder gegeven adres.

In het kort, we willen verspreiding van deze informatie zoveel mogelijk aanmoedigen via zo veel mogelijk kanalen. We willen echter het copyright op deze HOWTO documenten blijven behouden, en zouden graag in kennis worden gesteld van plannen om deze HOWTO's, vooral deze HOWTO, opnieuw te distribueren. Webpage auteurs zijn vrij zonder beperkingen naar deze HOWTO te linken, alhoewel de auteur het zou waarderen als hij ter informatie hierover een email ontving, slechts voor het oppoetsen van zijn ego door te weten wie nog meer dit document leest en linkt.

Veel van de merken vermeld in dit document zijn handelsmerken. Tenzij anders aangegeven, zijn alle handelsmerken in handen van hun respectieve eigenaren.