Naprej Nazaj Vsebina

3. Prikaz naših znakov na zaslonu

3.1 Nabor znakov ``ISO Latin 2''

ISO 8859-2 oz. ISO Latin 2 je član družine osembitnih naborov znakov ISO 8859, ki pokriva potrebe alfabetskih pisav (latinica in cirilica ter arabska, hebrejska in grška pisava; v pripravi sta tudi armenska in gruzinska). Družino je zasnovalo evropsko združenje proizvajalcev računalnikov (European Computer Manufacturer's Association, ECMA), kot mednarodni standard pa potrdila organizacija za standardizacijo ISO s sedežem v Ženevi.

Nabor ISO Latin 2 vsebuje vse potrebne znake za pisanje v albanščini, angleščini, bošnjaščini, češčini, finščini, hrvaščini, irščini, lužiški srbščini, madžarščini, nemščini, poljščini, romunščini, slovaščini, slovenščini, ter srbščini v latiničnem prečrkovanju.

Nekaj proizvajalcev strojne in programske opreme, med njimi IBM, Apple in Microsoft, uporablja svoje kodne strani za kodiranje znakov srednje- in vzhodnoevropskih narodov. Te kodne strani so praviloma nezdružljive tako med seboj, kot tudi s standardom ISO.

3.2 Konzola

Nabor znakov za sistemsko konzolo najdemo v paketu kbd Andriesa Brouwerja z univerze v Eindhovnu, Nizozemska. Paket je del vseh distribucij Linuxa in se avtomatično naloži ob namestitvi sistema. Pisave in pretvorne tabele so zložene v imeniku /usr/lib/kbd. (Avanturisti se lahko namesto s paketom kbd igrajo s prototipnimi Linux Console Tools avtorja Yanna Dirsona. Izdaji LCT 0.2.0 ter kbd 0.99 naj bi bili usklajeni.)

Ko imamo paket enkrat nameščen, izberemo drugo pisavo na zaslonu z ukazom consolechars. Spodnji zgled izbere pisavo z naborom znakov po standardu ISO Latin 2 v velikosti šestnajst pik:

consolechars --font=lat2u-16 --sfm=lat2u.sfm --acm=iso02.acm
Zaradi združljivosti s prejšnjimi izdajami paketa kbd še vedno deluje tudi ukaz setfont:
setfont lat2u-16

Izbrana pisava velja v vseh virtualnih terminalih (glej console(4)) na konzoli. Če nam to ni všeč, ampak bi radi imeli v vsakem virtualnem terminalu svojo pisavo, si lahko pomagamo s programom vtfontd Iana Zimmermana. Ta vsakič, ko zapustimo virtualni terminal, shrani izbrano konzolno pisavo, in jo ponovno restavrira, ko se vrnemo vanj.

ftp://sizif.mf.uni-lj.si/pub/linux/vtfontd-1.0.1.tar.gz

Z izbiro pisave smo opravili šele nekako tretjino vsega dela, potrebnega, da bi lahko v tekstovnem okolju pisali po slovensko. Izvesti moramo vsaj še preslikavo tipkovnice ter omogočiti vnos osembitnih znakov v ukazni lupini. Nestrpna bralka ali bralec si lahko potrebno prebere v razdelku Konzola poglavja ``Tipkovnica'' ter v o razdelku ukazni lupini bash v poglavju o ukaznih lupinah.

Starejše izdaje

Starejše izdaje jedra (2.0 in starejše) so imele podporo za Unicode izvedeno drugače, in v njih bomo tako ukaz consolechars(8) kot tudi pisavo lat2u-16 zaman iskali. Namesto nje uporabimo ukaz setfont in pisavo lat2-16:

setfont lat2-16
Za nas zanimive pisave so še iso02.f08, iso02.f14 in iso02.f16, ter lat2-08.psf, lat2-10.psf, lat2-12.psf, lat2-14.psf in lat2-16.psf (pripono .psf lahko pri ukazu setfont izpuščamo).

Opomba: v starejših distribucijah Slackware se je prevedeni paket imenoval keytbls. Namestimo ga enako kot druge pakete, z ukazom pkgtool ali installpkg.

3.3 X Window System

Kratka navodila za namestitev pisav z našimi znaki za uporabo z X Window System in strežnikom XFree86.

  1. Pisave snamemo z najbližjega strežnika FTP:
    ftp://ftp.arnes.si/software/unix/Latin-2-fonts/
    Datoteka ISO8859-2-bdf.tar.gz vsebuje najpopolnejši nabor pisav, kodiranih po ISO 8859-2, večino uporabnih pisav pa vsebuje tudi xfonts-iso2-0.84.tar.gz. Po običajnem postopku (tar -xzf ...) jih dekomprimiramo in razpakiramo.
  2. Pisavam z našimi znaki določimo mesto v drevesni strukturi imenikov. Običajno je to podimenik v imeniku /usr/X11R6/lib/X11/fonts/ (včasih tudi /usr/lib/X11/fonts/, /usr/lib/X11R6/lib/X11/fonts ali celo /usr/X386/lib/X11/fonts/ kar pa naj nas ne moti). Možen primer:
    /usr/X11R6/lib/X11/fonts/iso_8859.2/75dpi/
    /usr/X11R6/lib/X11/fonts/iso_8859.2/100dpi/
    /usr/X11R6/lib/X11/fonts/iso_8859.2/misc/
    
    Če imenikov s tem imenom še ni, jih ustvarimo.
  3. Strežnik X ne zna uporabiti pisav v enakem formatu, kot se distribuirajo, zato jih moramo s programom bdftopcf prevesti iz formata BDF (Binary Distribution Format) v format PCF (Portable Compiled Format). Starejše izdaje X Window System so namesto slednjega uporabljale format SNF (Server Native Format), ki pa se danes ne uporablja več.
    for FILE in *.bdf
    do
      bdftopcf $FILE -o `basename $FILE .bdf`.pcf
    done
    

    (da, ukazi v bash lahko segajo tudi prek večih vrstic). Pisav v obliki BDF zdaj ne potrebujemo več in jih lahko pobrišemo.
  4. Strežnik X zna uporabiti stisnjene datoteke s pisavami, kar lahko izkoristimo in prihranimo še nekaj prostora na disku.
    gzip *.pcf
    
    Starejše izdaje strežnika X podpirajo le stiskanje s compress.
  5. V vsakem imeniku s pisavami pričakuje strežnik datoteko fonts.dir, ki podaja preslikavo med opisi pisav (X Logical Font Description, XLFD) in imeni datotek. Ustvarimo jo z ukazom
    mkfontdir
    
    Ukaz moramo pognati v vsakem podimeniku s pisavami.
  6. Končno lahko strežnik obvestimo o tem, da smo namestili nove pisave, kar storimo z ukazom xset:
    xset +fp /usr/X11R6/lib/X11/fonts/iso_8859.2/75dpi/
    xset +fp /usr/X11R6/lib/X11/fonts/iso_8859.2/100dpi/
    xset +fp /usr/X11R6/lib/X11/fonts/iso_8859.2/misc/
    xset fp rehash
    
    Če je šlo vse gladko, mora ukaz xlsfonts -fn "*-iso8859-2" pokazati seznam vseh novo nameščenih pisav.
  7. Ukaz xset velja samo, dokler ne zapustimo X Window System. Trajno spremembo dosežemo s popravkom konfiguracijske datoteke. Strežnik XFree86 hrani svoje nastavitve v datoteki /etc/XF86Config (pisec teh vrstic je v nekaj letih ukvarjanja z XFree86 na različnih distribucijah nastavitve videl tudi že v datotekah /etc/X11/XF86Config, /usr/X11R6/lib/X11/XF86config in /usr/X11/lib/X11/Xconfig). Poiščemo niz FontPath in dodamo vrstice:
    FontPath "/usr/X11R6/lib/X11/fonts/iso_8859.2/75dpi"
    FontPath "/usr/X11R6/lib/X11/fonts/iso_8859.2/100dpi"
    FontPath "/usr/X11R6/lib/X11/fonts/iso_8859.2/misc"
    

To je vse. Od zdaj naprej zna X Window System na zahtevo programa prikazati tudi naše znake. Več o tem, kako program, npr. xterm, pripravimo do tega, da zahteva naše znake, si preberemo v razdelku xterm poglavja o terminalskih emulatorjih.

3.4 PostScript pod X11

Strežnik X zna uporabljati rastrske pisave v oblikah PCF, SNF in BDF ter vektorske pisave v obliki Speedo in Type 1. Pri majhnih velikostih (do 10 tipografskih pik) so rastrske pisave na zaslonu navadno lepše, pri večjih velikostih, npr. v grafičnih programih, pa so vektorske pisave znatno lepše.

Nekaj vektorskih pisav Type 1 v kodnem razporedu ISO Latin 2 je pripravil Péter Soós. Pri nameščanju v celoti sledimo postopku, opisanem v razdelku X Window System poglavja Prikaz naših znakov na zaslonu. S strežnika snamemo datoteko v obliki zip:

ftp://ftp.arnes.si/software/unix/Latin-2-fonts/l2pfb005.zip

Še več pisav je zbrala češka skupina, paket RPM (vsebino namestimo z ukazom rpm -Uvh ...) najdemo na

ftp://crash.fce.vutbr.cz/pub/linux_fonts/X11fonts-ulT1mo-beta-1.0-4.noarch.rpm

Ustvarimo nov imenik, npr. /usr/X11R6/lib/X11/fonts/iso_8859.2/Type1, in vanj stresemo vsebino arhiva l2pfb004.zip. Avtor je že pripravil datoteki fonts.scale in fonts.dir. Ponovimo vajo z xset in v nastavitveno datoteko dodamo vrstico:

FontPath "/usr/X11R6/lib/X11/fonts/iso_8859.2/Type1"
Namesto xlsfonts tokrat iz okenskega okolja X Window System poženimo xfontsel. Novo nameščene pisave najdemo najhitreje, če jih iščemo po ``črkolivnici'' (angl. type foundry) sp (po avtorjevih začetnicah) v prvem stolpcu (fndry). Izberite kakšno veliko povečavo (pxlsz) in primerjajte z rastrskimi pisavami!

3.5 TrueType pod X11

Rasterizator za pisave TrueType še ni standardni del paketa X Window System. Fantje iz The XFree86 Project, Inc. načrtujejo vključitev podpore zanje v izdaji XFree86 4.0.

Freetype in xfsft

Mark Leisher in Juliusz Chroboczek sta standardni strežnik pisav iz okolja X Window System dopolnila s FreeType, prostim rasterizatorjem za pisave TrueType, ki so ga napisali David Turner, Robert Wilhelm, Werner Lemberg in sodelavci. Strežnik je na voljo kot izvorna koda, s katero lahko pokrpate izvorno kodo strežnika X, ali pa kot že preveden program za Linux.

http://www.freetype.org/
http://www.dcs.ed.ac.uk/home/jec/programs/xfsft/

Predpostavili bomo, da ste na kakršenkoli način že uspeli priti do izvedljive datoteke xfsft.

  1. Ustvarimo imenik za pisave TrueType, npr. /usr/X11R6/lib/X11/fonts/TrueType/ in vanj prepišemo datoteke s pisavami TrueType.
  2. V omenjenem imeniku ustvarimo datoteko fonts.scale. Preprost primer takšne datoteke je naslednji:
    5
    times.ttf -monotype-times-medium-r-normal--0-0-0-0-p-0-iso8859-1
    times.ttf -monotype-times-medium-r-normal--0-0-0-0-p-0-iso8859-2
    times.ttf -monotype-times-medium-r-normal--0-0-0-0-p-0-iso8859-5
    times.ttf -monotype-times-medium-r-normal--0-0-0-0-p-0-koi8-r
    times.ttf -monotype-times-medium-r-normal--0-0-0-0-p-0-iso10646-1
    

    Opazimo lahko, da se vseh pet vrstic nanaša na eno in isto datoteko. Razlikujejo se le po kodnem naboru. Ker datoteka vsebuje vse potrebne znake, jo strežnik pisav aplikacijam lahko predstavi kot katerokoli od naštetih petih kodnih naborov. Joerg Pomnitz je napisal programček ttmkfdir, ki avtomatično pregleda vse datoteke TrueType in ustvari datoteko fonts.scale.
    http://www.darmstadt.gmd.de/~pommnitz/xfsft.html
  3. V istem imeniku zatem poženemo še mkfontdir. Ta ne bo napravil nič drugega, kot obstoječo datoteko fonts.scale nespremenjeno prepisal v datoteko z imenom fonts.dir.
  4. S strežnikom pisav xfsft bodisi prepišemo obstoječi strežnik (navadno /usr/X11R6/bin/xfs, ali pa ga premaknemo na kakšno drugo primerno mesto.
  5. Strežnik pisav potrebuje konfiguracijsko datoteko. Spodnja naj služi za zgled, če nimate boljše:
    clone-self = off
    use-syslog = off
    client-limit = 20
    
    catalogue = /usr/X11R6/lib/X11/fonts/TrueType,/usr/X11R6/lib/X11/fonts/Type1
    
    error-file = /usr/X11R6/lib/X11/fs/fs-errors
    
    # in decipoints
    default-point-size = 120
    
    # x,y
    default-resolutions = 100,100,75,75
    

    Zdaj lahko poženemo strežnik pisav X. Pri zgledu smo uporabili vrata 7100. Če so na vašem sistemu že zasedena, izberite druga. Za podrobnosti si oglejte priročnik xfs(1).
    xfsft -port 7100 -config /usr/X11R6/lib/X11/fs/config &
    
  6. Ne da bi spreminjali pot, v kateri iščemo pisave, lahko preverimo, če strežnik deluje:
    fslsfonts -server localhost:7100
    
  7. Če smo zadovoljni, dodamo strežnik pisav med vire, kjer iščemo pisave, npr.
    xset fp+ tcp/localhost:7100
    
    Strežnik pisav lahko seveda teče tudi na drugem računalniku, tako da ni potrebe, da imamo na vseh računalnikih v lokalni mreži nameščene vse pisave. Dokončno dodamo strežnik pisav v konfiguracijsko datoteko /etc/XF86Config:
    FontPath "tcp/localhost:7100"
    

Xfstt

Drugi strežnik pisav za X11, ki podpira pisave TrueType, je Xfstt. Pisec teh vrstic z njim nima izkušenj, je pa z veseljem pripravljen na to mesto vključiti izkušnje drugih. Xfstt najdete na navedenem mestu in vseh zrcalih le-tega.

ftp://metalab.unc.edu/pub/Linux/X11/fonts/Xfstt-0.9.10.tgz


Naprej Nazaj Vsebina