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 in o tem, kako z definiranjem spremenljivk okolja programom dopovemo, da delamo s slovenskimi besedili. To poglavje je tako rekoč v celoti posvečeno izjemam - programom, ki iz takih 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.

Ukazne lupine

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, a ko ste že pri delu, si lahko življenje olajšate še s tem, da tipkam Home, Delete in End vrnete njihov običajni pomen: v isto datoteko (~/.inputrc) dodaste še vrstice

"\e[1~": beginning-of-line
"\e[3~": delete-char
"\e[4~": end-of-line
	

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, kakor da snamete izvirno kodo in jo prevedete.

Terminalski posnemovalniki

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 razporeditvi 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'
        

rxvt

Po podatkih v češkem HOWTO rxvt zaenkrat (razvojna izdaja 2.4.6) ne deluje z našimi znaki brez posegov v izvirno kodo. Potrebne posege najdete v ,Czech HOWTO` (ki ni del arhiva LDP; glej razdelek Zahvala, kje ga najdete).

Pisarniški paketi

WordPerfect

 

WordPerfect ima vse potrebne znake že v svoji tabeli. Narediti moramo samo še to, da za naše črke definiramo makroukaze. Recimo, da bi radi definirali črko Š (velika črka S s strešico). Začnemo snemati makroukaz (recimo mu Scaron), skočimo v tabelo znakov, v njej izberemo črko Š, končamo makro in ga nazadnje pri nastavitvah povežemo z izbrano tipko.

 
--Jaka Mele, Vse naredim v Linuxu!, Win.Ini, l.6, št.9, str.60  

Alen Šalamun je pripravil tudi prireditveno tabelo za slovensko tipkovnico brez makroukazov. Datoteko SLO.WGK s prireditveno tabelo za slovensko tipkovnico najdete na

ftp://sizif.mf.uni-lj.si/pub/i18n/SLO.WGK

 

Odgovor na vprašanje: "Kako je s podporo šumnikom v WP 8.0 v Linuxu?" se glasi: SLABO.

1. Rešitev v obliki "insert symbol -> multinational" je v teoriji uporabna, vendar... Hja, multinacionalni znaki so v pisavi WP Multinational, ta pa je najbolj podoben pisavi Roman-WP. Ima "serife", zato Helvetica in Zurich odpadeta. Vendar tudi pri Roman-WP nastanejo težave, če se jo uporablja krepko, ležeče ali krepko in ležeče.

2. Rešitev v obliki uporabe pisav Type 1 z definiranimi slovenskimi znaki (kje se jih dobi? odg: oglejte si v Slovenian-HOWTO ali pa jih skopirajte iz OS/2, če ga imate) pa žal tudi odpade, ker "brezplačna" različica WP nima font installerja (xwpfi) in zato kakršnokoli dodajanje pisav v wp.drs odpade... Skratka, tako kot je nekdo že zapisal; brezplačen in neoskubljen WP je velika potegavščina... Za Američane je morda še nekako uporaben, za povprečnega Slovenca, ki piše tudi slovenska besedila, pa je popolnoma brez vrednosti. :-(

Nazaj k LyX in že sestavljenim vzorcem. :-)

Mimogrede, kaj se je zgodilo z WP?!? Dokler še ni bil v lasti Corela, je znal postavljati strešice na katerikoli znak v katerikoli pisavi. Z WP 6.0 za DOS sem tako pisal besedila v TrueType, Type 1 in pisavah CG ... POVSOD sem lahko uporabljal šumnike. Eh, "napredek" pa tak.

 
--Andrej Komelj, Message-id: <19981224182341.A3794@perun.mist.si> 

Star Office

Navodila za zadnjo izdajo pisarniškega paketa StarOffice smo si sposodili iz navodil Janeza Kreka za poslovenjenje distribucije SuSE Linux 7.3.

StarOffice 5.2

Predpogoj za podporo slovenščini v programu StarOffice je podpora slovenščini v grafičnem okolju (okolje KDE). Ta podpora obsega podporo razporeditvi črk na tipkovnici in tudi pravilni nastavitvi jezika.

V tem primeru tudi program StarOffice podpira vnos in izpis slovenskih črk. Pravilno razporejene slovenske črke v programu StarOffice 5.2 imajo naslednje pisave:

  1. pisave iz družine Lucida (Lucidux Serif, Lucidux Sans, Lucidux Mono, Lucidabright, Lucidasans, Lucidatypewriter)

  2. pisave URW, katerih imena obsegajo niz L EE (Nimbus Mono, Nimbus Sans, Nimbus Roman, Gothic, Bookman, Country Schoolbook, Chancery in Palladio)

Pisave URW iz druge točke morate namestiti naknadno, saj se pri privzeti namestitvi (Default with Office) ne namestijo. Postopek je opisan v razdelku Postscript v X11.

Zdaj poženemo orodje spadmin, s katerim nastavljamo vedenje pisav in tiskalnika, tako da izberemo Add fonts in poiščemo pravkar nameščene pisave, ki so v imeniku /usr/share/fonts/default/Type1/. Če smo prej izbrali napačen tiskalnik ali če naš tiskalnik ni podprt, ga lahko v orodju spadmin spremenimo v splošni postscriptni tiskalnik, imenovan Generic printer. Tako bomo lahko iz pisarne tiskali v postscriptno datoteko, pozneje pa rezultat izpisali iz ukazne vrstice z ukazom lpr -P ps datoteka.ps.

StarOffice 3.1[1]

StarOffice je malce težavnejši, ker potrebuje dodatne pisave Type1, pa vendar povejmo recept še zanj. Najprej moramo torej dobiti slovenske pisave oziroma pisave latin2 (pfb, afm, fonts.dir in fonts.scale), recimo iz strežnika ftp 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/ in ta imenik dodamo na seznam imenikov s pisavami, ki jih uporabi strežnik XWindow. To naredimo tako, da v datoteko /etc/X11/XF86Config dopišemo:

FontPath "/usr/X11R6/lib/X11/fonts/Type1.Latin2/"
	  

Zatem poženemo

xset fp+ /usr/X11R6/lib/X11/fonts/Type1.Latin2/

in še xset fp rehash. Nato je treba v imeniku /usr/local/StarOffice3-1/x3p/fontmetrics/ za .afm datoteke narediti povezave iz /usr/lib/X11/fonts/Type1.Latin2/. Podobno naredimo še za imenik /usr/local/StarOffice3-1/x3p/pssoftfonts/, le da sem povežemo datoteke .pfb. 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 z območja Latin2 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 izvedemo xmodmap xmodmap.si. Če imate starejši sistem Xwindow, si boste morda morali xmodmap.si še popraviti, da vam bosta tipki Backspace in Delete delovali normalno, drugače pa samo poženete swriter3 in uživate v dodatnih slovenskih pisavah.

Applixware[2]

Iz 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.

l2ttf04.zip

AbiWord[3]

V imenik /opt/AbiSuite/fonts sem prepisal pisave PCF (latin2) za strežnik X in popravil datoteko fonts.dir (popravil, ne na novo naredil!, ker Abi uporablja drugačna imena za pisave, kot so registrirana v pisavah). Težave pa so bile naslednje:

  • Pisavam ni bilo mogoče spreminjati velikosti (ker so v rastrskem formatu PCF)

  • Z njimi se ni dalo tiskati (Abi zahteva za tiskanje pisave Type1)

Če bi podtaknil pisave Type1, bi povečevanje in tiskanje delovalo.

Magicpoint[4]

Program za predstavitve Magic Point sicer ne moremo uvrščati med pisarniške pakete, pomensko pa nekako vendarle sodi zraven.

Pomembno je, da lahko program uporablja pisave TrueType v različnih kodnih naborih (za nas je, denimo, zanimiv ISO 8859-2). Starejše izdaje tega niso podpirale; za 1.04a in 1.05a je Dobrica Pavlinušić pripravil popravke, ki jih najdemo na njegovi spletni strani.

Vsaj od izdaje 1.08a naprej popravki izvirne kode niso potrebni. Ključna je naslednja vrstica v datoteki ~/.mgprc, ki programu pove, kje imamo shranjene pisave Truetype:

tfdir "/usr/share/fonts/truetype"

V navedenem imeniku naj bodo pisave Truetype kodirane po ISO 8859-2. Zbirko takih najdemo v strežniku društva Lugos.

V datoteki s predstavitvijo (denimo vzorec.mgp primerno definiramo pisave, denimo pisavo standard:

%deffont "standard" xfont "helvetica-medium-r" "iso8859-2", tfont "arl2____.ttf"

Podobno določimo preslikavo med imeni pisav, ki jih uporablja Magic Point, in imeni datotek s pisavami za vse uporabljene pisave. Če je tega veliko, lahko definicije za vse pisave v navedenem arhivu zberemo v datoteki l2fonts.mgp, ki jo v izbrano predstavitev dodamo z ukazom %include "l2fonts.mgp":

%%
%% l2fonts.mgp - Definicija pisav TrueType v kodnem naboru ISO 8859-2
%%
%deffont "arial" xfont "helvetica-medium-r" "iso8859-2", tfont  "arl2____.ttf"
%deffont "arialb" xfont "helvetica-bold-r" "iso8859-2", tfont "arl2b___.ttf"
%deffont "ariali" xfont "helvetica-medium-i" "iso8859-2", tfont "arl2i___.ttf"
%deffont "arialbi" xfont "helvetica-bold-i" "iso8859-2", tfont "arl2bi__.ttf"
%deffont "courier" xfont "courier-medium-r" "iso8859-2", tfont "cnl2____.ttf"
%deffont "courierb" xfont "courier-bold-r" "iso8859-2", tfont "cnl2b___.ttf"
%deffont "courieri" xfont "courier-medium-i" "iso8859-2", tfont "cnl2i___.ttf"
%deffont "courierbi" xfont "courier-bold-i" "iso8859-2", tfont "cnl2bi__.ttf"
%deffont "times" xfont "times-medium-r" "iso8859-2", tfont "tnrl2___.ttf"
%deffont "timesb" xfont "times-bold-r" "iso8859-2", tfont "tnrl2b__.ttf"
%deffont "timesi" xfont "times-medium-i" "iso8859-2", tfont "tnrl2i__.ttf"
%deffont "timesbi" xfont "times-bold-i" "iso8859-2", tfont "tnrl2bi_.ttf"

Magic Point mora biti preveden z izbiro --enable-locale, da so besede s šumevci pravilno deljene. Paketi .deb in .rpm naj bi bili že prevedeni tako.

Urejevalniki

GNU emacs

Emacs je, tako kakor njegov avtor, kontroverzni Richard M. Stallman, urejevalnik, do katerega ljudje niso ravnodušni: ali ga obožujejo ali pa ne prenesejo. Emacs je več kakor urejevalnik; je tako rekoč 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 boste zares dobro obvladali Emacs, se vam prav mogoče še dobršen del pravkar začetega stoletja ne bo treba naučiti nobenega novega urejevalnika. Dokazano pa ljudje shajajo tudi brez njega.

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")
          

Pozneje lahko način Latin-2 izberemo za vnos in izpis na menuju Mule->Set Language Environment->European->Latin-2

Res najnovejše izdaje Emacsa že poznajo tudi način Slovenian.

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 mogoče 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 si na primer tudi, da bi se ukaza forward-word in backward-word ne zatikala na naših znakih in da bi tudi za naše znake pravilno teklo pretvarjanje iz velikih črk v male in nazaj. Pri starejših izdajah 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 posvečeno obširno poglavje.

Emacs in slovensko jezikovno okolje [5]

Emacs 20 uporablja svoj, torej nestandardni mehanizem za vnašanje in prikaz tujejezičnih znakov. To že samo po sebi ni lepo, še huje pa je, da se vgrajeni mehanizem tepe s standardnim: če je vrednost spremenljivke LANG> kaj drugega kot C, potem vgrajeni Emacsov način odpove.

Nekoliko grda rešitev je, da Emacs vedno poženemo v okolju LANG=C. Najlaže to naredimo tako, da v ~/.bashrc definiramo

alias emacs='LANG=C emacs'
          

Če kdo zares razume interakcijo Emacsa s spremenljivko LANG, bom dodatne informacije z veseljem vstavil sem.

Vi

Urejevalnik vi izvira iz sive davnine Unixa. Zaradi težav z licenčnino najdete v sistemih Linux namesto izvirnega Vi navadno urejevalnik vim (Vi IMproved) avtorja Brama Moolenaarja, včasih pa tudi elvis, delo Steva Kirkendalla, ali nvi iz distribucije BSD 4.4. Zamisli, na katerih temelji vi, so v temeljih ortogonalne na vse, kar ste se o urejevalnikih naučili v MS-DOS. Kljub temu je glede na to, da je vi edini urejevalnik, ki je zanesljivo v čisto vsakem Unixu, pametno poznati nekaj osnovnih ukazov za delo z njim.

Po izkušnjah pisca tako izvirni vi kakor 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 Slovensko jezikovno okolje).

Yudit 2.4[6]

Yudit je precej osnoven urejevalnik, ki pa vam lahko pride prav, kadar morate napisati kratko besedilo v jeziku, katerega znakov vaša tipkovnica iz takih ali drugačnih razlogov ne podpira. Vse nastavitve lahko nastavite bodisi v datoteki ~/.yudit/yudit.properties (veljajo le za določenega uporabnika) ali v /usr/share/yudit/config/yudit.properties (veljajo za vse uporabnike, predpostavili smo, da imate Yudit nameščen v imeniku /usr/share/yudit). Če je neka lastnost nastavljena v obeh datotekah, bo veljala nastavitev za določenega uporabnika.

Priporočamo vam, da si, če še nimate nobene, omislite pisavo TrueType, kodirano po Unicode, ki ima vse znake, ki jih potrebujete. Dobra stran za začetek iskanja je Multilingual Unicode TrueType Fonts in the Internet (glej tudi Unicode-HOWTO). Pisavo (datoteko s pripono .ttf) prenesite v imenik ~/.yudit/fonts ali /usr/share/yudit/fonts ali pa tam naredite vsaj simbolično povezavo do nje. V datoteki yudit.properties dodajte vrstico (če je še ni): yudit.font.TrueType=<ime_pisave>.ttf. Lahko je naštetih tudi več pisav (ki morajo biti ločene z vejicami), v tem primeru poskrbite, da bo vaša najljubša pisava navedena na prvem mestu. Ob zagonu Yudita nastavite pisavo (tretji gumb z desne, zgornja vrstica) na TrueType. Ker Yudit uporablja lasten gonilnik za pisave TrueType, vam te podpore ni treba nastaviti v okolju XWindow. Če izbrana pisava ne podpira kakšnega znaka, se bo na njegovem mestu prikazal kvadratek s kodo znaka po Unicode. Pri shranjevanju besedila v datoteko to ne bo povzročalo težav, je pa lahko toliko bolj neprijetno ob tiskanju neposredno iz Yudita.

Uporabniški vmesnik Yudita je preveden v več jezikov, po zaslugi Romana Maurerja tudi v slovenščino. Slovenščino nastavite, če v yudit.properties vpišete vrstico: yudit.default.language=sl.

Poglavitna odlika Yudita je, da je mogoče vtipkati praktično katerikoli znak iz nabora Unicode, tudi če ga vaša tipkovnica ne podpira. V vhodnih datotekah (s pripono .kmap) je namreč mogoče določiti, naj se določena zaporedja vtipkanih znakov samodejno pretvorijo v določen znak, odvisno od imena trenutno izbranega ,vhoda`. 12 najpogostejših ,vhodov` (ločenih z vejicami) si lahko nastavite v yudit.properties v vrstici: yudit.editor.inputs=... lahko pa tudi kar interaktivno v samem Yuditu z gumbom Vhod (oz. Input), ki je drugi z desne v zgornji vrstici. Potem lahko izbrane ,vhode` preklapljate enostavno s funkcijskimi tipkami F1..F12.

