LaTeX/Mise en page

Un livre de Wikilivres.

La mise en page est gérée directement par la classe de document. Lorsque votre travail doit être soumis à un éditeur pour être publié, la mise en page ne vous appartient pas et ce sont les éditeurs qui vous imposeront la présentation. Cependant, pour vos documents personnels, il y a quelques éléments dans la page que vous pouvez souhaiter modifier comme les marges, l'orientation du texte, les colonnes, etc. Le but de ce chapitre est de vous montrer comment configurer les paramètres pour la mise en page.

Les dimensions de la page[modifier | modifier le wikicode]

Une page en LaTeX est définie par une myriade de paramètres internes. Chaque paramètre correspond à la longueur d'un élément de la page, par exemple, \paperheight est la taille physique de la page. L'extension layout permet de visualiser dynamiquement la mise en page d'un document (bien que le résultat soit légèrement réduit), et fournit également les valeurs de plusieurs dimensions, qui peuvent être très significatives. Regardez [tutorial8/playout.pdf mise en page (pdf)] avant de continuer.

Il faut prendre garde au fait que la taille d'une page par défaut est celle des documents étasuniens, c'est-à-dire celle de US letter et non celle du format A4. Les pages sont en longueur plus courtes de 3/4 pouce, et légèrement plus larges de 1/4 pouce, comparé au format A4 (qui est la norme en France et au Royaume-Uni). Ce n'est pas trop gênant parce que la plupart des imprimantes imprimeront tout de même la page en entier. Cependant, il est possible d'indiquer d'autres tailles, avec l'option a4paper de la classe de document.

\documentclass[a4paper]{article}

L'exemple ci-dessus illustre comment passer le paramètre facultatif à \documentclass, qui modifiera alors les dimensions de la page en conséquence. Les classes standards de document font partie de LaTeX et ont été conçues de façon à être assez génériques, ce qui explique pourquoi vous avez la possibilité d'indiquer la taille de la page. D'autres classes peuvent avoir plusieurs options, ou au contraire aucune. Normalement, les classes sont documentées pour vous aider à les utiliser.

De plus, il existe plusieurs extensions prévues pour permettre la modification des dimensions d'une page, en changeant les valeurs par défaut de tous les paramètres de la classe de document. Une extension comme a4 est plutôt spécialisée dans un seul type de page. L'une des extensions les plus souples qui s'adapte aux besoins de mise en page est geometry. Elle sera utilisée un certain nombre de fois dans ce guide parce qu'elle dispose de beaucoup de possibilités. Quoi qu'il en soit, pour fixer la taille d'une page, ajoutez simplement la ligne suivante à votre préambule:

\usepackage[a4paper]{geometry}

On peut également indiquer le ou les paramètres avec l'instruction \geometry fournie par l'extension :

\usepackage{geometry}
\geometry{a4paper}

L'option a4paper correspond simplement à l'une des nombreuses tailles de page prédéfinies intégrées. Les autres sont par exemple a0paper, a1paper, …, 6paper, b0paper, b1paper, …, b6paper, letterpaper, legalpaper, executivepaper.

Orientation de la page[modifier | modifier le wikicode]

Quand vous entendez parler de changement d'orientation de la page, cela évoque habituellement un passage au format à l'italienne, ou paysage, le mode portrait étant celui par défaut. Nous présentons deux façons légèrement différentes de changer l'orientation de la page. La première est celle qui consiste à placer tout votre document en mode paysage dès le début. Il existe diverses extensions pour réaliser ce changement, mais le plus simple est l'extension geometry. Il suffit pour l'utiliser, d'inclure cette extension avec l'option landscape (paysage).

\usepackage[landscape]{geometry}

Si de plus vous avez l'intention d'employer l'extension geometry avec une option pour fixer la taille de la page, n'exécutez surtout pas la commande \usepackage deux fois, mais regroupez simplement toutes les options ensemble, en les séparant par des virgules :

\usepackage[a4paper,landscape]{geometry}

ou bien

\usepackage{geometry}
\geometry{a4paper,landscape}

