Lout

logiciel informatique
Lout

Informations
Développé par Jeffrey H. Kingston
Dernière version 3.40 (27 juin, 2013)
Système d'exploitation Type UnixVoir et modifier les données sur Wikidata
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.

HistoriqueModifier

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ésModifier

  • 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 documentModifier

@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/CEI 8859.

Exemple de génération d'un document PDFModifier

lout -PDF test.lout -o resultat.pdf

ou

lout -PDF test.lout > resultat.pdf

Fonctions de baseModifier

Les BalisesModifier

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 sectionsModifier

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 documentsModifier

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 commentairesModifier

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éciauxModifier

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 espacesModifier

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 paginationModifier

Types de documentsModifier

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èresModifier

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 LoutModifier

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 LoutModifier

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/share/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 formeModifier

Fonctions de baseModifier

  • 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 listesModifier

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 tableauxModifier

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 externesModifier