LaTeX/Options de mise en forme avancées
Mise en forme du texte
modifierCésure
modifierLa 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
\hyphenation{anti-consti-tu-tion-nel-le-ment atmo-sphère caou-tchouc cis-alpin trans-action}
Si l'on veut empêcher une césure, il suffit de mettre le mot à l'intérieur d'un \mbox{…}
, par exemple
Le roi \mbox{Nabuchodonosor} régnait…
Notons que la commande \bsc{…}
de l'extension babel/frenchb
, utilisée pour les patronymes des auteurs, interdit la césure.
Lettrine
modifierOn 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 :
\usepackage{lettrine}
[…]
\lettrine{L}{es premiers mots} du premier paragraphe ''[…]''
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 :
\usepackage{lettrine}
\usepackage{oldgerm}
[…]
\lettrine{\textgoth{L}}{es premiers mots} du premier paragraphe […]
On peut aussi avoir recours à la famille initfamily
de l'extension yfonts
pour avoir des lettrines enluminées :
\usepackage{lettrine}
\usepackage{yfonts}
\newcommand{\enluminure}[2]{\lettrine[lines=3]{\small \initfamily #1}{#2}}
[…]
\enluminure{L}{es premiers mots} du premier paragraphe […]
Voir aussi Choix de la police.
Couleur
modifierDans 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
modifierPour 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
modifierOn peut créer un filet horizontal avec la commande \hrulefill
.
La création d'un cadre se fait avec l'instruction \fbox
(framed box) :
\fbox{texte à encadrer}
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 :
\fbox{\begin{minipage}{''largeur''}
''texte''
\end{minipage}}
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
\fbox{\begin{minipage}{0.9\textwidth}
''texte''
\end{minipage}}
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
\fbox{%
\begin{minipage}{0.9\textwidth}
''texte''
\end{minipage}%
}
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
[1].
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
modifierOn 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
\pagecolor[''modèle'']{''couleur''}
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 :
\definecolor{''nom''}{''modèle''}{''couleur''}
par exemple
\definecolor{vertolive}{rgb}{0.5,0.5,0}
\textcolor{vertolive}{texte vert olive}
- Pour plus de détails voir : Rédaction technique/De l'usage des couleurs dans un document#Codage informatique.
Interligne
modifierL'extension setspace
(basé sur l'ancienne extension doublespace
) permet d'augmenter l'interlignage, en introduisant l'environnement spacing
:
\begin{spacing}{''facteur''}
[…]
\end{spacing}
multiplie l'interligne du facteur indiqué. Par exemple pour avoir un interligne de 1,2 fois l'interligne normal :
…
\usepackage{setspace}
…
\begin{document}
\begin{spacing}{1.2}
…
\end{spacing}
\end{document}
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
modifierIl 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 :
\documentclass[11pt, a4paper, twocolumn]{article}
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 :
\twocolumn[\chapter{''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 :
…
\usepackage{multicol}
…
\begin{document}
…
\begin{multicols}{''nombre de colonnes''}
''texte''
\end{multicols}
\end{document}
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
modifierSi 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 :
…
\usepackage[english, frenchb]{babel}
…
\begin{document}
…
\selectlanguage{english} % début du passage en typographie anglaise
…
\selectlanguage{frenchb} % retour à la typographie française
…
\end{document}
Ajout d'un sommaire
modifierDans 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 [2] :
\usepackage[tight]{shorttoc}
\newcommand{\sommaire}{\shorttoc{Sommaire}{1}}
\begin{document}
[…]
\sommaire
[…]
\tableofcontents
\end{document}
De manière générale, la commande \shorttoc
utilise la syntaxe
\shorttoc{titre de la table}{profondeur}
où profondeur est le niveau de détail.
Les environnements
modifierUn environnement est une zone de texte délimitée par deux balises
\begin{environnement} […] \end{environnement}
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
modifierNous 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
etquotation
; cf. Mise en forme du texte > Composition du texte.
- Listes
- Les listes structurées s'obtiennent également avec des environnements :
enumerate
,itemize
etdescription
; 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
modifierLa 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 :
\newcommand{\titre}{\emph} \newcommand{\personnage}[1]{\begin{center} \textsc{#1} \end{center}} \newenvironment{tirade} {\begin{quote} \small} {\normalsize \end{quote}} Si l'on considère ce passage de \titre{L'\'Ecole de femmes}~: {\small \personnage{Chrysalde} } \begin{tirade} Nous sommes ici seuls, et l'on peut, ce me semble, \\ Sans craindre d'être ouïs y discourir ensemble. \\ Voulez-vous qu'en ami je vous ouvre mon c\oe{}ur~? \\ Votre dessein, pour vous, me fait trembler de peur~; \\ Et de quelque façon que vous tourniez l'affaire, \\ Prendre femme est à vous un coup bien téméraire. \end{tirade}
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[1] p. 263–254 et Roland[2] 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
modifier- ↑ 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)