# LaTeX/Options de mise en forme avancées

LATEX
* Généralités
* Premiers pas
** Installer LaTeX
** Premier exemple
** Lettre
** Éléments de base
** Les classes
** Structuration du texte
** Mise en forme du texte
** Faire des tableaux
** Inclure des images
** Options de mise en forme avancées
** Écrire des mathématiques
** Écrire de la physique
** Écrire des formules chimiques
** Créer une feuille de style
** À l'aide !
* Structure du document
* Gestion de la bibliographie
* Tableaux
* Images
* Éléments flottants
* Mise en forme du texte
* Choix de la police
* Mise en page
* Mathématiques
* Gestion des gros documents
* Faire des présentations
* LaTeX pour enseignants
* Arts et loisirs
** Écrire de la musique
** Dessiner des échiquiers
* Dessiner avec LaTeX
** Dessiner en LaTeX pur
** Dessiner avec PSTricks
** Dessiner avec PGF et TikZ
** Dessiner des molécules
** Réalisation de graphiques mathématiques
* Créer une extension ou une classe
* Programmer avec LaTeX
Annexes
* Vadémécum
* Conversion vers d'autres formats
* Glossaire de typographie
* Index
* Commandes
* Liens externes

## Mise en forme du texte
### Césure

La césure (coupure d'un mot en fin de ligne afin de respecter la justification et le gris typographique) est gérée automatiquement par LaTeX. En particulier, le respect des règles françaises est assuré par l'utilisation de l'option T1 de l'extension fontenc. Il peut toutefois arriver que la césure ne soit pas correcte ; par exemple, la césure modifie la prononciation, ou bien ne respecte pas l'étymologie (notamment dans le cas d'un mot composé).
Pour indiquer l'endroit où peut avoir lieu la césure, on utilise la commande \hyphenation{liste de mots} dans le préambule. Elle contient une liste de mots, séparés avec des espaces, et contenant un tiret « - » pour indiquer les endroits où l'on peut couper, par exemple
Si l'on veut empêcher une césure, il suffit de mettre le mot à l'intérieur d'un \mbox{…}, par exemple
Notons que la commande \bsc{…} de l'extension babel/frenchb, utilisée pour les patronymes des auteurs, interdit la césure.

### Lettrine

On commence souvent un chapitre en belle page par une lettrine : la première lettre est au fer à gauche, et avec un corps plus grand (en général sur deux lignes), et le ou les mots suivants sont en petite capitale.
On dispose pour cela de l'extension lettrine, qui s'utilise comme suit :
Le « L » est alors en capitale de grand corps, et « es premiers mots » est en petites capitales.
Si l'on veut avoir une lettrine en gothique, on peut faire :
On peut aussi avoir recours à la famille initfamily de l'extension yfonts pour avoir des lettrines enluminées :
Voir aussi Choix de la police.

### Couleur

Dans les instructions ci-dessous, le paramètre couleur est le nom de la couleur en anglais (sur fond blanc et sur fond noir, afin de rendre compte de la lisibilité) :
* red : rouge, rouge ;
* green : vert, vert ;
* blue : bleu, bleu ;
* cyan : cyan, cyan (bleu primaire) ;
* magenta : magenta, magenta (rouge primaire) ;
* yellow : jaune, jaune ;
* orange : orange, orange ;
* violet : violet, violet ;
* purple : pourpre, pourpre ;
* brown : brun, brun ;
* black : noir, noir ;
* darkgray : gris sombre, gris sombre ;
* gray : gris, gris ;
* lightgray : gris clair, gris clair ;
* white : blanc, blanc.

#### Couleur des caractères

Pour mettre des caractères en couleur, il faut avoir recours à l'extension xcolor. On utilise alors les instructions suivantes pour mettre des caractères de couleur :
* \textcolor{couleur}{texte} ;
* {\color{couleur} texte}.

##### Utilisation conventionnelle

Il n'y a pas d'utilisation conventionnelle des couleurs. Attirons toutefois l'attention sur :
* la lisibilité : un contraste insuffisant rend difficile la lecture, un contraste trop violent (comme jaune et bleu) la rend désagréable ;
* l'étalonnage des couleurs : la couleur à l'écran n'est pas celle qui est imprimée par une imprimante à jet d'encre, elle-même différente de celle d'une imprimante laser couleur ou d'une impression offset ;
* le rendu si l'on imprime en noir et blanc ou si l'on photocopie ;
* le vieillissement du document : la couleur des imprimantes à jet d'encre a tendance à pâlir avec le temps ;
* la couleur permet d'attirer l'attention sur un point ; trop de couleurs fait perdre le fil de la lecture, on peut raisonnablement se limiter à quatre couleurs ;
* prendre en compte le coût de l'impression.
    Pour plus de détails voir : Rédaction technique/De l'usage des couleurs dans un document.

