<!doctype linuxdoc system>
<article>
<title>LinuxDoc+Emacs+Ispell-HOWTO</title>
<author>
  Avtor: Philippe MARTIN
  (<htmlurl url="mailto:feloy@wanadoo.fr" name="feloy@wanadoo.fr">) &nl;
  Prevajalec: S&eacute;bastien Blondeel
  (<htmlurl url="mailto:Sebastien.Blondeel@lifl.fr"
   name="Sebastien.Blondeel@lifl.fr">) &nl;
   Prevajalca v slovenščino: Roman Maurer (prva štiri poglavja) in
   Jernej Kovačič (<htmlurl url="mailto:jkovacic@email.si"
     name="jkovacic@email.si">) (drugo)
</author>
<date>v0.5, 28. april 1998, prevod 10. september 2001

<abstract> 
Ta sestavek je namenjen prevajalcem in piscem spisov HOWTO za Linux
ali katerihkoli drugih dokumentov Dokumentacijskega projekta za Linux.
Ponuja jim namige za uporabo orodij, tudi za urejevalnik besedil
Emacs in črkovalnik Ispell.
</abstract>
<toc>

<sect>Predgovor
<sect1>Pravice razširjanja
<p>
Copyright Philippe Martin 1998&nl;
Ta sestavek lahko razširjate in/ali spreminjate, če upoštevate
pogoje splošne licence GNU, različice 2 ali poznejše.

<sect1>Zahvale
<p>
Posebej se zahvaljujem S&eacute;bastienu Blondeelu, ker me je veliko
spraševal o nastavitvah Emacsa. Po zaslugi njegovih bistrih vprašanj 
bolje poznam ta urejevalnik in lahko s tem dokumentom
svoje znanje prenašam tudi na vas.

<sect1>Pripombe
<p>
Brez oklevanja mi sporočite morebitne pripombe in/ali kritike
tega dokumenta, za katere mislite, da bodo izboljšale spis.
&nl;
Prav tako brez oklevanja zastavljajte vprašanja, ki se nanašajo na
tu obravnavane teme, z veseljem vam bom odgovoril.

<sect1>Različice
<p>
Ta sestavek obravnava naslednje različice:
<itemize>
  <item>SGML-Tools različice 0.99,
  <item>Emacs različice 19.34,
  <item>Ispell različice 3.1,
  <item>Vse knjižnice Emacsa, na katere se sklicuje ta sestavek,
     se razširjajo z gornjo različico Emacsa, razen <tt/iso-sgml/, ki jo dobite
     poleg XEmacsa, in <tt/psgml/, ki se razširja posebej.
</itemize>
 
<sect>Uvod
<sect1>Jezik SGML
<p>
Jezik <bf/SGML/ (ang. <it>Standard Generalised Mark-up Language</it>)
je jezik za definiranje vrst dokumentov.
<p>
Na primer, definira se lahko vrsta dokumenta za <it>kuharski recept</it>,
katerega prvi del določa sestavine, drugi del pripomočke, tretji
navodila za peko torte, v zadnjem delu pa je prikazana slika
končnega rezultata.
<p>
Taka definicija vrste dokumenta se imenuje DTD (ang. <it>Document Type
Definition</it>). DTD ne določa videza končnega izdelka, temveč le
definira, kaj vse lahko obsega.
<p>
Če spet uporabimo prejšnji zgled: prepričan sem, da ste se ob branju
mojega kuharskega recepta domislili svojega ali recepta vašega
najljubšega kuharja. Vsak je drugačen: moj je na fotografiji,
ki jo najdete v levem zgornjem kotu kopališke omarice, seznam
sestavin pa poiščite med bazenom in žarom. Pa vaš?
<p>
Zahvaljujoč tej standardni definiciji se lahko pišejo sestavki, ne da
bi morali predvideti, kako jih bo videl bralec.
</sect1>

<sect1>Definicija vrste <tt>LinuxDoc</tt>
<p>
Ta vrsta omogoča pisanje, kot ste verjetno uganili, dokumentacije,
povezane z Linuxom.
<p>
Ti dokumenti so navadno sestavljeni takole: začenjajo se z naslovom,
Temu sledi avtorjevo ime in številka različice ter datum. Potem
pride povzetek, ki na kratko razlaga vsebino sestavka (da vam ni treba
brskati po njej, nazadnje pa ugotovite, da to ni to, kar iščete), potem
kazalo, ki prikazuje strukturo sestavka in omogoča tistim, ki se
jim mudi, da preidejo neposredno na del, ki ga želijo brati.
<p>
In nadalje sledi zbirka poglavij, razdelkov, odstavkov. Med temi
odstavki lahko vstavite kodo programov, spremenite pisavo, da
ponazorite besedo ali stavek, vstavljate sezname, se sklicujete
na druge dele sestavka itd.
<p>
Za pisanje takega sestavka zadostuje na primernem mestu določiti
naslov, avtorja, datum in različico sestavka, nato pisati poglavja
in razdelke, povedati, kdaj se vstavi seznam in kaj so njegovi
elementi itd.
</sect1>

