LinuxDoc+Emacs+Ispell-HOWTO

á×ÔÏÒ: Philippe MARTIN ( feloy@wanadoo.fr)
ðÅÒÅ×ÏÄ ÎÁ ÁÎÇÌÉÊÓËÉÊ: Sébastien Blondeel ( Sebastien.Blondeel@lifl.fr), ÐÅÒÅ×ÏÄ ÎÁ ÒÕÓÓËÉÊ Alex Ott ott@phtd.tpu.edu.ru

v0.4, 27 æÅ×ÒÁÌÑ 1998


üÔÏÔ ÄÏËÕÍÅÎÔ ÐÒÅÄÎÁÚÎÁÞÅÎ × ÐÏÍÏÝØ ÌÀÄÑÍ ÐÉÛÕÝÉÍ É ÐÅÒÅ×ÏÄÑÝÉÍ ÄÏËÕÍÅÎÔÙ ÓÅÒÉÉ Linux HOWTOs ÉÌÉ ÄÒÕÇÉÅ ÄÏËÕÍÅÎÔÙ ÄÌÑ Linux Documentation Project. ïÎ ÄÁÅÔ ÓÏ×ÅÔÙ ÐÏ ÉÓÐÏÌØÚÏ×ÁÎÉÀ ÒÁÚÎÙÈ ÕÔÉÌÉÔ, ×ËÌÀÞÁÑ Emacs É Ispell.

ðÒÉÍÅÞÁÎÉÅ ÐÅÒÅ×ÏÄÞÉËÁ: ûÌÉÔÅ ÍÎÅ ÌÀÂÙÊ ËÏÍÍÅÎÔÁÒÉÉ É ÚÁÍÅÞÁÎÉÑ, ÄÁÖÅ ÎÅÂÏÌØÛÉÅ.

1. ðÒÅÁÍÂÕÌÁ

1.1 á×ÔÏÒÓËÉÅ ÐÒÁ×Á

á×ÔÏÒÓËÉÅ ÐÒÁ×Á Philippe Martin 1998
÷Ù ÍÏÖÅÔÅ ÒÁÓÐÒÏÓÔÒÁÎÑÔØ É/ÉÌÉ ÍÏÄÉÆÉÃÉÒÏ×ÁÔØ ÜÔÏÔ ÄÏËÕÍÅÎÔ ÅÓÌÉ ×Ù ÐÏÄÞÉÎÑÅÔÅÓØ ÔÅÒÍÉÎÁÍ GNU General Public Licence, ×ÅÒÓÉÉ 2 ÉÌÉ ÂÏÌÅÅ ÐÏÚÄÎÅÊ.

1.2 âÌÁÇÏÄÁÒÎÏÓÔÉ

óÐÅÃÉÁÌØÎÏÅ ÓÐÁÓÉÂÏ Sébastien Blondeel, ËÔÏ Ñ×ÌÑÅÔÓÑ "ÐÒÏÔÉ×ÎÏÊ Ó×ÏÌÏÞØÀ" É ÍÎÏÇÏ ÓÐÒÁÛÉ×ÁÌ ÍÅÎÑ Ï ÎÁÓÔÒÏÊËÅ Emacs setup. åÇÏ ÕÍÎÙÅ ×ÏÐÒÏÓÙ ÐÏÚ×ÏÌÉÌÉ ÍÎÅ ÌÕÞÛÅ ÐÏÎÑÔØ ÜÔÕ ÐÒÏÇÒÁÍÍÕ É ÐÅÒÅÄÁÔØ ÜÔÏ ÚÎÁÎÉÅ ×ÁÍ × ÜÔÏÍ ÄÏËÕÍÅÎÔÅ.

1.3 ëÏÍÍÅÎÔÁÒÉÉ

îÅ ËÏÌÅÂÌÑÓØ ÇÏ×ÏÒÉÔÅ ÍÎÅ ÌÀÂÙÅ ×ÅÝÉ, ËÏÔÏÒÙÅ ÐÏÍÏÇÕÔ ÓÄÅÌÁÔØ ÜÔÏÔ ÄÏËÕÍÅÎÔ ÌÕÞÛÅ. ñ ÂÕÄÕ ÔÝÁÔÅÌØÎÏ ÐÒÏ×ÅÒÑÔØ ×ÁÛÕ ËÒÉÔÉËÕ.
ôÁËÖÅ ÎÅ ËÏÌÅÂÌÑÓØ ÓÐÒÁÛÉ×ÁÊÔÅ ÍÅÎÑ Ï ÌÀÂÙÈ ×ÏÐÒÏÓÁÈ ÏÔÎÏÓÑÝÉÈÓÑ Ë ÔÅÍÁÍ ÏÂÓÕÖÄÁÅÍÙÍ ÚÄÅÓØ. ñ ÂÕÄÕ ÂÏÌØÛÅ ÞÅÍ ÓÞÁÓÔÌÉ× ÏÔ×ÅÔÉÔØ ×ÁÍ, ÔÁË ËÁË ÜÔÏ ÐÏÚ×ÏÌÉÔ ÍÎÅ × ÂÕÄÕÝÅÍ ÕÌÕÞÛÉÔØ ÜÔÏÔ ÄÏËÕÍÅÎÔ.

1.4 ÷ÅÒÓÉÉ

üÔÏÔ ÄÏËÕÍÅÎÔ ÒÁÓÓËÁÚÙ×ÁÅÔ Ï ÓÌÅÄÕÀÝÉÈ ×ÅÒÓÉÑÈ ÐÒÏÄÕËÔÏ×:

2. ÷×ÅÄÅÎÉÅ

2.1 SGML

Standard Generalised Mark-up Language, ÉÌÉ SGML, ÜÔÏ ÑÚÙË ÄÌÑ ÏÐÒÅÄÅÌÅÎÉÑ ÔÉÐÏ× ÄÏËÕÍÅÎÔÏ×.

îÁÐÒÉÍÅÒ, ËÔÏ-ÔÏ ÍÏÖÅÔ ÏÐÒÅÄÅÌÉÔØ ÔÉÐ ÄÏËÕÍÅÎÔÁ ÒÅÃÅÐÔÙ, Ó ÐÅÒ×ÏÊ ÞÁÓÔØÀ ÐÒÅÄÓÔÁ×ÌÑÀÝÅÊ ÉÓÐÏÌØÚÕÅÍÙÅ ÉÎÇÒÅÄÉÅÎÔÙ, ×ÔÏÒÁÑ ÞÁÓÔØ ÚÁÄÁÅÔ ÉÓÐÏÌØÚÕÅÍÙÅ ÐÒÉÂÏÒÙ, Á ÔÒÅÔØÑ ÞÁÓÔØ ÄÁÅÔ ÐÏÛÁÇÏ×ÕÀ ÉÎÓÔÒÕËÃÉÀ ÄÌÑ ÐÒÉÇÏÔÏ×ÌÅÎÉÑ ËÅËÓÁ, É ×ÅÌÉËÏÌÅÐÎÁÑ ÆÉÎÁÌØÎÁÑ ËÁÒÔÉÎËÁ ÄÌÑ ÐÏËÁÚÁ ÒÅÚÕÌØÔÁÔÁ ×ÓÅÇÏ ÜÔÏÇÏ.

üÔÏ ÎÁÚÙ×ÁÅÔÓÑ Document Type Definition (DTD, ïÐÒÅÄÅÌÅÎÉÅ ÔÉÐÁ ÄÏËÕÍÅÎÔÁ). ïÎÏ ÎÅ ÏÐÒÅÄÅÌÑÅÔ ËÁË ÂÕÄÅÔ ×ÙÇÌÑÄÅÔØ ÚÁËÌÀÞÉÔÅÌØÎÙÊ ÒÅÚÕÌØÔÁÔ, ÏÎÏ ÔÏÌØËÏ ÏÐÒÅÄÅÌÑÅÔ ÔÏÌØËÏ ÞÔÏ ÄÏËÕÍÅÎÔ ÍÏÖÅÔ ÓÏÄÅÒÖÁÔØ.

íÙ ÉÓÐÏÌØÚÕÅÍ ÔÏÔ ÖÅ ÐÒÉÍÅÒ ÄÁÌÅÅ, Ñ Õ×ÅÒÅÎ, ÞÔÏ ×Ù ÐÒÉÍÅÔÅ ÍÏÀ ÉÄÅÀ, ÎÏ Õ ×ÁÓ ÍÏÖÅÔ ÂÙÔØ Ó×ÏÅ ×ÉÄÅÎÉÅ. ôÅÍ ÎÅ ÍÅÎÅÅ, ÏÎÉ ÓÏ×ÅÒÛÅÎÎÏ ÒÁÚÎÙÅ: ÍÏÅ ×ÉÄÅÎÉÅ ÐÒÅÄÓÔÁ×ÌÑÅÔÓÑ ËÁË ???? To use the same example again, I'm sure that upon reading my idea of a recipe, you recognised yours, or your favourite cook's. Nevertheless, they actually look different: mine have a picture in the upper left corner of the bathroom cupboard, and the ingredients list can be found in the back garden, between the swimming pool and the barbecue. Yours?

âÌÁÇÏÄÁÒÑ ÜÔÏÍÕ ÓÔÁÎÄÁÒÔÎÏÍÕ ÏÐÒÅÄÅÌÅÎÉÀ, ËÔÏ-ÔÏ ÍÏÖÅÔ ÐÉÓÁÔØ ÄÏËÕÍÅÎÔ, ÂÅÚ ÒÁÚÍÙÛÌÅÎÉÑ ËÁË ÏÎ ÂÕÄÅÔ ×ÙÇÌÑÄÅÔØ × ËÏÎÃÅ ÒÁÂÏÔÙ ÄÌÑ ÞÉÔÁÔÅÌÑ.