Če ste tipkovnico nastavili za podporo našim črkam po standardu ISO 8859-2, je pametno, da je eden izmed izbranih ,vhodov` kar iso-8859-2, ki vam omogoča neposredno vtipkavanje šumnikov. Nekaj uporabnikov, ki kot preslikavo za tipkovnico uporabljajo XKB, poroča, da tak vnos ne deluje, zato pa preverjeno deluje pri načinu .Xmodmap. Če kdo ve, kako rešiti ta problem, ga vljudno prosimo, naj nam to sporoči.

Na voljo je nekaj že pripravljenih ,vhodov`, ki podpirajo tudi slovenske šumnike. Njihove kombinacije za posamezen šumnik so prikazane v spodnji tabeli:

,vhod`蚞ȊŽ
Slovenian, Croatian, Czechc<s<z<C<S<Z<
CS-dead, SK+c+s+z+C+S+Z
Lithuanian26=@^+
Mnemonic&c<&s<&z<&C<&S<&Z<
SGML&ccaron;&scaron;&zcaron;&Ccaron;&Scaron;&Zcaron;
TeX\v{c}\v{s}\v{z}\v{C}\v{S}\v{Z}
unicodeu010du0161u017eu010cu0160u017d

Opomba 1: če uporabljate hrvaški (Croatian) ,vhod`, ne pozabite, da so v hrvaščini (ne pa tudi v slovenščini) nj, lj in dž enakovredne črke, ki imajo tudi svoje mesto v naboru Unicode. Pazite na morebitne podobne jezikovne značilnosti tudi pri uporabi češkega (Czech, CS-dead), slovaškega (SK, CS-dead) ali litovskega (Lithuanian) ,vhoda`.

Opomba 2: do različice 2.4 v ,vhodu` SGML ni bilo velikih šumnikov, dokler ni pisec teh vrstic avtorju Yudita poslal dopolnila.

