Next Previous Contents

3. Prikaz nasih znakov na zaslonu

3.1 Nabor znakov ``ISO Latin 2''

ISO 8859-2 oz. ISO Latin 2 je clan druzine osembitnih naborov znakov ISO 8859, ki pokriva potrebe alfabetskih pisav (latinica in cirilica ter arabska, hebrejska in grska pisava; v pripravi sta tudi armenska in gruzinska). Druzino je zasnovalo evropsko zdruzenje proizvajalcev racunalnikov (European Computer Manufacturer's Association, ECMA), kot mednarodni standard pa potrdila organizacija za standardizacijo ISO s sedezem v Zenevi.

Nabor ISO Latin 2 vsebuje vse potrebne znake za pisanje v albanscini, anglescini, bosnjascini, cescini, finscini, hrvascini, irscini, luziski srbscini, madzarscini, nemscini, poljscini, romunscini, slovascini, slovenscini, ter srbscini v latinicnem precrkovanju.

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 nezdruzljive 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 avtomaticno nalozi ob namestitvi sistema. Pisave in pretvorne tabele so zlozene v imeniku /usr/lib/kbd. (Avanturisti se lahko namesto s paketom kbd igrajo s prototipnimi Linux Console Tools avtorja Yanna Dirsona.)

V starejsih distribucijah Slackware se je prevedeni paket imenoval keytbls. Namestimo ga enako kot druge pakete, z ukazom pkgtool ali installpkg.

Ko imamo paket enkrat namescen, izberemo drugo pisavo na zaslonu z ukazom setfont. Spodnji zgled izbere pisavo z naborom znakov po standardu ISO Latin 2 v velikosti sestnajst pik:

setfont lat2-16
Za nas zanimive pisave so 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 izpuscamo).

Izbrana pisava velja v vseh virtualnih terminalih (glej console(4)) na konzoli. Ce nam to ni vsec, ampak bi radi imeli v vsakem virtualnem terminalu svojo pisavo, si lahko pomagamo s programom vtfontd Iana Zimmermana. Ta vsakic, 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 sele nekako tretjino vsega dela, potrebnega, da bi lahko v tekstovnem okolju pisali po slovensko. Izvesti moramo vsaj se preslikavo tipkovnice ter omogociti 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.

3.3 X Window System

Kratka navodila za namestitev pisav z nasimi znaki za uporabo z X Window System in streznikom XFree86.

  1. Pisave snamemo z najblizjega streznika FTP:
    ftp://ftp.arnes.si/software/unix/Latin-2-fonts/
    Datoteka ISO8859-2-bdf.tar.gz vsebuje najpopolnejsi nabor pisav, kodiranih po ISO 8859-2, vecino uporabnih pisav pa vsebuje tudi xfonts-iso2-0.84.tar.gz. Po obicajnem postopku (tar -xzf ...) jih dekomprimiramo in razpakiramo.
  2. Pisavam z nasimi znaki dolocimo mesto v drevesni strukturi imenikov. Obicajno je to podimenik v imeniku /usr/X11R6/lib/X11/fonts/ (vcasih tudi /usr/lib/X11/fonts/, /usr/lib/X11R6/lib/X11/fonts ali celo /usr/X386/lib/X11/fonts/ kar pa naj nas ne moti). Mozen 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/
    
    Ce imenikov s tem imenom se ni, jih ustvarimo.
  3. Streznik 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). Starejse izdaje X Window System so namesto slednjega uporabljale format SNF (Server Native Format), ki pa se danes ne uporablja vec.
    for FILE in *.bdf
    do
      bdftopcf $FILE -o `basename $FILE .bdf`.pcf
    done
    

    (da, ukazi v bash lahko segajo tudi prek vecih vrstic). Pisav v obliki BDF zdaj ne potrebujemo vec in jih lahko pobrisemo.
  4. Streznik X zna uporabiti stisnjene datoteke s pisavami, kar lahko izkoristimo in prihranimo se nekaj prostora na disku.
    gzip *.pcf
    
    Starejse izdaje streznika X podpirajo le stiskanje s compress.
  5. V vsakem imeniku s pisavami pricakuje streznik 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. Koncno lahko streznik 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
    
    Ce je slo vse gladko, mora ukaz xlsfonts -fn "*-iso8859-2" pokazati seznam vseh novo namescenih pisav.
  7. Ukaz xset velja samo, dokler ne zapustimo X Window System. Trajno spremembo dosezemo s popravkom konfiguracijske datoteke. Streznik XFree86 hrani svoje nastavitve v datoteki /etc/XF86Config (pisec teh vrstic je v nekaj letih ukvarjanja z XFree86 na razlicnih distribucijah nastavitve videl tudi ze v datotekah /etc/X11/XF86Config, /usr/X11R6/lib/X11/XF86config in /usr/X11/lib/X11/Xconfig). Poiscemo 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 nase znake. Vec o tem, kako program, npr. xterm, pripravimo do tega, da zahteva nase znake, si preberemo v razdelku xterm poglavja o terminalskih emulatorjih.