2.2 ïÐÒÅÄÅÌÅÎÉÅ ÔÉÐÁ LinuxDoc

üÔÏÔ ÔÉÐ ÉÓÐÏÌØÚÕÅÔÓÑ ÄÌÑ ÎÁÐÉÓÁÎÉÑ, ËÁË ×Ù ÍÏÇÌÉ ÄÏÇÁÄÁÔØÓÑ, ÄÏËÕÍÅÎÔÏ× ÏÔÎÏÓÑÝÉÈÓÑ Ë Linux.

ôÁËÉÅ ÄÏËÕÍÅÎÔÙ × ÏÂÝÅÍ ÐÏÓÔÒÏÅÎÙ ÓÌÅÄÕÀÝÉÍ ÏÂÒÁÚÏÍ: ÏÎÉ ÎÁÞÉÎÁÀÔÓÑ Ó ÚÁÇÏÌÏ×ËÁ, ÚÁ ËÏÔÏÒÙÍ ÓÌÅÄÕÅÔ ÉÍÑ Á×ÔÏÒÁ, ÎÏÍÅÒ ×ÅÒÓÉÉ É ÄÁÔÁ. úÁÔÅÍ ÉÄÅÔ ËÒÁÔËÏÅ ÉÚÌÏÖÅÎÉÅ (??? abstract) (ÔÁË ÞÔÏ ×ÁÍ ÎÅ ÎÁÄÏ ÐÒÏÓÍÁÔÒÉ×ÁÔØ ÄÏËÕÍÅÎÔ ÐÏÌÎÏÓÔØÀ ÄÏ ÐÏÎÉÍÁÎÉÑ, ÔÏÇÏ ÞÔÏ ÜÔÏÔ ÄÏËÕÍÅÎÔ ÎÅ ÔÏ ÞÔÏ ×ÁÍ ÎÕÖÎÏ), ÚÁÔÅÍ ÉÄÅÔ ÓÏÄÅÒÖÁÎÉÅ, ËÏÔÏÒÏÅ ÐÏËÁÚÙ×ÁÅÔ ÓÔÒÕËÔÕÒÕ, ÔÁË ÞÔÏ ×Ù × ÓÐÅÛËÅ ÐÅÒÅÊÔÉ Ë ÞÁÓÔÉ, ËÏÔÏÒÕÀ ×Ù ÈÏÔÉÔÅ ÐÒÏÞÉÔÁÔØ.

úÁÔÅÍ ÉÄÅÔ ÓÐÉÓÏË ÇÌÁ×, ÒÁÚÄÅÌÏ×, ÐÁÒÁÇÒÁÆÏ×. ÷ ÉÈ ÐÒÅÄÅÌÁÈ ×Ù ÍÏÖÅÔÅ ×ÓÔÁ×ÌÑÔØ ËÕÓËÉ ÐÒÏÇÒÁÍÍ, ÉÚÍÅÎÑÔØ ÛÒÉÆÔ ÄÌÑ ×ÙÄÅÌÅÎÉÑ ÓÌÏ×Á ÉÄÉ ÐÒÅÄÌÏÖÅÎÉÑ, ×ÓÔÁ×ÌÑÔØ ÓÐÉÓËÉ, ÄÅÌÁÔØ ÓÓÙÌËÉ ÎÁ ÄÒÕÇÉÅ ÒÁÚÄÅÌÙ ÄÏËÕÍÅÎÔÁ É Ô.Ð.

äÌÑ ÎÁÐÉÓÁÎÉÑ ÔÁËÏÇÏ ÄÏËÕÍÅÎÔÁ, ×ÁÍ ×ÓÅÇÏ ÌÉÛØ ÎÅÏÂÈÏÄÉÍÏ ÕËÁÚÁÔØ × ÎÕÖÎÏÅ ×ÒÅÍÑ ÚÁÇÏÌÏ×ÏË ÄÏËÕÍÅÎÔÁ, Á×ÔÏÒÁ, ÄÁÔÕ É ×ÅÒÓÉÀ ÄÏËÕÍÅÎÔÁ, ÇÌÁ×Ù É ÒÁÚÄÅÌÙ, ×Ï ×ÒÅÍÑ ×ÓÔÁ×ËÉ ÓÐÉÓËÁ ÕËÁÚÁÔØ ÅÇÏ ÜÌÅÍÅÎÔÙ É Ô.Ð.

2.3 SGML-Tools

SGML-Tools ÐÒÅ×ÒÁÔÑÔ ÓÐÅÃÉÆÉËÁÃÉÀ ÄÏËÕÍÅÎÔÁ × ÏËÏÎÞÁÔÅÌØÎÙÊ ÒÅÚÕÌØÔÁÔ × ×ÙÂÒÁÎÎÏÊ ×ÁÍÉ ÆÏÒÍÅ. åÓÌÉ ×Ù ÈÏÔÉÔÅ ÐÏÍÅÓÔÉÔØ ÄÏËÕÍÅÎÔ × ×ÁÛÕ ÐÅÒÓÏÎÁÌØÎÕÀ ÂÉÂÌÉÏÔÅËÕ, ×Ù ×ÙÂÅÒÅÔÅ PostScript. åÓÌÉ ×Ù ÈÏÔÉÔÅ ÏÒÇÁÎÉÚÏ×ÁÔØ ÄÏÓÔÕÐ Ë ÎÅÍÕ ÞÅÒÅÚ Web, ÔÏ ÜÔÏ ÂÕÄÅÔ HTML. åÓÌÉ ×Ù ÎÅ ÍÏÖÅÔÅ ÎÉÞÅÇÏ ÓÄÅÌÁÔØ É ÄÏÌÖÎÙ ÞÉÔÁÔØ ÅÇÏ ÐÏÄ Windows, ×Ù ÍÏÖÅÔÅ ÐÒÅÏÂÒÁÚÏ×ÁÔØ ÅÇÏ × RTF, ÞÔÏÂÙ ÂÙÌÁ ×ÏÚÍÏÖÎÏÓÔØ ÞÉÔÁÔØ ÅÇÏ ÌÀÂÙÍ ÔÅËÓÔÏ×ÙÍ ÐÒÏÃÅÓÓÏÒÏÍ. éÌÉ ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ×ÓÅ ÔÒÉ ÆÏÒÍÁÔÁ ÄÌÑ ÏÔÒÁÖÅÎÉÑ ÓÍÅÎÙ ×ÁÛÅÇÏ ÎÁÓÔÒÏÅÎÉÑ.

SGML-Tools ÄÏÓÔÕÐÎÙ ÞÅÒÅÚ ÁÎÏÎÉÍÎÏÅ FTP ÐÏ ÁÄÒÅÓÕ ftp://ftp.lip6.fr/pub/sgml-tools/

3. ÷ÁÛ ÐÅÒ×ÙÊ ÄÏËÕÍÅÎÔ

3.1 From a text document