Opomba 3: nekateri izmed naštetih vhodov so bili prvič na voljo šele v različici 2.5, vendar so uporabni tudi v starejših.

Oglejmo si še zgled, kako si lahko sami v vhodni datoteki določimo poljubna zaporedja tipk za želeni znak. Najprej moramo v datoteko s pripono .kmap vpisati seznam zaporedij. Oglejmo si, kako je to narejeno v datoteki Slovenian.kmap (avtorja Romana Maurerja):

"C<=0x010C", // LATIN CAPITAL LETTER C WITH CARON
"S<=0x0160", // LATIN CAPITAL LETTER S WITH CARON
"Z<=0x017D", // LATIN CAPITAL LETTER Z WITH CARON
"c<=0x010D", // LATIN SMALL LETTER C WITH CARON
"s<=0x0161", // LATIN SMALL LETTER S WITH CARON
"z<=0x017E", // LATIN SMALL LETTER Z WITH CARON

Kakor vidimo, je definicija zaporedij preprosta. Začne se z narekovajem, sledi mu želeno zaporedje znakov, temu sledi enačaj (=), temu pa koda znaka (po Unicode), ki naj ga to zaporedje vrne. Koda znaka je lahko v desetiškem, osmiškem, največkrat pa je kar v šestnajstiškem številskem sistemu, kar označuje predpona 0x. Tako definirano zaporedje končamo z narekovajem, ki mu (tudi zadnjemu zaporedju!) sledi vejica. Kjerkoli v datoteki lahko pišemo tudi komentarje (vse med // in koncem vrstice). Če bomo svojo definicijsko datoteko posredovali tudi drugim, se spodobi, da vsak znak tudi opišemo.

Tako nastalo datoteko moramo spremeniti v tako obliko, da jo bo Yudit razumel (to označuje pripona .my). Z Yuditom dobimo tudi programček mytool, ki nam to naredi. Če se zgornja datoteka imenuje Slovenian.kmap in bi jo radi ,prevedli` v Slovenian.my, to storimo takole:

mytool -type kmap -kmap Slovenian.kmap -rkmap Slovenian.kmap -write Slovenian.my

Če se je pretvorba izvedla brez sporočil o napakah, moramo tako nastalo datoteko s pripono .my le še prenesti v /usr/share/yudit/data ali ~/.yudit/data in znova pognati Yudit.

Pri nalaganju datoteke v Yudit bodite pozorni na privzeto kodno razporeditev (če v yudit.properties pod yudit.default.encoding sami niste napisali ničesar, bo to UTF-8) in poleg določanja imena datoteke ne pozabite na to podrobnost. Prav tako pazite, če datoteko shranjujete v kaki drugi kodni razporeditvi kot različici Unicode. Če je v besedilu kak znak, ki ne pripada izbrani kodni razporeditvi, se bo na njegovem mestu brez poprejšnjega opozorila izpisalo \u+koda znaka (po Unicode v šestnajstiškem sistemu).

Joe[7]

Skupne nastavitve za urejevalnik Joe so v datoteki /usr/lib/joe/joerc (morda jo imate shranjeno kje drugje). Izbira -asis omogoči vnos in izpis osembitnih znakov. Sprožimo jo tako, da zbrišemo presledek pred njo.

Crisp

Crisp je urejevalnik v duhu urejevalnika Brief z burno zgodovino. Napisal ga je Paul Fox iz Anglije in ga distribuiral kot ,program za pokušino` (shareware). Zadnja taka različica je 2.2e iz leta 1991 in je po nekaterih vesteh avtor ne podpira več. Novejše (trenutno 7.0) pa trži podjetje Vital, Inc. iz Teksasa v ZDA. Crisp je nekako bliže pecejevskemu duhu kakor Emacs in Vi; če se nobenemu od njiju ne morete privaditi, bo morda Crisp pravi za vas.

Privzeta nastavitev urejevalnika Crisp 2.2e je, da znakov s kodami od 127 naprej ne prikaže, ampak izpiše njihovo šestnajstiško kodo, ki jo uvede z znakoma \x. Pomaga, če naložimo paket z izvirno 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 druge, 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 v starejši različici 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: namesto č vtipkamo "c, makro pa pretvori zaporedje v ustrezen znak. Poleg ISO Latin 1 podpira še nekaj drugih kodiranj, ki so v rabi v naših krajih. Navodila za uporabo so na voljo tudi v spletu.

Del distribucije Caldera OpenLinux je tudi ,lahka` izvedba urejevalnika Crisp, CRiSP LiTE. Caldera ponuja tudi možnost poznejše ugodnejše nadgraditve na polno izvedbo. CRiSP LiTE ne pozna zgoraj opisanih težav z vnašanjem osembitnih znakov.

Elektronska pošta

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
...
        

Xfmail 1.3[8]

V odjemalcu za elektronsko pošto XFMail je privzeto vgrajeno 16 sistemskih pisav knjižnice XForms, ki žal nimajo šumnikov. Je pa zato kljub vsemu mogoče izbrati tudi druge ,zunanje` pisave okolja XWindow. Če tega niste storili že prej, je zdaj skrajni čas, da v strežniku X nastavite nekaj pisav z znaki iz nabora ISO8859-2 {morda še povezava do ustreznega razdelka}. Z ukazom xlsfonts -fn "*-iso8859-2" izpišite seznam vseh nameščenih pisav s podporo znakom iz ISO8859-2 in izberite nekaj pisav, ki so vam najbolj všeč.

Prikaz naših črk boste potrebovali pri seznamih sporočil v osnovnem oknu, pri branju in sestavljanju sporočil, pri prikazu naslovnika ali pošiljatelja in pri naslovu samega sporočila in pa vsaj še na seznamu naslovov. Čeprav to nikakor ni nujno, vam priporočam, da si izberete pisave stalne širine. Z menuja osnovnega okna izberite Misc->Appearance. V novo odprtem oknu pritisnite na gumb Add, vtipkajte polno ime (natanko tako, kakor vam ga izpiše programček xlsfonts) vsake izbrane pisave posebej in vnos končajte s pritiskom na gumb OK. Postopek ponavljajte za vse izbrane pisave, pri tem pa nikar ne pretiravajte, ker je zaradi omejitev v knjižnici XForms lahko vseh pisav skupaj (s sistemskimi 16 vred) največ 64.

Ko ste tako vnesli vse izbrane pisave, morate še posameznim gradnikom XFMailovega uporabniškega vmesnika dopovedati, naj jih uporabljajo. V istem oknu (torej Fonts & Colors) morate obvezno izbrati najprej gradnik na skrajni desni strani. Nato v preostalih dveh izbirnikih izberite samo pisavo in velikost znakov. Pisave s podporo naboru ISO8859-2 določite predvsem naslednjim gradnikom: Message browser (prikaz vseh sporočil v izbrani mapi), Address book (izpis imen na vašem seznamu el. naslovov) in pa iso-8859-2 (Latin-2) (uporablja se pri branju in sestavljanju sporočil, pri pravilni nastavitvi v glavi sporočila za prikaz pošiljateljevega imena in naslova sporočila, pri seznamu naslovnikov itd.). Pisave lahko določite tudi preostalim gradnikom, vendar tam podpora šumnikom ni potrebna. Ko boste prvič zapustili XFMail, ne pozabite z ,Yes` odgovoriti na vprašanje, ali naj se nastavitve shranijo.

Ob sestavljanju novega sporočila (gumb Compose new) lahko nabor znakov določite vsakič posebej (z menuja okna za novo sporočilo izberete najprej Encoding->8 bit, nato pa še Language->iso-8859-2 (Latin-2)), lahko pa to tudi določite kot privzeto. To storite, če z menuja osnovnega okna izberete Misc->Config Display, nato pa v novo odprtem oknu še Charsets. V spodnjem desnem kotu, kjer je izbirnik Default character set, izberite iso-8859-2 (Latin-2), nad tem izbirnikom pa pod Default encoding označite še 8-bit(none) in pa Encode header.

Če želite uporabiti šumnike tudi pri odgovoru na sporočilo, se najprej prepričajte, ali so nastavitve pravilne (z menuja okna za sestavljanje sporočila najprej po potrebi nastavite Encoding->8 bit, nato pa še Language->iso-8859-2). Pri odgovarjanju se namreč privzeto nastavita kodiranje in nabor znakov izvirnega sporočila (ali 7-bitno kodiranje, če ni navedeno nič) in naslovnik lahko prejme drugačne znake, kot jih vidite vi v urejevalniku sporočila. Kaj lahko se vam zgodi, da ostane kodiranje sedembitno in se biti z največjo utežjo (MSB) ob pošiljanju samodejno nastavijo na 0, tako da namesto šumnika naslovnik prejme znak s spodnje polovice tabele ASCII.

Netscape Mail

V Netscape Mail 4.06 in novejšem, npr. 4.78, je mogoče 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 X Window System in X Window System), le še z menuja View poštnega programa izberemo Encoding, tam pa Central European (ISO-8859-2).

Vesel bom opisa izkušenj z drugimi izdajami programa Netscape Mail.

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 treba nadomestiti z ISO 8859-2.

Še enkrat prosim koga, ki ta program zares uporablja, naj opiše svoje izkušnje.

Svetovni splet

Lynx

Lynx pozna od izdaje 2.5 naprej tudi kodno stran ISO 8859-2. Nastavimo jo lahko na enega od treh načinov. Prvi je, da izberemo O)ptions, zatem C)harset in s pritiskanjem na smerne tipke izberemo želeni nabor znakov. Drugi je, da v datoteki ~/.lynxrc (osebna nastavitev) nastavimo

character_set=ISO Latin 2

Kot zadnje pa nam je na voljo, da v datoteki /usr/lib/lynx.cfg (skupna nastavitev)

CHARACTER_SET:ISO Latin 2

Netscape Navigator[9]

Netscape Navigator pa tudi brskalnik iz Netscape Communicatorja uporabljata nabor znakov X Windows System. Za prikaz naših znakov je torej treba najprej namestiti pisave za X11 (poglavje X Window System). Ko Navigator zaženemo, sam ugotovi, da so na voljo tudi pisave za ,Central European (ISO-8859-2)`. Če pregledujemo stran, ki brskalniku pravilno sporoči uporabljeni nabor znakov, Navigator samodejno 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 besedila. Navigator nam sam ponudi le pisave s pravim naborom znakov.

Če pregledujemo strani s pravilno razporeditvijo črk (razporeditev ISO 8859-2 in ne Windows-1250), pa Navigator ne uporabi pisave s pravo razporeditvijo črk, lahko razporeditev preklopimo ročno z izborom: View->Encoding->Central European (ISO-8859-2)

Ob izboru pisave s pravilno razporeditvijo črk in ob pravilni razporeditvi tipk na tipkovnici lahko uporabljamo naše črke tudi pri pisanju v modulu ,Page Composer`.

Netscape Communicator 4.06 in novejši znajo v Unixih z nameščenimi pisavami ISO 8859-2 prikazati tudi strani, napisane v kodni strani Microsoft CP1250, označene kot windows-1250 v glavi.

V brskalniku Netscape Navigator lahko nastavimo tudi prednostni seznam jezikov, v katerih želimo prebirati spletne strani. To storimo tako, da z menuja Edit->Preferences->Navigator->Languages izberemo slovenščino (sl) in jo dvignemo na vrh prednostnega seznama. Ker je večina spletnih strani pisana v angleščini, naj bo nekje na seznamu tudi angleščina (en). Strežniki, ki uporabljajo mehanizem za izbiro jezika, vgrajen v http (zgled je, denimo, iskalnik Google), se bodo tako z brskalnikom samodejno sporazumeli o tem, v katerem jeziku vam bodo ponudili spletne strani.

Amaya[10]

Torej takole je s to Amayo: šumniki (in druge 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 mogoče, da je izšlo že kaj novejšega... Narediti je treba le to, 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.

A tu je še nekaj takega kot kavelj 22 - v Navigatorju je treba imeti nastavljeno View->Encoding->Central European (ISO-8859-2) To imamo Slovenci tako ali tako vsi, ampak vseeno ni čisto v redu. Amaya bi morala v datoteko html zapisati character=iso-8859-2, vendar tega ne naredi. Napiše pa <body lang="x-Latin-2">, kar, vsaj jaz, prvič vidim.

... Iz interneta sem potegnil novo Amayo 2.1 in si ogledal, kako je s podporo 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 se program sploh odzove 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 dokumenta HTML tega ne zapiše. Napiše pa:

<body lang="cs">
        

Kar je nesmisel. Vsaj z Navigatorjem nima učinka. Č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.

Spletni strežniki

Note

Opomba: ta razdelek je prevod navodil ,Configuring WWW Server for ISO 8859-2`, ta pa se bolj ali manj opirajo na besedilo Marka Martinca ,Rešitev problema slovenskih šumnikov v HTML dokumentih`.

Načela

  1. Določilo HTTP zahteva, da prenosni protokol HTTP prenaša tok podatkov brez omejitve na nabor ASCII ali izpisljive znake. To zajema osembitne znake, šestnajstbitne znake kot npr. ISO10646 ali jezike z Daljnega vzhoda, 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. Privzeta kodna razporeditev (terminologija MIME/HTTP uporablja izraz ,nabor znakov`) za spise HTML je ISO 10646 ali njegova osembitna podmnožica ISO 8859-1. Vsak spletni brskalnik mora biti zmožen prikazati spis HTML, ki uporablja kodno razporeditev 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 drugo kodno razporeditev. Načeloma je dovoljena katerakoli kodna razporeditev, registrirana pri IANA Character Set Registry. Iz praktičnih razlogov pa se je priporočljivo omejiti 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 predstavljati nabor znakov, kot je bil prijavljen pri IANA. Prazna entiteta implicira nabor ISO 8859-1 (skupaj z US-ASCII, ki je njegova podmnožica).

    Spisi HTML, kodirani v skladu s kodno razporeditvijo ISO 8859-2, morajo potemtakem imeti v glavi vrstico MIME

    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čni razporeditvi znakov (ISO 8859-1 ali. ISO 10646), ne pa v trenutno izbrani. Tako torej sploh ne moremo uporabljati naših znakov, kodiranih skladno s kodno razporeditvijo ISO 8859-2, lahko pa uporabimo 16-bitne kode ISO 10646. Črko č (mali C s strešico) lahko torej zapišemo kot &#269;. In samo tako.

