Lout

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Lout
Développeur Jeffrey H. Kingston
Dernière version 3.40 (27 juin, 2013)
Environnement Linux, MS-Windows, POSIX compliant systems
Type PAO
Licence GNU GPL
Site web http://savannah.nongnu.org/projects/lout

Lout est un système de formatage de documents conçu et programmé par Jeffrey Kingston.

Le système utilise un haut niveau de description de documents semblable à LaTeX et génère des fichiers PostScript que l'on peut imprimer sur la plupart des imprimantes laser ou afficher sur des périphériques en sortie-écran. Une sortie purement en texte est possible, ainsi que le format PDF.

Lout est multilingue et fonctionne sur la plupart des UNIX, Windows et Mac OS X.

Comme LaTeX, Lout se focalise sur le contenu, l'organisation avec des modèles de mise en page structurés et complexes. La mise en page, le choix des fontes, etc. sont d'utilisations simples. C'est un logiciel WYSIWYM.

Historique[modifier | modifier le code]

Lout a débuté en 1984 comme projet de recherche dans l'élaboration d'un langage de formatage de documents de haut niveau. Au début du projet le nom était « Document Layout » (Mise en page de document) , la terminologie restant, le nom devint Lout. La fin du projet de recherche en octobre 1991 correspond à la première version publique.

Fonctionnalités[modifier | modifier le code]

  • Grande qualité typographique
  • Styles de documents prédéfinis pour les livres, les rapports techniques, lettres, etc.
  • Supports des tableaux, diagrammes, graphiques, dessins.
  • Gestion automatique des tables des matières, index, glossaires, etc.
  • Support des langues (i18n).
  • Petit (2 Mb)
  • Mûr (Lout a été créé dans les années 1990)
  • Ne gère pas l'UTF-8 (pas d'édition du texte en UTF-8)

Exemple de document[modifier | modifier le code]

@SysInclude { report } # Forme du document final et des commandes.