åÓÌÉ ×Ù ÈÏÔÉÔÅ ÐÒÅ×ÒÁÔÉÔØ ÔÅËÓÔÏ×ÙÊ ÄÏËÕÍÅÎÔ × SGML ÄÌÑ ÐÅÒÅÎÏÓÁ ÅÇÏ × ÄÒÕÇÉÅ ÆÏÒÍÁÔÙ, ÔÏ ×ÏÔ ËÁË ÜÔÏ ÄÅÌÁÅÔÓÑ:

  1. äÏÂÁ×ÔÅ ÓÌÅÄÕÀÝÉÅ ÓÔÒÏËÉ × ÓÁÍÏÅ ÎÁÞÁÌÏ ÄÏËÕÍÅÎÔÁ:
      <!doctype linuxdoc system>
      <article>
      <title>Title Goes Here</title>
      <author>
        name of author, author's e-mail, etc.
      </author>
      <date>
       version and date 
      </date>
     
    
  2. åÓÌÉ ×Ù ËÒÁÔËÏ ÏÐÉÓÙ×ÁÅÔÅ ÓÏÄÅÒÖÁÎÉÅ ÄÏËÕÍÅÎÔÁ × ÓÁÍÏÍ ÎÁÞÁÌÅ ÄÏËÕÍÅÎÔÁ, ÔÏ ÏËÒÕÖÉÔÅ ÜÔÏÔ ÐÁÒÁÇÒÁÆ ÔÁÇÁÍÉ <abstract> É </abstract>.
  3. úÁÔÅÍ ×ÓÔÁ×ØÔÅ ÔÁÇ <toc>, ËÏÔÏÒÙÊ ÏÂÏÚÎÁÞÁÅÔ óÏÄÅÒÖÁÎÉÅ.
  4. ÷ ÎÁÞÁÌÅ ËÁÖÄÏÊ ÇÌÁ×Ù ÚÁÍÅÎÉÔÅ ËÁÖÄÕÀ ÓÔÒÏËÕ ÄÁÀÝÕÀ ÎÏÍÅÒ É ÚÁÇÏÌÏ×ÏË ÇÌÁ×Ù ÎÁ:
     <sect>úÁÇÏÌÏ×ÏË çÌÁ×Ù
     
    
    É ÄÏÂÁ×ØÔÅ ÔÁÇ </sect> × ËÏÎÅà ÇÌÁ×Ù.

    úÁÍÅÞÁÎÉÅ : ÷ÁÍ ÎÅ ÎÁÄÏ ÐÏÍÅÝÁÔØ ÎÏÍÅÒ ÇÌÁ×Ù, ÜÔÏ ÓÄÅÌÁÅÔÓÑ Á×ÔÏÍÁÔÉÞÅÓËÉ.

  5. óÄÅÌÁÊÔÅ ÔÏ ÖÅ ÓÁÍÏÅ ÄÌÑ ÒÁÚÄÅÌÏ×. ÷ÁÍ ÎÅÏÂÈÏÄÉÍÏ ÕÄÁÌÉÔØ ÉÈ ÎÏÍÅÒÁ É ÏÔÍÅÔÉÔØ ÉÈ ÔÁÇÁÍÉ <sect1> × ÎÁÞÁÌÅ ÒÁÚÄÅÌÁ É ÔÁÇÁÍÉ </sect1> × ËÏÎÃÅ ÒÁÚÄÅÌÁ.
  6. ÷Ù ÍÏÖÅÔÅ ÔÁËÖÅ ÏÐÒÅÄÅÌÉÔØ 4 ÕÒÏ×ÎÑ ×ÌÏÖÅÎÎÏÓÔÉ × ÒÁÚÄÅÌÁÈ, ÉÓÐÏÌØÚÕÑ <sectN> É </sectN>, ÇÄÅ N= 2, 3, ÉÌÉ 4 ÔÁËÖÅ ËÁË É × ÐÒÅÄÙÄÕÝÅÍ ÓÌÕÞÁÅ.
  7. ÷ ÎÁÞÁÌÅ ËÁÖÄÏÇÏ ÐÁÒÁÇÒÁÆÁ ×ÓÔÁ×ØÔÅ ÔÁÇ <p>.
  8. åÓÌÉ ×ÁÍ ÎÅÏÂÈÏÄÉÍÏ ×ÙÄÅÌÉÔØ ÎÅËÏÔÏÒÙÅ ÞÁÓÔÉ, ÔÏ ÏÂÏÚÎÁÞØÔÅ ÉÈ ÔÁÇÁÍÉ <it> É </it> (ËÕÒÓÉ×), <bf> É </bf> (ÖÉÒÎÙÊ ÛÒÉÆÔ), ÉÌÉ <tt> É </tt> (ÓÔÉÌØ ÐÉÛÕÝÅÊ ÍÁÛÉÎËÉ).
  9. äÌÑ ×ÓÔÁ×ËÉ ÐÒÉÍÅÒÎÏ ÔÁËÏÇÏ ÓÐÉÓËÁ:
            üÔÏ ÞÅÔÙÒÅÈÓÔÒÏÞÎÙÊ ÓÐÉÓÏË:
    
             - ÚÄÅÓØ ÐÅÒ×ÁÑ ÓÔÒÏËÁ
             - ÚÁÔÅÍ ×ÔÏÒÁÑ ÓÔÒÏËÁ
             - É ÅÝÅ ÏÄÎÁ
             - ÜÔÏ ×ÓÅ
           
    
    ×Ù ÄÏÌÖÎÙ ÚÁÍÅÎÉÔØ ÅÇÏ ÎÁ:
            üÔÏ ÞÅÔÙÒÅÈÓÔÒÏÞÎÙÊ ÓÐÉÓÏË:
           <itemize>
           <item>ÚÄÅÓØ ÐÅÒ×ÁÑ ÓÔÒÏËÁ
           <item>ÚÁÔÅÍ ×ÔÏÒÁÑ ÓÔÒÏËÁ
           <item>É ÅÝÅ ÏÄÎÁ
           <item>ÜÔÏ ×ÓÅ
           </itemize>
            
    
  10. ëÏÇÄÁ ×ÅÓØ ÂÌÏË Ñ×ÌÑÅÔÓÑ ÞÁÓÔØÀ ÐÒÏÇÒÁÍÍÙ, ÉÌÉ ÞÅÇÏ-ÎÉÂÕÄØ ÄÒÕÇÏÇÏ, ÞÔÏ ÎÕÖÄÁÅÔÓÑ × ÎÅÉÚÍÅÎÎÏÊ ÐÅÒÅÄÁÞÅ, ÉÓÐÏÌØÚÕÊÔÅ:
           <verb>
            10 REM Oh my God what's this?
            20 REM I thought this had long disappeared!
            30 PRINT "I am back to";
            40 PRINT "save the world."
            50 INPUT "From whom, do you reckon? ",M$
            60 IF M$="Bill" THEN PRINT "Thou art wise.":GOTO PARADISE
            70 ELSE PRINT "You ain't got a clue...":GOTO RICHMOND
            </verb>
           
    
  11. ôÁËÉÍ ÏÂÒÁÚÏÍ, ×ÁÛÅ ÍÁÓÔÅÒÓÔ×Ï ÆÏÒÍÁÔÉÒÏ×ÁÎÉÑ SGML ÂÕÄÅÔ ÄÏ×ÏÌØÎÏ ÐÒÉÌÉÞÎÙÍ. åÓÌÉ ×Ù ÈÏÔÉÔÅ ÕÓÏ×ÅÒÛÅÎÓÔ×Ï×ÁÔØ ×ÁÛ ÄÏËÕÍÅÎÔ, ×Ù ÍÏÖÅÔÅ ÚÁÇÌÑÎÕÔØ × ÒÕËÏ×ÏÄÓÔ×Ï ÐÏÌØÚÏ×ÁÔÅÌÑ SGML-Tools, ËÏÔÏÒÏÅ ÄÁÅÔ ÂÏÌÅÅ ÄÅÔÁÌØÎÕÀ ÉÎÆÏÒÍÁÃÉÀ Ï ÔÉÐÅ ÄÏËÕÍÅÎÔÁ LinuxDoc.

4. îÁÓÔÒÏÊËÁ Emacs

4.1 óÉÍ×ÏÌÙ Ó ÄÉÁËÔÒÉÞÅÓËÉÍÉ ÚÎÁËÁÍÉ

åÓÌÉ ×Ù ÈÏÔÉÔÅ ÐÉÓÁÔØ ÄÏËÕÍÅÎÔÙ ÎÁ ÆÒÁÎÃÕÚÓËÏÍ ÉÌÉ ÎÁ ËÁËÏÍ-ÔÏ ÄÒÕÇÏÍ ÑÚÙËÅ ÚÁÐÁÄÎÏÊ å×ÒÏÐÙ, ÔÏ ×ÁÍ ÎÅÏÂÈÏÄÉÍÏ ÉÓÐÏÌØÚÏ×ÁÎÉÅ ×ÏÓØÍÉÂÉÔÎÙÈ ÓÉÍ×ÏÌÏ×. úÄÅÓØ ÒÁÓÓËÁÚÙ×ÁÅÔÓÑ ËÁË ÎÁÓÔÒÏÉÔØ Emacs, ÞÔÏÂÙ ÏÎ ×ÏÓÐÒÉÎÉÍÁÌ ÔÁËÉÅ ÓÉÍ×ÏÌÙ.

ïÔÏÂÒÁÖÅÎÉÅ 8-ÂÉÔÎÙÈ ÓÉÍ×ÏÌÏ×

þÔÏÂÙ ÐÏÚ×ÏÌÉÔØ Emacs ÏÔÏÂÒÁÖÁÔØ 8-ÂÉÔÎÙÅ ÓÉÍ×ÏÌÙ, ×ÁÍ ÎÅÏÂÈÏÄÉÍÏ ÄÏÂÁ×ÉÔØ ÓÌÅÄÕÀÝÉÅ ÓÔÒÏËÉ × ×ÁÛ ÆÁÊÌ .emacs:

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

åÓÌÉ ×Ù ÉÓÐÏÌØÚÕÅÔÅ Emacs ÎÁ ÔÅÒÍÉÎÁÌÅ, ËÏÔÏÒÙÊ ÎÅ ÉÍÅÅÔ 8-ÂÉÔÎÏÊ ÐÏÄÄÅÒÖËÉ, ÔÏ ×Ù ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÂÉÂÌÉÏÔÅËÕ iso-ascii ((load-library "iso-ascii")), ËÏÔÏÒÁÑ ÚÁÓÔÁ×ÌÑÅÔ Emacs ÏÔÏÂÒÁÖÁÔØ ÔÁËÉÅ ÓÉÍ×ÏÌÙ Ó ÌÕÞÛÉÍ ÐÒÉÂÌÉÖÅÎÉÅÍ.

îÁÂÏÒ 8-ÂÉÔÎÙÈ ÓÉÍ×ÏÌÏ×

åÓÌÉ ×ÁÛÁ ËÌÁ×ÉÁÔÕÒÁ ÐÏÚ×ÏÌÑÅÔ ×ÁÍ ××ÏÄÉÔØ ÓÉÍ×ÏÌÙ, Ó ÄÉÁËÔÒÉÞÅÓËÉÍÉ ÚÎÁËÁÍÉ ÔÏ ÎÅÔ ÎÉËÁËÉÈ ÐÒÏÂÌÅÍ. á ×ÏÔ ÅÓÌÉ ÎÅ ÐÏÚ×ÏÌÑÅÔ, ÔÏ ÅÓÔØ ÓÐÏÓÏ ÒÅÛÁÀÝÉÊ ÜÔÕ ÐÒÏÂÌÅÍÕ:

âÉÂÌÉÏÔÅËÁ iso-acc

âÉÂÌÉÏÔÅËÁ iso-acc ÄÌÑ Emacs ÐÏÚ×ÏÌÉÔ ×ÁÍ ÐÅÞÁÔÁÔØ 8-ÂÉÔÎÙÅ ÓÉÍ×ÏÌÙ ÎÁ 7-ÂÉÔÎÏÊ ËÌÁ×ÉÁÔÕÒÅ.

