Éé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.
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).
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?
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.
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.
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.
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.
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
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.
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!
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.
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.
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.
Komt spoedig.
Komt spoedig.
Samengesteld door Doug Holland
Email: meldroc@frii.com
WWW: http://www.frii.com/~meldroc/
Extra aanvullingen door:
Met dank aan:
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.