Praktični oziri

Kdaj je priporočljiva uporabiti kodno razporeditev ISO 8859-2 in kdaj ne? Znotraj intraneta (notranjega informacijskega sistema) v okolju, v katerem se uporablja ISO 8859-2, je morda smiselno to razporeditev uporabiti za vse spise. Če pa je informacija namenjena širšemu občinstvu, je treba vedeti, da je uporabniki zunaj Srednje ali Vzhodne Evrope, kjer se ta kodna razporeditev uporablja, morda ne bodo mogli prikazati. Veljavno določilo prenosnega protokola HTTP namreč od spletnih brskalnikov ne zahteva, naj prikažejo spise HTML, ki uporabljajo kodno razporeditev ISO 8859-2. Če brskalnik ne zmore prikazati strani v zahtevani kodni razporeditvi, lahko ta problem ignorira in stran (nepravilno) prikaže v kakšni drugi kodni razporeditvi (navadno ISO 8859-1) ali pa ponudi, da spis shranimo na disk. Zato je priporočljivo, da vstopne točke v naš informacijski sistem ne uporabljajo kodnih razporeditev, različnih od ISO 8859-1.

Podrobnosti izvedbe

Obdelali bomo tri metode, s katerimi lahko spletni strežnik prilagodimo, da pravilno postreže uporabniku s spisom, kodiranem po ISO 8859-2:

  • določitev nove pripone za statične spise, kodirane po ISO-8859-2, in vezava le-te na na primerno vrsto spisa v glavi MIME

  • dinamično prekodiranje spisov

  • uporaba posebnosti strežnika ali brskalnika

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 podlagi 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), nasprotno 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 kodno razporeditvijo ISO 8859-1 bodisi ISO 8859-2, in pričakovala od spletnega strežnika, da se bo nekako odločil, s kakšno glavo MIME bo opremil ene in druge. Ena možnost je vsekakor, da pripono .html trajno vežemo na zvrst spisov HTML, kodirano skladno s kodno razporeditvijo ISO 8859-2. Ta rešitev ima seveda očitno pomanjkljivost za občinstvo, ki ne more prikazati tega nabora znakov.

