Sophie

Sophie

distrib > Mandriva > 9.1 > ppc > by-pkgid > d74cd56fd5c222851f198ac5005d694d > files > 59

howto-text-fr-9.0-1mdk.noarch.rpm

  LinuxDoc+Emacs+Ispell-HOWTO
  Auteur : Philippe MARTIN (feloy@wanadoo.fr)

  v0.5, 28 Avril 1998

  Ce  document s'adresse aux traducteurs et redacteurs de HOWTO Linux ou
  de toute autre documentation du  Projet  de  Documentation  Linux.  Il
  donne  a  ces  derniers  des trucs et astuces pour l'utilisation entre
  autre d'Emacs et d'Ispell.

  11..

  PPrreeaammbbuullee

  11..11..

  CCooppyyrriigghhtt

  Copyright Philippe Martin 1998
  Vous  pouvez  redistribuer  et/ou  modifier  ce  document  selon   les
  conditions  de la GNU General Public Licence, version 2 ou ulterieure.

  11..22..

  RReemmeerrcciieemmeennttss

  Je remercie tout particulierement Sebastien Blondeel pour m'avoir pose
  tant  de  questions  si  pertinentes  sur  la  configuration  d'Emacs,
  questions qui m'ont permises de concretiser mes connaissances  sur  le
  sujet et de vous en faire part.

  11..33..

  RReemmaarrqquueess

  N'hesitez pas a me faire parvenir toute remarque et/ou critique sur ce
  document, je  les  examinerai  afin  de  faire  evoluer  au  mieux  ce
  document.
  N'hesitez  pas  non  plus  a me poser des questions relatives au sujet
  traite dans cet HOWTO, j'y repondrai avec un interet tout particulier.

  11..44..

  VVeerrssiioonnss

  Ce document traite des versions suivantes :

  +o  Sgml-tools version 0.99,

  +o  Emacs version 19.34,

  +o  Ispell version 3.1,

  +o  Toutes  les  bibliotheques  Emacs auxquelles je fais reference sont
     celles distribuees avec la version d'Emacs precitee, sauf  iso-sgml
     distribuee avec XEmacs et psgml distribuee seule.

  22..

  IInnttrroodduuccttiioonn

  22..11..

  LLee llaannggaaggee SSGGMMLL

  Le  langage SSGGMMLL (_S_t_a_n_d_a_r_d _G_e_n_e_r_a_l_i_z_e_d _M_a_r_k_u_p _L_a_n_g_u_a_g_e) est un langage
  qui permet de definir des types de documents.

  On peut par exemple definir grace a lui un type de document _r_e_c_e_t_t_e _d_e
  _c_u_i_s_i_n_e, qui precisera qu'il faudra y inclure une premiere partie avec
  les differents ingredients, puis une deuxieme  avec  les  accessoires,
  une  troisieme  donnant  la  facon de faire votre gateau pas a pas, et
  enfin une belle photo qui montre le resultat final.

  Cette definition d'un type de document est appele DDTTDD  (_D_o_c_u_m_e_n_t  _T_y_p_e
  _D_e_f_i_n_i_t_i_o_n).  Elle  ne  permet  pas de definir quelle sera l'allure du
  document final, mais seulement ce qu'il contiendra ou pourra contenir.

  Pour  reprendre  l'exemple  precedent, je suis sur qu'en lisant l'idee
  que je me fais d'une recette de cuisine, vous avez reconnu celles  que
  vous  ou  votre  cuistot  attitre utilisez. Et pourtant, elles ont une
  allure completement differente : les miennes  ont  une  photo  qui  se
  trouve  en  haut  a gauche du placard de la salle de bain, et la liste
  des ingredients se trouve entre les bouteilles de lait et  de  gaz  au
  fond du jardin. Et les votres ?

  Grace  a  cette  definition  type, quelqu'un peut ecrire son document,
  sans tenir compte de la forme qu'il aura quand il arrivera devant  les
  yeux du lecteur.

  22..22..

  LLaa ddeeffiinniittiioonn dduu ttyyppee LLiinnuuxxDDoocc

  Ce  type  permet  d'ecrire,  vous  l'aviez  devine,  des  documents se
  reportant a Linux.

  Ces documents sont en general construits ainsi : ils commencent par un
  titre  suivi  de l'auteur, de la date de diffusion et de la version de
  ce document.  Suit  juste  apres  un  court  paragraphe  qui  explique
  brievement  ce  que  contient  ce document (ce qui evite d'attendre de
  l'avoir fini pour se rendre compte que ce n'est pas  du  tout  ce  que
  l'on  recherchait)  puis  une  table  des  matieres qui montre plus en
  detail son contenu et permet aux plus presses d'aller voir directement
  ce qu'ils cherchent.

  Et  vient  ensuite  une  suite de chapitres, sections, paragraphes. Au
  milieu de ces paragraphes, on peut inserer des morceaux de  programme,
  ou  changer  de police de caracteres pour faire ressortir un mot ou un
  passage, ou encore y inserer des listes, faire reference a  une  autre
  partie du document, et d'autres choses encore.

  Pour ecrire un tel document, il suffit alors de preciser au bon moment
  le titre, l'auteur, la date  et  la  version  du  document,  puis  les
  chapitres  et  sections, dire quand il faut inserer une liste et quels
  en sont les elements, et ainsi de suite.

  22..33..

  LLeess SSGGMMLL--TToooollss

  Les  SSGGMMLL--TToooollss  permettent,  a  partir  de  cette  specification   du
  document,  d'obtenir  le  document  final  dans  le  format  que  vous
  preferez. Si vous voulez l'ajouter a votre  bibliotheque  personnelle,
  ce  sera  surement  du _P_o_s_t_S_c_r_i_p_t, si vous voulez le faire partager au
  reste de la planete a travers le Web,  pourquoi pas  du  _H_T_M_L,  ou  si
  vous  craquez  et  voulez  le  lire sous Windows, vous pouvez toujours
  l'avoir en _R_T_F pour pouvoir le lire sous  n'importe  quel  editeur  de
  texte.  Ou  peut-etre  sous  chacun  de  ces formats, si vous avez des
  humeurs changeantes.

  La distribution SGML-Tools peut etre recuperee via FTP anonyme dans le
  repertoire ftp://ftp.lip6.fr/pub/sgml-tools/

  33..

  VVoottrree pprreemmiieerr ddooccuummeenntt

  33..11..

  DDeeppuuiiss uunn ddooccuummeenntt aauu ffoorrmmaatt tteexxttee

  Si vous possedez un document au format texte que vous desirez formater
  en SGML pour ensuite le transformer en divers formats, voici la marche
  a suivre :

  1. Ajoutez au tout debut du fichier les lignes suivantes :

             <!doctype linuxdoc system>
             <article>
             <title>le titre ici</title>
             <author>
             le nom de l'auteur, son email
             </author>
             <date>
             la version et la date du document
             </date>

  2. S'il  y  a au tout debut du document un court paragraphe qui decrit
     brievement le contenu de ce document, encadrez ce  paragraphe  avec
     les balises <abstract> et </abstract>.

  3. Ajoutez   juste   a   la   suite   la   balise  <toc>,  qui  insere
     automatiquement la table des matieres.

  4. Au debut de chaque nouveau chapitre, remplacez la  ligne  contenant
     le numero et le titre du chapitre par :

            <sect>le titre du chapitre

  et rajoutez la balise </sect> a la fin du chapitre.

  NNoottee  ::  Il n'est pas necessaire d'indiquer le numero du chapitre, car
  ils sont numerotes automatiquement.

  5. Faites la meme chose pour les sections, en remplacant le numero  et
     le  titre  par  <sect1>  et  en  rajoutant  </sect1> a la fin de la
     section.

  6. Il est possible de creer des sous-sections jusqu'au niveau 4  (avec
     <sect4> et </sect4>) en operant de la meme maniere.

  7. A chaque debut de paragraphe, ajoutez la balise <p>.

  8. Si  vous  desirez  mettre  en  valeur  certains  mots  ou certaines
     phrases, entourez-les des balises <it> et </it> (_i_t_a_l_i_q_u_e), ou <bf>
     et  </bf>  (ggrraass), ou encore <tt> et </tt> (caracteres de machine a
     ecrire d'antan).

  9. Lorsqu'une  liste  apparait  dans  le  texte,  comme  celle-ci  par
     exemple :

             Voici une liste :

             - d'une ligne,
             - ah non, deux,
             - tiens, trois,
             - c'est tout.

             de quatre lignes !

  il faut la remplacer par :

          Voici une liste :
         <itemize>
         <item>d'une ligne,
         <item>ah non, deux,
         <item>tiens, trois,
         <item>c'est tout.
          </itemize>
          de quatre lignes !

  10.
     Lorsqu'un  bloc  represente une partie de programme, ou autre chose
     que l'on veut faire ressortir :

            <verb>
             10 REM Tiens qu'est-ce que c'est ?
             20 REM Je croyais que ca n'existait plus !
             30 PRINT "Je suis de retour ";
             40 PRINT "pour sauver le monde."
             50 INPUT "Des mains de qui d'apres toi ?",M$
             60 IF M$="Bill" THEN PRINT "Tu es un sage":GOTO AUPARADIS
             70 ELSE PRINT "Tu n'as rien compris...":GOTO AUPAYSDUDOLLAR
             </verb>

  11.
     Arrive a ce point, vous avez deja bien avance  votre  formatage  en
     SGML. Vous pourrez, si vous voulez affiner votre document, jeter un
     oeil sur le guide d'utilisation des SSGGMMLL--TToooollss, qui decrit plus  en
     detail le type de document LLiinnuuxxDDoocc.

  44..

  CCoonnffiigguurreerr EEmmaaccss

  44..11..

  LLeess ccaarraacctteerreess aacccceennttuueess

  Si  vous  desirez  ecrire  des documents en francais ou dans une autre
  langue europeenne, vous aurez besoin de  caracteres  accentues.  Voici
  comment configurer Emacs pour qu'il accepte ces caracteres.

  44..11..11..

  LL''aaffffiicchhaaggee ddeess ccaarraacctteerreess 88 bbiittss

  Pour  qu'Emacs  soit capable d'afficher des caracteres 8 bits, ajoutez
  les lignes suivantes a votre .emacs :

         (standard-display-european 1)
         (load-library "iso-syntax")

  Si vous utilisez Emacs sur un terminal qui ne supporte pas l'affichage
  des  caracteres 8 bits, vous pouvez utiliser la bibliotheque iso-ascii
  ((load-library  "iso-ascii")),  qui  permet  a  Emacs  d'afficher  les
  caracteres 8 bits d'une facon approchee.

  44..11..22..

  LLaa ssaaiissiiee ddeess ccaarraacctteerreess aacccceennttuueess

  Si  votre  clavier  permet  de  taper  les caracteres accentues, aucun
  probleme ne devrait se poser. En revanche,  s'il  ne  le  permet  pas,
  voici quelques moyens d'y remedier :

  44..11..22..11..

  LLaa bbiibblliiootthheeqquuee iissoo--aacccc

  La   bibliotheque  iso-acc  d'Emacs  permet  d'entrer  des  caracteres
  accentues malgre que l'on ait un clavier qui ne le permette  a  priori
  pas.

  Pour utiliser cette bibliotheque, ajoutez la ligne suivante a votre

          (load-library "iso-acc")

  Puis,  une  fois  avoir  relance  Emacs  et ouvert le fichier que vous
  voulez editer, tapez Meta-x iso-accents-mode.

  Vous pouvez alors entrer un caractere ee en tapant '' puis e. De maniere
  generale,  on  peut  entrer  un  caractere  accentue en tapant d'abord
  l'accent, puis  la  lettre  a  accentuer  (aussi  bien  minuscule  que
  majuscule). Voici les differents accents utilisables :

  ` : Un accent grave

  ^ : Un accent circonflexe

  " : Un trema

  ~  : Un tilde au dessus de la lettre, une cedille lorsqu'il precede un
  c, et d'autres encore (voir fichier iso-acc.el),

  / : Pour barrer une lettre, ...

  Si vous avez besoin d'entrer un de  ces  caracteres  et  non  pas  une
  lettre accentuee, tapez un espace a la suite de l'accent. Par exemple,
  pour taper _l_'_e_l_e_p_h_a_n_t, tapez l ' _<_s_p_c_> ' e l ' e ...

  Vous pouvez trouver l'ensemble des combinaisons dans le  fichier  iso-
  acc.el.

  44..11..22..22..

  LLaa ttoouucchhee _<_M_e_t_a_>

  Il  est  possible  avec  certains  terminaux  de saisir des caracteres
  accentues grace a la touche _<_M_e_t_a_> (ou _<_A_l_t_>). Par exemple, la  frappe
  de _<_M_e_t_a_>-i permet d'entrer le caractere ee.

  Mais  Emacs  prevoit  la touche _<_M_e_t_a_> pour d'autres utilisations.  Il
  faut donc taper la sequence CCttrrll--qq (commande quoted-insert)  avant  de
  taper _<_M_e_t_a_>-i.

  Cette  commande  permet  aussi d'entrer un caractere selon son code en
  octal. Tapez CCttrrll--qq suivi du code  en  octal  du  caractere  que  vous
  desirez entrer.

  44..11..33..

  AAffffiicchheerr lleess ccaarraacctteerreess SSGGMMLL eenn 88 bbiittss

  En  SGML,  les  caracteres  accentues  peuvent  etre tapes grace a des
  macros. Par exemple, le caractere ee s'ecrit &&eeaaccuuttee;;. En general,  les
  applications  qui lisent du SGML arrivent a lire les caracteres 8 bits
  et il n'est donc pas necessaire d'utiliser ces  macros.  Mais  il  est
  possible  que certaines ne le puissent pas. En sachant qu'il existe un
  moyen facile de remedier a ca, ce serait dommage  de  faire  "planter"
  ces dernieres applications.

  En effet, la bibliotheque iso-sgml vous permet d'entrer sous Emacs des
  caracteres accentues,  comme  d'habitude,  mais  lorsqu'il  enregistre
  votre  fichier,  il  transforme  tous  ces  caracteres 8 bits par leur
  equivalent SGML.

  Il est donc tres facile, grace a  cette  bibliotheque,  de  saisir  et
  relire  votre document sous Emacs, et vous etes sur que votre document
  ne sera pas rejete  par  une  application  qui  ne  comprend  pas  les
  caracteres 8 bits.

  Pour  utiliser  cette bibliotheque, il suffit de rajouter ces lignes a
  votre

         (setq sgml-mode-hook
         '(lambda () "Defauts pour le mode SGML."
         (load-library "iso-sgml")))

  44..22..

  LLee mmooddee SSGGMMLL

  Lorsque vous ouvrez un fichier avec une extension ..ssggmmll,  Emacs  lance
  normalement  le  mmooddee  ssggmmll.  S'il ne le fait pas, vous pouvez soit le
  faire   manuellement   avec   Meta-x   sgml-mode,   soit   le   lancer
  automatiquement en rajoutant ces lignes a votre .emacs :

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

  Ce mode permet par exemple de choisir comment inserer les caracteres 8
  bits.  En  utilisant  Meta-x  sgml-name-8bit-mode  (ou  dans  le  menu
  _S_G_M_L_/_T_o_g_g_l_e  _8  _b_i_t  _i_n_s_e_r_t_i_o_n),  vous  pouvez  choisir  d'inserer les
  caracteres 8 bits soit tels quels, soit sous leur forme SGML, c'est-a-
  dire sous la forme &&......;;.

  Il  permet  aussi de cacher ou non les balises SGML, avec Meta-x sgml-
  tags-invisible ou le menu _S_G_M_L_/_T_o_g_g_l_e _T_a_g _V_i_s_i_b_i_l_i_t_y.

  44..33..

  LLee mmooddee PPSSGGMMLL

  Le mode PSGML donne de grandes facilites  pour  editer  des  documents
  SGML sous Emacs.

  La documentation psgml-linuxdoc explique comment installer et utiliser
  ce mode conjointement avec _L_i_n_u_x_D_o_c.

  44..44..

  DDiivveerrss

  44..44..11..

  LLee mmooddee aauuttoo--ffiillll

  En mode normal, lorsque vous tapez un paragraphe et que  vous  arrivez
  en  bout  de  ligne,  vous devez vous-meme utiliser la touche _<_E_n_t_r_e_e_>
  pour revenir a la ligne, ou bien  votre  ligne  continue  indefiniment
  tout  le  long du paragraphe. Il en resulte, si vous utilisez _<_E_n_t_r_e_e_>
  pour revenir a la ligne, un paragraphe dont les fins de lignes ne sont
  pas alignees, et en general ces lignes rallongent ou raccourcissent au
  fur et a mesure. De meme si  vous  laissez  des  lignes  depasser  une
  longueur  raisonnable,  vous  ne  pourrez  pas  les voir sous certains
  editeurs.

  Le mode aauuttoo--ffiillll permet d'automatiser cette tache ingrate  :  lorsque
  vous  depassez une certaine colonne (la 70e par defaut), il vous place
  automatiquement a la ligne suivante.

  Voici comment utiliser ce mode, et fixer la largeur de  vos  lignes  a
  80 :

         (setq sgml-mode-hook
         '(lambda () "Defauts pour le mode SGML."
         (auto-fill-mode)
         (setq fill-column 80)))

  55..

  IIssppeellll

  Si  vous  desirez verifier l'orthographe de votre document directement
  depuis Emacs, vous pouvez utiliser la distribution IIssppeellll et son  mode
  associe sous Emacs.

  55..11..

  CCoonnffiigguurraattiioonn iinniittiiaallee

  Tout  d'abord,  ajoutez  ces  lignes  a  votre  .emacs pour configurer
  Emacs :

        (autoload 'ispell-word "ispell"
           "Check the spelling of word in buffer." t)
        (global-set-key "\e$" 'ispell-word)
        (autoload 'ispell-region "ispell"
           "Check the spelling of region." t)
        (autoload 'ispell-buffer "ispell"
           "Check the spelling of buffer." t)
        (autoload 'ispell-complete-word "ispell"
           "Look up current word in dictionary and try to complete it." t)
        (autoload 'ispell-change-dictionary "ispell"
           "Change ispell dictionary." t)
        (autoload 'ispell-message "ispell"
           "Check spelling of mail message or news post.")
        (autoload 'ispell-minor-mode "ispell"
           "Toggle mode to automatically spell check words as they are typed in.")

  55..22..

  LLee cchhooiixx ddee vvooss ddiiccttiioonnnnaaiirreess ppaarr ddeeffaauutt

  Vous pouvez configurer  Emacs  pour  qu'a  l'ouverture  d'un  fichier,
  celui-ci  choisisse automatiquement quels dictionnaires utiliser. Vous
  pouvez en  effet  utiliser  plusieurs  dictionnaires.  Le  premier  et
  surement  le  plus  important est le dictionnaire principal, distribue
  avec Ispell. Vous avez le choix entre plusieurs langues.  Le  deuxieme
  est  votre  dictionnaire  personnel, celui ou Ispell ajoutera les mots
  qu'il n'aura pas trouve dans le premier dictionnaire mais que vous lui
  aurez indique de garder.

  Voici les lignes a inserer a votre .emacs si vous desirez utiliser par
  defaut le dictionnaire francais distribue avec Ispell, et placer votre
  dictionnaire  personnel  dans un fichier .ispell-dico-perso dans votre
  repertoire racine.

         (setq sgml-mode-hook
        '(lambda () "Defauts pour le mode SGML."
        (setq ispell-personal-dictionary "~/.ispell-dico-perso")
        (ispell-change-dictionary "francais")
         ))

  55..33..

  CChhooiixx ddeess ddiiccttiioonnnnaaiirreess ppoouurr uunn cceerrttaaiinn ffiicchhiieerr

  Un petit probleme se pose si vous ne verifiez pas toujours des  textes
  dans  la  meme  langue.  Et  si  vous  traduisez des documents, il est
  probable que vous passiez d'une langue a l'autre assez souvent.

  Je ne connais pas de moyen en Lisp de choisir,  soit  automatiquement,
  soit en un _c_l_i_c_k de souris, les dictionnaires principaux et personnels
  associes a la langue utilisee dans le fichier en cours.  (Si  vous  en
  connaissez un, faites-moi signe !)

  Mais  il  est  possible  d'indiquer  quels  dictionnaires  vous voulez
  utiliser pour ce fichier (et seulement celui-la).  Il  suffit  de  les
  rajouter  en  commentaire,  a la fin du fichier, pour qu'Ispell puisse
  les lire en lancant une verification :

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

  Si vous avez defini dans votre .emacs que vos dictionnaires par defaut
  seront  francais, vous pouvez alors ajouter ces lignes a chaque fin de
  fichier dont le texte est en anglais.

  55..44..

  VVeerriiffiieerr vvoottrree ddooccuummeenntt

  Pour  lancer  la  verification  de  votre  document  en   integralite,
  utilisez,  depuis  n'importe  ou  dans  votre  document Meta-x ispell-
  buffer. Vous pouvez  aussi  lancer  la  verification  sur  une  region
  seulement du document :

  +o  Indiquez le debut de la region avec Ctrl-Spc (mark-set-command),

  +o  Placez-vous a la fin de la region a verifier,

  +o  tapez Meta-x ispell-region.

  Emacs lance alors Ispell. Si ce dernier trouve un mot qu'il ne connait
  pas, il vous indique ce mot  (normalement  en  surbrillance)  et  vous
  demande de presser une touche :

  +o  ssppcc accepte ce mot, uniquement pour cette fois,

  +o  ii accepte ce mot et l'insere dans votre dictionnaire personnel,

  +o  aa accepte ce mot pour cette session,

  +o  AA   accepte   ce  mot  pour  ce  fichier,  en  l'inserant  dans  le
     dictionnaire local au fichier,

  +o  rr permet de corriger le mot mal orthographie,

  +o  RR  permet  de  corriger  toutes  les   occurrences   du   mot   mal
     orthographie,

  +o  xx  arrete  la  verification,  et  replace  le curseur a sa position
     initiale,

  +o  XX arrete la verification en laissant le  curseur  sur  le  mot  mal
     orthographie,  vous  permettant  de  modifier  votre fichier ; vous
     pouvez continuer la verification en tapant Meta-x ispell-continue,

  +o  ?? affiche une aide en ligne.

  Si Ispell trouve un ou plusieurs mots ressemblant  a  celui  qu'il  ne
  connait  pas,  il  vous  les  indique  dans une petite fenetre, chacun
  precede d'un chiffre. Il suffit de presser un  de  ces  chiffres  pour
  corriger le mot mal orthographie par le mot correspondant.

  55..55..

  DDiiccttiioonnnnaaiirree ppeerrssoonnnneell ccoonnttrree ddiiccttiioonnnnaaiirree llooccaall aauu ffiicchhiieerr

  La touche ii permet d'inserer un mot dans  le  dictionnaire  personnel,
  alors  que  la  touche  AA permet d'inserer un mot dans le dictionnaire
  local au fichier.

  Le dictionnaire local au fichier est une suite de mots  inseres  a  la
  fin du fichier, sous forme de commentaires, et qui est relu par Ispell
  chaque fois que vous le lancez sur ce fichier. Cela permet  d'accepter
  certains  mots,  valables dans ce fichier, mais qui ne le seraient pas
  dans d'autres.

  A mon avis, il est  preferable  que  le  dictionnaire  personnel  soit
  reserve aux mots que le dictionnaire principal ne connait pas mais qui
  font vraiment partie de la langue  (comme  les  mots  composes),  plus
  certains  mots  n'appartenant  pas  a  la  langue  ou noms propres qui
  reviennent dans un grand  nombre  de  fichiers  (comme  _L_i_n_u_x)  et  ne
  ressemblant  pas trop a un mot du dictionnaire principal : l'ajout par
  exemple de certains noms et prenoms de personnes dans le  dictionnaire
  personnel peut etre dangereux, car ils ressemblent parfois a un mot de
  la langue (imaginez qu'il ne trouve pas de fautes  dans  la  phrase  :
  `_T_e_d _e_n _e_s_t _l_'_e_f_f_e_t _a_u _p_h_i_l _d_u _t_e_m_p_s_._' !).

  55..66..

  LLaa vveerriiffiiccaattiioonn ``aa llaa vvoolleeee''

  Ispell  peut  aussi verifier l'orthographe au fur et a mesure que vous
  tapez votre document. Il faut utiliser pour cela le mode iissppeellll--mmiinnoorr--
  mmooddee.  Lorsque vous desirez lancer ou arreter ce mode de verification,
  tapez Meta-x ispell-minor-mode. Ispell vous envoie alors un _b_i_p chaque
  fois que vous tapez un mot qu'il ne connait pas.

  Si  ces  _b_i_p  a repetition vous ennuient (ou si votre voisin de palier
  dort !), vous pouvez les remplacer par un flash de l'ecran, en  tapant
  Meta-x set-variable RET visible-bell RET t RET. Ou ajoutez cette ligne
  a votre .emacs pour faire taire Emacs a tout jamais :

         (setq visible-bell t)

  55..77..

  SSaauutt ddee rreeggiioonnss

  Il est possible de ne pas verifier votre document en  integralite,  en
  sautant  quelques  regions  bien  specifiques.  En effet, vous voudrez
  surement ne pas verifier l'orthographe de vos balises SGML. Pour cela,
  ajoutez la ligne suivante a votre .emacs :

        (setq ispell-skip-sgml t)

  Une  version Beta du 20 Mars 98  du fichier ispell.el est disponible a
  l'adresse    http://kdstevens.com/~stevens/ispell-page.html.     Cette
  version  etend  les  regions  SGML  a  sauter.  En  effet,  la version
  d'ispell.el fournie avec Emacs permet seulement  de  sauter  les  tags
  SGML, de la forme <<tttt>> ou <<//tttt>>.

  Cette version Beta permet de sauter egalement les regions entre :

  +o  <author> et la fin de la ligne,

  +o  < et / (pour les tags SGML de la forme <<eemm//......//,

  +o  <code> et </code>,

  +o  <verb> et </verb>,

  +o  <tt> et </tt>.

  66..

  PPoouurr aalllleerr pplluuss llooiinn

  66..11..

  IInnsseerrttiioonn aauuttoommaattiiqquuee dd''uunnee eenntteettee

  Sous Emacs, il est possible d'_a_c_c_r_o_c_h_e_r des actions a chaque evenement
  (ouverture d'un fichier, sauvegarde, lancement d'un mode, etc).

  La bibliotheque aauuttooiinnsseerrtt utilise cette fonctionnalite : lorsque vous
  ouvrez un nouveau fichier sous Emacs, cette bibliotheque insere, selon
  le type de ce fichier, une entete _s_t_a_n_d_a_r_d.

  Dans notre cas, cette entete _s_t_a_n_d_a_r_d pourrait bien etre la partie qui
  declare le type de document (LinuxDoc), le titre, l'auteur et la date.

  Je vais decrire ici deux facons d'inserer une telle entete.   Soit  en
  inserant  un  fichier  que  vous  aurez  prealablement  ecrit, soit en
  lancant une routine ecrite en eelliisspp.

  66..11..11..

  ppaarr ll''iinnsseerrttiioonn dd''uunn ffiicchhiieerr

  Il faut tout d'abord preciser a Emacs  d'executer  la  commande  auto-
  insert   a   l'ouverture  d'un  fichier,  puis  lire  la  bibliotheque
  aauuttooiinnsseerrtt qui declare la  liste  auto-insert-alist  qu'il  nous  faut
  modifier,  cette  derniere  definissant  pour  chaque  type de fichier
  l'entete a inserer. Le fichier a inserer doit par  defaut  se  trouver
  dans  le  repertoire  ~/insert/,  mais il est possible de redefinir la
  variable auto-insert-directory si l'on veut le placer ailleurs.

  Voici les lignes a rajouter a votre .emacs  pour  inserer  le  fichier
  ~/emacs/sgml-insert.sgml a l'ouverture d'un nouveau fichier 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))

  Vous  pouvez  alors  ecrire  dans  le fichier ~/emacs/sgml-insert.sgml
  votre entete personnalisee, puis relancer Emacs et ouvrir  un  fichier
  toto.sgml.  Emacs devrait alors vous demander de confirmer l'insertion
  automatique, et dans l'affirmative inserer votre entete.

  66..11..22..

  ppaarr ll''eexxeeccuuttiioonn dd''uunnee rroouuttiinnee

  Cela fonctionne un peu comme precedemment, mais au  lieu  de  preciser
  dans  la  variable  auto-insert-alist  un  fichier  a inserer, il faut
  preciser une fonction a executer. Voici comment proceder, en supposant
  que  l'on ecrive cette fonction dans un fichier ~/emacs/sgml-header.el
  (inutile d'encombrer votre .emacs avec  cette  fonction  qui  peut  se
  reveler assez longue) :

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

  Vous  pourrez  trouver  en  ``appendice'' un exemple de cette fonction
  insert-sgml-header.

  GG..

  UUnnee ffoonnccttiioonn iinnsseerrtt--ssggmmll--hheeaaddeerr

  Cette  fonction  permet   a   l'utilisateur   d'inserer   une   entete
  personnalisee  pour  un document du Projet de Documentation Linux dans
  un fichier. Elle peut soit etre appelee automatiquement  lorsque  l'on
  ouvre  un  nouveau  fichier  SGML, soit etre appelee explicitement par
  l'utilisateur.

  Cette fonction demande a  l'utilisateur,  a  travers  le  _m_i_n_i_-_b_u_f_f_e_r,
  divers renseignements, certains necessaires, d'autres facultatifs.

  Tout  d'abord  le  titre.  Si  l'utilisateur  n'entre  aucun titre, la
  fonction retourne immediatement, et rien n'est insere.  Vient  ensuite
  la  date, l'auteur, son email et sa home page (ces deux derniers etant
  facultatifs).

  Il demande ensuite le nom du traducteur. S'il n'y a pas de  traducteur
  pour  ce  document, il suffit de presser _E_n_t_r_e_e, et les renseignements
  sur le traducteur ne seront pas demandes. Dans le  cas  contraire,  la
  fonction  demande  l'email  et  la  home  page  du  traducteur  (aussi
  facultatifs).

  Cette fonction affiche alors dans  le  buffer  courant  votre  entete,
  comportant bien sur tous les renseignements que vous avez cites mis en
  forme, mais aussi les balises necessaires au paragraphe d'introduction
  et  au  premier  chapitre,  puis  place le curseur a l'endroit ou vous
  pourrez saisir le paragraphe d'introduction.

  (defun insert-sgml-header ()
    "Insere l'entete d'un document LinuxDoc"
    (interactive)
    (let (titre auteur email home traducteur email-traducteur home-traducteur date
                point-debut)
      (setq titre (read-from-minibuffer "Titre : "))
      (if (> (length titre) 0)
          (progn
            (setq date (read-from-minibuffer "Date : ")
                  auteur (read-from-minibuffer "Auteur : ")
                  email (read-from-minibuffer "Email auteur : ")
                  home (read-from-minibuffer "Home page auteur : http://")
                  traducteur (read-from-minibuffer "Traducteur : "))
            (insert "<!doctype linuxdoc system>\n<article>\n<title>")
            (insert titre)
            (insert "</title>\n<author>\nAuteur : ") (insert auteur) (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 traducteur) 0)
                (progn
                  (setq email-traducteur (read-from-minibuffer "Email traducteur : ")
                        home-traducteur (read-from-minibuffer "Home page traducteur : http://"))
                  (insert "Traducteur : ")
                  (insert traducteur)
                  (insert "<newline>\n")
                  (if (> (length email-traducteur) 0)
                      (progn
                        (insert "<htmlurl url=\"mailto:")
                        (insert email-traducteur) (insert "\" name=\"")
                        (insert email-traducteur)
                        (insert "\"><newline>\n")))
                  (if (> (length home-traducteur) 0)
                      (progn
                        (insert "<htmlurl url=\"http://")
                        (insert home-traducteur) (insert "\" name=\"")
                        (insert home-traducteur)
                        (insert "\"><newline>\n")))))
            (insert "</author>\n<date>\n")
            (insert date)
            (insert "\n</date>\n\n<abstract>\n")
            (setq point-debut (point))
            (insert "\n</abstract>\n<toc>\n\n<sect>\n<p>\n\n\n</sect>\n\n</article>\n")
            (goto-char point-debut)
            ))))