@Report # Début du rapport.
 @Title { Titre du rapport } # Titre du rapport.
 @Author { Nom de l'auteur } # Nom de l'auteur.
 @Institution { Etablissement"/"adresse de l'auteur } # Etablissement ou adresse.
 @DateLine { Yes } # Date du rapport. Yes c'est la date de compilation sinon forme textuelle comme 00 février 2000.
 @InitialLanguage { French } # Document en langue française.
// # Fin des informations sur le rapport.

@Section # Début de la section du rapport.
 @Title { Titre de la première section } # Titre de la section.

 @Begin # Début du contenu de la section.
  @PP # Début d'un paragraphe dans la section.
   Du texte et rien que du texte. # Du texte.
 @End # Fin du contenu de la section.

@Section # Fin de la section.

L'édition du document doit être faite en ISO 8859.

Exemple de génération d'un document PDF[modifier | modifier le code]

lout -PDF test.lout -o resultat.pdf

ou

lout -PDF test.lout > resultat.pdf

Fonctions de base[modifier | modifier le code]

Les Balises[modifier | modifier le code]

Les balises Lout sont de la forme @balise { données }. Les données de la balise sont délimitées par des accolades. Si ces accolades sont omises, alors seulement le mot qui suit sera interprété comme une donnée. Attention Lout est sensible à la casse (majuscule/minuscule).

Exemple :

"Une phrase @B en gras." donne "Une phrase en gras."
"Une phrase @B { en gras }." donne "Une phrase en gras."

Les sections[modifier | modifier le code]

Ce sont des balises qui ont besoin d'une balise fermante.

Exemple:

@Section
@Title { Titre de la section }
...
@Begin
...
@End @Section

pour faire des sous-sections, il faut utiliser les balises @BeginSubSections pour débuter, et fermer avec @EndSubSections. Une sous-sous-section sera formée par @BeginSubSubSections et @EndSubSubSections. La structure des sous-sections et des sous-sous-sections à l'intérieur de ces balises s'organise comme une section.

Exemple:

@Section
@Title { Titre de la section 1 }
...
@Begin
 @PP Du texte.
 ...
 @BeginSubSections
  @SubSection
  @Title { Titre de la sous-section 1-1 }
  ...
  @Begin
   @PP Du texte
   ...
   @BeginSubSubSections
    @SubSubSection
    @Title { Titre de la sous-sous-section 1-1-1 }
    ...
    @Begin
     @PP Du texte
     ...
    @End @SubSubSection
    
    @SubSubSection
    @Title { Titre de la sous-sous-section 1-1-2 }
    ...
    @Begin
     @PP Du texte
     ...
    @End @SubSubSection
   @EndSubSubSections
  @End @SubSection
  
  @SubSection
  @Title { Titre de la sous-section 1-2 }
  ...
  @Begin
   @PP Du texte
   ...
   @BeginSubSubSections
    @SubSubSection
    @Title { Titre de la sous-sous-section 1-2-1 }
    ...
    @Begin
     @PP Du texte
     ...
    @End @SubSubSection
   @EndSubSubSections
  @End @SubSection
 @EndSubSections
@End @Section

@Section
@Title { Titre de la section 2 }
...
@Begin
 @PP Du texte.
 ...
@End @Section

La gestion des gros documents[modifier | modifier le code]

Tout est prévu pour faire des documents de volume important. La fonction @Include permet simplement d'inclure un fichier dans un autre.

Exemple:

@SysInclude { report } # Forme du document final et des commandes.

@Report # Début du rapport.
 @Title { Titre du rapport } # Titre du rapport.
 @Author { Nom de l'auteur } # Nom de l'auteur.
 @Institution { Etablissement"/"adresse du l'auteur } # Etablissement ou adresse.
 @DateLine { Yes } # Date du rapport. Yes c'est la date de compilation sinon forme textuelle comme 00 février 2000.
 @InitialLanguage { French } # Document en langue française.
// # Fin des informations sur le rapport.

@Include { introduction.lout } # Inclusion de l'introduction contenue dans le fichier "introduction.lout".
@Include { première_section.lout } # Inclusion de la première section contenu dans le fichier "première_section.lout".
@Include { seconde_section.lout } # Inclusion de la seconde section contenu dans le fichier "seconde_section.lout".
# @Include { troisième_section.lout } # Non-inclusion de la troisième section contenue dans le fichier "troisième_section.lout".
@Include { conclusion.lout } # Inclusion de la conclusion contenu dans le fichier "conclusion.lout".

Vous pouvez ajouter ou supprimer des sections d'un document en les commentant.

Les commentaires[modifier | modifier le code]

Nous pouvons écrire des commentaires après le caractère #.

Exemple:

Le texte # commentaires.
c'est l'expression d'une pensée.

donne

Le texte c'est l'expression d'une pensée.

Les caractères spéciaux[modifier | modifier le code]

Certains caractères ont une signification spéciale dans Lout comme :

", #, &, /, \, @, ^, {, }, |, ~

Pour les représenter nous devons les placer entre guillemets. Les guillemets protègent le texte de l'interprétation en caractères spéciaux. Donc dans un document lout nous devons les écrire comme suit :

"\"", "#", "&", "/", "\\", "@", "^", "{", "}", "|", "~"

Le retour à la ligne et la gestion des espaces[modifier | modifier le code]

D'une manière générale pour commencer une nouvelle ligne avec Lout, vous devez commencer un nouveau paragraphe @PP.

Exemple:

@PP
Mon premier paragraphe.
@PP
Mon second paragraphe.

donne

Mon premier paragraphe.
Mon second paragraphe.

Par défaut dans Lout les espaces entre deux mots sont affichés. Deux autres conventions pour gérer les espaces sont possibles, troff (voir Troff) et TeX (voir TeX). troff est comme la convention Lout, c'est seulement à la fin de ligne qu'un espace est généré. TeX remplace des séquences de plus de deux espaces par un espace, et comme troff, il rajoute un espace en fin de ligne.

Exemple:

@SysInclude{ doc }
@Document
@InitialSpace{ lout }
#@InitialSpace{ troff }
#@InitialSpace{ tex }
@Text @Begin
...
@End @Text

La pagination[modifier | modifier le code]

Types de documents[modifier | modifier le code]

Lout est fourni avec des modèles de documents. C'est ce modèle que l'on indique dans @SysInclude{ modèle }. Ces modèles de documents déterminent la structure globale tant au niveau logique (chapitres, sections, etc.) qu'au niveau de la mise en forme (polices, allure des titres, etc.). Lout permet de créer ses propres modèles de documents. Les modèles standard sont doc pour un document ordinaire, report pour un document technique, book pour un livre et slides pour des transparents.

Le type Ordinaire est de conception simple et se compose de pages complètes et numérotées. Pour réaliser un document de type ordinaire, il faut utiliser la balise @Doc ou @Document:

@SysInclude{doc}
@Doc
...
//
@Text @Begin
...corps du document
@End @Text

Le type Technique est un document qui se réalise avec la balise @Report:

@SysInclude{report}
@Report
...
//
@Section
...corps du document
@End @Section

Le type Livre est un document qui se réalise avec la balise @Book:

@SysInclude{book}
@Book
...
//
@Preface
@Title{À propos de ce livre}
@Begin
...corps du document
@End @Preface
@Introduction
@Begin
...corps du document
@End @Introduction
@Chapter
@Title{Titre du chapitre}
@Begin
...corps du document
@End @Chapter

Le type transparent est un document qui se réalise avec la balise @OverheadTransparencies:

@SysInclude{slides}
@OverheadTransparencies
...
//
@Overhead
...corps du document
@End @Overhead
@Overhead
...corps du document
@End @Overhead
...

Les polices de caractères[modifier | modifier le code]

Les polices de caractères PostScript™ sont utilisables dans un document Lout. Pour les TrueType™, elles sont utilisables après conversion avec l'utilitaire ttf2pfa.

Les polices disponibles dans Lout[modifier | modifier le code]

La version de base de Lout inclut une liste de familles de fontes avec leurs styles de forme.

Famille Styles
AvantGarde Base, Slope, Bold, BoldSlope, BoldObl, Book, BookOblique, CondBold, CondBook, CondDemi, CondMedium, Demi, DemiOblique, ExtraLight, ExtraLightObl, Medium, MediumObl.
Bookman Base, Slope, Bold, BoldSlope, BoldItalic, Demi, DemiItalic, Light, LihgtItalic, Medium, MediumItalic.
Chancery Base, Slope, Bold, BoldSlope, Roman, Bold, Italic, Light, Demi, LightItalic, MediumItalic.
Courier Base, Slope, Bold, BoldSlope, BoldOblique, Oblique.
Helvetica Base, Slope, Bold, BoldSlope, Black, BlackOblique, BoldOblique, Compressed, Cond, CondBlack, CondBlackObl, CondBold, CondBoldObl, CondLight, CondLightObl, CondOblique, ExtraCompressed.
Schoolbook Base, Slope, Bold, BoldSlope, BoldItalic, Italic, Roman.
Palatino Base, Slope, Bold, BoldSlope, BoldItalic, BoldItalicOsF, BoldOsF, Italic.
Symbol Base, Slope, Bold, BoldSlope.
Times Base, Slope, Bold, BoldSlope, BoldItalic, BoldItalicOsF, BoldSC, ExtraBold, Italic, ItalicOsF, Roman, RomanSC, SemiBold, SemiBoldItalic.
Dingbats Base, Slope, Bold, BoldSlope.

Ajouter une police dans Lout[modifier | modifier le code]

Vous pouvez utiliser d'autres fontes en installant de nouvelles polices PostScript™. Pour ce faire, vous devez posséder la police avec une extension « .pfa » ou « .pfb » et le fichier de métrique de cette fonte « .afm ». Dans le répertoire d'installation de Lout (exemple sous Unix : /usr/lib/lout), vous devez avoir un répertoire « font » dans lequel vous devez copier les fichiers de fontes. Dans le répertoire include éditez le fichier « fontdefs ». La syntaxe générale est alors :

fontdef « Famille Lout » « Style Lout » « Nom PostScript » « Fichier métrique » « Fichier table de caractères » « Recode/NoRecode »

Famille Lout:

  • C'est le nom de famille de la police qui sera utilisé dans Lout.

Style Lout:

  • C'est le style de fonte (Base, Slope, Bold, BoldSlope...).

Nom PostScript :

  • C'est le nom officiel de la police (voir dans le fichier .afm).

Fichier métrique :

  • C'est le nom du fichier de métrique « .afm » de la police de caractères.

Fichier table de caractères :

  • Précise à Lout où est situé sur la table chaque caractère.

Recode/NoRecode:

  • Précise si Lout doit utiliser la table de caractères.

La mise en forme[modifier | modifier le code]

Fonctions de base[modifier | modifier le code]

  • Pour mettre un texte en italique il faut utiliser @I{ texte } :
Voici un @I{ texte en italique }.

ce qui donne

Voici un texte en italique.


  • Pour mettre un texte en gras il faut utiliser @B{ texte } :
Voici un @B{ texte en gras }.

ce qui donne

Voici un texte en gras.


  • Pour souligner un texte il faut utiliser @Underline{ texte } :
Voici un @Underline{ texte souligné }.

ce qui donne

Voici un texte souligné.


  • Pour mettre un texte en taille fixe il faut utiliser @F{ texte } :
Voici un @F{ texte en taille fixe }.

ce qui donne

Voici un texte en taille fixe.

Les listes[modifier | modifier le code]

Pour créer une liste il faut utiliser @List @ListItem{ Texte } @EndList :

Voici une liste
@List
@ListItem{ Premier cas }
@ListItem{ Deuxième cas }
@EndList

ce qui donne

Voici une liste
1 Premier cas
2 Deuxième cas

Les tableaux[modifier | modifier le code]

Pour créer un tableau il faut utiliser @Tbl @aformat{ } @Cell @Rowa :

@SysInclude { tbl } # Gestion des tableaux
...
Voici un tableau
@Tbl
aformat { @Cell A | @Cell B }
{
@Rowa
A { cel1 }
B { cel2 }
@Rowa
A { cel3 }
B { cel4 }
}

Liens externes[modifier | modifier le code]