  LinuxDoc+Emacs+Ispell-HOWTO
  Avtor: Philippe MARTIN (feloy@wanadoo.fr)
  Prevajalec: Sbastien Blondeel (Sebastien.Blondeel@lifl.fr)
  Prevajalca v slovenino: Roman Maurer (prva 4 poglavja) in
  Jernej Kovai (jkovacic@email.si) (ostalo)
  v0.5, 28. april 1998, prevod 10. september 2001

  Ta sestavek je namenjen prevajalcem in piscem spisov HOWTO za Linux
  ali katerikoli drugih dokumentov Dokumentacijskega projekta za Linux.
  Ponuja jim namige za uporabo orodij, vkljuno z urejevalnikom besedil
  Emacs in rkovalnikom Ispell.
  ______________________________________________________________________

  Kazalo


  1. Predgovor

     1.1 Pravice razirjanja
     1.2 Zahvale
     1.3 Pripombe
     1.4 Razliice

  2. Uvod

     2.1 Jezik SGML
     2.2 Definicija tipa
     2.3 Paket

  3. Va prvi sestavek

     3.1 Iz tekstovne datoteke

  4. Prilagoditev Emacsa

     4.1 umniki in rke z akcenti
        4.1.1 Prikaz 8-bitnih znakov
        4.1.2 Vnos 8-bitnih znakov
           4.1.2.1 Knjinica
           4.1.2.2 Tipka
        4.1.3 Prikaz 8-bitnih znakov v SGML DTD LinuxDoc
     4.2 Nain SGML
     4.3 Nain PSGML
     4.4 Razno
        4.4.1 Nain auto-fill

  5. Ispell

     5.1 Izbira privzetega besednjaka
     5.2 Izbira posebnih besednjakov za doloene datoteke
     5.3 Preverjanje rkovanja v vaem dokumentu
     5.4 Osebni besednjak proti besednjaku za preverjano datoteko
     5.5 Preverjanje rkovanja med tipkanjem

  6. Umazani triki

     6.1 Avtomatsko dodajanje zaglavja...
        6.1.1 z vrivanjem datoteke
        6.1.2 s funkcijo v elispu

  7. Funkcija



  ______________________________________________________________________

  1.  Predgovor

  1.1.  Pravice razirjanja

  Copyright Philippe Martin 1998
  Ta sestavek lahko razirjate in/ali spreminjate, e upotevate pogoje
  GNU-jevske splone licence razliice 2 ali pozneje.


  1.2.  Zahvale

  Posebej se zahvaljujem Sbastienu Blondeelu, ker me je tako mnogo
  vpraeval o nastavitvah Emacsa.  Njegova bistra vpraanja so mi
  omogoila, da bolje poznam ta urejevalnik in s tem dokumentom prenesem
  znanje tudi na vas.


  1.3.  Pripombe

  Ne oklevajte in mi sporoite vsako pripombo in/ali kritiko tega
  dokumenta, za katero mislite, da bo prispevala k izboljavi.
  Tudi ne oklevajte z zastavljanjem vpraanj, ki se nanaajo na tukaj
  obravnavane teme, z veseljem vam bom odgovoril.


  1.4.  Razliice

  Ta sestavek obravnava naslednje razliice:

    SGML-Tools razliice 0.99,

    Emacs razliice 19.34,

    Ispell razliice 3.1,

    Vse knjinice Emacs, na katere se sklicuje ta sestavek, se
     razirjajo z gornjo razliico Emacs, razen iso-sgml, ki pride poleg
     XEmacsa, in psgml, ki se razirja posebej.


  2.  Uvod

  2.1.  Jezik SGML

  Jezik SGML (ang. Standard Generalised Mark-up Language) je jezik za
  definiranje tipov dokumentov.

  Na primer, definira se lahko tip dokumenta za kuharski recept,
  katerega prvi del doloa sestavine, drugi del pripomoke, tretji
  navodila za peko torte, v zadnjem delu pa je prikazana slika konnega
  rezultata.

  Takna definicija tipa dokumenta se imenuje DTD (ang. Document Type
  Definition).  DTD ne doloa izgleda konnega izdelka, temve le
  definira, kaj vse lahko vsebuje.

  e spet uporabimo prejnji primer: preprian sem, da ste se po branju
  moje zamisli kuharskega recepta domislili svojega ali recepta vaega
  priljubljenega kuharja.  Vseeno izgledajo drugani: moj ima
  fotografijo, ki jo najdete v levem zgornjem kotu kopalike omarice,
  seznam sestavin pa najdete med bazenom in arom.  In va?

  Zahvaljujo tej standardni definiciji se lahko piejo sestavki, ne da
  bi morali predvideti njihov izgled, kot ga bo videl bralec.


  2.2.  Definicija tipa LinuxDoc

  Ta tip omogoa pisanje, kot ste verjetno uganili, dokumentacije,
  povezane z Linuxom.

  Ti dokumenti so navadno sestavljeni takole: zaenjajo se z naslovom,
  ki mu sledi avtorjevo ime in tevilka razliice ter datum.  Potem
  pride povzetek, ki kratko razlaga vsebino sestavka (da vam ni treba
  brskati po njej za ugotovitev, da to ni to, kar iete), potem kazalo,
  ki prikazuje strukturo sestavka, ter omogoa tistim, ki se jim mudi,
  da preidejo neposredno na del, ki ga elijo brati.

  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.

  Za pisanje taknega sestavka zadostuje na primernem mestu doloiti
  naslov, avtorja, datum in razliico sestavka, nato pisati poglavja in
  razdelke, povedati, kdaj se vstavi seznam in kaj so njegovi elementi,
  itd.

  2.3.  Paket SGML-Tools

  Paket SGML-Tools omogoa izdelavo konnega formata dokumenta iz
  njegovega opisa.  e elite dokument uvrstiti v vao osebno knjinico,
  boste izbrali izhodni format PostScript, e ga elite deliti s svetom
  na svetovnem spletu, boste izbrali HTML, in e ne morete pomagati in
  morate stvar brati pod Windows, ga boste spremenili v RTF, da ga boste
  lahko uvozili v kaken urejevalnik besedil.  Morda boste eleli
  uporabljati razline fomrate, ki se bodo prilagajali vaem
  spremenljivem razpoloenju.

  Paket SGML-Tools je dostopen po anonimnem FTP-ju z arhiva
  <ftp://ftp.lip6.fr/pub/sgml-tools/>.

  3.  Va prvi sestavek


  3.1.  Iz tekstovne datoteke

  e elite spremeniti va tekstovni dokument v DTD LinuxDoc zaradi
  spremembe v razne druge formate, je to prava pot:

  1. Na samem zaetku sestavka dodajte naslednje vrstice:


       <!doctype linuxdoc system>
       <article>
       <title>Tukaj je naslov</title>
       <author>
       ime avtorja, njegov e-potni naslov
       </author>
       <date>
       razliica in datum sestavka
       </date>




  2. e na zaetu na kratko opiete vsebino sestavka, obkroite ta
     odstavek z oznakamaa <abstract> in </abstract>.

  3. Potem vstavite oznako <toc>, ki v konnem formatu samodejno naredi
     kazalo (ang. Table Of Contents).

  4. Na zaetku vsakega novega poglavja nadomestite vrstico s tevilko
     in naslovom poglavja z vrstico:


       <sect>Naslov poglavja




  in na koncu poglavja dodajte oznako </sect>.

  Vedite: Ni vam treba vstavljati tevilke poglavja, to se naredi
  samodejno.

  5. Na enak nain nadaljujte z razdelki.  Morali boste odstraniti
     njihove tevilke in oznaiti njihov obseg z oznakama <sect1> in
     </sect1>.

  6. Na podoben nain lahko definirate do 4 nivoje gnezdenja razdelkov
     (pri <sect4> in </sect4>).

  7. Na zaetku vsakega odstavka vstavite oznako <p>.

  8. e elite poudariti doloene dele ali fraze, jih vkleite med
     oznaki <it> in </it> (kurzivno), ali <bf> in </bf> (polkrepko), ali
     med <tt> in </tt> (pisalni stroj).

  9. Seznam, kot je naslednji:


       To je seznam s tirimi vrsticami:

        - tukaj je prva vrstica
        - potem druga
        - e ena
        - dovolj.




  vstavite z naslednjo kodo:


       To je seznam s tirimi vrsticami:
       <itemize>
       <item>tukaj je prva vrstica
       <item>potem druga
       <item>e ena
       <item>dovolj.
       </itemize>




  10.
     Ko celoten blok predstavlja del programa ali kaj drugega, kar mora
     ohraniti svoj izgled:









  <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 "da bi reil svet."
  50 INPUT "Pred kom, vpraujete? ",M$
  60 IF M$="Bill" THEN PRINT "Pametni ste.":GOTO VRAJ
  70 ELSE PRINT "Niesar ne razumete...":GOTO DAJDOLARJE
  </verb>




  11.
     Prili ste do toke, ko so vae formatirne zmogljivosti za SGML DTD
     LinuxDoc precej spodobne.  e elite izboljati svoj sestavek,
     poglejte v uporabniki prironik paketa SGML-Tools, ki podrobneje
     razlaga tip dokumenta LinuxDoc.

  4.  Prilagoditev Emacsa


  4.1.  umniki in rke z akcenti

  rke slovenske abecede so podprte v kodnem naboru ISO Latin 2 (ISO
  8859-2).  Na tem mestu je koristno prebrati Slovenian HOWTO, ki
  razlaga nastavitve za vnos, prikaz in tiskanje naih rk.

  Emacs prebere svoje nastavitve iz naslednjih datotek:

    /usr/lib/emacs/site-lisp/site-start.el (skupne nastavitve)

    ~/.emacs (osebne nastavitve)

    /usr/lib/emacs/site-lisp/default.el (skupne nastavitve)

     Kjer se sklicujemo na datoteko .emacs, pravzaprav s tem mislimo na
     katerokoli izmed zgornjih treh datotek.


  4.1.1.  Prikaz 8-bitnih znakov

  e elite pisati spise .sgml v slovenini ali v kateremkoli drugem
  evropskem jeziku, boste potrebovali 8-bitne znake.  Emacs prilagodite
  za prikaz 8-bitnih znakov z naslednjo vrstico v vai datoteki .emacs:


       (standard-display-european t)




  Za vnos zahodnoevropskih rk pride prav tudi naslednja vrstica, ki pa
  zaenkrat ni uporabna za slovenino:


       (load-library "iso-syntax")




  e uporabljate Emacs za pisanje zahodnoevropskih besedil na terminalu,
  ki ne podpira 8-bitnega prikaza, lahko uporabite knjinico iso-ascii
  ((load-library "iso-ascii")), ki poskrbi, da Emacs prikazuje najbolje
  priblike 8-bitnih rk.

  4.1.2.  Vnos 8-bitnih znakov

  Tipkovnico nastavite za vnos 8-bitnih rk v konzoli ali pod okni X, e
  Emacs poganjate tam.  Tovrstne nastavitve so skupne vsem programom pod
  konzolo ali okni X in so opisane v spisu Slovenian HOWTO.

  e vaa tipkovnica v konzoli ali pod oknih X torej podpira vnos
  8-bitnih znakov, boste morali le v datoteko .emacs dodati naslednje
  vrstice:


       ;;  Omogoimo vnos znakov s kodo vejo od 127
       (set-input-mode (car (current-input-mode))
               (nth 1 (current-input-mode))
               0)




  e va terminal ne podpira 8-bitnega vnosa, ste pri pisanju slovenskih
  besedil v teavah.  Za pisanje zahodnoevropskih besedil si lahko poma
  gate z dodatnimi paketi:


  4.1.2.1.  Knjinica iso-acc

  Knjinica za Emacs iso-acc vam bo omogoila vnos 8-bitnih znakov s
  tipkovnico, ki sicer omogoa le vnos 7-bitnih rk.

  Za uporabo te knjinice vstavite naslednje v vao datoteko .emacs:

  (load-library "iso-acc")



  Ko boste naslednji pognali Emacs in odprli datoteko, ki bi jo radi
  uredili, napiite Meta-x iso-accents-mode.

  rko  v francoski besedi caf lahko vstavite tako, da pritisnete ' in
  potem e e.  V splonem lahko vpiete zahodnoevropski znak z akcentom
  tako, da najprej pritisnete ustrezen akcent, ki mu sledi rka pod njim
  (velika ali mala).  Uporabite lahko naslednje akcente:


  ` : krativec

  ^ : streica

  " : preglas"

  ~ : tilda nad rko, sedij (kljukica pod ,,c``), in drugi posebni
  primeri (glejte iso-acc.el)

  / : razlini skandinavski akcenti, idr.  e potrebujete enega od teh
  znakov in ne naglaene rke, pritisnite za njim presledek.  Na primer,
  za vnos l'lphant, napiite l ' <spc> ' e l ' e ...

  Vse mone kombinacije boste nali v datoteki iso-acc.el.


  4.1.2.2.  Tipka<Meta>

  Nekateri terminali vam omogoajo vnos 8-bitnih znakov s pomojo tipke
  <Meta> (ali <Alt>).  Na primer, e pritisnete kombinacijo <Meta>-i
  lahko dobite znak .

  Vendar Emacs potrebuje tipko <Meta> za drugano uporabo.  Zato morate
  pritisniti zaporedje <Ctrl>-q (ukaz quoted-insert) preden pritisnete
  <Meta>-i.

  Ta ukaz vam dovoljuje vnos znakov tudi z vpisom osmike kode.
  Pritisnite kombinacijo <Meta>-q, ki ji sledi osmika koda znakov, ki
  bi jih radi vnesli.  Slovenske umnike ,,ȩ`` in hrvaki rki ,,``,
  pisane po ISO Latin 2, lahko vnesete z naslednjimi kombinacijami:


         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





  4.1.3.  Prikaz 8-bitnih znakov v SGML DTD LinuxDoc

  V SGML lahko vnaate naglaene znake z makroukazi, vendar al ne tudi
  srednjeevropskih.  Na primer, simbol za tipko  je &eacute;.  V
  splonem, aplikacije, ki morajo brati SGML znajo brati 8-bitne znake
  in ni potrebno uporabljati teh makroukazov.  Vendar nekateri morda ne
  bodo mogli brati 8-bitnih znakov.  e vemo, da obstaja preprosta
  reitev (spet samo za zahodne narode, op. prev.), bi bilo koda
  pustiti, da se takne aplikacije sesujejo.

  Knjinica iso-sgml vam omogoa vnos naglaenih znakov v Emacsu, kot
  vedno, a ob shranjevanju vae datoteke na disk, bo samodejno
  spremenila 8-bitne znake v njihove ekvivalente v SGML.  Vendar, al,
  slovenske povsem napano, saj jih v ISO Latin 1 ni.

  No, zahvaljujo tej knjinici je lahko vnaati in brati spise z
  zahodnimi znaki, pisanimi po ISO Latin 1 (ISO 8859-1) v Emacsu, in
  prepriani ste lahko, da bo aplikacija, ki sicer ne sprejme 8-bitnih
  sestavkov, po takem postopku vaega sprejela.

  Za uporabo te knjinice morate dodati naslednje vrstice v vao
  datoteko .emacs:


       (setq sgml-mode-hook
       (load-library "iso-sgml")))





  4.2.  Nain SGML

  Po nalaganju datoteke s podaljkom .sgml, Emacs samodejno vstopi v
  nain sgml (ang. sgml mode).  e ne, mu lahko to naroite rono z
  ukazom Meta-x sgml-mode, ali samodejno z dodatkom naslednjih vrstic v
  vao datoteko .emacs:


       (setq auto-mode-alist
       (append '(("\.sgml$"  . sgml-mode))
                 auto-mode-alist))




  Ta nain vam bo, na primer, omogoil izbiro tega, kako boste vnaali
  8-bitne znake.  Z ukazom Meta-x sgml-name-8bit-mode (ali z menujsko
  postavko SGML/Toggle 8-bit insertion), lahko izberete vnos 8-bitnih
  znakov kot takih, ali v obliki SGML, se pravi, v obliki &...;.

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


  4.3.  Nain PSGML

  Nainu PSGML zelo pomaga pri urejanju spisov SGML z Emacsom.

  Dokumentacija za psgml-linuxdoc razlaga, kako namestiti in uporabljati
  ta nain z zvrstjo besedila LinuxDoc.


  4.4.  Razno


  4.4.1.  Nain auto-fill

  Ko v normalnem nainu napiete odstavek in pridete do konca vrstice,
  morate sami uporabiti tipko <Return>, da pridete v naslednjo vrstico,
  sicer se bo vaa vrstica nadaljevala nedoloeno dolgo skozi cel
  odstavek.  Kadar uporabite <Return> za pomik v novo vrstico, dobite
  odstavek z neporavnanimi desnimi robovi.  e dopustite, da so nekatere
  dalje od razumne irine, jih z nekaterimi urejevalniki ne boste mogli
  videti.

  Nain auto-fill avtomatizira to nehvaleno opravilo: ko greste dlje od
  doloenega stolpca (privzeto 70-tega), vas samodejno postavi v
  naslednjo vrstico.

  Takole uporabite ta nain in nastavite irino vaih vrstic na 80:


       (setq sgml-mode-hook
            '(lambda () "Defaults for SGML mode."
                (auto-fill-mode)
                (setq fill-column 80)))





  5.  Ispell

  e elite pravopisno preveriti va spis v Emacsu, lahko uporabite
  paket Ispell in njegov nain za Emacs.


  5.1.  Izbira privzetega besednjaka

  Emacs lahko nastavite tako, da po nalaganju datoteke avtomatsko
  doloi, kateri besednjak naj uporabi (uporabljate jih namre lahko
  ve). Prvi, zagotovo najpomembneji, je glavni besednjak, ki se
  razirja skupaj z Ispellom.  Izbirate lahko med ve jeziki. Drugi
  besednjak je va osebni, kamor Ispell vstavlja besede, ki jih ni nael
  v prvem besednjaku, vendar ste mu naroili, naj si jih zapomni.

  e elite kot privzetega uporabljati slovenski besednjak (dobite ga
  lahko na naslovu ftp://sizif.uni-lj.si/pub/i18n/ispell/ispell-
  sl-0.1-1.src.rpm) in e elite uporabljati datoteko.ispell-dico-perso
  v vaem domaem imeniku kot osebni besednjak, vnesite naslednje
  vrstice v vao datoteko .emacs:

         (setq sgml-mode-hook
         '(lambda () "Privzeto za nacin SGML."
         (setq ispell-personal-dictionary "~/.ispell-dico-perso")
         (ispell-change-dictionary "slovensko")
         ))





  5.2.  Izbira posebnih besednjakov za doloene datoteke

  Do manjega problema lahko pride, e ne preverjate rkovanja v
  dokumentih vedno v istem jeziku. e prevajate dokumente, je zelo
  verjetno, da pogosto pomeate jezike (in besednjake).


  al ne poznam nobenega naina v Lispu, niti avtomatskega niti kaknega
  z enojnim klikom z miko, za izbiro glavnih in osebnih besednjakov,
  povezanih s trenutno uporabljanim jezikom. (e veste kaj ve, mi
  prosim povejte!)


  Vendarle pa je mogoe na koncu datoteke oznaiti, katere besednjake
  elite uporabljati ob preverjanju trenutne (in samo te) datoteke.
  Zadostuje, da te oznake dodate kot komentarje, tako da jih bo Ispell
  znal prebrati ob zagonu preverjanja rkovanja:


        <!-- Local IspellDict: english -->
        <!-- Local IspellPersDict: ~/emacs/.ispell-english -->




  e ste prej v datoteki .emacs definirali, da naj bodo privzeti
  besednjaki slovenski, lahko dodate te vrstice na konec vsake datoteke
  v angleini.

  5.3.

  Preverjanje rkovanja v vaem dokumentu

  Preverjanje rkovanja celotnega dokumenta lahko s kateregakoli mesta v
  preverjanem dokumentu poenete z ukazom Meta-x ispell-buffer. Lahko pa
  tudi preverite samo del dokumenta:


    Oznaite zaetek podroja s tipkama Ctrl-Spc (mark-set-command),

    pojdite na konec podroja, ki ga elite preveriti

    in vtipkajte Meta-x ispell-region.

  Emacs zatem poene Ispell. Ko naleti na neznano besedo, vam jo pokae
  (ponavadi osvetljeno) in aka, da pritisnete na ustrezno tipko:


    spc sprejme besedo, samo tokrat,

    i sprejme besedo in jo doda v va osebni besednjak,

    a sprejme besedo, velja samo za to preverjanje,

    A sprejme besedo samo za to datoteko in jo doda v besednjak za
     preverjano datoteko,

    r dovoli vam rono popravljanje besede

    R dovoli vam popravek ki velja za vse primere narobe vtipkane
     besede,

    x ustavi preverjanje in postavi kurzor nazaj,

    X ustavi preverjanje in pusti kurzor, kjer je, tako lahko popravite
     datoteko; s preverjanjem rkovanja lahko nadaljujete pozneje, e
     vtipkate Meta-x ispell-continue,

    ? ponudi vam sprotno pomo.

  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 narobe vtipkana beseda se bo nadomestila z izbrano.


  5.4.

  Osebni besednjak proti besednjaku za preverjano datoteko

  Tipka i vam omogoa vnos besede v va osebni besednjak, A pa vam doda
  besedo v besednjak za preverjano datoteko.


  Besednjak za preverjano datoteko je zaporedje besed, dodano na konec
  datoteke v obliki komentarjev. Ispell jih znova prebere vsaki, ko ga
  poenemo za preverjanje te datoteke. Na ta nain lahko sprejmete nekaj
  besed, ki so sprejemljive samo v tej datoteki, v drugih pa morebiti
  ne.


  Kar zadeva mene, mislim, da je bolje, da je osebni besednjak
  rezerviran za besede, ki niso vsebovane v glavnem besednjaku, vendar
  pripadajo jeziku (npr.  besede z vezaji), in pa e za besede, kot so
  lastna imena idr.  (npr. Linux), e niso podobne resninim besedam iz
  glavnega besednjaka. Dodajanje preve besed (npr. imen) v osebni
  besednjak je lahko nevarno, saj lahko izgledajo kot povsem obiajna
  beseda v nekem jeziku.


  5.5.

  Preverjanje rkovanja med tipkanjem

  Ispell zna preverjati rkovanje v vai datoteki kar med tipkanjem. Da
  bo to delovalo, morate uporabiti nain ispell-minor-mode. Poenete ali
  ustavite ga, e vtipkate Meta-x ispell-minor-mode. Ispell bo zapiskal
  vsaki, ko vtipkate besedo, ki je ne prepozna.


  e vas ti piski motijo (ali e va sostanovalec e spi), lahko te
  motee piske nadomestite z bliskanjem na zaslonu, kar doseete z
  ukazom Meta-x set-variable RET visible-bell RET t RET. V datoteko
  .emacs lahko dodate naslednjo vrstico in za vedno utiate Emacs:


         (setq visible-bell t)




  6.

  Umazani triki

  6.1.

  Avtomatsko dodajanje zaglavja...

  Emacs vam omogoa nastaviti, da se nekatere akcije sproijo ob
  doloenih dogodkih (npr. odpiranje datoteke, shranjevanje, zagon
  novega naina itd.).


  Knjinica autoinsert uporablja naslednjo lastnost: ko v Emacsu odprete
  novo datoteko, vanjo ta knjinica doda standardno (glede na tip
  datoteke) zaglavje.


  V naem primeru bi lahko to standardno zaglavje doloilo tip dokumenta
  (LinuxDoc), naslov, avtorja in datum.


  Tukaj bom opisal dva naina za dodajanje taknega zaglavja. Vrinete
  lahko datoteko s predlogo, ki vsebuje vse natete informacije, lahko
  pa poenete rutino v elispu.


  6.1.1.

  z vrivanjem datoteke

  Najprej morate povedati Emacsu, naj ob odpiranju datoteke poene auto-
  insert, potem naj prebere knjinico autoinsert, ki doloi seznam auto-
  insert-alist, tega pa moramo popraviti. Ta seznam doloa zaglavje, ki
  se bo vrinilo v odvisnosti glede na tip datoteke. Privzeto mora biti
  datoteka za vrivanje v imeniku ~/insert/, vendar je mogoe popraviti
  vrednost spremenljivke auto-insert-directory, e elite imeti datoteko
  kje drugje.


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


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




  Zatem si lahko v datoteko ~/emacs/sgml-insert.sgml napiete ustrezno
  zaglavje, znova poenete Emacs in odprete neko datoteko foobar.sgml.
  Emacs bi vam moral rei, da potrdite avtomatsko dodajanje zaglavja, in
  e odgovorite z 'yes', ga doda.


  6.1.2.

  s funkcijo v elispu


  To deluje podobno kot prej, le da morate namesto nastavljanja seznama
  auto-insert-alist nastaviti funkcijo, ki naj se izvri. Prikazali bomo
  ta postopek, pri emer bomo predpostavili, da elite naisati to
  funkcijo v datoteko ~/emacs/sgml-header.el. (Nobene potrebe ni, da
  datoteko .emacs zasmetite s takniimi funkcijami, ker se lahko zgodi,
  da bo predolga):


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




  V ``dodatku'' boste nali primer funkcije insert-sgml-header.



  G.

  Funkcija insert-sgml-header

  Ta funkcija uporabniku omogoi 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.


  Ta funkcija v mini-bufferju (spodnja vrstica v Emacsu) vpraa
  uporabnika za nekaj podatkov, izmed katerih so nekateri obvezni,
  nekateri pa ne.

  Najprej se pojavi vpraanje o naslovu dokumenta. e ne podate niesar,
  se funkcija takoj kona, ne da bi se dodalo kakno zaglavje. Sledijo
  vpraanja o datumu, avtorju, njegovem elektronskem naslovu in domai
  strani (zadnja dva podatka sta neobvezna).

  Sledi zahteva po imenu prevajalca. e ga ni, samo pritisnite Enter, in
  nobenih nadaljnjih vpraanj o morebitnem prevajalcu ne bo ve.  e pa
  prevajalec obstaja, boste vpraani e po njegovem elektronskem naslovu
  in domai strani (oboje je ravno tako neobvezno).

  Funkcija nato zapie zahteve na mesto, kjer urejate pravkar odprto
  novo datoteko (buffer v Emacsovi terminologiji), seveda se dodajo vsi
  malo prej vtipkani podatki in pa e vse oznake, ki sluijo oznaevanju
  povzetka (angl. abstract) in prvega poglavja. Konno se kurzor postavi
  na mesto, kjer je potrebno napisati povzetek.














  (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 "</title>\n<author>\nAuthor: ") (insert author) (insert "<newline>\n")
            (if (> (length email) 0)
                (progn
                  (insert "<htmlurl url=\"mailto:")
                  (insert email) (insert "\" name=\"") (insert email)
                  (insert "\"><newline>\n")))
            (if (> (length home) 0)
                (progn
                  (insert "<htmlurl url=\"http://")
                  (insert home) (insert "\" name=\"") (insert home)
                  (insert "\">\n<newline>")))
            (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 "<newline>\n")
                  (if (> (length email-translator) 0)
                      (progn
                        (insert "<htmlurl url=\"mailto:")
                        (insert email-translator) (insert "\" name=\"")
                        (insert email-translator)
                        (insert "\"><newline>\n")))
                  (if (> (length home-translator) 0)
                      (progn
                        (insert "<htmlurl url=\"http://")
                        (insert home-translator) (insert "\" name=\"")
                        (insert home-translator)
                        (insert "\"><newline>\n")))))
            (insert "</author>\n<date>\n")
            (insert date)
            (insert "\n</date>\n\n<abstract>\n")
            (setq point-beginning (point))
            (insert "\n</abstract>\n<toc>\n\n<sect>\n<p>\n\n\n</sect>\n\n</article>\n")
            (goto-char point-beginning)
            ))))