Tu 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 in 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 domiselno shemo (glej Rešitev problema slovenskih šumnikov v HTML dokumentih) lahko zagotovimo pravilne glave MIME za zvrsti spisov, ki uporabljajo kodne razporeditve, različne od ISO 8859-1. Če na primer določimo pripono .html-l2 za spise, kodirane skladno s kodno razporeditvijo 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

Dinamično prekodiranje

V 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 številnih različnih kodnih razporeditvah) ima ta metoda tudi slabosti: pretvarjanje spisa po eni strani porablja procesorski čas strežnika, po drugi strani pa dinamičnih spisov posredniki (angl. proxy) navadno ne shranjujejo v medpomnilniku, zato z njimi dodatno obremenjujemo komunikacijske vode.

Zgleda skriptov, ki izvajata dinamično prekodiranje:

  • slovene - paket za dinamično pretvarjanje spletnih spisov iz kodne razporeditve 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 perlu za dinamično pretvarjanje kodiranja spletnih spisov 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 Gavin Nicol s predlogom ,MIME Header Supplemented File Type`.

Metainformacija za spletni strežnik W3C

Spletni strežnik W3C (nekoč znan 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 ga še ni, 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 imeti 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
                  

Datoteke ASIS za strežnik Apache

Strežnik Apache določa posebno vrsto datoteke, imenovano ASIS. Strežnik pošlje datoteko ASIS odjemniku natančno tako, kot je (angl. ,as is`), ne da bi jo opremil z glavo, ki jo sicer zahteva protokol HTTP. V sami datoteki morajo zato biti 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