3.4 PostScript pod X11

Streznik 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 lepse, pri vecjih velikostih, npr. v graficnih programih, pa so vektorske pisave znatno lepse.

Nekaj vektorskih pisav Type 1 v kodnem razporedu ISO Latin 2 je pripravil Peter Soos. Pri namescanju v celoti sledimo postopku, opisanem v razdelku X Window System poglavja Prikaz nasih znakov na zaslonu. S streznika snamemo datoteko v obliki zip:

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

Se vec pisav je zbrala ceska 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 ze 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 pozenimo xfontsel. Novo namescene pisave najdemo najhitreje, ce jih iscemo po ``crkolivnici'' (angl. type foundry) sp (po avtorjevih zacetnicah) v prvem stolpcu (fndry). Izberite kaksno veliko povecavo (pxlsz) in primerjajte z rastrskimi pisavami!

3.5 TrueType pod X11

Rasterizator za pisave TrueType se ni standardni del paketa X Window System. Fantje iz The XFree86 Project, Inc. nacrtujejo vkljucitev podpore zanje v izdaji XFree86 4.0.

Freetype in xfsft

Mark Leisher in Juliusz Chroboczek sta standardni streznik 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. Streznik je na voljo kot izvorna koda, s katero lahko pokrpate izvorno kodo streznika X, ali pa kot ze preveden program za Linux.

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

Predpostavili bomo, da ste na kakrsenkoli nacin ze uspeli priti do izvedljive datoteke xfsft.

  1. Ustvarimo imenik za pisave TrueType, npr. /usr/X11R6/lib/X11/fonts/TrueType/ in vanj prepisemo datoteke s pisavami TrueType.
  2. V omenjenem imeniku ustvarimo datoteko fonts.scale. Preprost primer taksne 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 nanasa na eno in isto datoteko. Razlikujejo se le po kodnem naboru. Ker datoteka vsebuje vse potrebne znake, jo streznik pisav aplikacijam lahko predstavi kot katerokoli od nastetih petih kodnih naborov. Joerg Pomnitz je napisal programcek ttmkfdir, ki avtomaticno pregleda vse datoteke TrueType in ustvari datoteko fonts.scale.
    http://www.darmstadt.gmd.de/~pommnitz/xfsft.html
  3. V istem imeniku zatem pozenemo se mkfontdir. Ta ne bo napravil nic drugega, kot obstojeco datoteko fonts.scale nespremenjeno prepisal v datoteko z imenom fonts.dir.
  4. S streznikom pisav xfsft bodisi prepisemo obstojeci streznik (navadno /usr/X11R6/bin/xfs, ali pa ga premaknemo na kaksno drugo primerno mesto.
  5. Streznik pisav potrebuje konfiguracijsko datoteko. Spodnja naj sluzi za zgled, ce nimate boljse:
    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 pozenemo streznik pisav X. Pri zgledu smo uporabili vrata 7100. Ce so na vasem sistemu ze zasedena, izberite druga. Za podrobnosti si oglejte prirocnik xfs(1).
    xfsft -port 7100 -config /usr/X11R6/lib/X11/fs/config &
    
  6. Ne da bi spreminjali pot, v kateri iscemo pisave, lahko preverimo, ce streznik deluje:
    fslsfonts -server localhost:7100
    
  7. Ce smo zadovoljni, dodamo streznik pisav med vire, kjer iscemo pisave, npr.
    xset fp+ tcp/localhost:7100
    
    Streznik pisav lahko seveda tece tudi na drugem racunalniku, tako da ni potrebe, da imamo na vseh racunalnikih v lokalni mrezi namescene vse pisave. Dokoncno dodamo streznik pisav v konfiguracijsko datoteko /etc/XF86Config:
    FontPath "tcp/localhost:7100"
    

Xfstt

Drugi streznik pisav za X11, ki podpira pisave TrueType, je Xfstt. Pisec teh vrstic z njim nima izkusenj, je pa z veseljem pripravljen na to mesto vkljuciti izkusnje drugih. Xfstt najdete na navedenem mestu in vseh zrcalih le-tega.

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


Next Previous Contents