Slovenian HOWTO | ||
---|---|---|
<<< Previous | Next >>> |
ISO 8859-2 ali 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 izdelovalcev računalnikov (European Computer Manufacturer's Association, ECMA), kot mednarodni standard pa jo je potrdila organizacija za standardizacijo ISO s sedežem v Ženevi.
Nabor ISO Latin 2 obsega 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 izdelovalcev 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 kakor tudi s standardom ISO.
Osembitni nabori znakov imajo tudi pomanjkljivosti. Če smo računalnik nastavili tako, da pravilno prikazuje slovenske znake, s tem samodejno rešimo tudi prikaz besedil v prej naštetih jezikih, kot so poljščina ali madžarščina, ne pa tudi besedil v francoščini, ruščini ali grščini. V mednarodnem okolju so lahko s tem težave. Ponujenih rešitev je bilo več, največ pozornosti pa je bil deležen razširjeni standard Unicode.
ISO 10646 UCS (Universal Character Set) je 31-bitni nabor znakov, razdeljen na 128 ,skupin` (angl. group), vsaka od njih pa na 256 ,ravnin` (angl. plane); 65536 znakov prve ravnine je definiranih kot osnovna večjezična ravnina (Base Multilangual Plane, BMP). V tretji izdaji standarda Unicode (enakovredni standardu ISO/IEC 10646-1:2000) je definiranih 49.194 znakov, 7827 16-bitnih kod je še nedodeljenih, če štejemo še 1.048.544 za zdaj nedodeljenih mest, ki jih lahko naslavljamo s pari surogatov (torej s parom 16-bitnih kod), pa bi moral standard za nekaj časa zadostovati.
Za kodiranje besedil se ob kodiranju UCS-2, v katerem je vsak od 65.536 znakov predstavljen z dvema bajtoma, ter UCS-4, v katerem je vsak znak predstavljen s štirimi bajti, uporablja tudi pretvorna shema UTF-8 (UCS Transformation Scheme), v kateri se prvih 128 znakov iz nabora Unicode (kar ustreza naboru ASCII) kodira z enim bajtom, naslednjih 1920 (med njimi je večina drugih latiničnih znakov, cirilica, osnovna grščina, hebrejščina in osnovna arabščina) kot dva bajta, nadaljnjih 63.488 znakov (med njimi kitajski, japonski, korejski) s tremi, preostali znaki iz nabora ISO 10646 pa s štirimi do šestimi bajti. Prednost kodiranja UTF-8 je za evropske latinično pišoče narode v tem, da so besedila komaj kaj daljša od besedil, kodiranih v katerem od osembitnih standardov ISO 8859, kodiranje v UCS-2 pa pomeni dvakrat daljše besedilo (UCS-4 pa celo štirikrat daljše). Slabost je seveda v tem, da v takih besedilih ni več enostavne zveze med številom znakov v besedilu in dolžino besedila v bajtih.
Izčrpnejše informacije o uporabi kodnega nabora Unicode v Linuxu prinaša spis Unicode HOWTO, na voljo tudi v slovenskem prevodu.
Nabor znakov za sistemsko konzolo najdemo v paketu kbd Andriesa Brouwerja z univerze v Eindhovnu na Nizozemskem. Paket je del vseh distribucij Linuxa in se samodejno 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 je paket naposled nameščen, izberemo na zaslonu drugo pisavo z ukazom consolechars. Spodnji zgled izbere pisavo z naborom znakov po standardu ISO Latin 2, veliko š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, ki pa bo morda v kateri od naslednjih izdaj opuščen:
setfont lat2u-16
Sistemske nastavitve zaslonske pisave so shranjene v datoteki /usr/sysconfig/i18n:
SYSFONT="lat2-sun16" SYSFONTACM="iso02" LANG="sl_SI" |
V isti nastavitveni datoteki je shranjen tudi podatek o tem, za katere jezike smo izbrali podporo ob namestitvi, na primer:
SUPPORTED="en_US:en:sl_SI:sl" |
Rok Papež predlaga naslednjo izboljšavo nastavitve spremenljivk SYSFONT in SYSFONTACM:
SYSFONT="lat2u-16" UNIMAP="lat2u" SYSFONTACM="iso02+euro" |
Pisave z našimi znaki podpirajo le ločljivost 80 x 25 znakov. Če izberemo kakšno drugo ločljivost, denimo z izbiro vga=ext v LILO, se ločljivost avtomatično vrne na 80 x 25.
Izbrana pisava velja v vseh navideznih terminalih (glej console(4)) na konzoli. Če nam to ni všeč in bi radi imeli v vsakem navideznem terminalu svojo pisavo, si lahko pomagamo s programom vtfontd Iana Zimmermana. Ta vsakič, ko zapustimo navidezni terminal, shrani izbrano konzolno pisavo in jo znova 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.
Pri starejših izdajah jedra (2.0 in starejše) je bila podpora za Unicode izvedena 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).
Distribucija Red Hat od različice 6.2 naprej shranjuje nastavitve zaslonskih pisav v datoteki /etc/syconfig/i18n. Prej omenjeni ukaz setfont vanjo ob izboru slovenske tipkovnice zapiše primerne vrednosti, na primer:
LANG="sl_SI" SYSFONT="lat2-sun16" SYSFONTACM="iso02" |
![]() | V starejših distribucijah Slackware se je prevedeni paket imenoval keytbls. Namestimo ga enako kakor druge pakete, z ukazom pkgtool ali installpkg. |
Kratka navodila za namestitev pisav z našimi znaki za uporabo z X Window System in strežnikom XFree86.
Rastrske pisave navadno namestimo kot paket RPM (ime paketa je XFree86-ISO8859-2, XFree86-ISO8859-2-75dpi-fonts ali XFree86-ISO8859-2-100dpi-fonts).
Če paketa RPM nikakor ne dobimo, pisave snamemo iz najbližjega strežnika FTP:
ftp://ftp.arnes.si/software/Latin-2-fonts/ |
V datoteki ISO8859-2-bdf.tar.gz je najpopolnejši nabor pisav, kodiranih po ISO 8859-2, precej uporabnih pisav pa je tudi v xfonts-iso2-0.84.tar.gz. Po običajnem postopku (tar -xzf ...) jih razširimo in razpakiramo.
Pisavam z našimi znaki določimo mesto v drevesni strukturi imenikov. Navadno je to podimenik v imeniku /usr/X11R6/lib/X11/fonts/ (včasih tudi /usr/lib/X11/fonts/, /usr/lib/X11R6/lib/X11/fonts, /usr/X386/lib/X11/fonts/ ali celo /usr/share/fonts/, kar pa naj nas ne moti). Možni zgled:
/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.
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 čez več vrstic). Pisav v obliki BDF zdaj ne potrebujemo več in jih lahko zbrišemo.
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 (ampak res zelo stare) so podpirale le stiskanje s compress.
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.
Končno lahko strežnik obvestimo o tem, da smo namestili nove pisave. To 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.
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/X11/XF86Config-4 (XFree86 4.0 po vrsti poskuša prebrati nastavitve takole: /etc/X11/XF86Config-4, /etc/X11/XF86Config in /etc/X11/XF86Config. Pri nekaterih starejših distribucijah se je nastavitvena datoteka imenovala tudi /usr/X11R6/lib/X11/XF86config ali /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 posnemovalnikih.
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 deset tipografskih pik) so rastrske pisave na zaslonu navadno lepše, pri večjih velikostih, npr. v grafičnih programih, pa so vektorske znatno lepše.
Nemška ,digitalna črkolivnica` URW++ je projektu Ghostscript podarila zbirko 35 osnovnih postscriptnih pisav (Times, Helvetica, Courier, Avant Garde, Bookman, New Century Schoolbook, Palatino in Zapf Chancery) v obliki type 1. S tem so postale dostopne pod pogoji splošne licence GNU. Češka podružnica SuSE je pisave prekodirala v nabor ISO 8859-2 in jih objavila v svojem strežniku FTP:
ftp://ftp.suse.cz/pub/suse/czfonts/ |
Pisave so pripravljene v obliki paketa RPM, ki ga namestimo po ustaljenem postopku. Paket predpostavlja, da uporabljamo strežnik pisav xfs in v nastavitveni datoteki /etc/X11/fs/config ob namestitvi doda ustrezne vrstice:
/usr/share/fonts/ISO8859-2/75dpi:unscaled, /usr/share/fonts/ISO8859-2/75dpi /usr/share/fonts/ISO8859-2/misc:unscaled, /usr/share/fonts/ISO8859-2/misc |
Če strežnika pisav iz kakršnegakoli vzroka ne uporabljamo, navedemo pisave v nastavitveni datoteki strežnika X:
FontPath "/usr/share/fonts/ISO8859-2/75dpi:unscaled" FontPath "/usr/share/fonts/ISO8859-2/75dpi" FontPath "/usr/share/fonts/ISO8859-2/misc:unscaled" FontPath "/usr/share/fonts/ISO8859-2/misc" |
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!
Rasterizator za pisave TrueType je od izdaje XFree86 4.0 naprej standardni del paketa X Window System in je vgrajen v strežnik pisav xfs.
Če uporabljate kak drug strežnik X11, ki ne podpira pisav TrueType, pa si lahko pomagate s prostimi strežniki za pisave TrueType, kot sta npr. Xfsft in Xfstt, ki sta opisana v nadaljevanju.
V nadaljevanju bomo predpostavili, da vaš strežnik xfs podpira pisave TrueType ali pa ste že uspeli priti do izvedljive datoteke xfsft.
Ustvarimo imenik za pisave TrueType, npr. /usr/share/fonts/TrueType/ ali /usr/X11R6/lib/X11/fonts/TrueType/, in vanj prepišemo datoteke s pisavami TrueType.
V omenjenem imeniku ustvarimo datoteko fonts.scale. Preprost zgled take 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, da se vseh pet vrstic nanaša na eno in isto datoteko. Razlikujejo se le po kodnem naboru. Ker so v datoteki vsi potrebni znaki, jo strežnik pisav programom lahko predstavi kot kodirano v kateremkoli od naštetih petih kodnih naborov.
Joerg Pomnitz je napisal programček ttmkfdir, ki samodejno pregleda vse datoteke TrueType in ustvari datoteko fonts.scale. Program navadno namestimo v sistem kot del paketa freetype.
V istem imeniku zatem poženemo še ukaz mkfontdir. Ta ne bo napravil drugega, kot da bo datoteko fonts.scale nespremenjeno prepisal v datoteko z imenom fonts.dir.
Če naš strežnik pisav ne podpira pisav TrueType, s strežnikom pisav xfsft bodisi prepišemo strežnik (navadno /usr/X11R6/bin/xfs ali pa ga premaknemo na kakšno drugo primerno mesto.
Strežnik pisav potrebuje konfiguracijsko datoteko, navadno /etc/X11/fs/config. Spodnja naj bo za zgled, če nimate boljše:
clone-self = off use-syslog = off client-limit = 20 catalogue = /usr/share/fonts/TrueType,/usr/share/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 v vašem sistemu že zasedena, izberite druga. Podrobnosti si oglejte v priročniku xfs(1).
xfs -daemon -port 7100 -config /etc/X11/fs/config
![]() | Strežnika razen med preizkušanjem ne bomo poganjali tako, ampak s primernim skriptom (navadno /etc/rc.d/init.d/xfs): # service xfs start |
Ne da bi spreminjali pot, po kateri iščemo pisave, lahko preverimo, ali strežnik deluje:
fslsfonts -server localhost:7100
Če smo zadovoljni, dodamo strežnik pisav med vire, v katerih iščemo pisave, npr.
xset fp+ tcp/localhost:7100
Strežnik pisav lahko seveda teče tudi v drugem računalniku, tako da ni potrebe, da imamo v vseh računalnikih v krajevnem omrežju nameščene vse pisave.
Dokončno dodamo strežnik pisav v konfiguracijsko datoteko /etc/X11/XF86Config-4:
FontPath "tcp/localhost:7100" |
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 izvirna koda, s katero lahko pokrpate izvirno 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/ |
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 vstaviti izkušnje drugih. Xfstt najdete na navedenem mestu in v vseh zrcalih le-tega.
ftp://metalab.unc.edu/pub/Linux/X11/fonts/Xfstt-0.9.10.tgz |
<<< Previous | Home | Next >>> |
Za nestrpne | Tipkovnica |