Zgled datoteke ASIS:

Status: 200 OK
Content-Type: text/html; charset=ISO-8859-2

<HTML>
<HEAD>
<TITLE>Hello world</TITLE>
</HEAD>
<BODY>
<H1>Živjo, svet!</H1>
</BODY>
</HTML>

Kakor vidite, morate v datoteko vstaviti tudi trimestno odzivno kodo strežnika. Strežnik vedno doda polji Date: in Server:, zato ju ne smemo vstaviti v datoteko.

Značka <META> z označbo HTTP-EQUIV

V določilu HTTP 2.0 predlagana značka <META> z označbo HTTP-EQUIV je bila predlagana kot neobvezna metoda, po kateri lahko strežnik potegne dodatno metainformacijo iz zaglavja (<HEAD>) spletnega spisa in jo uporabi pri tvorjenju glave MIME. Piscu teh vrstic ni znano, da bi kak strežnik to tudi v resnici počel. Tako razčlenjevanje spletnih spisov je verjetno prevelika obremenitev za procesor in bi se zelo 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 naprej).

Zgled spisa z metainformacijo o uporabljeni kodni razporeditvi v zaglavju spisa:

<HTML>
<HEAD>
  <TITLE>Naslov<TITLE>
  <META HTTP-EQUIV="Content-Type"
      CONTENT="text/html; charset=ISO-8859-2">