äÌÑ ÅÅ ÉÓÐÏÌØÚÏ×ÁÎÉÑ ×ÓÔÁ×ÔÅ × ×ÁÛ ÆÁÊÌ .emacs ÔÁËÕÀ ÓÔÒÏÞËÕ:

      (load-library "iso-acc")
      

úÁÔÅÍ, ÐÏÓÌÅ ÚÁÐÕÓËÁ Emacs É ÏÔËÒÙÔÉÑ ÆÁÊÌÁ, ËÏÔÏÒÙÊ ×ÁÍ ÎÁÄÏ ÏÔÒÅÄÁËÔÉÒÏ×ÁÔØ, ÎÁÂÅÒÉÔÅ Meta-x iso-accents-mode.

÷Ù ÍÏÖÅÔÅ ÚÁÔÅÍ ××ÅÓÔÉ é ×Ï ÆÒÁÎÃÕÚÓËÏÍ ÓÌÏ×Å café ÎÁÂÒÁ× ' ÚÁÔÅÍ e. ÷ ÏÂÝÅÍ, ×Ù ÂÕÄÅÔÅ ÎÁÂÉÒÁÔØ ÓÎÁÞÁÌÁ ÚÎÁË ÕÄÁÒÅÎÉÑ (??? accent), Á ÚÁÔÅÍ ÓÉÍ×ÏÌ ÎÁ ËÏÔÏÒÏÍ ÓÔÁ×ÉÔÓÑ ÄÉÁËÔÒÉÞÅËÉÊ ÚÎÁË (× ×ÅÒÈÎÅÍ ÉÌÉ ÎÉÖÎÅÍ ÒÅÇÉÓÔÒÅ). íÏÇÕÔ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ ÓÌÅÄÕÀÝÉÅ ÄÉÁËÔÒÉÞÅÓËÉÅ ÚÎÁËÉ:

  • ' : Acute
  • ` : Grave
  • ^ : Circumflex
  • " : Dieresis
  • ~ : ôÉÌØÄÁ, cedilla, É ÄÒÕÇÉÅ ÞÁÓÔÎÙÅ ÓÌÕÞÁÉ (cf iso-acc.el).
  • / :äÌÑ ÐÅÒÅÞÅÒËÉ×ÁÎÉÑ ÓÉÍ×ÏÌÁ, É Ô.Ð.
  • åÓÌÉ ×ÁÍ ÎÕÖÅÎ ÏÄÉÎ ÉÚ ÜÔÉÈ ÓÉÍ×ÏÌÏ×, Á ÎÅ ÓÉÍ×ÏÌ Ó ÄÉÁËÔÒÉÞÅÓËÉÍ ÚÎÁËÏÍ, ÎÁÂÅÒÉÔÅ ÐÒÏÂÅÌ ×ÓÌÅÄ ÚÁ ÎÁÂÏÒÏÍ ÓÐÅÃÉÁÌØÎÏÇÏ ÓÉÍ×ÏÌÁ îÁÐÒÉÍÅÒ, ÄÌÑ ÎÁÂÏÒÁ l'éléphant, ÎÁÂÅÒÉÔÅ l ' spc ' e l ' e ...

    ÷Ù ÎÁÊÄÅÔÅ ÓÐÉÓÏË ×ÓÅÈ ×ÏÚÍÏÖÎÙÈ ËÏÍÂÉÎÁÃÉÊ × ÆÁÊÌÅ iso-acc.el.

    ëÌÁ×ÉÛÁ Meta

    îÅËÏÔÏÒÙÅ ÔÅÒÍÉÎÁÌÙ ÐÏÚ×ÏÌÑÔ ×ÁÍ ÎÁÂÒÁÔØ 8-ÂÉÔÎÙÅ ÓÉÍ×ÏÌÙ Ó ÐÏÍÏÝØÀ ËÌÁ×ÉÛÉ Meta (ÉÌÉ Alt). îÁÐÒÉÍÅÒ, ÎÁÖÁÔÉÅ Meta-i ÄÁÓÔ ×ÁÍ ÓÉÍ×ÏÌ é.

    îÏ Emacs ÒÅÚÅÒ×ÉÒÕÅÔ ËÌÁ×ÉÛÕ Meta ÄÌÑ ÓÏÂÓÔ×ÅÎÎÏÇÏ ÉÓÐÏÌØÚÏ×ÁÎÉÑ, É Ñ ÎÅ ÚÎÁÀ ÂÉÂÌÉÏÔÅËÕ, ËÏÔÏÒÁÑ ÐÏÚ×ÏÌÉÔ ×ÁÍ ÉÓÐÏÌØÚÏ×ÁÔØ ÜÔÕ ËÌÁ×ÉÛÕ ÄÌÑ ÓÉÍ×ÏÌÏ× Ó ÄÉÁËÔÒÉÞÅÓËÉÍÉ ÚÎÁËÁÍÉ.

    ÷ÏÔ ÒÅÛÅÎÉÅ ÜÔÏÊ ÐÒÏÂÌÅÍÙ:

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

    ôÁËÁÑ ÓÔÒÏËÁ, ÅÓÌÉ ÂÕÄÅÔ ×ÓÔÁ×ÌÅÎÁ × ×ÁÛ ÆÁÊÌ .emacs, ÐÏÚ×ÏÌÉÔ ÎÁÂÉÒÁÔØ ×ÁÍ é ÉÓÐÏÌØÚÕÑ ÓÏÞÅÔÁÎÉÅ ËÌÁ×ÉÛ Meta-i. ÷Ù ÍÏÖÅÔÅ ÐÅÒÅÏÐÒÅÄÅÌÉÔØ ÔÁËÉÍ ÏÂÒÁÚÏÍ ÔÅ ÓÏÞÅÔÁÎÉÑ ËÌÁ×ÉÛ ËÏÔÏÒÙÅ ×ÁÍ ÎÕÖÎÙ, ÅÓÌÉ ×Ù ÚÁÍÅÎÉÔÅ i ÎÕÖÎÏÊ ËÌÁ×ÉÛÅÊ É 351 ÎÕÖÎÙÍ ËÏÄÏÍ (ËÏÄ ÂÙÌ ×ÚÑÔ ÉÚ ÎÁÂÏÒÁ ÓÉÍ×ÏÌÏ× ISO-8859-1).

    ðÒÅÄÕÐÒÅÖÄÅÎÉÅ! îÅËÏÔÏÒÙÅ ÌÏËÁÌØÎÙÅ ÒÅÖÉÍÙ ÍÏÇÕÔ ÐÅÒÅÏÐÒÅÄÅÌÑÔØ ÔÁËÉÅ ÓÏÞÅÔÁÎÉÑ ËÌÁ×ÉÛ.

    ïÔÏÂÒÁÖÅÎÉÅ 8-ÂÉÔÎÙÈ ÓÉÍ×ÏÌÏ× SGML

    ÷ SGML, ×Ù ÍÏÖÅÔÅ ÐÅÞÁÔÁÔØ ÓÉÍ×ÏÌÙ Ó ÄÉÁËÔÒÉÞÅÓËÉÍÉ ÚÎÁËÁÍÉ Ó ÐÏÍÏÝØÀ ÍÁËÒÏÓÏ×. îÁÐÒÉÍÅÒ, ËÌÁ×ÉÛÁ é ÏÂÏÚÎÁÞÅÎÁ ËÁË &eacute;. ÷ ÏÂÝÅÍ ÐÒÉÌÏÖÅÎÉÑ, ËÏÔÏÒÙÍ ÎÁÄÏ ÞÉÔÁÔØ SGML ÍÏÇÕÔ ÞÉÔÁÔØ 8-ÂÉÔÎÙÅ ÓÉÍ×ÏÌÙ É ÎÅÔ ÎÅÏÂÈÏÄÉÍÏÓÔÉ ÉÓÐÏÌØÚÏ×ÁÔØ ÜÔÉ ÍÁËÒÏÓÙ. îÏ ÎÅËÏÔÏÒÙÅ ÐÒÏÇÒÁÍÍÙ ÎÅ ÍÏÇÕÔ ÄÅÌÁÔØ ÜÔÏ. óÕÝÅÓÔ×ÕÅÔ ÓÐÏÓÏÂ, ËÏÔÏÒÙÊ ÐÏÚ×ÏÌÉÔ ÉÚÂÅÖÁÔØ ËÒÁÈÁ ÐÒÉÌÏÖÅÎÉÊ.

    âÉÂÌÉÏÔÅËÁ iso-sgml ÐÏÚ×ÏÌÉÔ ×ÁÍ ÐÅÞÁÔÁÔØ ÓÉÍ×ÏÌÙ Ó ÄÉÁËÔÒÉÞÅÓËÉÍÉ ÚÎÁËÁÍÉ × Emacs, ÎÏ ÐÒÉ ÓÏÈÒÁÎÅÎÉÉ ×ÁÛÅÇÏ ÆÁÊÌÁ ÎÁ ÄÉÓË, ÏÎ ÐÒÅ×ÒÁÔÉÔ 8-ÂÉÔÎÙÅ ÓÉÍ×ÏÌÙ × ÉÈ SGML-ÜË×É×ÁÌÅÎÔÙ.

    ðÏÜÔÏÍÕ ÌÅÇËÏ, ÓÐÁÓÉÂÏ ÂÉÂÌÉÏÔÅËÅ, ÎÁÂÉÒÁÔØ É ÞÉÔÁÔØ ×ÁÛÉ ÄÏËÕÍÅÎÔÙ × Emacs, É ×Ù ÍÏÖÅÔÅ ÂÙÔØ Õ×ÅÒÅÎÙ, ÞÔÏ ÎÅ 8-ÂÉÔÎÙÅ ÐÒÉÌÏÖÅÎÉÑ ÂÕÄÕÔ ÐÏÎÉÍÁÔØ ×ÁÛÉ ÄÏËÕÍÅÎÔÙ.

    äÌÑ ÉÓÐÏÌØÚÏ×ÁÎÉÑ ÜÔÏÊ ÂÉÂÌÉÏÔÅËÉ ×ÁÍ ÐÒÏÓÔÏ ÎÁÄÏ ÄÏÂÁ×ÉÔØ ÓÌÅÄÕÀÝÉÅ ÓÔÒÏËÉ × ×ÁÛ ÆÁÊÌ .emacs:

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

    4.2 òÅÖÉÍ SGML

    ðÒÉ ÚÁÇÒÕÚËÅ ÆÁÊÌÁ Ó ÒÁÓÛÉÒÅÎÉÅÍ .sgml, Emacs Á×ÔÏÍÁÔÉÞÅÓËÉ ÚÁÐÕÓËÁÅÔ ÒÅÖÉÍ sgml. åÓÌÉ ÜÔÏ ÎÅ ÄÅÌÁÅÔÓÑ, ×Ù ÍÏÖÅÔÅ ÚÁÄÁÔØ ÜÔÏ ×ÒÕÞÎÕÀ ÎÁÂÒÁ× Meta-x sgml-mode, ÉÌÉ Á×ÔÏÍÁÔÉÞÅÓËÉ, ÄÏÂÁ×É× ÓÌÅÄÕÀÝÉÅ ÓÔÒÏËÉ × ×ÁÛ ÆÁÊÌ .emacs:

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

    üÔÏÔ ÒÅÖÉÍ ÐÏÚ×ÏÌÉÔ ×ÁÍ ÎÁÐÒÉÍÅÒ, ×ÙÂÒÁÔØ ËÁË ×ÓÔÁ×ÌÑÔØ 8-ÂÉÔÎÙÅ ÓÉÍ×ÏÌÙ. ó ÐÏÍÏÝØÀ Meta-x sgml-name-8bit-mode (ÉÌÉ ÐÕÎËÔÁ ÍÅÎÀ SGML/Toggle 8-bit insertion), ×Ù ÍÏÖÅÔÅ ×ÙÂÒÁÔØ ËÁË ÐÅÞÁÔÁÔØ 8-ÂÉÔÎÙÅ ÓÉÍ×ÏÌÙ -- ËÁË ÅÓÔØ, ÉÌÉ × ÆÏÒÍÅ SGML form, ÎÁÐÒÉÍÅÒ × ÆÏÒÍÅ &...;.

    üÔÏÔ ÒÅÖÉÍ ÔÁËÖÅ ÐÏÚ×ÏÌÉÔ ×ÁÍ ÐÏËÁÚÙ×ÁÔØ ÉÌÉ ÐÒÑÔÁÔØ ÔÁÇÉ SGML, Ó ÐÏÍÏÝØÀ Meta-x sgml-tags-invisible (ÉÌÉ ÐÕÎËÔÁ ÍÅÎÀ SGML/Toggle Tag Visibility).

    4.3 òÅÖÉÍ PSGML

    òÅÖÉÍ PSGML ÐÏÚ×ÏÌÉÔ ×ÁÍ ÂÏÌÅÅ ÕÄÏÂÎÏ ÒÅÄÁËÔÉÒÏ×ÁÔØ ÄÏËÕÍÅÎÔÙ × SGML Ó ÐÏÍÏÝØÀ Emacs.

    äÏËÕÍÅÎÔÁÃÉÑ psgml-linuxdoc ÏÂßÑÓÎÑÅÔ ËÁË ÕÓÔÁÎÏ×ÉÔØ ÜÔÏÔ ÒÅÖÉÍ É ÉÓÐÏÌØÚÏ×ÁÔØ ÅÇÏ ×ÍÅÓÔÅ Ó LinuxDoc.

    4.4 òÁÚÎÏÅ

    òÅÖÉÍ auto-fill

    ÷ ÎÏÒÍÁÌØÎÏÍ ÒÅÖÉÍÅ, ËÏÇÄÁ ×Ù ÐÅÞÁÔÁÅÔÅ ÁÂÚÁÃ É ÄÏÓÔÉÇÁÅÔÅ ËÏÎÃÁ ÓÔÒÏËÉ, ×Ù ÄÏÌÖÎÙ ÓÁÍÉ ÉÓÐÏÌØÚÏ×ÁÔØ ËÌÁ×ÉÛÕ Return ÄÌÑ ÐÅÒÅÈÏÄÁ ÎÁ ÓÌÅÄÕÀÝÕÀ ÓÔÒÏËÕ, ÉÌÉ ×ÅÓØ ÐÁÒÁÇÒÁÆ ÂÕÄÅÔ ÓÏÓÔÏÑÔØ ÉÚ ÏÄÎÏÊ ÓÔÒÏËÉ. ëÏÇÄÁ ×Ù ÉÓÐÏÌØÚÕÅÔÅ ËÌÁ×ÉÛÕ Return ÄÌÑ ÐÅÒÅÈÏÄÁ Ë ÓÌÅÄÕÀÝÅÊ ÓÔÒÏËÅ, ÔÏ ×Ù ÐÏÌÕÞÁÅÔÅ ÁÂÚÁÃÙ Ó ÎÅÒÏ×ÎÙÍÉ ÐÒÁ×ÙÍÉ ÇÒÁÎÉÃÁÍÉ.

    åÓÌÉ ×Ù ÐÏÚ×ÏÌÉÔÅ ÎÅËÏÔÏÒÙÍ ÓÔÒÏËÁÍ ÐÒÅ×ÙÓÉÔØ ÒÁÚÕÍÎÕÀ ÛÉÒÉÎÕ, ÔÏ ×Ù ÎÅ ÓÍÏÖÅÔÅ ÐÒÏÓÍÁÔÒÉ×ÁÔØ ÉÈ × ÎÅËÏÔÏÒÙÈ ÒÅÄÁËÔÏÒÁÈ.

    òÅÖÉÍ auto-fill Á×ÔÏÍÁÔÉÚÉÒÕÅÔ ÜÔÕ ÓËÕÞÎÕÀ ÚÁÄÁÞÕ: ËÏÇÄÁ ×Ù ÐÅÒÅÊÄÅÔÅ ÄÁÌÅÅ ÏÐÒÅÄÅÌÅÎÎÏÊ ËÏÌÏÎËÉ, (ÐÏ ÕÍÏÌÞÁÎÉÀ 70-ÁÑ), ÔÏ ×Ù Á×ÔÏÍÁÔÉÞÅÓËÉ ÐÅÒÅÊÄÅÔÅ ÎÁ ÓÌÅÄÕÀÝÕÀ ÓÔÒÏËÕ.

    ôÅÐÅÒØ ÒÁÓÓËÁÖÅÍ ËÁË ÕÓÔÁÎÏ×ÉÔØ ÜÔÏÔ ÒÅÖÉÍ, É ÕÓÔÁÎÏ×ÉÔØ ÛÉÒÉÎÕ ÔÅËÓÔÁ ÒÁ×ÎÏÊ 80 ÓÉÍ×ÏÌÁÍ:

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

    5. Ispell

    åÓÌÉ ×Ù ÈÏÔÉÔÅ ÐÒÏ×ÅÒÑÔØ Ó×ÏÉ ÔÅËÓÔÙ ×ÎÕÔÒÉ Emacs, ×Ù ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÐÒÏÇÒÁÍÍÕ Ispell É ÅÅ ÒÅÖÉÍ ÄÌÑ Emacs.

    5.1 ÷ÙÂÏÒ ×ÁÛÉÈ ÓÌÏ×ÁÒÅÊ ÐÏ ÕÍÏÌÞÁÎÉÀ

    ÷Ù ÍÏÖÅÔÅ ÕÓÔÁÎÏ×ÉÔØ Emacs ÔÁË, ÞÔÏ ÐÒÉ ÚÁÇÒÕÚËÅ ÆÁÊÌÁ ÏÎ ÂÕÄÅÔ Á×ÔÏÍÁÔÉÞÅÓËÉ ×ÙÂÉÒÁÔØ, ËÏÔÏÒÙÊ ÓÌÏ×ÁÒØ ÉÓÐÏÌØÚÏ×ÁÔØ (×Ù ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÎÅÓËÏÌØËÏ). ðÅÒ×ÙÊ ÉÚ ÎÉÈ, ÎÁ×ÅÒÎÏÅ ÓÁÍÙÊ ×ÁÖÎÙÊ, ÜÔÏ ÇÌÁ×ÎÙÊ ÓÌÏ×ÁÒØ, ÒÁÓÐÒÏÓÔÒÁÎÑÅÍÙÊ ×ÍÅÓÔÅ Ó Ispell. ÷Ù ÍÏÖÅÔÅ ×ÙÂÉÒÁÔØ ÍÅÖÄÕ ÎÅÓËÏÌØËÉÍÉ ÑÚÙËÁÍÉ. ÷ÔÏÒÏÊ ÓÌÏ×ÁÒØ ÜÔÏ ×ÁÛ ÐÅÒÓÏÎÁÌØÎÙÊ ÓÌÏ×ÁÒØ, ËÕÄÁ Ispell ÂÕÄÅÔ ×ÓÔÁ×ÌÑÔØ ÓÌÏ×Á, ËÏÔÏÒÙÅ ÏÎ ÎÅ ÍÏÖÅÔ ÎÁÊÔÉ × ÏÓÎÏ×ÎÏÍ ÓÌÏ×ÁÒÅ, ÎÏ ×Ù ÔÒÅÂÕÅÔÅ, ÞÔÏÂÙ ÏÎ ÚÁÐÏÍÎÉÌ ÉÈ.

    åÓÌÉ ×Ù ÈÏÔÉÔÅ ÆÒÁÎÃÕÚÓËÉÊ ÓÌÏ×ÁÒØ Ispell ËÁË ÓÌÏ×ÁÒØ ÐÏ ÕÍÏÌÞÁÎÉÀ, É ÈÏÔÉÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÆÁÊÌ .ispell-dico-perso × ×ÁÛÅÊ ÄÏÍÁÛÎÅÊ ÄÉÒÅËÔÏÒÉÉ ËÁË ÌÉÞÎÙÊ ÓÌÏ×ÁÒØ, ÔÏ ×ÓÔÁ×ÔÅ ÓÌÅÄÕÀÝÉÅ ÓÔÒÏËÉ × ×ÁÛ ÆÁÊÌ .emacs file:

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

    5.2 ÷ÙÂÏÒ ÓÐÅÃÉÁÌØÎÙÈ ÓÌÏ×ÁÒÅÊ ÄÌÑ ÏÐÒÅÄÅÌÅÎÎÙÈ ÆÁÊÌÏ×

    õ ×ÁÓ ÍÏÇÕÔ ÂÙÔØ ÎÅÂÏÌØÛÉÅ ÐÒÏÂÌÅÍÙ, ÅÓÌÉ ×Ù ÎÅ ×ÓÅ ×ÒÅÍÑ ÉÓÐÏÌØÚÕÅÔÅ ÐÒÏ×ÅÒËÕ ÄÏËÕÍÅÎÔÏ× ÎÁ ÏÄÎÏÍ É ÔÏÍ ÖÅ ÑÚÙËÅ. åÓÌÉ ×Ù ÐÅÒÅ×ÏÄÉÔÅ ÄÏËÕÍÅÎÔ, ÔÏ ÓËÏÒÅÅ ×ÓÅÇÏ, ÞÔÏ ×Ù ÏÞÅÎØ ÞÁÓÔÏ ÍÅÎÑÅÔÅ ÑÚÙËÉ (É ÓÌÏ×ÁÒÉ).

    ñ ÎÅ ÚÎÁÀ ÓÐÏÓÏÂÁ (ÎÁ ÑÚÙËÅ Lisp) ×ÙÂÏÒÁ, ÌÉÂÏ Á×ÔÏÍÁÔÉÞÅÓËÉ, ÌÉÂÏ ÏÄÎÉÍ ÝÅÌÞËÏÍ ÍÙÛÉ, ÏÓÎÏ×ÎÏÇÏ É ÐÅÒÓÏÎÁÌØÎÏÇÏ ÓÌÏ×ÁÒÑ ÁÓÓÏÃÉÉÒÏ×ÁÎÎÙÈ Ó ÑÚÙËÏÍ, ËÏÔÏÒÙÊ × ÎÁÓÔÏÑÝÅÅ ×ÒÅÍÑ ÉÓÐÏÌØÚÕÅÔÓÑ. (åÓÌÉ ×Ù ÚÎÁÅÔÅ ËÁË, ÐÏÖÁÌÕÊÓÔÁ ÓÏÏÂÝÉÔÅ ÍÎÅ!)

    ïÄÎÁËÏ, ×ÏÚÍÏÖÎÏ ÐÏËÁÚÁÔØ × ËÏÎÃÅ ÆÁÊÌÁ, ËÁËÉÅ ÓÌÏ×ÁÒÉ ×Ù ÈÏÔÉÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÄÌÑ ÔÅËÕÝÅÇÏ ÆÁÊÌÁ (É ÔÏÌØËÏ ÄÌÑ ÎÅÇÏ). äÏÓÔÁÔÏÞÎÏ ÔÏÌØËÏ ÄÏÂÁ×ÉÔØ ÉÈ ËÁË ËÏÍÍÅÎÔÁÒÉÊ, ÔÁË ÞÔÏ Ispell ÓÍÏÖÅÔ ÐÒÏÞÉÔÁÔØ ÜÔÉ ÕÓÔÁÎÏ×ËÉ ÐÒÉ ÚÁÐÕÓËÅ ÐÒÏ×ÅÒËÉ:

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

    åÓÌÉ ×Ù ÐÅÒ×ÏÎÁÞÁÌØÎÏ ÏÐÒÅÄÅÌÉÌÉ × ×ÁÛÅÍ ÆÁÊÌÅ .emacs, ÞÔÏ ×ÁÛÉÍ ÓÌÏ×ÁÒÅÍ ÐÏ ÕÍÏÌÞÁÎÉÀ Ñ×ÌÑÅÔÓÑ ÆÒÁÎÃÕÚÓËÉÊ, ÔÏ ×Ù ÍÏÖÅÔÅ ÄÏÂÁ×ÉÔØ ÜÔÉ ÓÔÒÏËÉ × ËÏÎÅà ÌÀÂÏÇÏ ÆÁÊÌÁ, ÎÁÐÉÓÁÎÎÏÇÏ ÎÁ ÁÎÇÌÉÊÓËÏÍ ÑÚÙËÅ.

    5.3 ðÒÏ×ÅÒËÁ ×ÁÛÅÇÏ ÄÏËÕÍÅÎÔÁ

    äÌÑ ÐÒÏ×ÅÒËÉ ×ÓÅÇÏ ÄÏËÕÍÅÎÔÁ, ÉÓÐÏÌØÚÕÊÔÅ ËÏÍÁÎÄÕ Meta-x ispell-buffer. ÷Ù ÍÏÖÅÔÅ ÔÁËÖÅ ÐÒÏ×ÅÒÉÔØ ÔÏÌØËÏ ×ÙÄÅÌÅÎÎÙÊ ÂÌÏË ÔÅËÓÔÁ:

    úÁÔÅÍ Emacs ÚÁÐÕÓÔÉÔ Ispell. åÓÌÉ Ispell ×ÓÔÒÅÞÁÅÔ ÎÅÉÚ×ÅÓÔÎÏÅ ÓÌÏ×Ï, ÏÎ ÐÏËÁÖÅÔ ÓÌÏ×Ï (ÏÂÙÞÎÏ ÐÏÄÓ×ÅÞÅÎÎÏÅ) É ÂÕÄÅÔ ÏÖÉÄÁÔØ ÎÁÖÁÔÉÅ ËÌÁ×ÉÛÉ:

    åÓÌÉ ispell ÎÁÈÏÄÉÔ ÏÄÎÏ ÉÌÉ ÎÅÓËÏÌØËÏ ÓÌÏ× ÐÏÈÏÖÉÈ ÎÁ ÎÅÉÚ×ÅÓÔÎÏÅ, ÔÏ ÏÎ ÐÏËÁÚÙ×ÁÅÔ ÉÈ × ÍÁÌÅÎØËÏÍ ÏËÎÅ, ËÁÖÄÏÅ ÉÚ ÓÌÏ× ÎÁÞÉÎÁÅÔÓÑ Ó ÞÉÓÌÁ. ðÒÏÓÔÏ ÎÁÂÅÒÉÔÅ ÜÔÏ ÞÉÓÌÏ ÄÌÑ ÚÁÍÅÎÙ ÎÅÐÒÁ×ÉÌØÎÏÇÏ ÓÌÏ×Á ÐÒÁ×ÉÌØÎÙÍ.

    5.4 ðÅÒÓÏÎÁÌØÎÙÊ ÓÌÏ×ÁÒØ ÐÒÏÔÉ× ÓÌÏ×ÁÒÑ ÌÏËÁÌØÎÏÇÏ ÆÁÊÌÁ

    ëÌÁ×ÉÛÁ i ÐÏÚ×ÏÌÉÔ ×ÁÍ ×ÓÔÁ×ÉÔØ ÓÌÏ×Ï × ×ÁÛ ÐÅÒÓÏÎÁÌØÎÙÊ ÓÌÏ×ÁÒØ, × ÔÏ ×ÒÅÍÑ ËÁË ËÌÁ×ÉÛÁ A ×ÓÔÁ×ÉÔ ÓÌÏ×Ï × ÓÌÏ×ÁÒØ ÌÏËÁÌØÎÏÇÏ ÆÁÊÌÁ

    óÌÏ×ÁÒØ ÌÏËÁÌØÎÏÇÏ ÆÁÊÌÁ -- ÜÔÏ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ ÓÌÏ×, ×ÓÔÁ×ÌÅÎÎÙÈ × ËÏÎÅà ÆÁÊÌÁ ËÁË ËÏÍÍÅÎÔÁÒÉÊ, ÏÎÉ ÓÞÉÔÙ×ÁÀÔÓÑ Ispell ËÁÖÄÙÊ ÒÁÚ, ËÏÇÄÁ ÏÎ ÚÁÐÕÓËÁÅÔÓÑ ÄÌÑ ÜÔÏÇÏ ÆÁÊÌÁ. üÔÉÍ ÓÐÏÓÏÂÏÍ ×Ù ÍÏÖÅÔÅ ÕËÁÚÁÔØ ÓÌÏ×Á, ËÏÔÏÒÙÅ ÂÕÄÕÔ ÓÞÉÔÁÔØÓÑ ÐÒÁ×ÉÌØÎÙÍÉ ÔÏÌØËÏ ÄÌÑ ÜÔÏÇÏ ÆÁÊÌÁ, ÎÏ ÎÅ ÄÌÑ ÏÓÔÁÌØÎÙÈ ÆÁÊÌÏ×.

    ôÁË ËÁË Ñ ÉÍÅÀ ÏÔÎÏÛÅÎÉÅ Ë ÒÁÓÓÍÁÔÒÉ×ÁÅÍÏÍÕ ×ÏÐÒÏÓÕ, Ñ ÄÕÍÁÀ, ÞÔÏ ÐÅÒÓÏÎÁÌØÎÙÊ ÓÌÏ×ÁÒØ ÚÁÒÅÚÅÒ×ÉÒÏ×ÁÎ ÄÌÑ ÓÌÏ×, ËÏÔÏÒÙÅ ÎÅ ÚÎÁÅÔ ÇÌÁ×ÎÙÊ ÓÌÏ×ÁÒØ, ÎÏ ËÏÔÏÒÙÅ ÐÒÉÎÁÄÌÅÖÁÔ ÜÔÏÍÕ ÑÚÙËÕ (ÐÏÄÏÂÎÏ ÐÅÒÅÎÅÓÅÎÎÙÍ ÓÌÏ×ÁÍ), ÐÌÀÓ ÄÌÑ ÎÅËÏÔÏÒÙÈ ÏÂÝÉÈ ÓÌÏ×, ÔÁËÉÈ ËÁË ÉÍÅÎ ÓÏÂÓÔ×ÅÎÎÙÈ ÉÌÉ ÄÒÕÇÉÈ (ÔÁËÉÈ ËÁË Linux), ÅÓÌÉ ÏÎÉ ÎÅ ×ÙÇÌÑÄÑÔ ÓÌÉÛËÏÍ ÐÏÈÏÖÅ ÎÁ ÓÌÏ×Á × ÇÌÁ×ÎÏÍ ÓÌÏ×ÁÒÅ; ÄÏÂÁ×ÌÅÎÉÅ ÓÌÉÛËÏÍ ÂÏÌØÛÏÇÏ ËÏÌÉÞÅÓÔ×Á ÓÌÏ× × ÐÅÒÓÏÎÁÌØÎÙÊ ÓÌÏ×ÁÒØ, ÔÁËÉÈ ËÁË ÉÍÅÎÁ, ÍÏÖÅÔ ÂÙÔØ ÏÐÁÓÎÙÍ, ÐÏÔÏÍÕ-ÞÔÏ ÏÎÉ ÍÏÇÕÔ ×ÙÇÌÑÄÅÔØ ËÁË ÓÌÏ×Á ÔÅËÕÝÅÇÏ ÑÚÙËÁ (ÎÅËÏÔÒÙÅ ÍÏÇÕÔ ÐÒÅÄÓÔÁ×ÉÔØ, ÞÔÏ Ispell ÂÙÌ ÏÚÁÄÁÞÅÎ ÓÌÅÄÕÀÝÉÍ ÐÒÅÄÌÏÖÅÎÉÅÍ: `When the going gets tof, the tof get going

    Tof ÜÔÏ ÆÒÁÎÃÕÚÓËÏÅ ÓÏËÒÁÝÅÎÉÅ ÉÍÅÎÉ Christophe.
    '!).

    5.5 ðÒÏ×ÅÒËÁ ÐÒÉ ÎÁÂÏÒÅ ÔÅËÓÔÁ

    Ispell ÍÏÖÅÔ ÐÒÏ×ÅÒÑÔØ ×ÁÛ ÆÁÊÌ ×Ï ×ÒÅÍÑ ÎÁÂÏÒÁ ÔÅËÓÔÁ. äÌÑ ÜÔÏÇÏ ×ÁÍ ÎÅÏÂÈÏÄÉÍÏ ÉÓÐÏÌØÚÏ×ÁÔØ ispell-minor-mode. äÌÑ ÅÇÏ ÚÁÐÕÓËÁ ÎÁÂÅÒÉÔÅ Meta-x ispell-minor-mode. Ispell ÂÕÄÅÔ ÐÏÄÁ×ÁÔØ Ú×ÕËÏ×ÏÊ ÓÉÇÎÁÌ, ËÁÖÄÙÊ ÒÁÚ ËÏÇÄÁ ×Ù ÎÁÂÉÒÁÅÔÅ ÓÌÏ×Ï, ËÏÔÏÒÏÅ ÏÎ ÎÅ ÚÎÁÅÔ.

    åÓÌÉ ÜÔÉ ÓÉÇÎÁÌÙ ÒÁÚÄÒÁÖÁÀÔ ×ÁÓ (ÉÌÉ ×ÁÛ ÓÏÓÅÄ ÐÏ ËÏÍÎÁÔÅ ÌÅÇ ÏÔÄÏÈÎÕÔØ), ÔÏ ×Ù ÍÏÖÅÔÅ ÚÁÍÅÎÉÔØ ÜÔÉ ÎÁÄÏÅÄÌÉ×ÙÅ ÓÉÇÎÁÌÙ ÎÁ ×ÓÐÙÛËÕ ÎÁ ÜËÒÁÎÅ Ó ÐÏÍÏÝØÀ ËÏÍÁÎÄÙ Meta-x set-variable RET visible-bell RET t RET. ÷Ù ÍÏÖÅÔÅ ÄÏÂÁ×ÉÔØ ÓÌÅÄÕÀÝÕÀ ÓÔÒÏËÕ × × ×ÁÛ ÆÁÊÌ .emacs É ÚÁÇÌÕÛÉÔØ Emacs ÎÁ×ÓÅÇÄÁ:

           (setq visible-bell t)
          
    

    6. "çÒÑÚÎÙÅ" ÐÒÉÅÍÙ

    6.1 ÷ÓÔÁ×ËÁ ÚÁÇÏÌÏ×ËÁ Á×ÔÏÍÁÔÉÞÅÓËÉ

    Emacs ÐÏÚ×ÏÌÑÅÔ ×ÁÍ ÐÅÒÅÈ×ÁÔÉÔØ ÎÅËÏÔÏÒÙÅ ÄÅÊÓÔ×ÉÑ ÎÁ ÌÀÂÙÅ ÓÏÂÙÔÉÑ (ÏÔËÒÙÔÉÅ ÆÁÊÌÁ, ÓÏÈÒÁÎÅÎÉÅ, ÚÁÐÕÓË × ÎÏ×ÏÍ ÒÅÖÉÍÅ É Ô.Ð.).

    âÉÂÌÉÏÔÅËÁ autoinsert ÉÓÐÏÌØÚÕÅÔ ÜÔÏ Ó×ÏÊÓÔ×Ï: ËÏÇÄÁ ×Ù ÏÔËÒÙ×ÁÅÔÅ ÎÏ×ÙÊ ÆÁÊÌ × Emacs, ÜÔÁ ÂÉÂÌÉÏÔÅËÁ ×ÓÔÁ×ÌÑÅÔ, ÓÏÏÔ×ÅÔÓÔ×ÅÎÎÏ ÔÉÐÕ ÆÁÊÌÁ ÎÅËÏÔÏÒÙÊ ÓÔÁÎÄÁÒÔÎÙÊ ÚÁÇÏÌÏ×ÏË.

    ÷ ÎÁÛÅÍ ÓÌÕÞÁÅ ÜÔÏÔ ÓÔÁÎÄÁÒÔÎÙÊ ÚÁÇÏÌÏ×ÏË, ÍÏÖÅÔ ÓÏÄÅÒÖÁÔØ ÏÂßÑ×ÌÅÎÉÑ ÔÉÐÁ ÄÏËÕÍÅÎÔÁ (LinuxDoc), ÚÁÇÏÌÏ×ÏË ÓÁÍÏÇÏ ÄÏËÕÍÅÎÔÁ, ÉÍÑ Á×ÔÏÒÁ, É ÄÁÔÕ.

    ñ ÚÄÅÓØ ÏÐÉÛÕ Ä×Á ÓÐÏÓÏÂÁ ÄÌÑ ×ÓÔÁ×ËÉ ÔÁËÉÈ ÚÁÇÏÌÏ×ËÏ×. ÷Ù ÍÏÖÅÔÅ ×ÓÔÁ×ÉÔØ ÆÁÊÌ ÛÁÂÌÏÎÁ, ËÏÔÏÒÙÊ ÓÏÄÅÒÖÉÔ ×ÓÔÁ×ÌÑÅÍÕÀ ÉÎÆÏÒÍÁÃÉÀ, ÉÌÉ ×Ù ÍÏÖÅÔÅ ÚÁÐÕÓÔÉÔØ ÐÒÏÃÅÄÕÒÕ ÎÁ elisp.

    ÷ÓÔÁ×ËÁ ÆÁÊÌÁ

    ÷Ù ÄÏÌÖÎÙ ÓÎÁÞÁÌÁ ÚÁÓÔÁ×ÉÔØ Emacs ÚÁÐÕÓÔÉÔØ auto-insert ÐÒÉ ÏÔËÒÙÔÉÉ ÆÁÊÌÁ, ÚÁÔÅÍ ÓÞÉÔÁÔØ ÂÉÂÌÉÏÔÅËÕ autoinsert, ËÏÔÏÒÁÑ ÏÂßÑ×ÌÑÅÔ ÓÐÉÓÏË auto-insert-alist, ËÏÔÏÒÙÊ ÎÅÏÂÈÏÄÉÍÏ ÉÚÍÅÎÉÔØ. üÔÏÔ ÓÐÉÓÏË ÏÐÒÅÄÅÌÑÅÔ ×ÓÔÁ×ÌÑÅÍÙÅ ÚÁÇÏÌÏ×ËÉ ÄÌÑ ËÁÖÄÏÇÏ ÔÉÐÁ ÆÁÊÌÏ×. ðÏ ÕÍÏÌÞÁÎÉÀ, ×ÓÔÁ×ÌÑÅÍÙÊ ÆÁÊÌ ÄÏÌÖÅÎ ÎÁÈÏÄÉÔØÓÑ × ÄÉÒÅËÔÏÒÉÉ ~/insert/, ÎÏ ÍÏÖÎÏ ÐÅÒÅÏÐÒÅÄÅÌÉÔØ ÐÅÒÅÍÅÎÎÕÀ auto-insert-directory, ÅÓÌÉ ×Ù ÈÏÔÉÔÅ ÐÏÍÅÓÔÉÔØ ÚÁÇÏÌÏ×ËÉ × ÄÒÕÇÏÅ ÍÅÓÔÏ.

    äÏÂÁ×ØÔÅ ÓÌÅÄÕÀÝÉÅ ÓÔÒÏËÉ × ×ÁÛ ÆÁÌ .emacs ÄÌÑ ×ÓÔÁ×ËÉ ÆÁÊÌÁ ~/emacs/sgml-insert.sgml ÐÒÉ ËÁÖÄÏÍ ÏÔËÒÙÔÉÉ ÎÏ×ÏÇÏ ÆÁÊÌÁ 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))
          
    

    úÁÔÅÍ ×Ù ÍÏÖÅÔÅ ÎÁÐÉÓÁÔØ ÆÁÊÌ ~/emacs/sgml-insert.sgml ÔÏÔ ÚÁÇÏÌÏ×ÏË, ËÏÔÏÒÙÊ ×ÁÍ ÎÅÏÂÈÏÄÉÍ, ÚÁÔÅÍ ÐÅÒÅÚÁÐÕÓÔÉÔØ Emacs É ÏÔËÒÙÔØ ËÁËÏÊ-ÎÉÂÕÄØ ÎÏ×ÙÊ ÆÁÊÌ (ÎÁÐÒÉÍÅÒ foobar.sgml). Emacs ÄÏÌÖÅÎ ÓÐÒÏÓÉÔØ Õ ×ÁÓ ÐÏÄÔ×ÅÒÖÄÅÎÉÅ Á×ÔÏÍÁÔÉÞÅÓËÏÊ ×ÓÔÁ×ËÉ ÚÁÇÏÌÏ×ËÁ, É ÅÓÌÉ ×Ù ÏÔ×ÅÔÉÔÅ ÕÔ×ÅÒÄÉÔÅÌØÎÏ, ÔÏ ÏÎ ×ÓÔÁ×ÉÔ ÚÁÇÏÌÏ×ÏË.

    úÁÐÕÓË ÐÒÏÇÒÁÍÍÙ

    üÔÏÔ ÍÅÔÏÄ ÒÁÂÏÔÁÅÔ ÐÏÞÔÉ ËÁË ÐÒÅÄÙÄÕÝÉÊ, ÎÏ ×ÍÅÓÔÏ ÕÓÔÁÎÏ×ËÉ ÕËÁÚÁÔÅÌÑ auto-insert-alist ÎÁ ×ÓÔÁ×ÌÑÅÍÙÊ ÆÁÊÌ, ×ÁÍ ÎÅÏÂÈÏÄÉÍÏ ÕËÁÚÁÔØ ËÁËÕÀ ÐÒÏÃÅÄÕÒÕ ÎÁÄÏ ×ÙÐÏÌÎÉÔØ. ôÅÐÅÒØ ËÁË ÜÔÏ ÒÁÂÏÔÁÅÔ, ÄÏÐÕÓËÁÑ, ÞÔÏ ×Ù ÈÏÔÉÔÅ ÚÁÐÉÓÁÔØ ÜÔÕ ÆÕÎËÃÉÀ × ÆÁÊÌ, ÎÁÚ×ÁÎÎÙÊ ~/emacs/sgml-header.el. (ÎÅÔ ÎÅÏÂÈÏÄÉÍÏÓÔÉ ÐÅÒÅÇÒÕÖÁÔØ ×ÁÛ ÆÁÊÌ .emacs ÔÁËÉÍÉ ÆÕÎËÃÉÑÍÉ, ÐÏÓËÏÌØËÕ ÏÎÉ ÍÏÇÕÔ ÄÏÌÇÏ ÎÅ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ):

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

    ÷Ù ÎÁÊÄÅÔÅ × ÒÁÚÄÅÌÅ appendix ÐÒÉÍÅÒ ÆÕÎËÃÉÉ insert-sgml-header.

    Appendix

    7. æÕÎËÃÉÑ insert-sgml-header

    üÔÁ ÆÕÎËÃÉÑ ÐÏÚ×ÏÌÉÔ ÐÏÌØÚÏ×ÁÔÅÌÀ ×ÓÔÁ×ÉÔØ ÎÁÓÔÒÁÉ×ÁÅÍÙÊ ÚÁÇÏÌÏ×ÏË ÄÌÑ ÄÏËÕÍÅÎÔÁ Linux Documentation Project × ÆÁÊÌ. ïÎÁ ÍÏÖÅÔ ÂÙÔØ ×ÙÚ×ÁÎÁ Á×ÔÏÍÁÔÉÞÅÓËÉ ÐÒÉ ÏÔËÒÙÔÉÉ ÎÏ×ÏÇÏ ÆÁÊÌÁ, ÉÌÉ ÍÏÖÅÔ ÂÙÔØ ×ÙÚ×ÁÎÁ ÐÏÌØÚÏ×ÁÔÅÌÅÍ.

    üÔÁ ÆÕÎËÃÉÑ ÚÁÐÒÁÛÉ×ÁÅÔ Õ ÐÏÌØÚÏ×ÁÔÅÌÑ, ÐÏÌØÚÕÑÓØ mini-buffer, ÎÅËÏÔÏÒÕÀ ÉÎÆÏÒÍÁÃÉÀ, ÞÁÓÔØ ÉÚ ËÏÔÏÒÏÊ ÎÅÏÂÈÏÄÉÍÁ, Á ÞÁÓÔØ ÎÅÔ. not.

    óÎÁÞÁÌÁ ÉÄÅÔ ÚÁÇÏÌÏ×ÏË ÄÏËÕÍÅÎÔÁ. åÓÌÉ ÎÉÞÅÇÏ ÎÅ ÄÁÎÏ, ÔÏ ÆÕÎËÃÉÑ ÓÒÁÚÕ ÐÒÅËÒÁÝÁÅÔ ×ÙÐÏÌÎÅÎÉÅ É ÎÉÞÅÇÏ ÎÅ ×ÓÔÁ×ÌÑÅÔ. úÁÔÅÍ ÉÄÅÔ ÄÁÔÁ, Á×ÔÏÒ, ÅÇÏ ÜÌÅËÔÒÏÎÎÙÊ ÁÄÒÅÓ É ÄÏÍÁÛÎÑÑ ÓÔÒÁÎÉÃÁ (ÜÔÉ Ä×Á ÐÏÓÌÅÄÎÉÈ ÐÕÎËÔÁ Ñ×ÌÑÀÔÓÑ ÏÐÃÉÏÎÁÌØÎÙÍÉ).

    úÁÔÅÍ ÉÄÅÔ ÚÁÐÒÏÓ ÉÍÅÎÉ ÐÅÒÅ×ÏÄÞÉËÁ ÄÏËÕÍÅÎÔÁ. åÓÌÉ ÅÇÏ ÎÅÔ, ÔÏ ÐÒÏÓÔÏ ÎÁÖÍÉÔÅ ËÌÁ×ÉÛÕ Return, É ÂÏÌØÛÅ ÚÁÐÒÏÓÏ× ÎÅ ÂÕÄÅÔ. á ÅÓÌÉ ÐÅÒÅ×ÏÄÞÉË ÅÓÔØ, ÔÏ ×ÁÓ ÚÁÐÒÏÓÑÔ Ï ÅÇÏ ÜÌÅËÔÒÏÎÎÏÍ ÁÄÒÅÓÅ É ÄÏÍÁÛÎÅÊ ÓÔÒÁÎÉÃÅ.

    úÁÔÅÍ ÜÔÁ ÆÕÎËÃÉÑ ×Ù×ÏÄÉÔ ×ÓÅ × ÔÅËÕÝÉÊ ÂÕÆÅÒ,×ËÌÀÞÁÑ ËÏÎÅÞÎÏ ×ÓÀ ÉÎÆÏÒÍÁÃÉÀ, ËÏÔÏÒÕÀ ×Ù ××ÅÌÉ É ×ËÌÀÞÁÑ ÔÁËÖÅ ÎÅÏÂÈÏÄÉÍÙÅ ÔÁÇÉ ÄÌÑ ËÒÁÔËÏÇÏ ÓÏÄÅÒÖÁÎÉÑ É ÐÅÒ×ÏÊ ÇÌÁ×Ù. ÷ ËÏÎÃÅ ÏÎ ÐÏÍÅÓÔÉÔ ËÕÒÓÏÒ × ÔÏÍ ÍÅÓÔÏ, ÇÄÅ ÂÕÄÅÔ ÎÁÂÉÒÁÔØÓÑ ËÒÁÔËÏÅ ÓÏÄÅÒÖÁÎÉÅ.

    (defun insert-sgml-header ()
      "Inserts the header for a LinuxDoc document"
      (interactive)
      (let (title author email home translator email-translator home-translator date 
                  starting-point)
        (setq title (read-from-minibuffer "Title: "))
        (if (> (length title) 0)
            (progn 
              (setq date (read-from-minibuffer "Date: ")
                    author (read-from-minibuffer "Author: ")
                    email (read-from-minibuffer "Author e-mail: ")
                    home (read-from-minibuffer "Author home page: http://")
                    translator (read-from-minibuffer "Translator: "))
              (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 "Translator e-mail: ")
                          home-translator (read-from-minibuffer "Translator home page: 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)
              ))))