Slovenian HOWTO Primož Peterlin v2.15, 12 July 1999 Zbirka receptov za poslovenjenje sistema Linux. (Note to English readers: this document addresses Linux localization issues specific to Slovenian users.) ______________________________________________________________________ Table of Contents 1. Uvod 1.1 Kaj je Linux? 1.2 Dogovor o zapisu 2. Za nestrpne 2.1 Naši znaki na konzoli 2.2 Naši znaki v okolju X Window System 3. Prikaz naših znakov na zaslonu 3.1 Nabor znakov ``ISO Latin 2'' 3.2 Konzola 3.2.1 Starejše izdaje 3.3 X Window System 3.4 PostScript pod X11 3.5 TrueType pod X11 3.5.1 Freetype in xfsft 3.5.2 Xfstt 4. Tipkovnica 4.1 Konzola 4.2 X Windows System 4.2.1 Xks 5. Slovenski locale 5.1 Programiranje z GNU gettext 5.2 Poslovenjenje katalogov sporočil 6. Poslovenjenje različnih programov 6.1 Ukazne lupine 6.1.1 bash 6.1.2 tcsh 6.2 Terminalski emulatorji 6.2.1 xterm 6.2.2 rxvt 6.3 Pisarniški paketi 6.3.1 WordPerfect 6.3.2 Star Office 6.3.3 Applixware 6.4 Urejevalniki 6.4.1 GNU emacs 6.4.1.1 GNU emacs 20 6.4.1.2 Starejše izdaje programa GNU emacs 6.4.2 crisp 6.4.3 vi 6.5 Elektronska pošta 6.5.1 Pine 6.5.2 elm 6.5.3 Netscape Mail 6.6 Svetovni splet 6.6.1 Lynx 6.6.2 Netscape Navigator 6.6.3 Amaya 6.6.4 Spletni strežniki 6.6.4.1 Načela 6.6.4.2 Praktični oziri 6.6.4.3 Podrobnosti izvedbe 6.6.4.4 Določitev nove pripone za statične spise 6.6.4.5 Dinamično prekodiranje 6.6.4.6 Metainformacija za spletni strežnik W3C 6.6.4.7 Datoteke ASIS za strežnik Apache 6.6.4.8 Značka z označbo HTTP-EQUIV 6.7 Delo na oddaljenem računalniku 6.7.1 Telnet 6.7.2 rlogin 6.8 TeX in LaTeX 6.8.1 LaTeX 2.09 6.8.2 Slovenska pravila za deljenje besed 6.8.3 LyX 6.8.4 Pregled besedila na zaslonu 6.8.5 Stvarna kazala 6.9 groff 6.10 Perl 6.11 Črkovanje: ispell 6.12 Pretvarjanje med različnimi kodiranji 6.13 Drugi programi 6.13.1 Pregledovalnik less 6.13.2 Koledar gcal 7. Tiskanje 7.1 Tiskalniki, ki podpirajo ISO Latin 2 7.2 Tiskalniki, ki podpirajo kak drug nabor z našimi znaki 7.3 Tiskalniki, ki podpirajo kak drug nabor z našimi znaki II 7.4 Tiskalniki PostScript 7.4.1 ogonkify 7.4.2 GNU enscript 7.4.3 a2ps 8. Linux v Sloveniji 8.1 Skupina uporabnikov Linuxa 8.2 Strežniki FTP 8.3 Usenet 8.4 Zastopniki za Linux 9. O tem spisu 9.1 Opombe k drugi izdaji 9.2 Zahvala 9.3 Vprašanja 9.3.1 Se pravi Slovenian ali Slovene? 9.3.2 Naši znaki v tem spisu 9.4 Uporaba in razširjanje 9.5 Note to English readers ______________________________________________________________________ 1. Uvod 1.1. Kaj je Linux? Linux je izvedba večopravilnega, večuporabniškega operacijskega sistema Unix za osebne računalnike s procesorji Intel (80386, 80486, Pentium, Pentium MMX, Pentium Pro in Pentium II), Digital AXP 21x64, Sun SPARC in Motorola 680x0, v delu pa so priredbe za Power PC, MIPS in ARM. Jedro operacijskega sistema je ob pomoči in sodelovanju številnih zanesenjakov z Interneta napisal Linus Torvalds z univerze v Helsinkih na Finskem. Skupaj s programi iz projektov GNU, X Window System in BSD predstavlja sodobno programsko okolje, enakovredno komercialnim različicam sistema Unix. Linux je prost program, dostopen skupaj z izvorno kodo. Najnovejše različice programja za Linux je moč najti na: Obe mesti sta navadno težko dostopni in zelo zasedeni, zato uporabimo eno od številnih mest, kjer se zrcali vsebina zgornjih dveh; pametno je, da začnemo na katerem od domačih zrcal; našteta so v poglavju ``Linux v Sloveniji''. 1.2. Dogovor o zapisu V tem spisu so zgledi zamaknjeni od roba in izpisani v pisavi fiksne širine, npr. echo "Pozdravljeni" Psevdoimena v zgledih so izpisana s ležečo različico iste pisave, npr. ls datoteka Tu se od bralca ali bralke pričakuje, da bo psevdoime datoteka nado­ mestil(-a) z dejanskim imenom datoteke. Z znakom ~ se po ustaljenem običaju na sistemih Unix označuje osnovno področje uporabnika (za uporabnika z imenom uporabnik je to navadno /home/uporabnik). Nanj kaže tudi sistemska spremenljivka $HOME. Nadalje je za nastavitve spremenljivk okolja v tem spisu vseskozi uporabljan zapis, ki se uporablja v Bournovi ukazni lupini in njenih izpeljankah (Kornova lupina, lupina bash). Bralec ali bralka, ki uporablja ukazno lupino C (csh ali tcsh), bo znal(a) sam(a) prevesti primere SPREMENLJIVKA=vrednost; export SPREMENLJIVKA (ali celo export SPREMENLJIVKA=vrednost, kar dopušča bash) v analogne setenv SPREMENLJIVKA vrednost 2. Za nestrpne To poglavje ponuja nekakšna ``Izbrana poglavja iz slovenskega HOWTO'' za tiste, ki se jim zdajle mudi, da bi lahko bodisi v znakovnem, bodisi v grafičnem načinu, takoj začeli tipkati z našimi znaki, k branju celotnega spisa pa bi se vrnili kdaj kasneje in v miru. Omenim naj edino še to, da sta prilagoditev konzole in prilagoditev okolja X Window System povsem neodvisna. 2.1. Naši znaki na konzoli Trije koraki so potrebni, da znakovni terminal (ki se mu iz razlogov, po starosti daleč presegajočih povprečnega uporabnika Linuxa, včasih pravi tudi konzola) prilagodimo za delo z našimi znaki: 1. Omogočiti moramo prikaz naših znakov v znakovnem načinu. Opisano v razdelku ``Konzola'' poglavja ``Prikaz naših znakov na zaslonu''. 2. Nastaviti moramo ustrezno preslikavo tipkovnice. Opisano v razdelku ``Konzola'' poglavja ``Tipkovnica''. 3. Ukazno lupino moramo nastaviti tako, da bo dovoljevala vnos osembitnih znakov. Opisano v razdelku ``bash'' v podpoglavju o ukaznih lupinah (ali v razdelku ``tcsh'', če uporabljate to ukazno lupino). 2.2. Naši znaki v okolju X Window System Z okoljem X Window System je podobno kot s konzolo, le pot je malenkost daljša. 1. Namestiti moramo naše znake in pripraviti grafično okolje X Window System do tega, da jih bodo uporabljali. Opisano v razdelku ``X Window System'' poglavja ``Prikaz naših znakov na zaslonu''. 2. Nastaviti moramo preslikavo tipkovnice. Opisano v razdelku ``X Window System'' poglavja ``Tipkovnica''. 3. Nastaviti moramo terminalski emulator, da bo prikazoval naše znake. Opisano v razdelku ``xterm'' poglavja o terminalskih emulatorjih. 4. Ukazno lupino moramo nastaviti tako, da bo dovoljevala vnos osembitnih znakov. Opisano v razdelku ``bash'' v podpoglavju o ukaznih lupinah (ali v razdelku ``tcsh'', če uporabljate to ukazno lupino). 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. 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. 3.2.1. 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: Datoteka ISO8859-2-bdf.tar.gz vsebuje najpopolnejši nabor pisav, kodi­ ranih po ISO 8859-2, večino uporabnih pisav pa vsebuje tudi xfonts- iso2-0.84.tar.gz. Po običajnem postopku (tar -xzf ...) jih dekomprimi­ ramo 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: Še več pisav je zbrala češka skupina, paket RPM (vsebino namestimo z ukazom rpm -Uvh ...) najdemo na 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. 3.5.1. 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. 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. 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 podrob­ nosti 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" 3.5.2. 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. 4. Tipkovnica 4.1. Konzola Nabor znakov za sistemsko konzolo in tabele za premapiranje tipkovnice najdemo v paketu kbd Andriesa Brouwerja z univerze v Eindhovnu, Nizozemska. Avtor paketa je napisal tudi Keyboard HOWTO, kjer si lahko o tej temi preberemo več. Paket je del vseh običajnih distribucij in se naloži avtomatično ob namestitvi sistema. V starejših distribucijah Slackware se je prevedeni paket imenoval keytbls. Namestimo ga enako kot druge pakete, z ukazom pkgtool ali installpkg. Paket kbd vsebuje tabelo za slovensko tipkovnico s 102 tipkama in zaslonske pisave za kodni nabor ISO Latin 2. Vsi, ki iz kakršnihkoli razlogov uporabljajo drugačno tipkovnico, si lahko na osnovi zgledov v /usr/lib/kbd/ pripravijo svojo. Marko Maček je že pripravil tabelo preslikav za ameriško tipkovnico s 101 tipko: Celoten postopek za izbiro zaslonske pisave, tabele za tipkovnico in uporabo le-te je takšen: ______________________________________________________________________ # Izberemo pisavo z naborom ISO Latin 2 v velikosti 16 pik setfont lat2-16 # Naložimo prireditveno tabelo za slovensko tipkovnico... loadkeys slovene # ...in jo izberemo echo -e -n "\\033(K" > /dev/console ______________________________________________________________________ Distribucija Debian pozna tudi ukaz kbdconfig, ki opravi isto. Če želimo, da je takšna nastavitev trajna, dodamo zgornjih šest vrstic v nastavitveno datoteko /etc/rc.d/rc.local, ki se izvede ob zagonu operacijskega sistema. Če ob tem omogočimo še vnos osembitnih znakov v ukazni lupini ``bash'', je to najnujnejše, kar je potrebno za pisanje po slovensko v tekstovnem načinu. 4.2. X Windows System V X Windows System lahko spreminjamo razpored tipk na tipkovnici z ukazom xmodmap. Tabelo preslikav za običajno tipkovnico s 102 ali 105 tipkami, kot je v rabi pri nas, lahko snamemo z Uporaba je enostavna: xmodmap Xmodmap.sl.pc102 Preslikava tipkovnice velja, dokler ne zapustimo okolja X Window Sys­ tem. Zamenjamo jo lahko s ponovnim ukazom xmodmap, ki mu kot argument podamo datoteko s tabelo preslikav. Tabela za standardno ameriško tip­ kovnico navadno najdemo kot /usr/X11R6/lib/X11/etc/xmodmap.std. Če je ne, si jo lahko pripravimo sami: preden naložimo slovensko preslikavo tipkovnice, poženemo: xmodmap -pke > Xmodmap.us To potem naložimo enako kot slovensko tabelo. Če želimo ta razpored trajno namestiti, preimenujemo datoteko bodisi v ~/.Xmodmap (osebna nastavitev) ali pa v sysmodmap=/usr/X11R6/lib/X11/xinit/.Xmodmap (skupna nastavitev za vse uporabnike; ponekod se ta datoteka imenuje tudi /etc/X11/xinit/Xmodmap), ki se avtomatično naloži ob vsakem zagonu X Window System. Če se ne naloži, preverite svojo datoteko ~/.xinitrc. V njej mora biti nekaj takega kot: ______________________________________________________________________ usermodmap=$HOME/.Xmodmap sysmodmap=/usr/X11R6/lib/X11/xinit/.Xmodmap if [ -f $sysmodmap ]; then xmodmap $sysmodmap fi if [ -f $usermodmap ]; then xmodmap $usermodmap fi ______________________________________________________________________ Ob preslikavi tipkovnice ne pozabimo na to, da moramo tudi v ukazni lupini omogočiti vnos osembitnih znakov (poglavje ``Ukazne lupine''). 4.2.1. Xks Češko podjetje Informatica s.r.o. se je problema preslikave tipkovnice lotilo drugače. Njihov produkt Xks je strežnik, ki se vgnezdi med strežnik X in namenske programe ter prestreže vse dogodke KeyPress ter jih po potrebi modificira. Ta rešitev deluje tudi pri slabo napisanih programih, pri katerih preslikava z xmodmap ne deluje, obljublja pa tudi rešitev za aktivacijo nemih tipk (tipke v zgornji vrstici slovenske tipkovnice lahko v kombinaciji s tipko AltGr delujejo kot neme tipke). Xks je program na pokušino (shareware); registracija izvedbe za Linux stane 900 čeških kron (okrog 4500 tolarjev). Pisec teh vrstic se zaenkrat še ni utegnil ukvarjati s njim, bi pa z veseljem vključil na to mesto izkušnje drugih. 5. Slovenski locale Z izrazom locale označujemo skupek lastnosti programskega okolja, odvisnih od jezikovnega in kulturnega okolja uporabnika. Mednje sodi informacija o tem, kateri znaki so črke in kakšen je njihov vrstni red, način izpisa datuma in ure, izbiro ločila v zapisu decimalnih števil (vejica oz. pika), zapis valute in sporočila programov uporabniku. Programski vmesnik za internacionalizacijo in lokalizacijo na sistemih, združljivih s standardi POSIX, je definiran v standardu ISO/IEC 9899 (Programski jezik ISO C) ter IEEE 1003.2 (POSIX.2). Informacije, pomembne za lokalizacijo, razvršča v šest kategorij: ˇ LC_CTYPE (znaki, ki predstavljajo abecedo) ˇ LC_COLLATE (vrstni red znakov v abecedi) ˇ LC_TIME (izpis datuma in ure) ˇ LC_NUMERIC (izpis številčnih vrednosti) ˇ LC_MONETARY (izpis valute) ˇ LC_MESSAGES (komunikacije z uporabnikom) LC_ALL zajema vseh naštetih šest kategorij. Medtem ko projekt GNU pri izvedbi prvih petih kategorijah zvesto sledi standardu, se je v šesti odločil za njegovo razširitev. Standardizacijski komite se namreč ni mogel zediniti okrog izvedbe ravnanja s prevodi sporočil, zato je standard v tej točki praktično neuporaben: določa le prevode za ``da'' in ``ne''. Projekt GNU je zato razvil svojo metodo, to je paket GNU gettext. Prevedeni katalogi sporočil, ki jih uporablja mehanizem gettext se navadno nahajajo v podimenikih imenika /usr/share/locale/. Sledi nekaj primerov odziva poslovenjenega sistema. Primeri so pobrani s HP-UX, ker je lokalizacija Linuxa zaenkrat še v teku -- knjižnica GNU libc 2.0 in kasnejše izpeljanke sicer že ponujajo okvir za lokalizacijo, izvedba pa zaenkrat še zaostaja, zato koncepta zaenkrat še ne moremo ilustrirati s programi iz paketov textutils, fileutils ipd. Z nastavitvijo spremenljivke LANG na slovenski locale se spremenijo vsi prilastki: ~> date Sat Oct 19 22:32:04 METDST 1996 ~> LANG=sl_SI.iso88592 date Sob, 19 okt 1996 22:32:04 Lahko pa jih spreminjamo tudi vsakega posebej. Če želimo obdržati angleške izpise, obliko datuma, decimalno piko ipd., želeli pa bi, da gre urejanje črk po slovenski abecedi, spremenimo samo LC_COLLATE: ~> sort abc.tex abc abca abd abč ~> LANG=C LC_COLLATE=sl_SI.iso88592 sort abc.tex abc abca abč abd Seveda LC_COLLATE ne reši vseh problemov v zvezi z urejanjem. Pri razvrščanju kastiljskih kraljev bi, recimo, želeli, da pride Alfonz IX. za Alfonzem VIII. in pred Alfonzem X. Kar pa je verjetno že prob­ lem za umetno inteligenco... Spremenljivka LANG ima v splošnem obliko: LANG=jezik[_država[.nabor]] Pri tem je jezik dvočrkovna koda jezika, kot jo določa standard ISO 639, država pa dvočrkovna koda države, določena s standardom ISO 3166. Zgled za slovenščino, kot se govori v Sloveniji in piše s kodnim naborom ISO 8859-2, je torej LANG=sl_SI.iso88592 Določitev države in nabora znakov je neobvezna (pomembna je seveda pri jezikih, ki se govorijo v več državah; kakšen locale uporabljajo Slovenci v zamejstvu, je piscu teh vrstic neznano), tako lahko pišemo na kratko LANG=sl 5.1. Programiranje z GNU gettext Paket GNU gettext ponuja nekaj orodij za lokalizacijo: ˇ xgettext, ki iz izvorne kode izlušči sporočila ˇ msgcmp, ki primerja dva kataloga sporočil ˇ msgmerge, združi star preveden katalog sporočil z novim, neprevedenim ˇ msgfmt, ki prenosen katalog sporočil prevede v binarno obliko ˇ msgunfmt, obratno od msgfmt S kratkim zgledom ilustrirajmo, kako poteka pisanje lokaliziranega programa s paketom GNU gettext. 1. Najprej napišemo program zgled.c. Pri pisanju programa že vključimo mehanizme internacionalizacije: ___________________________________________________________________ #include #include #include #define PACKAGE "zgled" #define LOCALEDIR "/usr/local/share/locale" char main() { setlocale (LC_MESSAGES, ""); bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); printf("%s\n", gettext("This is a short example.")); printf("%s\n", gettext("Author: Primoz Peterlin")); return(0); } ___________________________________________________________________ 2. Z ukazom xgettext iz izvorne kode izluščimo izpise na zaslon: xgettext zgled.c S tem smo ustvarili datoteko messages.po. To je običajna besedilna datoteka, ki vsebuje skelet prevodov sporočil. 3. Datoteko messages.po z urejevalnikom dopolnimo s prevodi, recimo takole: ___________________________________________________________________ # Slovenski prevod zgleda # Primož Peterlin, # msgid "" msgstr "" "Project-Id-Version: zgled 1.0\n" "POT-Creation-Date: 1998-12-06 14:05:53+0100\n" "PO-Revision-Date: 1998-12-06 15:00:00+0100\n" "Last-Translator: Primoz Peterlin \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-2\n" "Content-Transfer-Encoding: 8bit\n" "Xgettext-Options: \n" "Files: zgled.c\n" #: zgled.c:13 msgid "This is a short example." msgstr "To je kratek zgled." #: zgled.c:14 msgid "Author: Primoz Peterlin" msgstr "Avtor: Primož Peterlin" ___________________________________________________________________ 4. Popravljeno prenosljivo datoteko s sporočili (angl. portable message file) messages.po prevedemo v binarno obliko: msgfmt -v -o zgled.mo messages.po 5. Binarno datoteko prestavimo v imenik, kjer jo bo gettext našel: mv zgled.mo /usr/local/share/locale/sl/LC_MESSAGES 6. Program prevedemo in povežemo s knjižnico libintl.a: gcc -o zgled zgled.c -lintl 7. Pa poskusimo, kakšna je razlika! LANG=C ./zgled LANG=sl ./zgled LC_ALL=sl ./zgled LC_MESSAGES=sl ./zgled LC_CTYPE=sl ./zgled LC_ALL=sl_SI.iso88592 ./zgled V prvem in zadnjem primeru je izpisano sporočilo angleško, v predzad­ njem pa verjetno tudi. V prvem zato, ker smo eksplicitno zahtevali locale ``C'', v zadnjem pa zato, ker smo zahtevali locale ``sl_SI.iso88592'', v katerem ni prevoda sporočil -- to namreč obstaja za locale ``sl''. V predzadnjem zgledu smo uporabili pravi locale, a irelevantno kategorijo LC_CTYPE namesto uporabljene LC_MESSAGES. Še dve opombi: imenik, kamor prestavimo katalog sporočil, se mora ujemati z imenikom LOCALEDIR, navedenim v izvorni kodi. Težavo, da GNU gettext razume ``sl'' in ``sl_SI.iso88592'' kot različna locala, je pisec teh vrstic rešil z simbolno povezavo v imeniku /usr/local/share/locale: ln -s sl sl_SI.iso88592 5.2. Poslovenjenje katalogov sporočil V teku je internacionalizacija projekta GNU (programi iz projekta GNU predstavljajo znaten del celotnega sistema Linux in večino tistega, s čimer se sooča končni uporabnik). Trenutno so v slovenščino že prevedena sporočila za naslednje pakete GNU: enscript, fileutils, gettext, grep, hello, recode in tar. Z nastavitvijo spremenljivke okolja LANG=sl bodo programi iz teh paketov izpisovali slovenska sporočila namesto angleških. Razprava o poslovenjenju projekta GNU poteka med prejemniki elektronskega spiska , nanj se lahko naročite tako, da na naslov sl-request@li.org pošljete vrstico subscribe v telesu sporočila. Pomoč prostovoljcev, ki bi prevedli preostale pakete, ali pa se samo zavezali za vzdrževanje že prevedenih, je nadvse zaželena. Vabljeni! 6. Poslovenjenje različnih programov Na tem mestu bi se v idealnem svetu opis poslovenjenja Linuxa lahko končal. Povedali smo vse potrebno o vnosu in izpisu naših znakov, ter kako z definiranjem spremenljivk okolja programom dopovemo, da delamo s slovenskimi besedili. To poglavje je takorekoč v celoti posvečeno izjemam -- programom, ki iz takšnih ali drugačnih razlogov ne uporabljajo lokalizacijskih spremenljivk, alternativnim metodam za vnos ali izpis znakov, ki v izjemnih primerih (npr. če nimamo tipkovnice s slovenskimi znaki) lahko vseeno pridejo prav, in podobnemu. 6.1. Ukazne lupine 6.1.1. bash Nastavitve ukazne lupine bash so v datoteki ~/.inputrc (ki jo po potrebi ustvarimo): set meta-flag on set convert-meta off set output-meta on Te tri vrstice je morda pametno dodati tudi v /etc/skel, tako da jih podedujejo tudi vsi na novo ustvarjeni uporabniki. Tole se sicer ne navezuje na slovenščino, ko ste že pri poslu, si lahko življenje olajšate še s tem, da tipkam Home, Delete in End vrnete njihov običajni pomen: v isto datoteko (~/.inputrc) dodate še vrstice "\e[1~": beginning-of-line "\e[3~": delete-char "\e[4~": end-of-line 6.1.2. tcsh Vnos osembitnih znakov omogočimo, če v nastavitveno datoteko (/etc/csh.login za skupne nastavitve oz. ~/.tcshrc ali ~/.cshrc za osebne nastavitve) dopišemo vrstico: setenv LC_CTYPE sl_SI.iso88592 Med nami: kaže, da je ukazni lupini tcsh povsem vseeno, na kaj nastavite spremenljivko LC_CTYPE, samo da ni nedefinirana. Pazite: ukazna lupina mora biti prevedena z vklopljeno izbiro ``8-bit''! To lahko preverite z ukazom ``set'': rufko:~% set ... version tcsh 6.06.00 (Cornell) 1995-05-13 (i386-intel-linux) options 8b,dl,al rufko:~% Pomemben je tisti ``8b''. Če se pri vas ne izpiše, vam verjetno ne preostane drugega, kot da snamete izvorno kodo in jo prevedete. 6.2. Terminalski emulatorji 6.2.1. xterm V datoteki ~/.Xresources (osebna nastavitev) ali pa v datoteki /usr/lib/X11/app-defaults/XTerm (skupna nastavitev) določimo pisave, ki jih uporablja XTerm. Izberemo pisavo, ki ima vse znake enako široke, npr. ,,fixed`` ali ,,Courier``, in je kodirana po razporedu ISO Latin 2. Zgled: XTerm*font: -*-fixed-medium-r-normal--16-*-iso8859-2 XTerm*boldFont: -*-fixed-bold-r-normal-sans-16-*-iso8859-2 Primerne pisave lahko izpišemo z ukazom xlsfonts (glej še razdelek ``X Window System'' poglavja ``Prikaz naših znakov na zaslonu''): xlsfonts -fn '*-fixed-*-iso8859-2' 6.2.2. rxvt Po podatkih v češkem HOWTO rxvt zaenkrat (razvojna izdaja 2.4.6) ne deluje z našimi znaki brez posegov v izvorno kodo. Potrebne posege najdete v ``Czech HOWTO'' (ki ni del arhiva LDP; glejte razdelek ``Zahvala'', kje ga najdete). 6.3. Pisarniški paketi 6.3.1. WordPerfect (Jaka Mele, Vse naredim pod Linuxom!, Win.Ini, l.6, št.9, str.60) WordPerfect ima vse potrebne znake že v svoji tabeli. Vse, kar moramo napraviti, je da za naše črke definiramo makroukaze. Recimo, da bi radi definirali črko Š (velika črka S s strešico). Pričnemo s snemanjem makroukaza (recimo mu Scaron), skočimo v tabelo znakov, v njej izberemo črko Š, zaključimo makro in nazadnje pri nastavitvah povežemo makro z izbrano tipko. (Jaka Mele, Message-id: ---------- Forwarded message ---------- Date: Thu, 24 Dec 1998 11:04:33 +0000 From: "[ALAMUN ALEN" To: jaka.mele@lugos.si Subject: WordPerfect SLO tipkovnica Hi! Daj prosim spravi to v mojem imenu na lugos listo, ker je verjetno trazena roba. Uspelo mi je definirati SLO tipkovnico brez makrojev. Sem na fax-u pa ne morem poslati jaz na Lugos listo. LP, Alen Datoteko SLO.WGK s prireditveno tabelo za slovensko tipkovnico najdete na (Andrej Komelj, Message-id: <19981224182341.A3794@perun.mist.si>) Odgovor na vprasanje: "Kako je s podporo sumnikom v WP-ju 8.0 pod Linuxom?" se glasi: SLABO. 1. Resitev v obliki "insert symbol -> multinational" je v teoriji uporabna, vendar... Hja, multinational znaki so v WP Multinational fontu, le-ta pa je najbolj podoben Roman-WP fontu. Ima "serife", zato Helvetica in Zurich odpadeta. Vendar se tudi pri Roman-WP pojavijo tezave, ce se le-tega uporablja v bold, italic ali bold-italic obliki. 2. Resitev v obliki uporabe Type 1 fontov z definiranimi slovenskimi znaki (kje se jih dobi? odg: poglejte si v Slovenian-HOWTO, ali jih skopirajte iz OS/2-ja, ce ga imate) pa zal tudi odpade, ker "brezplacna" verzija WP-ja nima vsebovanega font installerja (xwpfi) in zato kakrsno koli dodajanje fontov v wp.drs odpade... Skratka, tako kot je nekdo ze napisal; brezplacen-in-neoskubljen WP je ena velika potegavscina... Za Americane je mogoce se nekako uporaben, za povprecnega Slovenca, ki pise tudi slovenska besedila, pa je popolnoma brez vrednosti. :-( Nazaja k LyX-u in ze sestavljenim vzorcem. :-) Mimogrede, kaj se je zgodilo z WP-jem?!? Dokler se ni bil v lasti Corel-a, je znal postavljati stresice na katere koli znake v katerem koli fontu. Z WP-jem 6.0 za DOS sem tako pisal tekste v TrueType, Type 1 in CG fontih... POVSOD sem lahko uporabljal sumnike. Huh, "napredek" pa tak. -- Kome. 6.3.2. Star Office (Jaka Mele, Vse naredim pod Linuxom!, Win.Ini, l.6, št.9, str.60) StarOffice je malce težavnejši, zato, ker rabi dodatne Type1 fonte, pa vendarle povejmo recept še zanj. Kot prvo si torej moramo dobiti slovenske oziroma latin2 pisave (pfb, afm, fonts.dir in fonts.scale) iz recimo ftp strežnika društva uporabnikov linuxa slovenije ftp://ftp.lugos.si/pub/lugos/arhiv/Type1-Latin2-Fonts/, datoteki l2afm004.zip in l2pfb004.zip). Nato arhiva odpremo v /usr/lib/X11/fonts/Type1.Latin2/, ter ta imenik dodamo v spisek imenikov s pisavami, ki jih uporabi XWindow strežnik. To naredimo tako, da v datoteko /etc/X11/XF86Config dopišemo: FontPath "/usr/X11R6/lib/X11/fonts/Type1.Latin2/" Za tem poženemo xset fp+ /usr/X11R6/lib/X11/fonts/Type1.Latin2/ ter še xset fp rehash. Nato je potrebno v direktoriju /usr/local/StarOffice3-1/x3p/fontmetrics/ za .afm datoteke narediti povezave iz /usr/lib/X11/fonts/Type1.Latin2/. Podobno naredimo še za direktorij /usr/local/StarOffice3-1/x3p/pssoftfonts/, le da sem povežemo .pfb datoteke. Skoraj smo že na koncu, v datoteko /usr/local/StarOffice-3.1/xp3/psstd.fonts dodamo po vzoru že dodanih pisav v datoteki fonts.dir iz Latin2 področja, vse nove pisave, tako, da namesto npr. arial.pfb pride arial, namesto -0-0-0-0 pa -%d-%d-%d-%d... Saj se takoj vidi. Na koncu si premapirajmo še tipkovnico in sicer s programom xmodmap, tako da izvršimo xmodmap xmodmap.si. Če imate starejši Xwindow sistem, si boste morda morali xmodmap.si še popraviti, da vam bosta tipki Backspace in Delete delali normalno, sicer pa samo poženete swriter3 in uživate v dodatnih slovenskih pisavah. 6.3.3. Applixware (Boris Požar, Message-Id: <346044BF.FE97E3AF@guest.arnes.si>) Z Lugosovega strežnika snamemo pisave TrueType v kodnem naboru ISO 8859-2. Potem jih kot root s FontManagerjem dodamo v katalog pisav in zadeva je rešena. 6.4. Urejevalniki 6.4.1. GNU emacs Emacs je, tako kot njegov avtor, kontroverzni Richard M. Stallman, urejevalnik, glede katerega ljudje niso indiferentni: ali ga obožujejo, ali pa sovražijo. Emacs je več kot urejevalnik; je takorekoč način življenja. V njem lahko pišete programe, iz njega poganjate prevajalnik, pišete besedila, poganjate črkovalnik, poganjate TeX, berete pošto in novice... Ko enkrat v resnici dobro obvladate Emacs, imate realne možnosti, da se vam še dobršen del naslednjega stoletja ne bo treba naučiti nobenega novega urejevalnika. Dokazano pa ljudje shajajo tudi brez njega. 6.4.1.1. GNU emacs 20 Z zadnjo izdajo urejevalnika Emacs in standardno slovensko tipkovnico je prilagoditev posebno enostavna. Vse, kar potrebujemo, je ______________________________________________________________________ ;;; Turn on Latin-2 both as input and output method (Emacs 20.* ;;; and onwards) (set-language-environment "Latin-2") ______________________________________________________________________ Kasneje lahko način Latin-2 izberemo za vnos in izpis v menuju Mule / Set Language Environment / European / Latin-2. 6.4.1.2. Starejše izdaje programa GNU emacs Privzeta nastavitev urejevalnika je omejitev na sedembitne znake (ASCII). Nastavitev spremenimo tako, da v datoteko z nastavitvami dodamo naslednjih nekaj vrstic: ______________________________________________________________________ ;; Omogočimo izpis znakov s kodo večjo od 127 (standard-display-european t) ;; Omogočimo vnos znakov s kodo večjo od 127 (set-input-mode (car (current-input-mode)) (nth 1 (current-input-mode)) 0) ______________________________________________________________________ Prilagoditev Emacsa je možno izvesti v eni od naslednjih datotek z nastavitvami: ˇ /usr/lib/emacs/site-lisp/site-start.el (skupne nastavitve) ˇ ~/.emacs (osebne nastavitve) ˇ /usr/lib/emacs/site-lisp/default.el (skupne nastavitve) Z vnosom in izpisom naših znakov seveda še ni konec zgodbe o prilagoditvi Emacsa za slovenščino. Želimo na primer tudi, da se ukaza forward-word in backward-word ne bosta zatikala na naših znakih, ter da tudi za naše znake pravilno teče pretvarjanje med velikimi in malimi črkami. S starejšimi izdajami Emacsa to ni vedno povsem trivialno. Bralcu bo v veliko pomoč zbirka nasvetov Slovenščina in računalniki avtorja Aleša Koširja, v kateri je programu GNU emacs so posvečeno obširno poglavje. Najdete jo na 6.4.2. crisp Crisp je urejevalnik v duhu urejevalnika Brief z burno zgodovino. Napisal ga je Paul Fox iz Anglije in ga distribuiral kot ``program na pokušino'' (shareware). Zadnja takšna različica je 2.2e iz leta 1991 in je po nekaterih vesteh avtor ne podpira več. Novejše (trenutno 5.1) pa trži podjetje Vital, Inc. iz Teksasa, ZDA. Crisp je nekako bližje pecejevskemu duhu, kot pa sta Emacs in Vi; če se nobenega od teh dveh ne morete navaditi, je morda Crisp prava izbira. Privzeta nastavitev urejevalnika Crisp 2.2e je, da znakov s kodami od 127 dalje ne prikaže, ampak izpiše njihovo šestnajstiško kodo, ki jo uvede z znakoma \x. Pomaga, če naložimo paket z izvorno kodo Crisp in v datoteki $(SRC)/crisp2.2e/src/crunch/tty/xterm.cr popravimo drugi argument funkcije set_term_features() iz NULL na "%c". Popravljeni makroukaz prevedemo: crunch xterm.cr Rezultat, popravljeni xterm.cm, postavimo med ostale, navadno v imenik /usr/local/lib/crisp/macros/tty. Makro xterm velja, kot bi iz imena sami uganili, za Crisp, pognan v oknu XTerm znotraj X Window System. Enaka intervencija piscu teh vrstic ni uspela na linux.cr (konzola) in xcrisp.cr (različica Crisp za X11). Poleg tega se je na starejši verziji Linuxa (1.0.8) crunch pritoževal nad predprocesorjem za C, /lib/cpp. Pomagala je logična povezava: ln -s /usr/lib/gcc-lib/i486-linux/2.5.8/cpp /lib/cpp Aleš Košir je napisal za Crisp makro slovene: Z njim lahko vnašamo naše znake tudi na tipkovnicah, ki nimajo primernih tipk na način: namesto č vtipkamo "c, makro pa pretvori zaporedje v ustrezen znak. Poleg ISO Latin 1 podpira še nekaj drugih kodiranj, ki so v uporabi v naših krajih. Navodila za uporabo so na voljo tudi prek WWW: Del distribucije Caldera OpenLinux je tudi ``lahka'' izvedba urejevalnika Crisp, CRiSP LiTE. Caldera ponuja tudi možnost kasnejše ugodnejše nadgraditve na polno izvedbo. CRiSP LiTE nima zgoraj opisanih težav z vnosom osembitnih znakov. 6.4.3. vi Urejevalnik vi izvira iz sive davnine Unixa. Zaradi težav z licenčnino najdete na sistemih Linux namesto originalnega Vi navadno urejevalnik vim (Vi IMproved) avtorja Brama Moolenaarja, včasih pa tudi ``elvis'', delo Steva Kirkendalla, ali nvi iz distribucije BSD 4.4. Ideje, na katerih temelji ``vi'' so v temeljih ortogonalne na vse, kar ste se o urejevalnikih naučili pod MS-DOS. Kljub temu pa je glede na to, da je ``vi'' edini urejevalnik, ki zanesljivo obstaja na čisto vsakem Unixu, pametno poznati nekaj osnovnih ukazov za delo z njim. Po izkušnjah pisca tako originalni vi kot tudi vim sama po sebi brez težav prepuščata osembitne znake. Težave lahko včasih povzročajo zunanji programi, ki jih kličemo iz urejevalnika (npr. fmt za poravnavanje besedila). Navadno pomaga, če v ~/.profile določimo spremenljivko LC_CTYPE (glej poglavje ``Slovenski locale''). 6.5. Elektronska pošta 6.5.1. Pine Pine najprej prebere skupne nastavitve iz /usr/local/lib/pine.conf (ali /etc/pine.conf, zatem pa še osebne nastavitve iz ~/.pinerc. V enem ali drugem poiščemo niz character-set in postavimo to spremenljivko na ISO-8859-2: ______________________________________________________________________ ... # character-set should reflect the capabilities of the display # you have. Normal default is US-ASCII. Typical alternatives # include ISO-8859-x, where x is a number between 1 and 9. character-set=ISO-8859-2 ... ______________________________________________________________________ 6.5.2. elm Opozorilo: pisec že dolgo ne uporablja več tega programa in zapisanega ni preveril. Danski in nemški HOWTO trdita, da je bodisi dovolj v ukazni lupini postaviti spremenljivko LANG na vrednost iso_8859_1, bodisi v konfiguracijski datoteki ~/.elm/elmrc nastaviti vrednosti naslednjih spremenljivk: ______________________________________________________________________ ... charset=iso-8859-1 displaycharset=iso-8859-1 textencoding=8bit ... ______________________________________________________________________ Vse ISO 8859-1 bi bilo pri nas verjetno potrebno nadomestiti z ISO 8859-2. Še enkrat prosim koga, ki ta program v resnici uporablja, da opiše svoje izkušnje. 6.5.3. Netscape Mail V Netscape Mail 4.06 je možno pisati naše znake v telesu sporočila, ne pa tudi v glavi. Ko imamo enkrat nameščene naše pisave in urejeno preslikavo tipkovnice (razdelka ``Pisave pod X11'' in ``Tipkovnica pod X11''), le še v menuju View poštnega programa izberemo ``Encoding'', tam pa ``Central European (ISO-8859-2)''. Vesel bom opisa izkušenj z drugimi izdajami programa Netscape Mail. 6.6. Svetovni splet 6.6.1. Lynx Lynx pozna od izdaje 2.5 dalje tudi kodno stran ISO 8859-2. Nastavimo jo lahko na enega od treh načinov. Prvi je, da izberemo O)ptions, zatem pa C)harset, ter z pritiskanjem na kurzorske puščice izberemo željeni nabor znakov. Drugi je, da v datoteki ~/.lynxrc (osebna nastavitev) nastavimo character_set=ISO Latin 2 In zadnji je, da v datoteki /usr/lib/lynx.cfg (skupna nastavitev) CHARACTER_SET:ISO Latin 2 6.6.2. Netscape Navigator (Metod Koželj, Message-id: ) Netscape Navigator, pa tudi brkljalnik iz Netscape Communicator, uporabljata nabor znakov, ki ga nudi X Windows System. Za prikaz naših znakov je torej najprej namestiti pisave za X11 (poglavje ``Pisave pod X11''). Ko Navigator zaženemo, sam ugotovi, da so na voljo tudi pisave za 'Central European (ISO-8859-2)'. Če pregledujemo stran, ki brkljalniku pravilno sporoči uporabljeni nabor znakov, potem Navigator avtomatično uporabi pisavo s pravim kodnim naborom. Seveda lahko spremenimo osnovno velikost črk ali pa obliko za proporcionalno pisavo. To storimo tako, da v 'Edit / Preferences / Appearance / Fonts' določimo, da spreminjamo nastavitve za srednjeevropske pisave ('For the Encoding / Central European (iso-8859-2)'), potem pa izberemo, s katero pisavo naj Navigator prikazuje tekste. Navigator nam sam ponudi le pisave s pravim naborom znakov. Če pregledujemo strani, ki imajo sicer pravilen razpored črk (razpored ISO 8859-2 in ne Windows-1250), pa Navigator ne uporabi pisave s pravim razporedom črk, lahko razpored preklopimo ročno z izbiro ,,View / Encoding / Central European (ISO-8859-2)``. Ob izbiri pisave s pravilnim razporedom črk in ob pravilnem razporedu tipk na tipkovnici lahko uporabljamo naše črke tudi pri pisanju v modulu 'Page Composer'. Netscape Communicator 4.06 in novejši znajo na Unixih, ki imajo nameščene pisave ISO 8859-2, prikazati tudi strani, napisane v kodni strani Microsoft CP1250, označene kot windows-1250 v glavi. 6.6.3. Amaya (Andraž Hvalica, Message-id: <374E958D.ADD55B49@amis.net>) Torej takole je s to Amayo: šumniki (in ostale reči - preizkusil sem tudi nemške preglase) čisto lepo delujejo. V čem je štos? Verjetno gre za hrošča, morda ga tudi ni več, imam Amayo 1.4a, čisto možno je, da je zunaj že kaj novejšega... Vse, kar je treba narediti je, da pri datoteki, ki jo začneš pisati, nastaviš ,,Attributes / lang / ISO_Latin_2``, vendar mora biti v datoteki že en znak, ki ga je treba še prej označiti. Potem so šumniki vidni v Amayi. Vendar je tukaj še nekaj takega kot kavelj 22 - v Navigatorju je treba imeti nastavljeno ,,View / Character Set / Central European (ISO 8852-2)``. To imamo Slovenci itak vsi, ampak to vseeno ni čisto v redu. Amaya bi morala v html datoteko zapisati character=iso-8859-2, vendar tega ne naredi. Pač pa napiše , kar, vsaj jaz, prvič vidim. (Andraž Hvalica, Message-id: <3788BBF0.1041C481@amis.net>) Z interneta sem potegnil novo Amayo 2.1 in si ogledal, kako je s podporo za Latin-2. Približno tako trapasto je, kot pri eni od starejših različic, ki sem jo že imel. Še zmerom velja, da je treba napisati katerikoli znak, preden program sploh reagira na naše nastavitve za jezik. Ko vpišemo ta famozni znak, izberemo ,,Attributes / lang...``, izberemo Czech. S tem dosežemo, da program vtipkane znake upošteva kot iso-8852-2, vendar v glavo HTML dokumenta tega ne zapiše. Pač pa napiše: ______________________________________________________________________ ______________________________________________________________________ Kar je brez veze. Vsaj z Navigatorjem kakega efekta nima. Če nimamo sami nastavljenega kodnega zapisa iso 8859-2, šumnikov ne bomo videli. Zato moramo sami v glavo HTML dopisati charset=iso-8859-2; tako so šumniki vidni zmeraj. 6.6.4. Spletni strežniki Opomba: spodnje besedilo je prevod navodil ,,Configuring WWW Server for ISO 8859-2`` http://sizif.mf.uni-lj.si/linux/cee/app/httpd.html, ta pa se v veliki meri naslanjajo na besedilo Marka Martinca ,,Rešitev problema slovenskih šumnikov v HTML dokumentih`` http://www.ijs.si/doc/www-csz.html. 6.6.4.1. Načela 1. Določilo HTTP zahteva, da prenosni protokol HTTP prenaša tok podatkov brez omejitve na nabor ASCII ali izpisljive znake. To vključuje osembitne znake, šestnajstbitne znake kot npr. ISO10646 ali daljnovzhodne jezike, slike, animacije, zvok ipd. 2. Vsebino spisa določa glava MIME (vrstica Content-Type. To je edina informacija o zvrsti informacije, ki jo ima na voljo brskalnik, zato mora odražati pravo vsebino spisa. 3. Privzeto kodni razpored (terminologija MIME/HTTP uporablja izraz ,,nabor znakov``) za spise HTML je ISO 10646 oz. njegova osembitna podmnožica ISO 8859-1. Vsak spletni brskalnik mora biti zmožen prikazati spis HTML, ki uporablja kodni razpored ISO 8859-1. Glava MIME za spise HTML, kodirane po ISO 8859-1, je: Content-Type: text/html 4. Določilo HTTP dovoljuje, da z dodatnim določilom charset v vrstici Content-Type glave MIME izberemo drug kodni razpored. Načeloma je dovoljen katerikoli kodni razpored, registriran pri IANA Character Set Registry. Iz praktičnih razlogov pa je priporočljivo, da se omejimo na naslednje entitete HTTP: charset = "US-ASCII" | "ISO-8859-1" | "ISO-8859-2" | "ISO-8859-3" | "ISO-8859-4" | "ISO-8859-5" | "ISO-8859-6" | "ISO-8859-7" | "ISO-8859-8" | "ISO-8859-9" | "ISO-2022-JP" | "ISO-2022-JP-2" | "ISO-2022-KR" | "UNICODE-1-1" | "UNICODE-1-1-UTF-7" | "UNICODE-1-1-UTF-8" | token Entiteta, ki je definirana pri IANA Character Set Registry, mora pred­ stavljati nabor znakov, kot je bil prijavljen pri IANA. Prazna entiteta implicira nabor ISO 8859-1 (kar vključuje US-ASCII, ki je njegova podmnožica). Spise HTML, kodirane v skladu s kodnim razporedom ISO 8859-2, morajo potemtakem vsebovati v glavi MIME vrstico Content-Type: text/html; charset=ISO-8859-2 Pri tem presledek med podpičjem in charset=ISO-8859-2 ni obvezen. 5. Numerične entitete oblike &#nnn; določajo pismenko s kodo nnn v referenčnem razporedu znakov (ISO 8859-1 oz. ISO 10646), ne pa v trenutno izbranem. Na ta način torej sploh ne moremo uporabljati naših znakov, kodiranih skladno s kodnim razporedom ISO 8859-2, lahko pa uporabimo 16-bitne kode ISO 10646. Črko č (mali C s kljukico) lahko torej zapišemo kot č. In samo tako. 6.6.4.2. Praktični oziri Kdaj je uporaba kodnega razporeda ISO 8859-2 priporočljiva, kdaj pa ne? Znotraj intraneta (notranjega informacijskega sistema) v okolju, kjer se uporablja ISO 8859-2, je morda smiselno ta razpored uporabiti za vse spise. Če pa je informacija namenjena širšemu občinstvu, pa je potrebno vedeti, da je uporabniki zunaj srednje ali vzhodne Evrope, kjer se ta kodni razpored uporablja, informacije morda ne bodo mogli prikazati. Veljavno določilo prenosnega protokola HTTP namreč od spletnih brskalnikov ne zahteva, da prikažejo spise HTML, ki uporabljajo kodni razpored ISO 8859-2. V primeru, da brskalnik ne zmore prikazati strani v zahtevanem kodnem razporedu, lahko ta problem ignorira in stran (nepravilno) prikaže v nekem drugem kodnem razporedu (navadno ISO 8859-1), ali pa ponudi, da spis shranimo na disk. Zato je priporočljivo, da vstopne točke v vaš informacijski sistem ne uporabljajo kodnih razporedov, različnih od ISO 8859-1. 6.6.4.3. Podrobnosti izvedbe Obdelali bomo tri metode, s katerimi lahko spletni strežnik prilagodimo, da pravilno postreže uporabniku s spisom, kodiranim po ISO 8859-2: ˇ določitev nove pripone za statične spise, kodirane po ISO-8859-2, in vezava le-te na na primeren tip spisa v glavi MIME ˇ dinamično prekodiranje spisov ˇ uporaba posebnosti strežnika ali brskalnika 6.6.4.4. Določitev nove pripone za statične spise Ob zahtevku za spis večina spletnih strežnikov izve zvrst statičnih spisov iz pripone datoteke ter na osnovi tega izdela glavo MIME, s katero opremi spis, preden ga izroči prejemniku. Več različnih pripon lahko ustreza isti zvrsti spisa (priponi .jpeg in .jpg na primer obe določata zvrst image/jpeg), obratno pa ne - ena pripona lahko določa kvečjemu eno zvrst spisa. Nobene splošne metode ni, ki bi dovoljevala uporabo pripone .html za spletne spise, kodirane bodisi v skladu s kodnim razporedom ISO 8859-1, bodisi ISO 8859-2, in pričakovala od spletnega strežnika, da se bo nekako odločil, s kakšno glavi MIME bo opremil ene in druge. Ena možnost je vsekakor, da pripono .html trajno vežemo na zvrst spisov HTML, kodirani skladno s kodnim razporedom ISO 8859-2. Ta rešitev ima seveda očitno pomanjkljivost za občinstvo, ki ne more prikazati tega nabora znakov. Tukaj predlagana rešitev izkorišča zmožnost spletnih strežnikov, da določijo novo pripono datoteke in jo vežejo na zvrst spisa text/html; charset=ISO-8859-2 v glavi MIME. To možnost podpira večina spletnih strežnikov. Strežnika W3C ter NCSA httpd (ter vse njune izpeljanke, npr. Apache) uporabljata ukaz AddType v nastavitveni datoteki za vezavo dodatnih zvrsti spisov na nove pripone datotek. Z enostavno in domisleno shemo (glej Rešitev problema slovenskih šumnikov v HTML dokumentih lahko zagotovimo pravilne glave MIME za zvrsti spisov, ki uporabljajo kodne razporede, različne od ISO 8859-1. Če na primer določimo pripono .html-l2 za spise, kodirane skladno s kodnim razporedom ISO 8859-2, moramo v nastavitveni datoteki dodati vrstico: ˇ Strežnik W3C httpd (CERN httpd): v datoteki httpd.conf dodamo: AddType .html-l2 text/html;charset=ISO-8859-2 8bit 1.0 ˇ Strežnik NCSA httpd: v datoteki srm.conf dodamo: AddType text/html;charset=ISO-8859-2 .html-l2 ˇ Strežnik Apache se od NCSA httpd razlikuje samo po manjkajoči piki: v datoteki srm.conf dodamo: AddType text/html;charset=ISO-8859-2 html-l2 6.6.4.5. Dinamično prekodiranje Na vsakem spletnem strežniku, ki podpira vmesnik Common Gateway Interface (CGI) lahko izvedemo dinamično prekodiranje spletnih spisov. Poleg dobrih strani (iz enega samega izvora lahko ponudimo spletni spis v mnogo različnih kodnih razporedih) ima ta metoda tudi slabe: pretvarjanje spisa po eni strani porablja procesorski čas strežnika, po drugi pa dinamičnih spisov posredniki (angl. proxy) navadno ne shranjujejo v medpomnilniku, zato z njimi dodatno obremenjujemo komunikacijske vode. Primera skriptov, ki izvajata dinamično prekodiranje: ˇ slovene - paket za dinamično pretvarjanje spletnih spisov iz kodnega razporeda JUS I.B1.002 v CP852, CP1250, ISO 8859-2 ter US- ASCII (s prečrkovanjem iz ČŠŽ v CSZ). Avtor Tadej Vodopivec, Ljubljana, Slovenija. ˇ pl-conv - skript v Perl za dinamično pretvarjanje kodiranja spletnih spisov med ISO 8859-2, CP852, CP1250, Mazowia, Apple RomanCE in US-ASCII (s prečrkovanjem). Avtor Jarosław Strzałkowski, Kraków, Poljska. Sledijo tri rešitve, ki uporabljajo posebnosti in nestandardne razširitve programske opreme. Prvi dve se nanašata na spletni strežnik, zadnja na priljubljeni spletni brskalnik Netscape Navigator. Istega problema se je lotil G. Nicol s predlogom ``MIME Header Supplemented File Type''. 6.6.4.6. Metainformacija za spletni strežnik W3C Spletni strežnik W3C (nekoč poznan kot CERN WWW) omogoča dodajanje metainformacije v glave MIME odhodnih spisov. Po privzeti nastavitvi išče strežnik metainformacije v datotekah s pripono .meta podimenik .web imenika s spisi. Če na primer spletne spise hranimo v imeniku /WWW/Hypertext in želimo opremiti spis isolatin2.html v njem s pravilno glavo MIME, napravimo to takole: ˇ Če še ne obstaja, najprej ustvarimo podimenik .web: $ mkdir /WWW/Hypertext/.web ˇ Zatem v tem podimeniku ustvarimo datoteko z metainformacijami. Za datoteko isolatin2.html se bo ta imenovala isolatin2.html.meta. Datoteka mora vsebovati glavo MIME v obliki, kot jo predpisuje format RFC822. V našem primeru je to ena sama vrstica: Content-Type: text/html; charset=ISO-8859-2 6.6.4.7. Datoteke ASIS za strežnik Apache Strežnik Apache določa poseben tip datoteke, imenovan ASIS. Strežnik pošlje datoteko ASIS odjemniku natančno takšno, kot je (angl. ``as is''), ne da bi jo opremil z glavo, ki jo sicer zahteva protokol HTTP. Datoteka sama mora zato vsebovati vsa potrebna polja, ki jih zahteva protokol HTTP, tem sledi prazna vrstica in vsebina spisa HTML. V nastavitveni datoteki za strežnik določimo, da pripona .asis pripada zvrsti spisa httpd/send-as-is: AddType httpd/send-as-is asis Primer datoteke ASIS: Status: 200 OK Content-Type: text/html; charset=ISO-8859-2 Hello world

Živjo svet!

Kot vidite, morate v datoteko vključiti tudi tromestno odzivno kodo strežnika. Strežnik vedno doda polji Date: in Server:, zato teh ne smemo vključiti v datoteko. 6.6.4.8. Značka z označbo HTTP-EQUIV V določilu HTTP 2.0 predlagana značka z označbo HTTP-EQUIV je bila predlagana kot neobvezna metoda, s katero lahko strežnik potegne dodatno metainformacijo iz zaglavja () spletnega spisa in jo uporabi pri tvorjenju glave MIME. Piscu teh vrstic ni znano, da bi kateri strežnik to v resnici tudi počel. Tovrstno razčlenjevanje spletnih spisov verjetno predstavlja preveliko obremenitev za procesor in bi se močno poznalo pri odzivnosti spletnega strežnika. Pač pa so namesto tega začeli to informacijo uporabljati spletni brskalniki (Netscape Navigator, na primer, to počenja od izdaje 2.0 dalje). Primer spisa z metainformacijo o uporabljenem kodnem razporedu v zaglavju spisa: Naslov<TITLE> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-2"> </HEAD> <BODY> Besedilo... </BODY> </HTML> 6.7. Delo na oddaljenem računalniku Z ukazoma telnet ali rlogin lahko prek omrežja TCP/IP delamo na drugem računalniku. Težave z osembitnimi znaki pri tem so redko posledica napačne nastavitve v maloprej omenjenih programov, saj privzeti nastavitvi pri obeh podpirata osembitne znake. V primeru težav se poleg teh programov splača pogledati še ˇ nastavitev ukazne lupine (poglavje ``Ukazne lupine'') ˇ nastavitev terminala (fizičnega ali virtualnega). Eksplicitno ga lahko nastavimo z ukazom stty -parenb -istrip cs8 ˇ in na koncu res nastavitev programov telnet ali rlogin 6.7.1. Telnet Telnet eksplicitno pripravimo do vzpostavitve osembitne zveze z ukazom toggle binary: ~> telnet telnet> toggle binary Negotiating binary mode with remote host. telnet> open računalnik Telnet omogoča tudi, da si nastavitve za izbrane računalnike vnesemo v nastavitveno datoteko, ~/.telnetrc. Vnosi imajo obliko: ... biofiz.mf.uni-lj.si set binary true ... 6.7.2. rlogin Privzet način zveze pri programu ``rlogin'' je osembiten, eksplicitno pa lahko to določimo z določilom ``-8'': rlogin računalnik -8 6.8. TeX in LaTeX Poslovenjenje paketa LaTeX obsega ˇ 7- in 8-bitni način vnosa naših znakov ˇ način izpisa naših znakov ˇ poslovenjenje izpisov ``Contents'', ``Figure'' ipd. ˇ slovenska pravila za deljenje besed ˇ prilagoditev programa LyX: vizualnega okolja za vnos besedil v LaTeX in Linuxdoc DTD Urejanje stvarnega kazala po slovenski abecedi zaenkrat še ne gre avtomatično. Pokažemo, kako lahko težavo z nekaj truda obvozimo. Podporo za neangleške jezike v LaTeXu je poenotil paket babel Johannesa Braamsa z Nizozemske, ki je standardni del vseh sodobnih distribucij paketa TeX na Linuxu, kot sta teTeX in NTeX: <ftp://sunsite.informatik.rwth-aachen.de/pub/comp/tex/teTeX/> <http://web.mathematik.uni-stuttgart.de/ntex/WWW/> Z uporabo izbire ``slovene'' v paketu babel se avtomatično izberejo slovenska imena pod- in nadnapisov, naslovov ipd., slovenska pravila za zlogovanje besed (če imamo nameščene slovenske zlogovalne vzorce; poglavje ``Slovenska pravila za deljenje besed''), in 7-bitni način vnosa znakov "c"s"z: \usepackage[slovene]{babel} V novi različici LaTeXa (LaTeX2e) lahko s paketoma fontenc in inputenc izberemo tudi 8-bitno kodno tabelo T1 (znano tudi kot DC ali Cork) in 8-bitni vnos znakov. Primer celotnega spisa v LaTeXu: ______________________________________________________________________ \documentclass[a4paper]{article} \usepackage[slovene]{babel} \usepackage[T1]{fontenc} \usepackage[latin2]{inputenc} \begin{document} Čeprav se pouk na železničarski šoli v Šentvidu običajno konča šele ob štirih, odpešačijo učenci iz občin Želimlje in Žetale domov že četrt čez tri. \end{document} ______________________________________________________________________ 6.8.1. LaTeX 2.09 V starejši različici paketa LaTeX, LaTeX 2.09, ne moremo uporabiti mehanizma inputenc. Pomagamo si s stilom latin2.sty Andreja Brodnika. Primer uporabe: ______________________________________________________________________ \documentstyle[latin2]{article} \begin{document} ... \end{document} ______________________________________________________________________ Stil latin2 je na voljo na vseh strežnikih CTAN, npr. <ftp://ftp.dante.de/tex-archive/macros/latex209/contrib/latin2/> 6.8.2. Slovenska pravila za deljenje besed Datoteko s slovenskimi pravili za zlogovanje besed je v okviru svoje diplomske naloge leta 1990 izdelal Matjaž Vrečko, in jo predal v last slovenskemu društvu uporabnikov sistema TeX (TeXCeH). Na voljo je za individualno uporabo brez namena pridobivanja premoženjske koristi. Od leta 1995 dalje zanjo skrbi dr. Leon Žlajpah z IJS, ki jo je posredoval tudi skrbniku sistema sistema babel za tujejezično podporo v sistemu TeX, Johannesu Braamsu. Sistem babel praviloma dobimo skupaj z distribucijo sistema TeX. Trenutno zadnja izdaja je 2.3, datirana 1997-04-15. V distribuciji teTeX, ki je najbolj priljubljena distribucija na Unixu, vklopimo podporo za slovenske delilne vzorce tako, da kot administrator poženete program texconfig. V menuju izberemo možnost HYPHEN - hyphenation table (tex/latex). Program texconfig pri tej izbiri požene urejevalnik vi in vanj naloži datoteko language.dat. Za tiste, ki ga ne poznate, najnujnejše o uporabi le-tega: levo, desno, gor in dol po besedilu se premikate s tipkami h, l (mali L), j in k. Znak pobrišete tako, da kurzor pripeljete nanj in pritisnete tipko x. Datoteko shranite in zaključite z delom s pritiskom na tipko Esc in vpisom :wq (dvopičje, mali W, mali Q), ki mu sledi Enter. Oboroženi s tem znanjem v datoteki language.dat pobrišemo komentar (znak za procent) pred zapisom slovene sihyph22.tex, shranimo in zapustimo urejevalnik. Program texconfig bo avtomatično ustvaril nove formatne datoteke z vgrajenimi delilnimi vzorci. Pisec teh vrstic je imel nepojasnjene težave z datoteko sihyph22.tex, ki so enako čudežno izginile, ko mu je dr. Žlajpah poslal novo izdajo slovenskih delilnih vzorcev. Dobimo jo lahko na ftp://sizif.mf.uni- lj.si/pub/i18n/tex/sihyph23.tex in jo postavimo ob bok stari datoteki, navadno v imenik /usr/TeX/texmf/tex/generic/hyphen/. Poženemo texconfig, tam najprej osvežimo seznam datotek (izbira REHASH - rebuild ls-R database), zatem pa ponovimo postopek iz prejšnjega odstavka, s tem, da ime sihyph22.tex popravimo v sihyph23.tex. Dodatne informacije o slovenski skupini uporabnikov TeX najdete na <http://vlado.fmf.uni-lj.si/texceh/texceh.htm> 6.8.3. LyX (Roman Maurer, <roman.maurer@fmf.uni-lj.si>) Če uporabljamo LyX s standardno slovensko tipkovnico (102/105 tipk), ga lahko enostavno prilagodimo za delo s slovenščino: 1. Tipkovnica v strežniku Xwindow mora biti nastavljena tako, da z njo v splošnem lahko vnašamo naše znake (to je opisano v razdelku ``X Window System'' poglavja ``Tipkovnica''). 2. Poženemo LyX in nastavimo: Options / Screen Fonts / Font Norm = iso8859-2 Žal izgleda, da LyX tega podatka nikamor ne shrani. Zato moramo ročno dodati v datoteko lyxrc (sistemska je navadno v imeniku /usr/share/lyx/, uporabniška pa v ~/.lyx/) naslednjo vrstico: \font_norm iso8859-2 3. Odpremo (nek) dokument in izberemo: Layout / Document / Language = slovene Layout / Document / Encoding = latin2 Layout / Paper / Papersize = A4 Layout / Quotes = ,,text`` & Double 4. Če želimo te nastavitve uporabljati v vseh naših dokumentih (in to seveda želimo), uporabimo še izbiro Layout / Save layout as default 5. Kadar uporabimo razred "letter" namesto "article", odgovorimo pritrdilno na vprašanje: "Should I set some parameters to letter the defaults of this document class?" Zaradi napake v LyXu do vključno 1.0.0pre2 ni mogoč vnos 8-bitnih znakov v matematičnem tekstovnem načinu (math text mode). Pomagamo si tako, da postavimo kar celo formulo kot TeXovo kodo ("tex-mode" - s tem sicer izgubimo WYSIWYG). Razvijalci LyX-a so o napaki obveščeni in jo bodo verjetno popravili v naslednjih izdajah. 7-bitni vnos šumnikov kot "c"s"z je otežen, ker LyX avtomatično pretvori dvojni narekovaj v dva enojna. Prva misel je, da si lahko spet pomagamo z izbiro "tex-mode", udobnejša možnost pa je, da predefiniramo dvojni narekovaj. V datoteko emacs.bind (ali pa cua.bind, kar že uporabljamo) dodamo vrstico: \bind "S-quotedbl" "accent-caron" Naše znake bomo zdaj dobili s pritiskom na "c"s"z. S tem žal izgubimo avtomatično pretvarjanje dvojnega narekovaja v dva enojna, a vsega pač ne moremo imeti... Datoteka emacs.bind je v imeniku ~/.lyx/bind/. Če je še ni, lahko napravimo kopijo sistemske z imenika /usr/share/lyx/bind/ in jo popravimo. Če imamo staro slovensko tipkovnico (ameriška s čšž namesto ~{`), lahko uporabimo premapiranje tipkovnice v Latin 2 Alena Šalamuna <alen.salamun@medinet.si>: Options / Keyboard / Primary = slovene Ustrezna datoteka slovene.kmap je tipično v imeniku /usr/share/lyx/kbd/. Takole pa lahko uporabimo črkovalnik ``ispell'' za črkovanje slovenskih spisov: Edit / Spellchecker / Spellchecker Options * Use alternate language: slovensko * Extra special chars allowed in words: 蚞ȊŽ V slovenski izdaji urejevalnika LyX pa: Uredi / Črkovalnik / Izbire črkovalnika * Uporabi drug jezik: slovensko * Dodatni posebni znaki, dovoljeni v besedah: 蚞ȊŽ 6.8.4. Pregled besedila na zaslonu V Evropi je standardni format papirja A4, kar moramo dopovedati tudi programom za pregled besedila na zaslonu: XDvi V datoteko ~/.Xresources (osebna nastavitev) dodamo vrstico ________________________________________________________________ XDvi.paper: a4 ________________________________________________________________ Ghostview V datoteko ~/.Xresources (osebna nastavitev) ali pa v datoteko /usr/lib/X11/app-defaults/Ghostview (skupna nastavitev) dodamo vrstice: ________________________________________________________________ ! Ghostview naj uporablja format A4 *pageMedia: A4 ! Tudi Ghostscript naj uporablja format A4 *Ghostview.interpreter: gs *Ghostview.arguments: -sPAPERSIZE=a4 ________________________________________________________________ Ker tiskamo prek Ghostscripta tudi iz drugih programov, ne le iz Ghostview, je pametno, če mu v nastavitveni datoteki (navadno /usr/share/ghostscript/izdaja/gs_init.ps ali /usr/local/share/ghostscript/izdaja/gs_init.ps) globalno izberemo velikost strani A4. Poiščemo spodnjo vrstico in jo odkomentiramo (pobrišemo začetni znak za procent): % (a4) /PAPERSIZE where { pop pop } { /PAPERSIZE exch def } ifelse 6.8.5. Stvarna kazala Najpogostejše orodje za izdelavo stvarnih kazal v sistemu TeX je Makeindex. Ta je le omejeno lokaliziran (poleg angleških pozna še nemška pravila za razvrščanje) in naše abecede ne pozna. Stvarno kazalo v LaTeX izdelamo z ukazom \makeindex v preambuli; vsako besedo, ki jo želimo vnesti v kazalo, pa moramo posebej označiti z ukazom \index{vnos}. Ker navadno želimo stvarno kazalo tudi izpisati, dodamo še ukaz \printindex, ta pa je definiran v makropaketu makeidx. Zgled, datoteki recimo zelez-sola.tex, naj ilustrira povedano: ______________________________________________________________________ \documentclass[a4paper]{article} \usepackage[slovene]{babel} \usepackage[T1]{fontenc} \usepackage[latin2]{inputenc} \usepackage{makeidx} \makeindex \begin{document} Čeprav se pouk na železničarski šoli\index{s~ola@šola!z~eleznic~arska@železničarska} v Šentvidu\index{S~entvid@Šentvid} običajno konča šele ob štirih, odpešačijo učenci iz občin Želimlje\index{Z~elimlje@Želimlje} in Žetale\index{Z~etale@Žetale} domov že četrt čez tri. \printindex \end{document} ______________________________________________________________________ Trik je v tem, da makeindex dopušča skladnjo \index{vnos1@vnos2}, kjer je vnos1 tisti, po katerem se kazalo ureja, vnos2 pa besedilo, ki se v resnici izpiše. Našo črko Č zato pišemo kot C~ (znak ~ je v kodnem razporedu ASCII za vsemi črkami), in tako bo zanesljivo uvrščena za vsemi C. Besedilo prevajamo v treh korakih: latex zelez-sola makeindex zelez-sola latex zelez-sola Prvi latex iz datoteke zelez-sola.tex izdela datoteko zelez-sola.idx, ukaz makeindex to uredi in iz nje izdela datoteko zelez-sola.ind, to pa vsrka drugi ukaz latex. 6.9. groff Groff nudi precej omejeno podporo za naše znake. Pri izpisu na zaslon (način nroff) lahko goljufamo tako, da zapišemo datoteko z osembitnimi znaki ISO Latin 2, programu pa lažemo (izbira -Tlatin1), da so kodirani po razporedu ISO Latin 1. Henryk Paluch je napisal paket groff-latin2, s katerim lahko naše znake vnašamo kot makroukaze, na primer: \('a a z ostrivcem \(vc c s strešico \vou u s krožcem Izpis v obliki PostScript v času pisanja tega spisa še vedno ne deluje, čeprav bi se mehanizme iz paketa ``ogonkify'' Juliusza Chroboczka podobno kot v programu ``a2ps'' verjetno dalo uporabiti tudi tu. Še največji problem je verjetno ta, da je paket ``groff'' osirotel, saj ga prvotni avtor, James Clark, ne vzdržuje več. Za paket groff-latin2 zdaj skrbi Jan Kasprzak <kas@fi.muni.cz>, najdete ga na <ftp://ftp.fi.muni.cz/pub/localization/groff/> 6.10. Perl Od izdaje 5.004 dalje tudi Perl podpira lokalizacijo. Nastaviti moramo primerne spremenljivke okolja in bodisi v programu uporabiti klic ______________________________________________________________________ use locale; ______________________________________________________________________ bodisi poklicati Perl z izbiro -Mlocale. Nekaj primerov; preizkus smo si sposodili pri Janu Pazdziori: ______________________________________________________________________ ~> LC_CTYPE=sl_SI.iso88592 perl -Mlocale -e '$_="težišče\n"; s/\w/$&:/g; print;' t:e:ž:i:š:č:e: ~> LC_CTYPE=C perl -Mlocale -e '$_="težišče\n"; s/\w/$&:/g; print;' t:e:ži:šče: ~> LC_CTYPE=sl_SI.iso88592 perl -e '$_="težišče\n"; s/\w/$&:/g; print;' t:e:ži:šče: ______________________________________________________________________ Kot vidimo, je samo v prvem primeru, ko smo izvedli oboje: nastavili spremenljivko LC_CTYPE in Perl poklicali z izbiro -Mlocale, naše znake res upošteval kot črke (\). 6.11. Črkovanje: ispell Večina sodobnih distribucij Linuxa že pride s črkovalnikom Ispell; manjka pa mu slovenski besedni zaklad. Tega najdete katerikoli od navedenih datotek: <ftp://sizif.mf.uni-lj.si/pub/i18n/ispell/ispell-sl-0.1-1.src.rpm> <ftp://sizif.mf.uni-lj.si/pub/i18n/ispell/ispell-sl-0.1-1.i386.rpm> Če je v istem imeniku na voljo kakšna kasnejša izdaja, seveda vzamemo to. Prva arhivska datoteka je prevedena na sistemu Caldera OpenLinux 1.3 in jo lahko na enakih sistemih namestimo enostavno z ukazom rpm -i ispell-sl-0.1-1.i386.rpm Kopije datoteke, izvorne in prevedene za različne sisteme, najdemo tudi na ustreznih mestih za anonimni FTP: <ftp://contrib.redhat.com/libc5/i386/ispell-sl-0.1-1.i386.rpm> <ftp://contrib.redhat.com/libc5/SRPMS/ispell-sl-0.1-1.i386.rpm> <ftp://ftp.calderasystems.com/pub/OpenLinux/contrib/RPMS/libc6/ispell- sl-0.1-1.i386.rpm> <ftp://ftp.calderasystems.com/pub/OpenLinux/con­ trib/SRPMS/libc6/ispell-sl-0.1-1.src.rpm> Na vseh ostalih sistemih moramo prevedeno datoteko zgraditi sami. Kot sistemski oskrbnik poženemo rpm --rebuild ispell-sl-0.1-1.src.rpm Redhat Package Manager bo v nekaj minutah bo pripravil datoteko ispell-sl-0.1-1.i386.rpm in jo pustil v imeniku /usr/src/Open­ Linux/RPMS/i386/, /usr/src/redhat/RPMS/i386/ ali distribuciji, ki jo uporabljate, ustreznem. To datoteko lahko zatem namestimo z ukazom rpm -i /usr/src/redhat/RPMS/i386/ispell-sl-0.1-1.i386.rpm Ispell uporabljamo tako, da mu v ukazni vrstici podamo jezik, v katerem je napisano besedilo, na primer english, deutsch, francais ali slovensko: ispell -d slovensko besedilo.txt Natančnejša navodila za ravnanje s programom Ispell boste našli v priročniku, več o prilagoditvi paketa ispell za slovenščino si lahko preberete na strani Slovenščina in računalniki Aleša Koširja. Ispell s slovenskim besednim zakladom poganja tudi spletni črkovalnik Trubar istega avtorja: <http://nl.ijs.si/cgi-bin/truform.pl> Osnovni slovenski leksikon izvira iz baze, ki jo je podjetje Amebis d.o.o. prispevalo za mednarodni projekt MULTEXT-East; s posredovanjem dr. Tomaža Erjavca z odseka za inteligentne sisteme na Institutu Jožef Stefan pa je na voljo za nepridobitno uporabo. 6.12. Pretvarjanje med različnimi kodiranji Razen ISO Latin 2 vsebuje vse naše znake še nekaj drugih naborov: Microsoft Codepage 1250, IBM Codepage 852, JUS I.B1.002, Apple MacOS- CE, Apple MacOS-Croatian, Kamenicky, ISO Latin 4, ISO Latin 6, ISO Latin 7 itd. Čeprav ni težko napisati programčka za pretvorbo iz enega kodnega nabora v drugega, je pripravno uporabiti že izdelan program. Eden takih je GNU recode, dostopen npr. na strežniku ARNES: <ftp://ftp.arnes.si/software/gnu/recode/recode-3.4.tar.gz> Starejše izdaje GNU recode (pred 3.5) ne poznajo Microsoftovih kodnih strani 1250-1259. Uporaba je enostavna: recode yu:latin2 datoteka pretvori datoteko iz kodnega nabora JUS I.B1.002 v kodni nabor ISO Latin 2. Kot običajno izda tudi tu izbira --help še dodatne možnosti. Novejše izdaje programa Recode (ki poznajo tudi nekaj več kodnih naborov), uporabljajo malo drugačno skladnjo: recode yu..latin2 datoteka Po izkušnjah pisca pa je prečrkovanje (npr. ,,nabori`` latex ali flat) še vedno omejeno na pretvorbo iz in v nabor ISO 8859-1. Novejše izdaje programa Recode najdete na: <ftp://ftp.iro.umontreal.ca/pub/recode/> 6.13. Drugi programi 6.13.1. Pregledovalnik less Less (avtor Mark Nudelman) je program za pregledovanje besedil na zaslonu, in je priljubljena zamenjava standardnega more. Less prilagodimo za izpis osembitnih znakov z nastavitvijo v ~/.profile: LESSCHARSET=latin1; export LESSCHARSET latin1 namesto latin2 ni pomota. Less zaenkrat slednjega še ne pozna, ker pa ga pravzaprav zanima samo, kateri znaki so običajni, kateri pa kontrolni (ki zahtevajo posebno obravnavo), ker pa je razpored znakov enak v celotni družini ISO 8859, lahko izberemo kar latin1. Namesto tega lahko tudi eksplicitno navedemo zaporedje tipa znakov v naboru: LESSCHARDEF="8bcccbcc18b95.33b."; export LESSCHARDEF Vsi nabori iz družine ISO 8859 imajo osem binarnih znakov (posebnih znakov, ki jih praviloma ni v besedilih), tri kontrolne znake, binarni znak, dva kontrolna znaka, osemnajst binarnih znakov, 95 navadnih znakov, 33 binarnih znakov, in normalne znake do konca tabele. 6.13.2. Koledar gcal Vsi sistemi Unix imajo vgrajen koledarček cal, ki pa je precej anglocentričen. Thomas Esken iz Nemčije je napisal alternativni koledarček gcal. Od izdaje 2.40 dalje pozna tudi slovenske praznike. Najdemo ga na običajnih mestih distribucije GNU. Najbližje je verjetno: <ftp://ftp.arnes.si/software/gnu/> Spodnja vrednost spremenljivke GCAL ustreza našim razmeram: GCAL="--cc-holidays=SI --gregorian-reform=1582"; export GCAL 7. Tiskanje Pri tiskanju lahko naletimo na različne situacije: ˇ Tiskalnik neposredno podpira ISO Latin 2 ˇ Tiskalnik podpira enega od ostalih osembitnih naborov z našimi znaki (npr. kodno stran 852), ali pa sedembitni nabor JUS I.B1.002 ˇ Tiskalnik razume PostScript ˇ Tiskalnik ne podpira ničesar drugega razen ASCII Zadnja možnost ni predmet obravnave tega spisa. 7.1. Tiskalniki, ki podpirajo ISO Latin 2 Nekaj novejših tiskalnikov že neposredno podpira kodni razpored ISO Latin 2. Med njimi so ˇ Hewlett-Packard LaserJet 4 Plus in 4M Plus ˇ Hewlett-Packard LaserJet 5L ˇ Epson FX-2170 (NLSP) ˇ Epson LQ-870 (NLSP) ˇ Epson LQ-2070 (NLSP) ˇ Epson LQ-2170 (NLSP) ˇ Epson DLQ-3000 (NLSP; letnik 1996 in novejši) ˇ Fujitsu DL700 ˇ Fujitsu DL1150/1250 ˇ Fujitsu DL3700/3800 ˇ Fujitsu DL6400/6600 Vse, kar morate storiti, je izbrati pravilno kodno stran v tiskalniku. Ubežna sekvenca za tiskalnike Hewlett-Packard (PCL) in Epson (ESC/P2) so naslednje PCL Tole menda deluje: ________________________________________________________________ \033(2N\033(s0p12h0s0b4099T ________________________________________________________________ ESC/P2 Z ukazom ESC ( t prepišemo kodno tabelo ISO 8859-2 v drugo tabelo tiskalnika; zatem z ukazom ESC t izberemo drugo tabelo tiskalnika (strani C-73 in C-77 v ,,Epson ESC/P Reference Manual``, december 1997): ________________________________________________________________ \033(t\003\000\002\177\002\033t\002 ________________________________________________________________ Oznaka \033 je osmiška koda znaka Escape. Eden od načinov, kako z /etc/printcap prilagodimo okolje za tiskanje na tak tiskalnik, je podrobneje opisan v razdelku ``Tiskalniki, ki podpirajo kak drug nabor z našimi znaki''. 7.2. Tiskalniki, ki podpirajo kak drug nabor z našimi znaki Če tiskalnik podpira kak drug nabor z našimi znaki (ne dolgo nazaj je bila ustaljena praksa, da je bil ROM v tiskalnikih zamenjan z EPROM, v njem pa švedski znaki zamenjani z znaki po JUS I.B1.002), lahko s primerno nastavitvijo v /etc/printcap še vedno tiskamo spise, kodirane po ISO Latin 2. Primerno moramo dopolniti datoteko /etc/printcap. Za zgled si oglejmo tiskalnik Epson, ki ima znake po JUS I.B1.002 na mestu švedskega nabora. ______________________________________________________________________ lp|ascii|epson|Epson LQ-850:\ :lp=/dev/lp1:\ :sd=/usr/spool/lpd/epson:\ :lf=/usr/spool/lpd/ERRORLOG:\ :mx#0:\ :sh: jus|Epson LQ-850 z znaki JUS I.B1.002:\ :lp=/dev/null:\ :sd=/usr/spool/lpd/jus:\ :if=/usr/spool/lpd/jus_filter:\ :lf=/usr/spool/lpd/ERRORLOG:\ :mx#0:\ :sh: latin2|text|Epson LQ-850 z znaki ISO Latin 2:\ :lp=/dev/null:\ :sd=/usr/spool/lpd/latin2:\ :if=/usr/spool/lpd/latin2_filter:\ :lf=/usr/spool/lpd/ERRORLOG:\ :mx#0:\ :sh: ______________________________________________________________________ Zgled ima tri tiskalniške vrste. Prva je dejanski tiskalnik z ameriškim (ASCII) naborom znakov. Druga uporablja filter /usr/spool/lpd/jus_filter: ______________________________________________________________________ #!/bin/sh /usr/spool/lpd/jus_epson | lpr -Pascii ______________________________________________________________________ Datoteko torej precedimo skozi filter /usr/spool/lpd/jus_epson in jo postavimo v prvo tiskalniško vrsto. Filter jus_epson ne napravi drugega, kot da na začetku doda kodo za preklop v švedski nabor, prepiše datoteko z vhoda na izhod, in na koncu doda kodo za preklop nazaj v ameriški nabor. To je tudi edini del programja, ki je odvisen od vrste tiskalnika: ______________________________________________________________________ #!/bin/sh # Tiskanje besedil kodiranih po JUS I.B1.002 na tiskalnik Epson LQ # # Izberemo slovenski (švedski) nabor /bin/echo -ne "\033R\005\c" # Izpišemo dokument cat # Izberemo ameriški nabor /bin/echo -ne "\033R\000\c" ______________________________________________________________________ Tretja vrsta uporablja podoben filter kot druga, le da ta najprej pretvori besedilo iz Latin 2 v JUS, zatem uporabi že opisani filter za to, da doda na začetku in na koncu potrebno kodo za tiskalnik, in končno táko datoteko postavi v prvo vrsto. ______________________________________________________________________ #!/bin/sh /usr/local/bin/recode --force latin2:yu | \ /usr/spool/lpd/jus_epson | lpr -Pascii ______________________________________________________________________ Zgled predpostavlja, da je pot do programa recode /usr/local/bin/recode. Izbiro --force moramo uporabiti, ker je pres­ likava neobrnljiva -- v Latin 2 imamo tako šumnike kot zavite oklepaje, v JUS pa samo še prve. Za ta zgled smo morali v imeniku /usr/spool/lpd ustvariti tri podimenike: /usr/spool/lpd/epson, /usr/spool/lpd/jus in /usr/spool/lpd/latin2. Tiskanje gre zdaj tako: 1. Brez eksplicitne izbire vrste, ali pa z izbiro -Pepson ali -Pascii se datoteka odtisne kot ASCII: lpr datoteka 2. Z izbiro -Pjus se datoteka odtisne kot besedilo, kodirano po JUS I.B1.002: lpr -Pjus datoteka 3. Z izbiro -Platin2 ali -Ptext se datoteka odtisne kot besedilo, kodirano po ISO Latin 2: lpr -Platin2 datoteka 7.3. Tiskalniki, ki podpirajo kak drug nabor z našimi znaki II (Matjaž Terpin <matjaz.terpin@comcom.si>, Message-id: <Pine.LNX.3.96.980709095750.24607B-400000@guru.comcom.si>) Matjaž Terpin <matjaz.terpin@comcom.si> je predlagal imenitno izboljšavo pravkar opisanega postopka, pri katerem lahko tiskamo naše znake in oglate in zavite oklepaje. Srž njegovega predloga je filter, ki pred vsakim našim znakom preklopi v švedski nabor, takoj za njim pa spet nazaj v ASCII. Datoteka /etc/printcap je v tem primeru takšna: ______________________________________________________________________ # /etc/printcap lp|raw|yu:\ :lp=/dev/lp1:\ :sd=/var/spool/lpd/lp:\ :lf=/var/spool/lpd/ERRORLOG:\ :mx#0:\ :sh: lat2:\ :lp=/dev/null:\ :if=/etc/lp/lat2.filter:\ :sd=/var/spool/lpd/lat2:\ :lf=/var/spool/lpd/ERRORLOG:\ :mx#0:\ :sh: ______________________________________________________________________ Filter /etc/lp/lat2.filter precedi besedilo skozi naslednje sito, /etc/lp/lat2.switch, in ga postavi v vrsto lp: ______________________________________________________________________ #!/bin/sh # /etc/lp/lat2.filter /etc/lp/lat2.switch | lpr -Plp ______________________________________________________________________ ,,Meso`` postopka je v datoteki /etc/lp/lat2.switch: ______________________________________________________________________ #!/bin/sh #/etc/lp/lat2.switch echo -ne "\033R0" sed -e "s/č/`echo -ne "\033R5\~\033R0"`/g" \ -e "s/Č/`echo -ne "\033R5\^\033R0"`/g" \ -e "s/š/`echo -ne "\033R5\{\033R0"`/g" \ -e "s/Š/`echo -ne "\033R5\[\033R0"`/g" \ -e "s/ž/`echo -ne "\033R5\140\033R0"`/g" \ -e "s/Ž/`echo -ne "\033R5\@\033R0"`/g" \ -e "s/ć/`echo -ne "\033R5\}\033R0"`/g" \ -e "s/Ć/`echo -ne "\033R5\]\033R0"`/g" \ -e "s/đ/`echo -ne "\033R5\|\033R0"`/g" \ -e "s/Đ/`echo -ne "\033R5\\\\033R0"`/g" echo -ne "\033R5" ______________________________________________________________________ Matjaž pravi še: sed slabo prebavi ``echo -ne "\000"'', zato uporabljam kar znak 0 (ničlo), saj je tiskalnik (NEC pinwriter P7) zadovoljen tudi s tem. 7.4. Tiskalniki PostScript ``Naravni'' kodni nabor v PostScriptu je Adobe Standard Encoding. Naših črk ne pozna. Pa ne le naših, tudi mnogih drugih črk ne pozna, in pravzaprav sploh nima tovrstnih ambicij. Namesto tega je ASCII razširjen z gradniki sestavljenih znakov: strešica, ostrivec, diereza, sedij itd. -- vsi so tam. Jezik PostScript pa omogoča definiranje sestavljenih znakov. Vse skupaj je čakalo samo še nekoga, ki bo definiral sestavljene znake za kodni nabor ISO Latin 2. Ta nekdo je bil Juliusz Chroboczek, ki je napisal paket ogonkify. Filtra a2ps in GNU enscript sta bila napisana z namenom, da rešita za naše kraje neobičajno zagato: kako odtisniti čisto običajno besedilo na tiskalnik, ki razume edino PostScript. Eden in drugi postavita stran v PostScriptu z danim besedilom in jo pošljeta na tiskalnik. Fleksibilnost PostScripta omogoča tudi transformacije (npr. pomanjšave) ali poudarjanje sintakse pri tiskanju programskih izpisov. Oba podpirata nabor ISO Latin 2. <http://www.dcs.ed.ac.uk/home/jec/programs/ogonkify/> <http://www-inf.enst.fr/~demaille/a2ps/> <http://www.iki.fi/~mtr/genscript/> <ftp://ftp.arnes.si/gnu/enscript/enscript-1.6.1.tar.gz> 7.4.1. ogonkify Ogonkify je filter za izpise v PostScriptu, in omogoča pravilen odtis črk tudi v jezikih, ki ne uporabljajo nabora ISO Latin 1. Ker je filter, je ravno korak prepozen, da bi lahko počel to elegantno, ampak mora prežvečiti kakršnokoli grdobijo pač izpljune program korak pred njim in iz dobljenega izdelati lep odtis. Programi pa izdelujejo datoteke PostScript vsak malo drugače, kar filtru ``ogonkify'' oteži delo. Zaenkrat podprti formati izpisa PostScript so: NCSA Mosaic, Netscape Navigator, StarOffice, Applixware in XFig. Ogonkify za delovanje potrebuje Perl. Ko je nameščen, ogonkify uporabimo takole za odtis spletnega sestavka, shranjenega iz Navigatorja: ogonkify -AT -N netscape.ps | lpr 7.4.2. GNU enscript Če GNU enscript še ni nameščen, ga namestimo po navodilih, ki so priložena programu. Poleg njega potrebujemo še vsaj eno pisavo z vsemi našimi znaki, zapisan v obliki Type 1. Primeren je npr. IBM Courier, ki je prosto dostopen in se distribuira z X Window System, programom ghostscript ipd. Če nismo prepričani, ali ga imamo že nameščenega, poženemo: find / -name cour.pf[ab] V osebno (~/.enscriptrc) ali skupno konfiguracijsko datoteko (navadno /usr/local/etc/enscript.cfg ali /usr/local/etc/enscriptsite.cfg) dodamo pravilno pot do datotek s pisavami. Poleg tega potrebuje GNU enscript v vsakem imeniku s pisavami še datoteko z imenom font.map, ki vsebuje preslikavo med imeni pisav in datotekami, kjer so shranjene. Ustvarimo jo z ukazom mkafmmap. Primer konfiguracijske datoteke: ______________________________________________________________________ ... # Kje hranimo pisave PostScript? AFMPath: /usr/lib/X11/fonts/Type1:/usr/local/lib/ghostscript/fonts ... # Privzeti način kodiranja: DefaultEncoding: latin2 ... # Privzeti format papirja: DefaultMedia: A4 ... # lpd izbira tiskalniške vrste z -P... QueueParam: -P ... # Za tiskanje uporabljamo ukaz lpr, ne lp Spooler: lpr ______________________________________________________________________ Ko je vse potrebno nastavljeno, odtisnemo besedilo enostavno z ukazom enscript datoteka 7.4.3. a2ps Z izdajo 4.7.21 je Akim Demaille v a2ps vgradil mehanizem za sestavljene znake, ki ga je Juliusz Chroboczek uporabil v filtru ``ogonkify''. Našim krajem prilagodimo a2ps z majčkeno spremembo nastavitvene datoteke. Sistemsko nastavitveno datoteko najdemo navadno kot /usr/etc/a2ps.cfg, /usr/local/etc/a2ps.cfg ali kaj podobnega; osebna se imenuje ~/.a2psrc. ______________________________________________________________________ ... # Default encoding Options: --encoding=latin2 # Default media Options: --media=A4 ... ______________________________________________________________________ 8. Linux v Sloveniji Harald T. Alvestrand iz Trondheima, Norveška vodi evidenco o uporabnikih Linuxa po državah. Seznam slovenskih uporabnikov Linuxa je na naslovu <http://counter.li.org/bycountry/SI.html> Če vas ni med njimi, se prijavite! <http://counter.li.org/> 8.1. Skupina uporabnikov Linuxa Od marca 1996 dalje deluje v Ljubljani organizirana skupina uporabnikov Linuxa v Sloveniji, društvo LUGOS (Linux Users Group of Slovenia). Društvo ima svojo stran na WWW: <http://www.lugos.si/> Društvo ima tudi svoj elektronski spisek, na katerega se prijavite tako, da na naslov majordomo@lugos.si pošljete vrstico subscribe lugos-list v telesu sporočila. 8.2. Strežniki FTP Vzdrževan seznam aktivnih arhivov v Sloveniji najdete na straneh strežnika LUGOS, <http://www.lugos.si/arhiv/> Od marca 1997 dalje imamo v Sloveniji svoj Sun SITE, ki je usklajen z drugimi strežniki Sun SITE po svetu (Sun SITE na Univerzi Severne Karoline, ZDA, je eden glavnih centrov za Linux). <ftp://sunsite.fri.uni-lj.si/pub/linux/> Na strežniku ARNES se avtomatično zrcalita distribucija Debian in programje iz projekta GNU, <ftp://ftp.arnes.si/software/unix/linux/debian/> <ftp://ftp.arnes.si/software/gnu/> Strežnik z zelo veliko izbiro programja za Linux je tudi na Gimnaziji v Murski Soboti, <ftp://mercur.s-gms.ms.edus.si/pub/UNIX/linux/> Študentski informacijski center je s pomočjo Zavoda za odprto družbo uredil strežnik FTP v Narodnem domu v Mariboru: <ftp://ftp.kibla.org/pub/Linux/> Distribucija Slackware se zrcali tudi na strežniku Fakultete za računalništvo in informatiko Univerze v Ljubljani, <ftp://ftp.fri.uni-lj.si/pub/linux/> Wowen Goods for Linux se zrcalijo na strežniku Laboratorija za robotiko na Fakulteti za elektrotehniko, Univerza v Ljubljani: <http://robo.fe.uni-lj.si/woven/> Linux Documentation Project ter distribucija Debian se zrcalita na strežniku Centra za uporabno matematiko in teorijsko fiziko, Univerza v Mariboru: <http://www.camtp.uni-mb.si/linux/LDP/> <ftp://ftp.camtp.uni-mb.si/pub/linux/debian/> 8.3. Usenet Linux nima svoje diskusijske skupine, ampak je vsa razprava o sistemih Unix zbrana v skupini si.comp.os.unix (kjer pa razprava o Linuxu res predstavlja znaten del prometa). Svojo skupino pa ima društvo LUGOS: si.org.lugos. 8.4. Zastopniki za Linux Agenda d.o.o., Lavričeva 3, Maribor (tel. 062/2297740), je uradni zastopnik podjetij Caldera, RedHat in SuSE v Sloveniji. CD-ROM z distribucijami Linuxa se da navadno dobiti pri vseh bolje založenih trgovcih s tovrstno robo, npr. Infobia (tel. 061/614548) ali Mantis (tel. 061/1685473). 9. O tem spisu Najnovejša izdaja tega spisa je razen na uradnem mestu Linux Documentation Project dostopen tudi pri avtorju ter na domači strani Slovenskega društva uporabnikov Linuxa: <http://sizif.mf.uni-lj.si/linux/cee/Slovenian-HOWTO.html> <http://www.lugos.si/delo/slo/HOWTO-sl/Slovenian-HOWTO.html> Vse pripombe na ta spis so dobrodošle na naslov <primoz.peterlin@biofiz.mf.uni-lj.si>, splošna vprašanja o Linuxu in poslovenjenju programov pa sodijo na dopisno listo lugos-slo@lugos.si ali v si.comp.os.unix. 9.1. Opombe k drugi izdaji Druga izdaja je približno dvainpolkrat daljša od prve, ki je izšla konec leta 1996. Izkazalo se je, da bi bil koristen kratek seznam stvari, ki jim moramo opraviti, če želimo usposobiti naše znake na konzoli ali v okolju X Window System, zato sem ga dodal na začetek. Dodan je opis uporabe vektorskih pisav Type 1 in TrueType. Nastavitev locale predstavlja standarden način prilagoditve programov, zato je temu razdelku namenjena večja pozornost. V celoti so novi opisi prilagoditev urejevalnika LyX ter pisarniških paketov WordPerfect, Star Office in Applixware. Dodan je opis prilagoditve nove izdaje urejevalnika Emacs. Razdelek o tiskalnikih je razširjen z domiselno alternativno različico tiskalniškega filtra; dodatno sta omenjena ogonkify in a2ps. Posodobljen je seveda tudi razdelek o Linuxu v Sloveniji. In morda še kaj, kar sem pozabil. Če je prva izdaja predstavljala nekakšne zbrane in urejene zapiske o problemih, s katerimi sem se sam srečeval, se zdaj nekoliko bolje zavedam tudi potreb drugih. Zato sem v to dodal tudi opis prilagoditev programov in programskih paketov, ki jih sam ne uporabljam, npr. Star Office, Applixware ali Word Perfect. Opisanih rešitev nisem preizkušal; zaupam pač izkušnjam izvornih piscev. Te sem povsod tudi navedel in lahko stopite v stik z njimi. 9.2. Zahvala Če bralka ali bralec nista tega že sama uganila, je čas, da priznam sam: noben strokovnjak za Linux nisem. Nekaj o lokalizaciji Linuxa sem se naučil iz spisov ``German HOWTO'' Winnfrieda Truemperja ter ``Danish/International HOWTO'' Thomasa Petersena, nekaj o internacionalizaciji kar tako iz spisov Michaela Gschwinda. Nadvse koristni so bila tudi ``Czech HOWTO'' skupine avtorjev, Polska strona ogonkowa, ter Slovenščina in računalniki Aleša Koširja. Prvi spis je spisala skupina avtorjev, občasno ga objavijo v cz.comp.linux, zrcaljen je pa tudi na nekaj mestih na Češkem in Slovaškem; drugo najdete na http://www.agh.edu.pl/ogonki/; stran vzdržuje Jarosław Strzałkowski. ``Slovenščino in računalnike'' najdete na http://nl.ijs.si/gnusl/tex/tslovene/slolang/. Z namigi in nasveti so mi pomagali še (v abecednem vrstnem redu): Gorazd Božič <gorazd.bozic@arnes.si>, Aleš Časar <casar@uni-mb.si>, Tomaž Erjavec <tomaz.erjavec@ijs.si>, Matjaž Godec <gody@elgo.si>, Andraž Hvalica <Andraz.Hvalica@amis.net>, Andrej Komelj <andrej.komelj@guest.arnes.si>, Aleš Košir <ales.kosir@hermes.si>, Metod Koželj <metod.kozelj@rzs-hm.si>, Renato Lukač <renato@s- gms.ms.edus.si>, Roman Maurer <roman.maurer@fmf.uni-lj.si>, Jaka Mele <jack@ro.zrsss.si>, Borut Mrak <borutm@bigfoot.com>, Rok Papež <rok.papez@kiss.uni-lj.si>, Boris Požar <boris.pozar@guest.arnes.si>, Marko Samastur <marko.samastur@fmf.uni-lj.si>, Robert Susič <robert.susic@ijs.si>, Alen Šalamun <alen.salamun@medinet.si>, Matjaž Terpin <matjaz.terpin@comcom.si>, in Leon Žlajpah <leon.zlajpah@ijs.si> Vsem hvala. Vsem po nemarnosti izpuščenim se opravičujem; poskusil bom popraviti do naslednje izdaje. 9.3. Vprašanja 9.3.1. Se pravi Slovenian ali Slovene? Mnenja so deljena. Pisec teh vrstic se je pozanimal pri strokovnjakih s tega področja, ki so ga le potrdili v tem, da so mnenja res deljena. Slovnično je pravilno eno ali drugo, odločitev za eno ali drugo varianto je zaenkrat bolj domena jezikovne estetike. Iz zgodovinskih razlogov ta spis uporablja Slovenian, in tako bo do nadaljnjega tudi ostalo. 9.3.2. Naši znaki v tem spisu Cel spis govori o tem, kako pridemo do naših znakov, sam jih pa nima. Kako to? Kovačeva kobila... Sistem SGML-Tools (nekdaj Linuxdoc-SGML), ki je uradni standard za dokumentacijo HOWTO, zaenkrat podpira samo Latin 1. Cees de Groot, vzdrževalec paketa SGML-Tools, kot tudi Tim Bynum, urednik zbirke HOWTO, se težave zavedata. Pisec teh vrstic v upanju na boljše čase piše v Latin-2; preden pošlje material uredniku, pa poreže kljukice nad šumevci. Za domačo rabo pa lahko malo pogoljufamo in paketu sgmltools lažemo, da so osembitni znaki kodirani po Latin 1: pri pretvorbi v navadno besedilo je tako ali tako vseeno, pri pretvorbi v HTML moramo dodati vrstico <META> z definicijo uporabljenega nabora znakov, pri pretvorbi v LaTeX pa morebiti še malo telovaditi s sed. 9.4. Uporaba in razširjanje Copyright (c) 1996,1999 Primož Peterlin <primoz.peterlin@biofiz.mf.uni-lj.si>. Ta spis lahko razširjate pod pogoji, navedenimi v licenci LDP, dosegljivi na naslovu http://metalab.unc.edu/LDP/COPYRIGHT.html. Spisa ni dovoljeno razširjati v spremenjeni obliki brez privolitve avtorja. Informacije v tem spisu so podane v veri, da so točne in koristne, vendar pa brez kakršnegakoli jamstva, izrecnega ali impliciranega, vključno, a brez omejitve na implicirano jamstvo za primernost za trženje ali uporabo. Uporabljate jih lahko izključno na lastno odgovornost. Avtor ne odgovarja za kakršnekoli škodo, posredno ali neposredno, nastalo kot posledico uporabe informacij v tem spisu. 9.5. Note to English readers Copyright (c) 1996,1999 by Primož Peterlin <primoz.peterlin@biofiz.mf.uni-lj.si>. This document may be distributed under the terms set forth in the LDP license at http://metalab.unc.edu/LDP/COPYRIGHT.html. This document may not be distributed in modified form without consent of the author. The information in this document is provided in belief of being accurate and useful, however without any warranty, expressed or implied, including, but not limited to, the implied warranties of merchantability or fitness for a particular purpose. The entire risk of using the information goes with the user. The author can not be liable for any possible damage, direct or indirect, arising from the use of information provided in this document.