</HEAD>

<BODY>
Besedilo...
</BODY>
</HTML>

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 malo prej omenjenih programov, saj privzeti nastavitvi pri obeh podpirata osembitne znake. Če naletimo na težave, se poleg teh programov splača pogledati še

Telnet

Telnet eksplicitno pripravimo do vzpostavitve osembitne zveze z ukazom toggle binary:

~> telnet
telnet> toggle binary
Negotiating binary mode with remote host.
telnet> open nekje.dalec.si

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
...

rlogin

Privzeti način zveze pri programu ,rlogin` je osembiten, eksplicitno pa lahko to določimo z določilom ,-8`:

rlogin računalnik -8

TeX in LaTeX

Poslovenjenje paketa LaTeX obsega

Urejanje stvarnega kazala po slovenski abecedi zaenkrat še ne poteka samodejno. Pokažimo, kako lahko težavo z nekaj truda obidemo.

Podporo neangleškim jezikom v LaTeXu je poenotil paket babel Johannesa Braamsa z Nizozemske, ki je standardni del vseh sodobnih distribucij paketa TeX v Linuxu, denimo teTeX.

Z uporabo izbire ,slovene` v paketu babel se samodejno 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. Zgled 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 navadno konča 
šele ob štirih, odpešačijo učenci iz občin Želimlje in Žetale domov 
že četrt čez tri.
\end{document}

LaTeX 2.09

V starejši različici paketa LaTeX, LaTeX 2.09, ne moremo uporabiti mehanizma inputenc. Pomagamo si s slogom latin2.sty Andreja Brodnika. Zgled rabe:

\documentstyle[latin2]{article}
\begin{document}
...
\end{document}

Slog latin2 je na voljo v vseh strežnikih CTAN, npr. ftp.dante.de.

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 rabo brez namena pridobivanja premoženjske koristi. Od leta 1995 naprej zanjo skrbi dr. Leon Žlajpah z IJS, ki jo je posredoval tudi skrbniku 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 15. 4. 1997.

V distribuciji teTeX, ki je najbolj priljubljena distribucija v Unixu, vklopimo podporo slovenskim delilnim vzorcem tako, da kot upravitelj poženemo program texconfig. Z menuja 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 zbrišete tako, da kazalec pripeljete nanj in pritisnete tipko x. Datoteko shranite in končajte delo 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 zbrišemo komentar (znak za odstotek) pred zapisom slovene sihyph23.tex, shranimo in zapustimo urejevalnik. Program texconfig bo samodejno ustvaril nove formatne datoteke z vgrajenimi delilnimi vzorci.

Pisec teh vrstic je imel še nepojasnjene težave z datoteko sihyph22.tex. Enako čudežno, kot so nastale, so tudi izginile, ko mu je dr. Žlajpah poslal novo izdajo slovenskih delilnih vzorcev. Datoteka sicer kroži že kakih pet let, vendar še vedno ni del paketa teTeX. Dobimo jo v strežniku sizif.mf.uni-lj.si in postavimo ob bok stari datoteki, navadno v imenik /usr/TeX/texmf/tex/generic/hyphen/. V slednjem primeru 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 straneh TeXCeha.

LyX[11]

Če uporabljamo LyX s standardno slovensko tipkovnico (102/105 tipk), ga lahko enostavno prilagodimo delu 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 je videti, 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 (neki) 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 vštevši 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 so o napaki obveščeni in jo bodo verjetno popravili v naslednjih izdajah.

Sedembitni vnos šumnikov kot "c"s"z je otežen, ker LyX samodejno 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 znova določimo 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 samodejno 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 iz 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 :

Options / Keyboard / Primary = slovene

Ustrezna datoteka slovene.kmap je praviloma v imeniku /usr/share/lyx/kbd/.

Takole pa lahko uporabimo črkovalnik Ispell (več o njem v razdelku Črkovanje: Ispell) za črkovanje slovenskih spisov: Edit->Spellchecker->Spellchecker Options->Use alternate language: slovensko ter Edit->Spellchecker->Spellchecker Options->Extra special chars allowed in words: 蚞ȊŽ

V slovenski izdaji urejevalnika LyX pa: Uredi->Črkovalnik->Izbire črkovalnika->Uporabi drug jezik: slovensko ter Uredi->Črkovalnik->Izbire črkovalnika->Dodatni posebni znaki, dovoljeni v besedah: 蚞ȊŽ

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 (zbrišemo začetni znak za odstotek):

    % (a4) /PAPERSIZE where { pop pop } { /PAPERSIZE exch def } ifelse

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 ponazori 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}

Zvijača je v tem, da makeindex dopušča skladnjo \index{vnos1@vnos2}, pri čemer 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 kodni razporeditvi 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.

groff

Groff ponuja precej omejeno podporo našim znakom. 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 razporeditvi 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 postscriptni obliki med pisanjem tega spisa še vedno ne deluje, čeprav bi se mehanizme iz paketa ogonkify Juliusza Chroboczka podobno kakor v programu a2ps verjetno dalo uporabiti tudi tu. Še največja težava 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 , najdete ga na

Črkovanje: ispell

Večino sodobnih distribucij Linuxa že dobimo s črkovalnikom Ispell;, manjka pa mu slovenski besedni zaklad. Tega najdete v katerikoli od navedenih datotek:

Če je v istem imeniku na voljo novejša izdaja, seveda vzamemo to.

Prva arhivska datoteka je prevedena v sistemu Red Hat Linux 7.1 in jo lahko v enakih sistemih namestimo enostavno z ukazom

rpm -i ispell-sl-0.5-3.i386.rpm

Kopije datoteke, izvirne in prevedene za različne sisteme, najdemo tudi na ustreznih mestih za anonimni FTP:

V vseh drugih sistemih moramo prevedeno datoteko zgraditi sami. Kot sistemski oskrbnik poženemo

rpm --rebuild ispell-sl-0.5-3.src.rpm

Redhat Package Manager bo v nekaj minutah pripravil datoteko ispell-sl-0.5-3.i386.rpm in jo pustil v imeniku /usr/src/redhat/RPMS/i386/, /usr/src/OpenLinux/RPMS/i386/ ali takem, ki ustreza distribuciji, ki jo uporabljate. To datoteko lahko zatem namestimo z ukazom

rpm -i /usr/src/redhat/RPMS/i386/ispell-sl-0.5-3.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 slovenščini pa 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.

Osnovni slovenski leksikon izvira iz zbirke, 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 Instituta Jožefa Stefana je na voljo za nepridobitno rabo. Ponske vzorce sta prispevala mag. Dušan Gabrijelčič in mag. Franci Močilar, oba z odseka za odprte sisteme in omrežja Instituta Jožef Stefan.

Težave z znaki A, D in E

Pri nekaterih starejših izdajah ponske datoteke ima Ispell težave z besedili, pisanimi z znaki ISO 8859-2 in pripono .tex (to pripono navadno uporabljamo za besedila, pisana za stavni sistem TeX). Težave se kažejo v tem, da Ispell jemlje črke A, D in E kot meje med besedami. Izognemo se jim, če nadomestimo ponsko datoteko z novejšo različico, dostopno na prej omenjenem naslovu ftp://biofiz.mf.uni-lj.si/pub/ispell/ .

Pretvarjanje različnih kodiranj

Razen ISO Latin 2 premore 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.

Iconv

Čeprav ni težko napisati programčka za pretvorbo enega kodnega nabora v drugega, je pripravno uporabiti že izdelan program. Od izdaje 2.1 naprej knjižnica GNU libc podpira internacionalizacijo in v okviru tega tudi pretvarjanje različnih naborov znakov. Na uporabniški ravni imamo do teh funkcij knjižnice dostop s programom iconv.

Uporaba je enostavna; z ukazom

iconv --from-code=nabor1 --to-code=nabor2 datoteka

pretvorimo dano datoteke iz prvega podanega nabora v drugega. Seznam podprtih kodnih naborov dobimo z izbiro --list. Če datoteka ni podana, iconv bere s standardnega vhoda. Rezultat pretvorbe se izpiše na standardni izhod, razen če z izbiro --output ne določimo drugače.

Recode

Nekaj dlje kot iconv je dostopen GNU recode, dosegljiv npr. v strežniku ARNES:

ftp.arnes.si

Uporaba je enostavna; z ukazom

recode yu..latin2 datoteka

pretvorimo 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.

Note

Starejše izdaje programa Recode (pred različico 3.5), ki ne poznajo Microsoftovih kodnih strani 1250-1259, uporabljajo malo drugačno skladnjo:

recode yu:latin2 datoteka

Po izkušnjah pisca je prečrkovanje (npr. ,nabori` latex ali flat) še vedno omejeno na pretvorbo iz nabora ISO 8859-1 in vanj.