La deuxième méthode permet d'écrire un document en mode portrait et d'afficher une certaine partie du contenu de la page en mode paysage pour une raison d'occupation d'espace ou esthétique. Cette partie pourrait comporter par exemple un très grand diagramme ou une table qui seraient mieux affichés dans l'autre sens. Mais vous voulez que vos en-têtes et titres de pied de page apparaissent au même endroit que dans les autres pages. L'extension lscape est spécialisée dans cette tâche. Elle fournit un environnement landscape, et tout ce qui se trouve dans cet environnement est tourné dans un sens. Les dimensions de la page ne sont pas modifiées. Cette possibilité peut être appliquée aux livres et aux rapports, comme aux publications scolaires.

Dans le cas d'un tableau ou d'une figure flottante, l'extension rotating fournit les environnements sidewaystable et sidewaysfigure qui remplace les environnements table et figure.

Modification des marges[modifier | modifier le wikicode]

Les lecteurs qui utilisent régulièrement un traitement de texte classique, se demandent probablement pourquoi il y a tellement d'espace blanc entourant un texte produit avec LaTeX. Il y a une bonne raison à cela, et elle est directement en rapport avec la lisibilité. Allez lire quelques livres, et sélectionnez des lignes au hasard. Comptez le nombre de caractères par ligne. Je parie que la moyenne est d'environ 66 caractères. Les études ont prouvé qu'il est plus facile de lire le texte quand il y a entre 60 et 70 caractères par ligne, et il semblerait que 66 soit le nombre optimal. Par conséquent, les marges de page sont positionnées afin d'assurer la meilleure lisibilité possible. Par ailleurs, la disposition des blancs suit le procédé dit des « blancs tournants  » (cf. Rédaction technique > Lisibilité > Livre). On ajoute souvent un blanc du côté de la marge intérieure au cas où le document aurait la prétention d'être relié, cela doit laisser l'espace nécessaire pour lier les pages.

Ce sont en fait les traitements de texte standard qui définissent des marges trop petites !

Cependant les marges produites par les classes standards — article.cls, report.cls, books.cls — peuvent apparaître trop larges aux yeux d'un Européen utilisant du papier A4. Une possibilité est d'utiliser des classes alternatives comme celles proposées par le projet KOMA-Script[1]scrartcl.cls, scrreprt.cls, scrbook.cls. Une autre possibilité est de modifier les paramètres de la mise en page à l'aide de l'extension geometry. Il y a quatre paramètres prévus pour les marges de page qui peuvent être modifiées au moyen de cette extension: top, bottom, left, right (haut, bas, gauche, droit).

\usepackage[top=longueur, bottom=longueur, left=longueur, right=longueur]{geometry}

ou bien

\usepackage{geometry}
\geometry{top=longueur, bottom=longueur, left=longueur, right=longueur}

Remplacez simplement longueur par la longueur désirée (par exemple. 3cm) pour chaque paramètre que vous voulez changer.

Styles de page[modifier | modifier le wikicode]

Personnalisation avec l'extension fancyhdr[modifier | modifier le wikicode]

L'appel à l'extension fancyhdr est sans doute la manière la plus commode de façonner vos en-têtes et pieds de page. Cette extension est très souple d'utilisation, et je vais simplement vous donner un avant goût de ce que vous pouvez faire avec. Vous pourrez trouver un guide plus complet, en consultant la documentation écrite par l'auteur de l'extension.

Pour commencer, ajoutez les lignes suivantes à votre préambule:

\usepackage{fancyhdr}
\pagestyle{fancy}

L'en-tête et le pied de page comportent chacun trois parties correspondant à des positions horizontales différentes (à gauche, au centre ou à droite). Pour fixer leurs valeurs, les commandes suivantes sont disponibles:


\lhead[lh-even]{lh-odd} \lfoot[lf-even]{lf-odd}
\chead[ch-even]{ch-odd} \cfoot[cf-even]{cf-odd}
\rhead[rh-even]{rh-odd} \rfoot[rf-even]{rf-odd}