#### Cadre et couleur du fond

On peut créer un filet horizontal avec la commande \hrulefill.
La création d'un cadre se fait avec l'instruction \fbox (framed box) :
mais telle quelle, cette fonction garde tout sur la même ligne, au risque de dépasser de la page…
Si l'on veut avoir un texte encadré sur plusieurs lignes, par exemple un pavé, il faut utiliser une minipage, avec l'environnement du même nom :
où le paramètre largeur est exprimé dans les unités conventionnelles (cf. Éléments de base > Espaces et changements de ligne). Pour largeur, on peut aussi utiliser \textwidth pour avoir la largeur totale du texte (justification), ou bien \linewidth pour avoir la largeur de la ligne (qui peut être plus petite selon l'environnement courant). On peut aussi mettre un multiplicateur devant \textwidth, par exemple
Pour avoir une boîte faisant 90 % de la justification. Si l'on veut organiser le texte du code en mettant \begin{minipage} sur la ligne suivante, il faut mettre la fin de la ligne du \fbox en commentaire afin que LaTeX ne prenne pas en compte le caractère de fin de ligne
Si le texte à encadrer s'étend sur plusieurs pages, on aura recours à l'environnement framed de l'extension du même nom, ou bien à l'environnement breakbox de l'extension eclbkbox .
Pour avoir un fond coloré, il faut utiliser l'extension xcolor. On a alors :
* \colorbox{couleur}{texte} : couleur prend les mêmes valeurs qu'avec \textcolor ci-dessus, et la commande réagit comme \fbox (il faut une minipage si le texte dépase la ligne) ;
* \fcolorbox{couleur cadre}{couleur fond}{texte} : crée une boîte avec un fond et un filet de couleur.
On peut également définir la couleur de fond de toute la page avec \pagecolor{couleur}.

##### Utilisation conventionnelle

Mêmes remarques que ci-dessus.

#### Modèles de couleur

On peut utiliser d'autres couleurs que celles prédéfinies. On dispose pour cela de plusieurs modèles :
* modèles de type rouge-vert-bleu (RVB) :
** rgb : les trois composantes sont des nombres décimaux compris entre 0 et 1, séparés par une virgule,
** RGB : les trois composantes sont des nombres entiers compris entre 0 et 255, séparés par une virgule,
** HTML : les trois composantes sont des nombres hexadécimaux entiers compris entre 00 et FF, accolés ;
* modèle cyan-magenta-jaune-noir : cmyk, les quatre composantes sont des nombres décimaux compris entre 0 et 1, séparés par une virgule ;
* modèle teinte-saturation-luminosité (TSL) : hsb, les trois composantes sont des nombres décimaux compris entre 0 et 1 (la teinte est donc l'angle en degrés divisé par 360), séparés par une virgule ;
* modèle nuances de gris : gray, avec un nombre décimal compris entre 0 (noir) et 1 (blanc).
Sans la syntaxe, on remplace alors {couleur} par [modèle]{couleur}, par exemple
Voici plusieurs manières de définir le vert olive :
* \textcolor[rgb]{0.5,0.5,0}{texte vert olive}
* \textcolor[RGB]{128,128,0}{texte vert olive}
* \textcolor[HTML]{808000}{texte vert olive}
* \textcolor[hsb]{0.17,1,0.5}{texte vert olive}
* \textcolor[cmyk]{0,0.17,0.67,0.33}{texte vert olive} (la variante proposée ici est légèrement différente des précédentes)
Pour le gris :
* \textcolor[gray]{0.5}{texte gris}
Mais dans la démarche de la séparation du fond et de la forme, il vaut mieux définir une nouvelle couleur :
par exemple
    Pour plus de détails voir : Rédaction technique/De l'usage des couleurs dans un document#Codage informatique.

### Interligne

L'extension setspace (basé sur l'ancienne extension doublespace) permet d'augmenter l'interlignage, en introduisant l'environnement spacing :
multiplie l'interligne du facteur indiqué. Par exemple pour avoir un interligne de 1,2 fois l'interligne normal :
Pour les interlignes de une fois et demie et double, on dispose des commandes respectives \onehalfspacing et \doublespacing à placer dans le préambule.
On dispose également des environnements singlespace, onehalfspace et doublespace.

### Texte en colonnes

Il est possible de présenter tout le texte en deux colonnes. Pour cela, on utilise l'argument twocolumn lors de l'appel de la classe, par exemple :
On peut changer la disposition d'une page à l'autre :
* \twocolumn commence une nouvelle page en deux colonnes ;
* \onecolumn commence une nouvelle page en une colonne.
On peut utiliser un paramètre optionnel pour mettre un texte en une seule colonne au début d'une page à deux colonnes, comme par exemple un titre :
Les versions étoilées des environnements flottants table* et figure* permettent de placer les objets flottants sur la largeur de la page au lieu de la largeur d'une colonne.
Si l'on désire utiliser plus de colonnes, ou si l'on désire changer le nombre de colonne en cours de page, on utilise alors l'extension multicol (sans s). Cela permet d'utiliser l'environnement multicols (avec un s), avec la syntaxe :
La fonction \columnbreak permet de forcer le passage à la colonne suivante.

#### Note

    La présentation en multicolonne est adapté aux corps de petite taille (petite taille de texte), donc aux documents « compacts » : cela permet de limiter le nombre de caractères à lire avant de revenir à la ligne. Cela pose cependant le problème de la continuité de lecture lorsque l'on rencontre un intertitre ou une illustration : faut-il poursuivre la lecture sous l'intertitre/la figure, ou bien faut-il revenir en haut de la colonne suivante ?

### Travailler avec deux langues

Si l'on a un document en plusieurs langues, on peut faire varier la marche typographique utilisée selon la langue du passage. Notez que dans le cas d'une citation en langue étrangère, on utilise la marche de la langue du document ; par exemple, si l'on a une citation en anglais dans un ouvrage en français, on garde la typographie française.
Pour utiliser plusieurs langues, il suffit d'indiquer plusieurs options à babel ; la dernière option est la langue par défaut. Puis, pour changer de langue, il suffit d'indiquer \selectlanguage{langue}. Par exemple, pour un texte en français avec des passages en anglais :

## Ajout d'un sommaire

Dans la typographie française, la table des matières se met à la fin d'un ouvrage. Il est alors fréquent d'avoir un sommaire en début d'ouvrage, c'est-à-dire une table des matières ne reprenant que les titres de chapitre.
Le problème est que la commande \tableofcontents ne peut être utilisée qu'une seule fois.
On peut utiliser la solution suivante :
De manière générale, la commande \shorttoc utilise la syntaxe
où profondeur est le niveau de détail.

## Les environnements

Un environnement est une zone de texte délimitée par deux balises
Un environnement ouvert par un \begin doit toujours être fermé par un \end. Le document LaTeX est un environnement en soi, l'environnement document.

### Principaux environnements

Nous récapitulons ci-après les principaux environnements déjà vus.

#### Alignements

    cf. Mise en forme du texte > Composition du texte :
   * flushleft pour une composition en drapeau au fer à gauche (ou texte aligné à gauche) ;
   * flushright pour une composition en drapeau au fer à droite (ou texte aligné à droite) ;
   * center pour du texte centré.
    Dans chacun des ces environnements, la commande \\ permet de forcer un retour à la ligne.

#### Citations

    Pour les citations séparées du texte, on dispose des environnements quote et quotation ; cf. Mise en forme du texte > Composition du texte.

#### Listes

    Les listes structurées s'obtiennent également avec des environnements : enumerate, itemize et description ; cf. Structuration du texte > Listes structurées.

#### Minipage

    L'environnement minipage permet de considérer une portion de texte comme une page à part (qui peut même contenir des notes de bas de page) ; cf. Cadre et couleur du fond ci-dessus.

#### Objets flottants

    Les objets flottants sont dans des environnements :
   * table pour les tableaux, cf. Faire des tableaux > Tableau flottant ;
   * figure pour les images, cf. Inclure des images > Figure flottante.

#### Tableaux

    Les tableaux utilisent l'environnement tabular. Celui-ci est décrit dans la section Faire des tableaux.

### Commandes personnelles

La définition d'une commande personnelle de type environnement \begin{…} et \end{…} (environnement) est un peu plus complexe. Si l'on veut reprendre l'exemple des citations précédent, on utilisera :
De manière générale, on a \newenvironment{nom de l'environnement}{instructions de début}{instructions de fin}. On pourra se reporter à Bitouzé et Charpentier p. 263–254 et Roland p. 139–140.

#### Erreurs possibles

   * ! \begin{…} ended by \end{…} : vous avez oublié de fermer un environnement, ou bien vous avez fait une faute en tapant le nom de l'environnement dans le \end{…}, ou bien vous avez essayé de faire se chevaucher des environnements, ce qui n'est pas possible ;
   * ! command … already defined : le nom que l'on utilise pour le nouvel environnement est déjà utilisé ; il faut changer le nom de l'environnement ; si vous voulez redéfinir un environnement existant, il faut utiliser l'instruction \renewenvironment, mais attention aux effets indésirables…
   * ! Environment … undefined : vous avez fait une faute en tapant le nom de l'environnement dans le \begin{…}, ou bien vous avez oublié de définir l'environnement en question.

## Notes

* ↑ J.-C. Charpentier et D. Bitouzé, LaTeX — Synthèse et cours, éd. Pearson Education, 2006, (ISBN 2-7440-7187-0)
* ↑ C. Roland, LaTeX par la pratique, éd. O'Reilly, 1999, (ISBN 2-84177-073-7)