<sect1>Paket <tt>SGML-Tools</tt>
<p>
Paket <bf>SGML-Tools</bf> omogoča izdelavo končnega formata dokumenta
iz njegovega opisa. Če želite dokument uvrstiti v osebno
knjižnico, boste izbrali izhodni format <it>PostScript</it>, če ga
želite deliti s svetom na svetovnem spletu, boste izbrali <it>HTML</it>,
in če ne morete pomagati in morate brati v Windows, ga boste
spremenili v <it>RTF</it>, da ga boste lahko uvozili v kak
urejevalnik besedil. Morda boste želeli uporabljati različne
formate, ki se bodo prilagajali vašemu spremenljivemu razpoloženju.

Paket SGML-Tools je dostopen po anonimnem FTP iz arhiva
<url url="ftp://ftp.lip6.fr/pub/sgml-tools/">.
</sect1>

<sect>Vaš prvi sestavek
<p>
<sect1>Iz tekstovne datoteke
<p>
Če želite spremeniti svoj tekstovni dokument v DTD LinuxDoc, da bi ga potem 
spremenili v razne druge formate, je to prava pot:
<enum>
 <item>Na samem začetku sestavka dodajte naslednje vrstice:
<tscreen><verb>
<!doctype linuxdoc system>
<article>
<title>Tu je naslov&etago;title>
<author>
ime avtorja, njegov e-poštni naslov
&etago;author>
<date>
različica in datum sestavka
&etago;date>
</verb></tscreen>
 <item>Če na začetku na kratko opišete vsebino sestavka, obkrožite
  ta odstavek z oznakama <tt>&lt;abstract&gt;</tt> in
  <tt>&etago;abstract&gt;</tt>.
 <item>Potem vstavite oznako <tt>&lt;toc&gt;</tt>, ki v končnem
  formatu samodejno naredi <em>kazalo</em> (ang. Table Of Contents). 
 <item>Na začetku vsakega novega poglavja nadomestite vrstico s številko
  in naslovom poglavja z vrstico:
<tscreen><verb>
<sect>Naslov poglavja
</verb></tscreen>
  in na koncu poglavja dodajte oznako <tt>&etago;sect&gt;</tt>.&nl;
  <p>
  <bf>Vedite:</bf> Ni vam treba vstavljati številke poglavja, to se
  naredi samodejno.
  <item>Enako nadaljujte z razdelki. Morali boste odstraniti
    njihove številke in označiti njihov obseg z oznakama
    <tt>&lt;sect1&gt;</tt> in <tt>&etago;sect1&gt;</tt>.
  <item>Podobno lahko definirate do štiri ravni gnezdenja razdelkov
    (pri <tt>&lt;sect4&gt;</tt> in <tt>&etago;sect4&gt;</tt>).
  <item>Na začetku vsakega odstavka vstavite oznako <tt>&lt;p&gt;</tt>.
  <item>Če želite poudariti določene dele ali fraze, jih ukleščite
    med oznaki <tt>&lt;it&gt;</tt> in <tt>&etago;it&gt;</tt>
    (<it>kurzivno</it>), ali <tt>&lt;bf&gt;</tt> in <tt>&etago;bf&gt;</tt>
    (<bf>polkrepko</bf>),
    ali med <tt>&lt;tt&gt;</tt> in <tt>&etago;tt&gt;</tt> (<tt>pisalni
    stroj</tt>).
  <item>Seznam, kot je naslednji:
<tscreen><verb>
To je seznam s štirimi vrsticami:

 - tu je prva vrstica,
 - potem druga,
 - še ena,
 - dovolj.
</verb></tscreen>
    vstavite z naslednjo kodo:
<tscreen><verb>
To je seznam s štirimi vrsticami:
<itemize>
<item>tu je prva vrstica,
<item>potem druga,
<item>še ena,
<item>dovolj.
&etago;itemize>
</verb></tscreen>
  <item>Ko celoten blok predstavlja del programa ali kaj drugega,
    kar mora ohraniti svoj videz:
<tscreen><verb>
<verb>
10 REM O, bog, kaj pa je zdaj to?
20 REM Mislil sem, da tega že zdavnaj ni več!
30 PRINT "Vrnil sem se";
40 PRINT "rešit svet."
50 INPUT "Pred kom, sprašujete? ",M$
60 IF M$="Bill" THEN PRINT "Pametni ste.":GOTO VRAJ
70 ELSE PRINT "Ničesar ne razumete...":GOTO DAJDOLARJE
&etago;verb>
</verb></tscreen>
  <item>Prišli ste do točke, ko so vaše formatirne zmogljivosti
    za SGML DTD LinuxDoc precej spodobne. Če želite izboljšati
    svoj sestavek, poglejte v uporabniški priročnik paketa
    <bf>SGML-Tools</bf>, ki podrobneje razlaga vrsto dokumenta
    <bf>LinuxDoc</bf>.
</enum>
</sect1>
</sect>

<sect>Prilagoditev Emacsa
<p>
<sect1>Šumniki in črke z naglasnimi znamenji
<p>
Črke slovenske abecede so podprte v kodnem naboru ISO Latin 2 (ISO 8859-2).
Na tem mestu je koristno prebrati <htmlurl name="Slovenian HOWTO"
 url="http://www.lugos.si/delo/slo/HOWTO-sl/Slovenian-HOWTO.html">, ki
razlaga nastavitve za vnos, prikaz in tiskanje naših črk.
<p>
Emacs prebere svoje nastavitve iz naslednjih datotek:
<itemize>
  <item><tt>/usr/lib/emacs/site-lisp/site-start.el</tt> (skupne nastavitve) 
  <item><tt>~/.emacs</tt> (osebne nastavitve) 
  <item><tt>/usr/lib/emacs/site-lisp/default.el</tt> (skupne nastavitve) 
</itemize>
Tam, kjer se sklicujemo na datoteko <tt>.emacs</tt>, s tem pravzaprav mislimo
na katerokoli izmed zgornjih treh datotek.

<sect2>Prikaz osembitnih znakov
<p>
Če želite pisati spise <tt>.sgml</tt> v slovenščini ali v kateremkoli
drugem evropskem jeziku, boste potrebovali osembitne znake. Emacs prilagodite
za prikaz osembitnih znakov z naslednjo vrstico v vaši datoteki
<tt>.emacs</tt>:
<tscreen><verb>
(standard-display-european t)
</verb></tscreen>
Za vnos zahodnoevropskih črk pride prav tudi naslednja vrstica, ki pa
zaenkrat ni uporabna za slovenščino:
<tscreen><verb>
(load-library "iso-syntax")
</verb></tscreen>
Če uporabljate Emacs za pisanje zahodnoevropskih besedil na terminalu,
ki ne podpira osembitnega prikaza, lahko uporabite knjižnico
<tt>iso-ascii</tt> (<tt>(load-library "iso-ascii")</tt>), 
ki poskrbi, da Emacs prikazuje najboljše približke osembitnih črk.

<sect2>Vnos osembitnih znakov
<p>
Tipkovnico nastavite za vnos osembitnih črk v konzoli ali v Oknih X,
če Emacs poganjate tam. Take nastavitve so skupne vsem programom
v konzoli ali v Oknih X in so opisane v spisu <htmlurl name="Slovenian HOWTO"
 url="http://www.lugos.si/delo/slo/HOWTO-sl/Slovenian-HOWTO.html">.
<p>
Če vaša tipkovnica v konzoli ali Oknih X torej podpira vnos
osembitnih znakov, boste morali le v datoteko <tt>.emacs</tt> dodati
naslednje vrstice:
<tscreen><verb>
;; Omogočimo vnos znakov s kodo, večjo od 127
(set-input-mode (car (current-input-mode))
        (nth 1 (current-input-mode))
        0)
</verb></tscreen>
Če vaš terminal ne podpira osembitnega vnosa, ste pri pisanju
slovenskih besedil v težavah. Za pisanje zahodnoevropskih besedil
si lahko pomagate z dodatnimi paketi:

<sect3>Knjižnica <tt>iso-acc</tt>
<p>
Knjižnica za Emacs <tt>iso-acc</tt> vam bo omogočila vnos osembitnih
znakov s tipkovnico, ki sicer omogoča le vnos sedembitnih črk.
<p>
Za uporabo te knjižnice vstavite naslednje v vašo datoteko <tt>.emacs</tt>:
<verb>
(load-library "iso-acc")
</verb>
<p>
Ko boste naslednjič pognali Emacs in odprli datoteko, ki bi jo radi uredili,
napišite <tt>Meta-x iso-accents-mode</tt>.
<p>
Črko <bf>&eacute;</bf> v francoski besedi <em>caf&eacute;</em> lahko
vstavite tako, da pritisnete <bf>'</bf> in potem še <tt>e</tt>.
V splošnem lahko vpišete zahodnoevropski znak z naglasnim znamenjem tako, da
najprej pritisnete ustrezno naglasno znamenje, ki mu sledi črka pod njim
(velika ali mala). Uporabite lahko naslednja naglasna znamenja:
<list>
  <item><tt>'</tt>&nbsp;: ostrivec
  <item><tt>`</tt>&nbsp;: krativec
  <item><tt>^</tt>&nbsp;: strešica
  <item><tt>"</tt>&nbsp;: preglas"
  <item><tt>&tilde;</tt>~: tilda nad črko, sedij (kljukica pod ,,c``),
    in drugi posebni primeri (glejte <tt>iso-acc.el</tt>)
  <item><tt>/</tt>~: različna skandinavska naglasna znamenja idr.
</list>      
Če potrebujete enega od teh znakov in ne naglašene črke, pritisnite za
njim presledek. Na primer, za vnos <it>l'&eacute;l&eacute;phant</it>,
napišite <tt>l ' <cparam/spc/ ' e l ' e ...</tt>
<p>
Vse možne kombinacije boste našli v datoteki <tt>iso-acc.el</tt>.

<sect3>Tipka <cparam/Meta/
<p>
Nekateri terminali vam omogočajo vnos osembitnih znakov s tipko
<cparam/Meta/ (ali <cparam/Alt/). Na primer, če pritisnete kombinacijo
<bf><cparam/Meta/-i</bf>, lahko dobite znak <bf>&eacute;</bf>.
<p>
Vendar Emacs potrebuje tipko <cparam/Meta/ za drugačno rabo. Zato
morate pritisniti zaporedje <cparam/Ctrl/-q (ukaz <tt>quoted-insert</tt>), 
preden pritisnete <cparam/Meta/-i.

Ta ukaz vam dovoljuje vnos znakov tudi z vpisom osmiške kode. Pritisnite
kombinacijo <cparam/Meta/-q, ki ji sledi osmiška koda znakov, ki bi jih
radi vnesli. Slovenske šumnike ,,ČŠŽ`` in hrvaški črki ,,ĆĐ``, pisane
 
po ISO Latin 2, lahko vnesete z naslednjimi kombinacijami:
<tscreen><verb>
č  Ctrl-q 350    Č  Ctrl-q 310
š  Ctrl-q 271    Š  Ctrl-q 251
ž  Ctrl-q 276    Ž  Ctrl-q 256
ć  Ctrl-q 346    Ć  Ctrl-q 306
đ  Ctrl-q 360    Đ  Ctrl-q 320
</verb></tscreen>

<sect2>Prikaz osembitnih znakov v SGML DTD LinuxDoc
<p>
V SGML lahko vnašate naglašene znake z makroukazi, vendar žal
ne tudi srednjeevropskih. Na primer, simbol za tipko <bf/&eacute;/ je
<bf/&amp;eacute;/. V splošnem, aplikacije, ki morajo brati SGML, znajo
brati osembitne znake in ni treba uporabljati teh makroukazov. Vendar
nekateri morda ne bodo mogli brati osembitnih znakov. Če vemo, da je na voljo 
preprosta rešitev (spet samo za zahodne narode, op. prev.), bi bilo škoda
pustiti, da se take aplikacije sesujejo.
<p>
Knjižnica <tt>iso-sgml</tt> vam omogoča vnos naglašenih znakov v Emacsu
kakor vedno, a ob shranjevanju datoteke na disk bo samodejno
spremenila osembitne znake v njihove ustreznike v SGML. Vendar, žal,
slovenske povsem napačno, saj jih v ISO Latin 1 ni.
<p>
No, zahvaljujoč tej knjižnici, je lahko vnašati in brati spise z zahodnimi
znaki, pisanimi po ISO Latin 1 (ISO 8859-1) v Emacsu, in prepričani ste
lahko, da bo aplikacija, ki sicer ne sprejme osembitnih sestavkov, po takem
postopku vašega sprejela.
<p>
Za uporabo te knjižnice morate dodati naslednje vrstice v vašo datoteko
<tt>.emacs</tt>:
<tscreen><verb>
(setq sgml-mode-hook
'(lambda () "Privzete nastavitve načina SGML."
(load-library "iso-sgml")))
</verb></tscreen>

<sect1>Način SGML
<p>
Po nalaganju datoteke s podaljškom <bf>.sgml</bf> Emacs samodejno
vstopi v <bf>način sgml</bf> (ang. sgml mode). Če ne, mu lahko
to naročite ročno z ukazom <tt>Meta-x sgml-mode</tt>, ali samodejno
z dodatkom naslednjih vrstic v vašo datoteko <tt>.emacs</tt>:
<tscreen><verb>
(setq auto-mode-alist
(append '(("\.sgml$"  . sgml-mode))
          auto-mode-alist))
</verb></tscreen>
Ta način vam bo, na primer, omogočil izbiranje, kako boste vnašali
osembitne znake. Z ukazom <tt>Meta-x sgml-name-8bit-mode</tt> (ali z
menujsko postavko <it>SGML/Toggle 8-bit insertion</it>) lahko izberete vnos
osembitnih znakov kot takih, ali v obliki SGML, se pravi, v obliki
<bf>&amp;...;</bf>.

Emacs vam bo tudi dovoljeval skriti ali prikazati oznake SGML z ukazom
<tt>Meta-x sgml-tags-invisible</tt> (ali z menujsko postavko
<it>SGML/Toggle Tag Visibility</it>).

<sect1>Način PSGML
<p>
Načinu PSGML zelo pomaga pri urejanju spisov SGML z Emacsom.
<p>
Dokumentacija za <htmlurl name="psgml-linuxdoc"
 url="http://www.linux-france.com/article/psgml-linuxdoc"> razlaga,
kako namestiti in uporabljati ta način z zvrstjo besedila
<it>LinuxDoc</it>.

<sect1>Razno
<p>
<sect2>Način auto-fill
<p>
Ko v normalnem načinu napišete odstavek in pridete do konca vrstice,
morate sami uporabiti tipko <cparam/Return/, da pridete v naslednjo
vrstico, sicer se bo vaša vrstica nadaljevala nedoločeno dolgo skozi
ves odstavek. Kadar uporabite <cparam/Return/ za pomik v novo vrstico,
dobite odstavek z neporavnanimi desnimi robovi. Če dopustite, da so
nekatere vrstice daljše od razumne širine, jih z nekaterimi urejevalniki ne
boste mogli videti.
<p>
Način <bf>auto-fill</bf> avtomatizira to nehvaležno opravilo: ko
greste dlje od določenega stolpca (privzeto 70.), vas samodejno
postavi v naslednjo vrstico.
<p>
Takole uporabite ta način in nastavite širino vaših vrstic na 80:
<tscreen><verb>
(setq sgml-mode-hook
     '(lambda () "Defaults for SGML mode."
	 (auto-fill-mode)	
	 (setq fill-column 80)))
</verb></tscreen>

<sect>Ispell
<p>
Če želite pravopisno preveriti spis v Emacsu, lahko uporabite
paket <bf>Ispell</bf> in njegov način za Emacs.

<sect1>Izbor privzetega besednjaka
<p>
Emacs lahko nastavite tako, da po nalaganju datoteke avtomatsko določi,
kateri besednjak naj uporabi (uporabljate jih namreč lahko več). Prvi,
zagotovo najpomembnejši, je glavni besednjak, ki se razširja skupaj z Ispellom.
Izbirate lahko med več jeziki. Drugi besednjak je vaš osebni, v katerega Ispell
vstavlja besede, ki jih ni našel v prvem besednjaku, vendar ste mu naročili,
naj si jih zapomni.

Če želite kot privzetega uporabljati slovenski besednjak (dobite ga lahko na
naslovu <htmlurl
url="ftp://sizif.mf.uni-lj.si/pub/i18n/ispell/ispell-sl-0.1-1.src.rpm"
name="ftp://sizif.uni-lj.si/pub/i18n/ispell/ispell-sl-0.1-1.src.rpm">)
in če želite uporabljati
datoteko<tt>.ispell-dico-perso</tt> v vašem domačem imeniku kot osebni
besednjak, vnesite naslednje vrstice v vašo datoteko <tt>.emacs</tt>:  
<verb>
(setq sgml-mode-hook
'(lambda () "Privzeto za nacin SGML."
(setq ispell-personal-dictionary "~/.ispell-dico-perso")
(ispell-change-dictionary "slovensko")
))
</verb>

<sect1>Izbor posebnih besednjakov za določene datoteke 
<p>
Manjše težave povzroči, če ne preverjate črkovanja v dokumentih 
vedno v istem jeziku. Če prevajate dokumente, je zelo verjetno, da pogosto
pomešate jezike (in besednjake).
 
    <p>
Žal ne poznam nobenega načina v Lispu, niti avtomatskega niti kakšnega z 
enojnim klikom z miško, za izbor glavnih in osebnih besednjakov, povezanih s
trenutno rabljenim jezikom. (Če veste kaj več, mi, prosim, povejte!)
 
     <p>
Vendarle pa je mogoče na koncu datoteke označiti, katere besednjake želite
uporabljati ob preverjanju trenutne (in samo te) datoteke.
Zadostuje, da te oznake dodaste kot komentarje, tako da jih bo Ispell
znal prebrati ob zagonu preverjanja črkovanja: 
 
<verb>
<!-- Local IspellDict: english -->
<!-- Local IspellPersDict: ~/emacs/.ispell-english -->
</verb>

Če ste prej v datoteki <tt/.emacs/ definirali, naj bodo privzeti besednjaki
slovenski, lahko dodaste te vrstice na konec vsake datoteke v
angleščini.  

<sect1>Preverjanje črkovanja v vašem dokumentu
      <p>
Preverjanje črkovanja celotnega dokumenta lahko s kateregakoli mesta v 
preverjanem dokumentu poženete z ukazom <tt>Meta-x ispell-buffer</tt>. Lahko
pa tudi preverite samo del dokumenta:
 
      <itemize>
       <item> Označite začetek področja s tipkama <tt>Ctrl-Spc</tt>
        (mark-set-command),
       <item> pojdite na konec področja, ki ga želite preveriti,
       <item> in vtipkajte <tt>Meta-x ispell-region</tt>.
      </itemize>
 
Emacs zatem požene Ispell. Ko naleti na neznano besedo, vam jo pokaže
(ponavadi osvetljeno) in čaka, da pritisnete na ustrezno tipko:
 
      <itemize>
       <item><bf>spc </bf>sprejme besedo, samo tokrat,
       <item><bf>i </bf>sprejme besedo in jo doda v vaš osebni besednjak, 
       <item><bf>a </bf>sprejme besedo, velja samo za to preverjanje,
       <item><bf>A </bf>sprejme besedo samo za to datoteko in jo doda v besednjak za preverjano datoteko,
       <item><bf>r </bf>dovoli vam ročno popravljanje besede,
       <item><bf>R </bf>dovoli vam popravek, ki velja za vse primere napačno vtipkane besede,
       <item><bf>x </bf>ustavi preverjanje in postavi kazalec nazaj,
       <item><bf>X </bf>ustavi preverjanje in pusti kazalec tam, kjer je, tako lahko popravite datoteko; s preverjanjem črkovanja lahko nadaljujete pozneje, če vtipkate <tt>Meta-x ispell-continue</tt>,
       <item><bf>? </bf>ponudi vam sprotno pomoč.
      </itemize>

Če Ispell najde eno ali več besed, ki so podobne neznani, vam jih bo pokazal v
majhnem okencu. Pred vsako stoji številka. Samo vtipkajte to številko in
napačno vtipkana beseda se bo nadomestila z izbrano. 
 
    <sect1>Osebni besednjak proti besednjaku za preverjano datoteko
      <p>
Tipka <bf>i</bf> vam omogoča vnos besede v vaš osebni besednjak, <bf>A</bf>
pa vam doda besedo v besednjak za preverjano datoteko.
 
      <p>
Besednjak za preverjano datoteko je zaporedje besed, dodano na konec datoteke 
v obliki komentarjev. Ispell jih znova prebere vsakič, ko ga poženemo za 
preverjanje te datoteke. Tako lahko sprejmete nekaj besed, ki so 
sprejemljive samo v tej datoteki, v drugih pa morebiti ne.
 
      <p>
Kar zadeva mene, mislim, da je bolje, da je osebni besednjak rezerviran za
besede, ki jih ni v glavnem besednjaku, vendar pripadajo jeziku (npr.
besede z vezaji), in pa še za besede, kot so lastna imena idr. 
(npr. <it>Linux</it>), če niso podobne resničnim besedam iz glavnega 
besednjaka. Dodajanje preveč besed (npr. imen) v osebni besednjak je lahko 
nevarno, saj so lahko videti kot povsem običajna beseda v nekem jeziku. 
 
      <sect1>Preverjanje črkovanja med tipkanjem
      <p>
Ispell zna preverjati črkovanje v vaši datoteki kar med tipkanjem. Da bo to 
delovalo, morate uporabiti način <bf>ispell-minor-mode</bf>. Poženete ali 
ustavite ga, če vtipkate <tt>Meta-x ispell-minor-mode</tt>. Ispell bo 
<em>zapiskal</em> vsakič, ko vtipkate besedo, ki je ne prepozna.
 
      <p>
Če vas ti <em>piski</em> motijo (ali če vaš sostanovalec že spi), lahko te 
moteče <em>piske</em> nadomestite z bliskanjem na zaslonu, kar dosežete z
ukazom <tt>Meta-x set-variable RET visible-bell RET t RET</tt>. V datoteko
<tt>.emacs</tt> lahko dodaste naslednjo vrstico in za vedno utišate Emacs: 
 
      <verb>
       (setq visible-bell t)
      </verb>

  <sect>Umazane zvijače 
   <sect1>Avtomatsko dodajanje zaglavja...
    <p>
Emacs vam omogoča nastaviti, da se nekatere akcije <em>sprožijo</em> ob 
določenih dogodkih (npr. odpiranje datoteke, shranjevanje, zagon novega načina
itd.).

    <p>
Knjižnica <bf>autoinsert</bf> uporablja naslednjo lastnost: ko v Emacsu odprete
novo datoteko, vanjo ta knjižnica doda <em>standardno</em> (glede na vrsto 
datoteke) zaglavje.

    <p>
V našem primeru bi lahko to <em>standardno</em> zaglavje določilo vrsto
dokumenta (LinuxDoc), naslov, avtorja in datum.

    <p>
Tu bom opisal dva načina za dodajanje takega zaglavja. Vrinete lahko 
datoteko s predlogo, v kateri so vse naštete informacije, lahko pa poženete 
rutino v <bf>elispu</bf>.

   <sect2>z vrivanjem datoteke
    <p>
Najprej morate povedati Emacsu, naj ob odpiranju datoteke požene 
<tt>auto-insert</tt>, potem naj prebere knjižnico <bf>autoinsert</bf>, ki 
določi seznam <tt>auto-insert-alist</tt>, tega pa moramo popraviti. Ta seznam
določa zaglavje, ki se bo vrinilo v odvisnosti od vrste datoteke. Privzeto
mora biti datoteka za vrivanje v imeniku <tt>~/insert/</tt>, vendar je 
mogoče 
popraviti vrednost spremenljivke <tt>auto-insert-directory</tt>, 
če želite imeti datoteko kje drugje.

    <p>
V datoteko <tt>.emacs</tt> dodajte naslednje vrstice, da se bo datoteka
<tt>~/emacs/sgml-insert.sgml</tt> vrinila vsakič, ko odprete novo datoteko
SGML:

     <verb>
      (add-hook 'find-file-hooks 'auto-insert)
      (load-library "autoinsert")
      (setq auto-insert-directory "~/emacs/")
      (setq auto-insert-alist
            (append '((sgml-mode .  "sgml-insert.sgml"))
                    auto-insert-alist))
      </verb>

Zatem si lahko v datoteko <tt>~/emacs/sgml-insert.sgml</tt> napišete ustrezno
zaglavje, znova poženete Emacs in odprete neko datoteko <tt>foobar.sgml</tt>.
Emacs bi vam moral reči, da potrdite avtomatsko dodajanje zaglavja, in če 
odgovorite z 'yes', ga doda.

   <sect2>s funkcijo v elispu
    <p>
To deluje podobno kakor prej, le da morate namesto nastavljanja seznama 
<tt>auto-insert-alist</tt> nastaviti funkcijo, ki naj se izvede. Prikazali
bomo ta postopek, pri čemer bomo predpostavili, da želite napisati to funkcijo
v datoteko <tt>~/emacs/sgml-header.el</tt>. (Nobene potrebe ni, da datoteko
<tt>.emacs</tt> nasmetite s takimi funkcijami, ker se lahko zgodi, da bo
predolga):

     <verb>
      (add-hook 'find-file-hooks 'auto-insert)
      (load-library "autoinsert")
      (add-to-list 'load-path "~/emacs")
      (load-library "sgml-header")
      (setq auto-insert-alist
            (append '(((sgml-mode .  "SGML Mode") . insert-sgml-header))
	            auto-insert-alist))
      </verb>

V <ref id="insert-sgml-header" name="dodatku"> boste našli zgled funkcije
<tt>insert-sgml-header</tt>.

     
  <appendix>

  <sect>Funkcija <tt>insert-sgml-header</tt> <label id="insert-sgml-header">
   <p>
Ta funkcija uporabniku omogoči dodajanje zaglavja za dokument dokumentacijskega
projekta za Linux (Linux documentation Project) v datoteko. Izvede se lahko 
samodejno, ko nekdo odpre novo datoteko, ali pa izrecno na uporabnikovo željo.

   <p>
Ta funkcija v <em>mini-bufferju</em> (spodnja vrstica v Emacsu) vpraša 
uporabnika za nekaj podatkov, izmed katerih so 
nekateri obvezni, nekateri pa ne.

Najprej se prikaže vprašanje o naslovu dokumenta. Če ne podaste ničesar, se 
funkcija takoj konča, ne da bi se dodalo kakšno zaglavje. Sledijo vprašanja o
datumu, avtorju, njegovem elektronskem naslovu in domači strani (zadnja dva 
podatka sta neobvezna).

Sledi zahteva po imenu prevajalca. Če ga ni, samo pritisnite <em>Enter</em>
in ne bo več nobenih nadaljnjih vprašanj o morebitnem prevajalcu. 
Če pa prevajalec je, boste vprašani še po njegovem elektronskem naslovu
in domači strani (oboje je prav tako neobvezno).

Funkcija nato zapiše zahteve na mesto, kjer urejate pravkar odprto novo 
datoteko (buffer v terminologiji Emacsa), seveda se dodajo vsi malo prej
vtipkani podatki in pa še vse oznake za označevanje povzetka 
(angl. abstract) in prvega poglavja. Končno se kazalec postavi na mesto, 
kjer je 
treba napisati povzetek. 

    <verb>
(defun insert-sgml-header ()
  "Doda zaglavje v dokument LinuxDoc"
  (interactive)
  (let (title author email home translator email-translator home-translator date 
	      starting-point)
    (setq title (read-from-minibuffer "Naslov: "))
    (if (> (length title) 0)
	(progn 
	  (setq date (read-from-minibuffer "Datum: ")
		author (read-from-minibuffer "Avtor: ")
		email (read-from-minibuffer "Avtorjev elektronski naslov: ")
		home (read-from-minibuffer "Avtorjeva domaca stran: http://")
		translator (read-from-minibuffer "Prevajalec: "))
	  (insert "<!doctype linuxdoc system>\n<article>\n<title>")
	  (insert title)
	  (insert "&etago;title>\n<author>\nAuthor: ") (insert author) (insert "&nl;\n")
	  (if (> (length email) 0)
	      (progn
		(insert "<htmlurl url=\"mailto:")
		(insert email) (insert "\" name=\"") (insert email)
		(insert "\">&nl;\n")))
	  (if (> (length home) 0)
	      (progn
		(insert "<htmlurl url=\"http://")
		(insert home) (insert "\" name=\"") (insert home)
		(insert "\">\n&nl;")))
	  (if (> (length translator) 0)
	      (progn
		(setq email-translator (read-from-minibuffer "Prevajalcev el. naslov: ")
		      home-translator (read-from-minibuffer "Prevajalceva domaca stran: http://"))
		(insert "Translator : ") 
		(insert translator) 
		(insert "&nl;\n")
		(if (> (length email-translator) 0)
		    (progn 
		      (insert "<htmlurl url=\"mailto:") 
		      (insert email-translator) (insert "\" name=\"") 
		      (insert email-translator)
		      (insert "\">&nl;\n")))
		(if (> (length home-translator) 0)
		    (progn 
		      (insert "<htmlurl url=\"http://") 
		      (insert home-translator) (insert "\" name=\"")
		      (insert home-translator)
		      (insert "\">&nl;\n")))))
	  (insert "&etago;author>\n<date>\n")
	  (insert date)
	  (insert "\n&etago;date>\n\n<abstract>\n")
	  (setq point-beginning (point))
	  (insert "\n&etago;abstract>\n<toc>\n\n<sect>\n<p>\n\n\n&etago;sect>\n\n&etago;article>\n")
	  (goto-char point-beginning)
	  ))))
 </verb>
 </article>

<!-- Local IspellDict: english -->
<!-- Local IspellPersDict: ~/emacs/.ispell-english -->
<!-- Local IspellDict: english
 -->
<!-- Local IspellPersDict: ~/emacs/.ispell-english
 -->
<!--  LocalWords:  bastien HOWTOs rushy HTML Dieresis phant eacute sgml  caf
 -->
<!--  LocalWords:  tof Christophe autoinsert elisp Blondeel spc XEmacs
 -->