L'effet produit par chacune de ces commandes se devine assez facilement: si une commande contient le mot head, alors elle va affecter l'entête de la page etc., et évidemment, l, c et r signifient gauche (left), centre (centre) et droite (right) respectivement. Les documents peuvent être recto ou recto-verso. Les articles sont par défaut recto, et les livres sont recto-verso. Les documents recto-verso différencient les pages de gauche (impaires) et de droite (paires), tandis que les documents recto ne font pas cette différence. Un exemple:

 \fancyhead{}
 \fancyfoot{}

 \lhead{Andrew Roberts}
 \rhead{\today}
 \rfoot{\thepage}

Page de n à m[modifier | modifier le wikicode]

Certaines personnes aiment numéroter les pages du document entier en indiquant éventuellement le nombre total de pages ; mais Latex ne permet d'accéder qu'au numéro de la page courante et par défaut vous ne pourrez que placer au bas de la page ce numéro. Cependant, vous pouvez inclure l'extension lastpage pour déterminer le nombre total de pages, et l'employer de la manière suivante:

\usepackage{lastpage}
...
\cfoot{\thepage\ sur \pageref{LastPage}}


Remarquez les lettres majuscules de LastPage. Ainsi, en plaçant une barre oblique inversée après \thepage pour laisser un espacement approprié entre le numéro de page et le « sur ». Et rappelez-vous que lorsque vous utilisez des références, vous devez exécuter latex une nouvelle fois pour résoudre les références croisées.

Pages multicolonnes[modifier | modifier le wikicode]

Il est courant de rencontrer des articles possédant deux colonnes de texte. Heureusement, les éditeurs fournissent souvent les classe de document qui permettent de formater le texte de cette façon sans demander de travail à l'auteur. Même si une telle classe de document n'est pas fournie, il est aisé de formater le texte en deux colonnes. Il suffit de passer l'argument twocolumn à la classe de document courante. Pour un article par exemple cela donne: \documentclass[twocolumn]{article}

Bien que cette solution fonctionne dans 9 cas sur 10, elle comporte certaines limitations qui sont éliminées par l'extension multicol. De plus cette extension possède les avantages suivants :

  • Supporte jusqu'à 10 colonnes,
  • Fournit un environnement multicol qui permet d'utiliser différents nombre de colonnes dans un même document,
  • Cet Environnement peut être inclus dans d'autres environnements comme figure,
  • Les colonnes produites par cette extension sont équilibrées, ce qui permet d'obtenir des colonnes de taille similaires pour la dernière page,
  • La séparation verticale entre colonnes peut être paramétrée.

Les éléments flottant ne sont pas complètement supportés par cette extension. Elle traite cependant bien les éléments qui s'étendent sur toutes les colonnes (c'est-à-dire du type \begin{figure*}).

Le code suivant montre comment créer une partie de texte sur deux colonnes:

\begin{multicols}{2}
  Du texte très intéressant qui doit
  être mis sur deux colonnes.
  \ldots
\end{multicols}

Le paramètre \columnseprule contrôle la largeur du trait séparant les deux colonnes. Sa valeur par défaut est zéro, ce qui a pour résultat de ne pas tracer de ligne entre les colonnes. Pour obtenir une ligne de un point de large entre les colonnes il faut insérer le code suivant avant l'environnement multicol:

\setlength{\columnseprule}{1pt}

Le paramètre \columnsep contrôle l'espace entre les colonnes. Pour espacer les colonnes de deux centimètres, il faut insérer le code suivant:

\setlength{\columnsep}{2cm}

Mise en forme des pages d'un manuel[modifier | modifier le wikicode]

Sommaire[modifier | modifier le wikicode]

Ce guide est relativement court, et cela est dû en grande partie au fait que la philosophie de Latex est de laisser le rédacteur se concentrer sur le contenu, et de prendre en charge (en utilisant éventuellement des classes appropriées développées par des typographes) l'organisation de la présentation. La prochaine étape pour mieux maîtriser l'organisation de la présentation d'une page est de commencer à concevoir votre propre classe. Malheureusement, ce n'est pas une tâche aisée, et ce fardeau est souvent laissé aux professionnels !

Notes et références[modifier | modifier le wikicode]

  1. Le projet KOMA-script a été créé à l'origine (1994) pour la typographie allemande. Les classes proposent des options intéressantes et sont de fait utilisées maintenant par des utilisateurs d'autres langues.