LinuxDoc+Emacs+Ispell-HOWTO
 F�rfattare: Philippe MARTIN ([email protected])
 Engelsk �vers�ttare: S�bastien Blondeel (Sebastien.Blon�
 [email protected])
 Svensk �vers�ttare: Linus �kerlund ([email protected])

 v0.4, 27 February 1998. Svensk �vers�ttning: 10 juni 1998.

 Detta dokument �r riktat till f�rfattare och �vers�ttare av Linux-HOW�
 TOn eller andra dokument f�r The Linux Documentation Project. Det ger
 dem ledtr�dar om hur de ska anv�nda verktyg s�som Emacs och Ispell.

 ______________________________________________________________________

 Inneh�llsf�rteckning


 1. Inledning

    1.1 Upphovsr�tt
    1.2 Tillk�nnagivanden
    1.3 Kommentarer
    1.4 Versioner
    1.5 Svenska �vers�ttarens anm�rkningar

 2. Introduktion

    2.1 SGML
    2.2 (TT
    2.3 (TT

 3. Ditt f�rsta dokument

    3.1 Fr�n ett textdokument

 4. Konfigurera

    4.1 Tecken med accent
       4.1.1 Att visa 8-bitars tecken
       4.1.2 Att skriva 8-bitars tecken
          4.1.2.1 (TT
          4.1.2.2 (CPARAM
       4.1.3 Att visa 8-bitars SGML-tecken
    4.2 SGML-l�ge
    4.3 PSGML-l�ge
    4.4 Diverse annat
       4.4.1 auto-fill-l�ge

 5. Ispell

    5.1 Att v�lja standardordlistor
    5.2 V�lja speciella ordlistor f�r vissa filer
    5.3 Stavningskontrollera dina dokument
    5.4 Personlig ordlista kontra filens lokala ordlista
    5.5 Direkt stavningskontroll

 6. Fula knep

    6.1 Att automatiskt infoga ett dokumenthuvud
       6.1.1 Genom att infoga en fil
       6.1.2 Genom att k�ra en rutin

 7. En



 ______________________________________________________________________

 1.

 Inledning

 1.1.

 Upphovsr�tt

 Copyright Philippe Martin 1998
 Du f�r vidaredistribuera och/eller modifiera detta dokument, s� l�nge
 du r�ttar dig efter villkoren i The GNU General Public License,
 version 2 eller senare.



 1.2.

 Tillk�nnagivanden

 Ett speciellt tack g�r till S�bastien Blondeel, som �r en hemsk typ,
 och fr�gade mig en massa om att konfigurera Emacs. Hans intelligenta
 fr�gor har gjort att jag f�rst�r det b�ttre, och vidarebefordrar denna
 kunskap till dig, genom detta dokument.



 1.3.

 Kommentarer

 Tveka inte att tala om f�r mig, om det �r n�got du tycker skulle kunna
 g�ra detta dokument b�ttre. Jag kommer t�nka �ver din kritik noggrant.
 Tveka ej heller att st�lla fr�gor, relaterade till de �mnen som h�r
 diskuteras, till mig. Jag besvarar dem mer �n g�rna, eftersom de
 hj�lper mig att vidare f�rb�ttra detta dokument.  (--
 �vers�ttarens anm�rkning: Om engelskan �r ful, tja, det �r jag ocks�!
 --)



 1.4.

 Versioner

 Detta dokument behandlar f�ljande versioner:


 �  Sgml-tools version 0.99,


 �  Emacs version 19.34,


 �  Ispell version 3.1,


 �  Alla Emacs-bibliotek, vilka det refereras till i detta dokument,
    distribueras med ovan n�mnda version av Emacs, f�rutom iso-sgml,
    vilket distribueras med XEmacs, och psgml, vilket �r ett frist�ende
    bibliotek.




 1.5.

 Svenska �vers�ttarens anm�rkningar

 Detta dokument �r en �vers�ttning av den engelska versionen.
 Originalet �r skrivet p� franska, ett spr�k jag inte beh�rskar. Jag
 hoppas att jag lyckats bevara all information som finns med i
 originaldokumentet. Som vanligt �r alla v�lkomna att komma med
 anm�rkningar och kritik. �ndra g�rna i SGML-filen och skicka de
 korrigerade versionerna till mig, p� [email protected].



 2.

 Introduktion

 2.1.

 SGML

 Standard Generalised Mark-up Language, eller SGML, �r ett spr�k f�r
 att definiera dokument-typer.


 Man kan t.ex. definiera dokument-typen recept, med en f�rsta del f�r
 att presentera ingredienserna, en andra del f�r att presentera
 hj�lpmedlen, en tredje del vilken ger stegvisa instruktioner om hur
 t�rtan ska bakas och en trevlig, avslutande bild, f�r att visa
 resultatet av allt detta.



 Detta kallas en definition av en dokument-typ (Document type
 Definition. �vers.anm.). Den definierar inte hur den slutliga
 produkten kommer se ut, den definierar bara vad den kommer att
 inneh�lla.



 F�r att anv�nda samma exempel igen; jag �r s�ker p� att du, d� du
 l�ser om min id� om ett recept, k�nner igen dina, eller din
 favoritkocks. De ser trots allt olika ut: mina har en bild i det �vre
 v�nstra h�rnet av badrumssk�pet, och listan �ver ingredienser finns p�
 bakg�rden, mellan swimmingpoolen och grillen. Dina?



 Tack vare standarddefinitionen, s� kan man skriva ett dokument utan
 att ta h�nsyn till hur det slutligen kommer se ut, f�r l�saren.


 2.2.

 LinuxDoc s typ-definition

 Denna typ anv�nds, som du kanske har kunnat gissa dig till, till att
 skriva dokument vilka �r relaterade till Linux.


 S�dana dokument �r typiskt uppbyggda som f�ljer: de b�rjar med en
 titel, f�ljd av f�rfattarens namn, versions-numret och datumet. Sedan
 kommer sammanfattningen (s� att du inte beh�ver bl�ddra igenom hela
 alltet, innan du inser att det inte alls var vad du var ute efter),
 sedan inneh�llsf�rteckningen, vilken visar strukturen, s� att de som
 har br�ttom kan hoppa direkt till det avsnitt de vill l�sa.
 Sedan f�ljer en lista �ver kapitel, avsnitt och stycken. Bland dessa
 kan man infoga delar av program, �ndra typsnitt, f�r att framh�va ett
 ord eller en mening, infoga listor, referera till andra delar av
 dokumentet osv.


 F�r att skriva ett s�dant dokument beh�ver du bara, vid r�tt tidpunkt,
 specificera titeln, f�rfattaren, datumet och dokument-versionen,
 kapitlen och avsnitten, n�r en lista ska infogas, vilka dess element
 �r osv.



 2.3.

 SGML-Tools

 SGML-Tools omvandlar ett dokuments specifikationer till det
 slutgiltiga resultatet, i det format du �nskar. Om du vill ha det i
 ditt personliga bibliotek, v�ljer du PostScript. Om du vill dela det
 med v�rlden, genom webben, s� blir det HTML. Om du inte kan hj�lpa
 det, och m�ste l�sa det under Windows, s� kan du omvandla det till
 RTF, s� att det kan l�sas av vilken ordbehandlare som helst. Eller s�
 kanske du anv�nder alla tre formaten, f�r att anpassa det till ditt
 v�xlande hum�r.

 SGML-Tools �r tillg�ngligt via anonym FTP fr�n
 ftp://ftp.funet.fi/public/ftp/pub/linux/utils/text/



 3.

 Ditt f�rsta dokument



 3.1.

 Fr�n ett textdokument

 Om du vill g�r om ett textdokument till SGML, f�r att omvandla det
 till andra format, ska du g�ra p� f�ljande s�tt:



 1. L�gg till de f�ljande raderna i b�rjan:


            <!doctype linuxdoc system>
             <article>
              <title>H�r ska titeln vara</title>
              <author>
              f�rfattarens namn, e-post-adress osv.
              </author>
              <date>
              version och datum
              </date>






 2. Om du kort beskriver dokumentets inneh�ll i b�rjan, innefatta
    stycket i <abstract>- och </abstract>-taggarna.
 3. Infoga sedan <toc>-taggen, vilket st�r f�r Table Of Contents
    (inneh�llsf�rteckning. �vers.anm.).



 4. Ers�tt, i b�rjan av varje kapitel, raden som anger nummer och titel
    f�r kapitlet med:


           <sect>Kapitlets titel



 och l�gg till </sect>-taggen i slutet av kapitlet.



 Observera : Du beh�ver inte ange kapitel-nummer, detta g�rs
 automatiskt.



 5. Forts�tt p� samma s�tt med avsnitten. Du m�ste ta bort numren och
    "tagga" deras titlar med <sect1>, och avsluta dem med </sect1>.



 6. Du kan �ven, p� ett liknande s�tt, ange s� m�nga som 4 n�stade
    niv�er i avsnitten, genom att anv�nda <sectn>- och
    </sectn>-taggarna, d�r n= 2, 3 eller 4.



 7. L�gg, i b�rjan av varje stycke, in <p>-taggen.



 8. Om du beh�ver framh�va vissa delar, "tagga" dem med <it> och </it>
    (kursiverat), <bf> och </bf> (fetstil) eller <tt> och </tt>
    (skrivmaskins-stil).



 9. F�r att infoga en lista, som den f�ljande:



           Detta �r en lista om fyra rader:

             - h�r �r f�rsta raden
             - sedan kommer andra raden
             - �nnu en
             - det var det.




 s� m�ste du ers�tta den med:








        Detta �r en lista om fyra rader:
        <itemize>
        <item>h�r �r f�rsta raden
        <item>sedan kommer andra raden
        <item>�nnu en
        <item>det var det.
        </itemize>






 10.
    N�r ett helt block �r en del av ett program, eller n�got annat som
    m�ste sticka ut:



           <verb>
            10 REM Herre gud, vad �r det h�r?
            20 REM Jag trodde det h�r hade f�rsvunnit f�r l�nge sedan!
            30 PRINT "Jag �r tillbaks f�r att";
            40 PRINT "r�dda v�rlden."
            50 INPUT "Fr�n vem, menar du? ",M$
            60 IF M$="Bill" THEN PRINT "Du �r vis.":GOTO PARADISET
            70 ELSE PRINT "Du har inte hajat n�got...":GOTO RIKMOND
           </verb>






 11.
    P� detta stadium �r dina kunskaper i SGML-formattering ganska
    hyffsade. Om du vill f�rfina ditt dokument, s� kan du ta en titt p�
    anv�ndar-manualen till SGML-Tools, vilken ger mer detaljer om
    dokument-typen LinuxDoc.





 4.

 Konfigurera Emacs



 4.1.

 Tecken med accent

 Om du vill skriva dokument p� franska, eller n�got annat
 v�steuropeiskt spr�k, s� beh�ver du 8-bitars tecken. S� h�r st�ller du
 in Emacs f�r att acceptera s�dana tecken.



 4.1.1.

 Att visa 8-bitars tecken

 F�r att f� Emacs att visa 8-bitars tecken, s� m�ste du ha f�ljande
 rader i din .emacs-fil:
        (standard-display-european 1)
        (load-library "iso-syntax")




 Om du anv�nder Emacs p� en terminal, som har st�d f�r 8-bitars tecken,
 s� kan du anv�nda iso-ascii-biblioteket ((load-library "iso-ascii")),
 vilket s�ger �t Emacs att visa s�dana tecken, s� bra den kan.



 4.1.2.

 Att skriva 8-bitars tecken

 Om ditt tangentbord l�ter dig skriva tecken med accenter, s� �r det
 inget problem. Om inte, s� kommer h�r n�gra hj�lpmedel:



 4.1.2.1.

 iso-acc -biblioteket

 Emacs iso-acc-bibliotek l�ter dig skriva 8-bitars tecken p� ett
 7-bitars tangentbord.


 F�r att anv�nda det, infoga f�ljande i din .emacs-fil:


       (load-library "iso-acc")





 N�r du sedan k�r Emacs och �ppnar en fil att editera, skriv Meta-x
 iso-accents-mode.


 Du kan skriva �-tecknet, i det svenska ordet kaf�, genom att skriva '
 och sedan e. Mer generellt s� kommer du skriva ett tecken med accent
 genom att f�rst skriva accenten, och sedan bokstaven som accenten ska
 finnas till (stora eller sm� bokst�ver). De f�ljande �r accenter du
 kan vilja anv�nda:





 ` : V�nster-lutad (grav) accent


 ^ : Cirkumflex


 " : Punkter


 ~ : Tilde och andra specialfall (cf iso-acc.el).


 / : F�r att f� ett streck �ver ordet

 Om du beh�ver n�got av dessa tecken, och inte en bokstav med accent,
 tryck mellanslag efter tecknet. F�r att skriva t.ex. 'kaf�', skriv '
 <mellanslag> k a f ' e



 Du hittar alla m�jliga kombinationer i iso-acc.el-filen.



 4.1.2.2.

 <Meta>-tangenten

 Vissa terminaler l�ter dig skriva 8-bitars tecken med <Meta>-tangenten
 (eller <Alt>). Om du t.ex. trycker <Meta>-i, s� f�r du �-tecknet.



 Men Emacs reserverar <Meta>-tangenten f�r andra �ndam�l, och jag
 k�nner inte till n�got bibliotek som l�ter dig anv�nda det f�r tecken
 med accent.


 Detta �r en l�sning:



       (global-set-key "\ei" '(lambda () (interactive) (insert ?\351)))
                          _                                      ___



 En s�dan rad, om den infogas i din .emacs-fil, l�ter dig skriva �
 genom att anv�nda <Meta>-i. Du kan omdefiniera de kombinationer du
 beh�ver, genom att byta ut i mot den r�tta tangenten och 351 med den
 r�tta koden (koden finner du i tecken-upps�ttningen ISO-8859-1).



 Varning! Vissa lokala l�gen kan omdefiniera s�dana tangent-
 kombinationer.



 4.1.3.

 Att visa 8-bitars SGML-tecken

 Under SGML kan du skriva tecken med accent med makron. F�r att skriva
 t.ex. �-tecknet, s� skriver du &eacute;. Rent generellt s� kan de
 applikationer som beh�ver kunna l�sa SGML redan l�sa 8-bitars tecken,
 s� dessa makron beh�vs inte. Men vissa kan inte det. Eftersom det
 finns ett s�tt att l�sa problemet, s� vore det on�digt att inte
 anv�nda makrona.


 iso-sgml-biblioteket l�ter dig skriva tecken med accent under Emacs,
 som alltid, men d� du sparar din fil p� disk, s� omvandlas dessa
 8-bitars tecken till sina motsvarigheter i SGML.


 P� grund av detta bibliotek �r det allts� l�tt att skriva och l�sa
 dina dokument under Emacs, och du kan vara s�ker p� att applikationer
 som inte klarar av 8-bitars tecken kommer att acceptera dina dokument.

 F�r att anv�nda detta bibliotek beh�ver du bara l�gga till f�ljande
 rader i din .emacs-fil:



       (setq sgml-mode-hook
       '(lambda () "Defaults for SGML mode."
        (load-library "iso-sgml")))






 4.2.

 SGML-l�ge

 D� du laddar en fil med .sgml-�ndelsen, s� g�r Emacs automatiskt in i
 sgml-l�ge (sgml mode). Om det inte g�r det, s� kan du manuellt s�ga �t
 det att g�ra det genom att skriva Meta-x sgml-mode, eller automatiskt,
 genom att l�gga till f�ljande rader till din .emacs-fil:



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




 Detta l�ge l�ter dig t.ex. v�lja hur du ska infoga 8-bitars tecken.
 Med Meta-x sgml-name-8bit-mode (eller meny-alternativet SGML/Toggle
 8-bit insertion), kan du v�lja att skriva in 8-bitars tecken som de
 �r, eller i SGML-form, allts� i formen &...;.

 Det l�ter dig �ven d�lja eller visa SGML-taggarna, med Meta-x sgml-
 tags-invisible (eller meny-alternativet SGML/Toggle Tag Visibility).



 4.3.

 PSGML-l�ge

 PSGML-l�get (PSGML mode) �r v�ldigt hj�lpsamt, om du editerar SGML-
 dokument med Emacs.


 psgml-linuxdoc-dokumentationen f�rklarar hur du ska installera detta
 l�ge och anv�nda det med LinuxDoc.



 4.4.

 Diverse annat



 4.4.1.

 auto-fill-l�ge


 I det normala l�get m�ste du anv�nda <Return>, d� du kommer till
 slutet av raden, f�r att komma till n�sta rad, annars kommer raden att
 ta upp hela stycket. Om du anv�nder <Return> f�r att komma till n�sta
 rad, s� f�r du ett stycke med oj�mna kanter.


 Om du l�ter vissa rader g� bortom den rimliga l�ngden, s� kommer du
 inte kunna se dem i vissa editorer.


 auto-fill-l�get automatiserar detta jobbiga arbete: d� du g�r bortom
 en viss kolumn (den 70nde, som standard), s� tas du automatiskt till
 n�sta rad.


 S� h�r sl�r du p� detta l�ge, och anger radl�ngden till 80 tecken:



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






 5.

 Ispell

 Om du vill stavningskontrollera dina dokument fr�n Emacs, s� kan du
 anv�nda Ispell-paketet och dess Emacs-l�ge.



 5.1.

 Att v�lja standardordlistor

 Du kan st�lla in Emacs s� att det, d� du laddar en fil, automatiskt
 v�ljer vilka ordlistor det ska anv�nda (det kan anv�nda flera). Den
 f�rsta, och s�kerligen den viktigaste, �r huvudordlistan, vilken
 distribueras med Ispell. Du kan v�lja mellan flera olika spr�k. Den
 andra �r din personliga ordlista, d�r Ispell infogar ord som det inte
 kunde finna i huvudordlistan, men du sade �t det att komma ih�g.


 En svensk (och �ven en dansk) ordlista kan h�mtas p�
 http://www.sslug.dk/ispell.

 Om du vill anv�nda den standardiserade franska ordlistan som kommer
 med Ispell, och om du vill anv�nda filen .ispell-perso-ord, i din
 hemkatalog, som din personliga ordlista, s� l�gg till f�ljande rader
 till din .emacs-fil:









        (setq sgml-mode-hook
        '(lambda () "Defaults for SGML mode."
        (setq ispell-personal-dictionary "~/.ispell-perso-ord")
        (ispell-change-dictionary "francais")
        ))






 5.2.

 V�lja speciella ordlistor f�r vissa filer

 Du kan f� problem om du inte stavningskontrollerar alla dokument i
 samma spr�k hela tiden. Om du �vers�tter dokument, s� �r det ganska
 troligt att du byter spr�k (och ordlistor) v�ldigt ofta.



 Jag k�nner inte till n�got Lisp-s�tt att v�lja, antingen automatiskt
 eller med ett enkelt mus-klick, huvudordlista eller personliga
 ordlista, som ska associeras med spr�ket du f�r tillf�llet anv�nder.
 (Om du k�nner till n�got om detta, tala om det f�r mig!)



 Det �r dock m�jligt att ange, p� slutet av filen, vilka ordlistor du
 vill anv�nda f�r den aktuella filen (och endast denna). Det r�cker att
 l�gga till dem som kommentarer, s� att Ispell kan l�sa dem d� det k�r
 stavningskontrollen (spell-check).



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




 Om du redan, i din .emacs-fil, har angivit att dina standard-ordlistor
 �r de franska, s� kan du l�gga till dessa rader i slutet av varje
 engelsk fil.



 5.3.

 Stavningskontrollera dina dokument

 F�r att stavningskontrollera ett helt dokument, anv�nd, varifr�n som
 helst i dokumentet, Meta-x ispell-buffer-kommandot. Du kan �ven v�lja
 att bara kontrollera en viss del av dokumentet:



 �  Markera b�rjan av avsnittet med Ctrl-Spc (mark-set-command),


 �  G� till slutet av avsnittet du vill kontrollera,


 �  Skriv Meta-x ispell-region.


 Sedan k�r Emacs Ispell. D� det st�ter p� ett ok�nt ord visar det dig
 det aktuella ordet (vanligtvis markerat) och ber dig v�lja mellan:



 �  mellanslag beh�ll ordet, endast denna g�ng,


 �  i beh�ll ordet, och infoga det i din personliga ordlista,


 �  a beh�ller ordet f�r denna session,


 �  A beh�ller ordet i denna fil, och infogar det i filens lokala
    ordlista,


 �  r l�ter dig r�tta till ordet f�r hand,


 �  R l�ter dig r�tta till alla instanser av det felstavade ordet,


 �  x avbryter kontrollen och placerar mark�ren d�r den var fr�n
    b�rjan,


 �  X avbryter kontrollen och l�mnar mark�ren d�r den �r, vilket l�ter
    dig korrigera filen; du kan senare forts�tta kontrollen om du
    skriver Meta-x ispell-continue,


 �  ? ger dig hj�lp.


    Om ispell finner ett eller flera ord som liknar det ok�nda ordet,
    s� visar det dem i ett litet f�nster, vart och ett med en siffra
    framf�r sig. Tryck bara p� motsvarande siffertangent, f�r att
    ers�tta det felstavade ordet med det korresponderande ordet.



 5.4.

 Personlig ordlista kontra filens lokala ordlista

 i-tangenten l�ter dig infoga ett ord i din personliga ordlista, och A
 l�ter dig infoga ett ord i en lokal ordlista f�r den aktuella filen.



 Den lokala filens ordlista �r en sekvens av ord infogade i slutet av
 filen, som kommentarer, vilka l�ses in a Ispell varje g�ng det ska
 kontrollera filen. P� det s�ttet kan du beh�lla vissa ord, vilka �r
 acceptabla i denna fil, �ven om de inte med n�dv�ndighet �r acceptabla
 i andra filer.



 Enligt min �sikt s� �r det b�ttre att reservera den personliga
 ordlistan f�r ord som huvudordlistan inte k�nner till, men som tillh�r
 spr�ket (som sammansatta ord), plus n�gra vanliga ord som substantiv
 och andra ord (som Linux), om de inte �r alltf�r lika ett riktigt ord,
 som finns i huvudordlistan; att l�gga till alltf�r m�nga ord i den
 personliga ordlistan, s�som f�rnamn, kan vara farligt, eftersom de kan
 likna ett ord som ing�r i spr�ket (man skulle kunna t�nka sig att
 Ispell blir f�rvirrat av det f�ljande: `Det roligaste med Young Ones
 var n�r Neil skulle koka linus-soppa.' (-- Om jag skulle lagt in Linus
 i min personliga ordlista!--)



 5.5.

 Direkt stavningskontroll

 Ispell kan utf�ra stavningskontroll p� filen medan du skriver. Till
 detta m�ste du anv�nda ispell-minor-mode. F�r ett starta eller avsluta
 det, skriv Meta-x ispell-minor-mode. Ispell piper varje g�ng du
 skriver ett ord som det inte k�nner igen.



 Om dessa pip irriterar dig (eller om din rumskamrat tar en tupplur),
 s� kan du ers�tta de irriterande pipen med att sk�rmen blinkar till,
 vilket du g�r med kommandot Meta-x set-variable RET visible-bell RET t
 RET. F�r att f�r evigt tysta Emacs, kan du l�gga till f�ljande rad i
 din .emacs-fil:



        (setq visible-bell t)






 6.

 Fula knep

 6.1.

 Att automatiskt infoga ett dokumenthuvud

 Emacs l�ter dig hook-a vissa funktioner till h�ndelser (�ppna en fil,
 spara, k�ra ig�ng ett nytt l�ge osv).



 autoinsert-biblioteket anv�nder denna funktion: n�r du �ppnar en ny
 fil under Emacs, s� infogar detta bibliotek, i enlighet med filtypen,
 ett standardiserat dokumenthuvud.



 I v�rt fall skulle detta standardiserade huvud kunna vara den del som
 deklarerar dokument-typen (LinuxDoc), titeln, f�rfattaren och datumet.



 Jag ska beskriva tv� s�tt att infoga ett s�dant huvud. Du skulle kunna
 infoga en f�rpreparerad fil, vilken inneh�ller denna information,
 eller s� kan du k�ra en elisp-rutin.






 6.1.1.

 Genom att infoga en fil

 F�rst m�ste du s�ga �t Emacs att k�ra auto-insert-l�get d� en fil
 �ppnas, att sedan l�sa autoinsert-biblioteket, vilket deklarerar auto-
 insert-alist-listan, vilken vi m�ste �ndra i. Denna lista anger
 huvudet som ska infogas f�r varje filtyp. Som standard m�ste filen som
 ska infogas finnas i ~/insert/-katalogen, men det �r m�jligt att �ndra
 auto-insert-directory-variabeln, om du vill l�gga den n�gon
 annanstans.



 L�gg till f�ljande rader till din .emacs-fil, f�r att infoga filen
 ~/emacs/sgml-insert.sgml, varje g�ng du �ppnar en ny SGML-fil:



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




 Sedan kan du skriva in ditt specialkomponerade huvud i filen
 ~/emacs/sgml-insert.sgml, starta om Emacs och �ppna t.ex. foobar.sgml-
 filen. Emacs ska d� be dig bekr�fta att filen ska infogas automatiskt,
 och om du svarar ja s� ska filen infogas.



 6.1.2.

 Genom att k�ra en rutin

 Detta fungerar som f�rut, men ist�llet f�r att s�tta auto-insert-alist
 till en fil att infoga, s� m�ste du s�tta den till en funktion att
 k�ra. S� h�r ska du g�ra, om du vill skriva denna funktion i en fil
 som heter ~/emacs/sgml-header.el (det finns ingen anledning att
 betunga din .emacs-fil med en s�dan funktion, eftersom den kan bli
 ganska l�ng):



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




 I ``appendixet'' hittar du ett exempel p� en insert-sgml-header-
 funktion.




 G.  En insert-sgml-header -funktion

 Denna funktion l�ter anv�ndaren infoga ett specialkomponerat
 dokumenthuvud i ett Linux Documentation Project-dokument. Den kan
 anropas automatiskt n�r en fil �ppnas, eller explicit, av anv�ndaren.



 Denna funktion fr�gar anv�ndaren, genom mini-bufferten, om en del
 information, av vilken en del �r n�dv�ndig, och annat ej.

 F�rst kommer titeln. Om ingen anges, s� avslutas funktionen
 omedelbart, och infogar inget. Sedan kommer datumet, f�rfattaren, hans
 e-postadress och hemsida (de tv� sista �r valfria).

 Sedan kommer en fr�ga efter namnet p� �vers�ttaren. Om det inte finns
 n�gon, tryck bara Return och inga fler fr�gor om en hypotetisk
 �vers�ttare kommer st�llas. Om det finns en, s� tillfr�gas du om hans
 e-postadress och hemsida (ocks� valfria).

 Funktionen skriver sedan in detta i den aktuella buffern, inklusive
 informationen du skrev in i en mall, och inklusive taggarna, som
 anv�nds till sammanfattning och f�rsta kapitlet. Slutligen placeras
 mark�ren d�r sammanfattningen ska skrivas.










































 (defun insert-sgml-header ()
   "Infoga dokumenthuvudet f�r ett LinuxDoc-dokument"
   (interactive)
   (let (titel forfattare epost hem oversattare epost-oversattare hem-oversattare datum
               starting-point)
     (setq titel (read-from-minibuffer "Titel: "))
     (if (> (length titel) 0)
         (progn
           (setq datum (read-from-minibuffer "Datum: ")
                 forfattare (read-from-minibuffer "F�rfattare: ")
                 epost (read-from-minibuffer "F�rfattarens e-post: ")
                 hem (read-from-minibuffer "F�rfattarens hemsida: http://")
                 oversattare (read-from-minibuffer "�vers�ttare: "))
           (insert "<!doctype linuxdoc system>\n<article>\n<titel>")
           (insert titel)
           (insert "</titel>\n<forfattare>\nF�rfattare: ") (insert forfattare) (insert "<newline>\n")
           (if (> (length epost) 0)
               (progn
                 (insert "<htmlurl url=\"mailto:")
                 (insert epost) (insert "\" name=\"") (insert epost)
                 (insert "\"><newline>\n")))
           (if (> (length hem) 0)
               (progn
                 (insert "<htmlurl url=\"http://")
                 (insert hem) (insert "\" name=\"") (insert hem)
                 (insert "\">\n<newline>")))
           (if (> (length oversattare) 0)
               (progn
                 (setq epost-oversattare (read-from-minibuffer "�vers�ttarens e-post: ")
                       hem-oversattare (read-from-minibuffer "�vers�ttarens hemsida: http://"))
                 (insert "�vers�ttare : ")
                 (insert oversattare)
                 (insert "<newline>\n")
                 (if (> (length epost-oversattare) 0)
                     (progn
                       (insert "<htmlurl url=\"mailto:")
                       (insert epost-oversattare) (insert "\" name=\"")
                       (insert epost-oversattare)
                       (insert "\"><newline>\n")))
                 (if (> (length hem-oversattare) 0)
                     (progn
                       (insert "<htmlurl url=\"http://")
                       (insert hem-oversattare) (insert "\" name=\"")
                       (insert hem-oversattare)
                       (insert "\"><newline>\n")))))
           (insert "</forfattare>\n<datum>\n")
           (insert datum)
           (insert "\n</datum>\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)
           ))))