Drugi programi

Pregledovalnik less

Less (avtor Mark Nudelman) je program za pregledovanje besedil na zaslonu in priljubljena zamenjava standardnega more.

Less prilagodimo izpisu 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), in ker je razporeditev znakov enaka v vsej družini ISO 8859, lahko izberemo kar latin1. Namesto tega lahko tudi izrecno navedemo zaporedje vrste 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.

Koledar gcal

V vse sisteme Unix je 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 naprej pozna tudi slovenske praznike. Najdemo ga na običajnih mestih distribucije GNU. Najbliže je verjetno:

ftp.arnes.si

Spodnja vrednost spremenljivke GCAL ustreza našim razmeram:

GCAL="--cc-holidays=SI --gregorian-reform=1582 --starting-day=1"; export GCAL
        

(z izbiro --cc-holidays=SI zahtevamo slovenski nabor praznikov in dela prostih dni, z izbiro --gregorian-reform=1582 določimo datum prehoda z julijanskega na gregorijanski koledar, z izbiro --starting-day=1 pa, da se teden začne v ponedeljek)

Notes

[1]

Jaka Mele, Vse naredim v Linuxu!, Win.Ini, l. 6, št. 9, str. 60

[2]

Boris Požar, Message-Id: <346044BF.FE97E3AF@guest.arnes.si>

[3]

Milan Gabor,

[4]

Prispeval Miha Tomšič, .

[5]

Aleš Košir,

[6]

Prispeval Jernej Kovačič,

[7]

Prispeval Danilo Godec,

[8]

Prispeval Jernej Kovačič,

[9]

Metod Koželj, Message-id: <Pine.HPP.3.96.981216083349.17728E-100000@hmljhp.rzs-hm.si>

[10]

Prispeval Andraž Hvalica, Message-id: <374E958D.ADD55B49@amis.net> in Message-id: <3788BBF0.1041C481@amis.net>.

[11]

Prispeval Roman Maurer, .