# 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

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

* 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

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

## Exemple de génération d'un document PDF

ou

## Fonctions de base
### Les Balises

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 :

#### Les sections

Ce sont des balises qui ont besoin d'une balise fermante.
Exemple:
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:

#### La gestion des gros documents

Tout est prévu pour faire des documents de volume important. La fonction @Include permet simplement d'inclure un fichier dans un autre.
Exemple:
Vous pouvez ajouter ou supprimer des sections d'un document en les commentant.

### Les commentaires

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

### Les caractères spéciaux

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

D'une manière générale pour commencer une nouvelle ligne avec Lout, vous devez commencer un nouveau paragraphe @PP.
Exemple:
donne
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:

### La pagination
#### Types de documents

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:
Le type Technique est un document qui se réalise avec la balise @Report:
Le type Livre est un document qui se réalise avec la balise @Book:
Le type transparent est un document qui se réalise avec la balise @OverheadTransparencies:

### Les polices de caractères

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

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

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 :
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
#### Fonctions de base

* Pour mettre un texte en italique il faut utiliser @I{ texte } :
ce qui donne
* Pour mettre un texte en gras il faut utiliser @B{ texte } :
ce qui donne
* Pour souligner un texte il faut utiliser @Underline{ texte } :
ce qui donne
* Pour mettre un texte en taille fixe il faut utiliser @F{ texte } :
ce qui donne

### Les listes

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

### Les tableaux

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