Comment modifier des marges en cours de document ?

L'une des surprises caractéristiques de l'utilisation de \TeX est que vous ne pouvez pas changer la largeur ou la longueur de la zone du texte dans le document, même en modifiant directement les paramètres de taille du texte. \TeX ne peut pas changer la largeur du texte à la volée, et \LaTeX ne regarde la hauteur du texte qu'au début de la construction d'une nouvelle page. La règle est donc que les paramètres ne doivent être modifiés que dans le préambule du document, c'est-à-dire avant l'instruction \begin{document}, avant toute composition. Voici comment contourner cette règle.

Modification de la largeur de la page

Avec des commandes de base

Pour ajuster la largeur du texte en cours de document, la méthode suivante passe par un environnement :

\newenvironment{changemargin}[2]{%
  \begin{list}{}{%
    \setlength{\topsep}{0pt}%
    \setlength{\leftmargin}{#1}%
    \setlength{\rightmargin}{#2}%
    \setlength{\listparindent}{\parindent}%
    \setlength{\itemindent}{\parindent}%
    \setlength{\parsep}{\parskip}%
  }%
  \item[]}{\end{list}}

L'environnement prend deux arguments et indente les marges gauche et droite des valeurs de ces paramètres. Les valeurs négatives réduiront les marges et l'exemple suivant rétrécit les marges gauche et droite de 1 centimètre :

\begin{changemargin}{-1cm}{-1cm}
...
\end{changemargin}

Cette solution marche car l'environnement (qui est proche de l'environnement \LaTeX quote) ne change pas la largeur du texte, ce qui évite tout problème avec \TeX. L'environnement déplace simplement le texte à l'intérieur de la largeur que \TeX connait.

Avec l'extension changepage

L'extension changepage fournit des commandes prêtes à l'emploi pour faire ce qui précède. Elle inclut des réglages changeant les décalages appliqués à votre texte en fonction de sa disposition sur une page au recto ou au verso. La structure de changepage correspond à celle de la classe memoir.

Avec l'extension chngpage

:!: L’extension chngpage est classée comme obsolète. Ce qui suit est informatif.

L'extension plus ancienne chngpage fournit les mêmes fonctionnalités, mais elle utilise une syntaxe assez différente. L'extension changepage doit être utilisée pour la remplacer pour tout nouveau document.

Modification de la longueur de la page

Avec des commandes de base

Changer les dimensions verticales d'une page est assez simple : la commande \LaTeX \enlargethispage ajuste la taille de la page courante en fonction de son argument. Voici un exemple courant augmentant la longueur de la page de la hauteur d'un ligne de texte :

\enlargethispage{\baselineskip}

Et voici l'opération opposée, réduisant la longueur de la page de la hauteur d'un ligne de texte :

\enlargethispage{-\baselineskip}

Avec l'extension addlines

Le processus est (dans une certaine mesure) simplifié par l'extension addlines : sa commande \addlines prend comme argument le nombre de lignes à ajouter à la page (plutôt qu'une longueur) : la documentation de l'extension présente une analyse du moment où la commande peut fonctionner ou pas.


Source: Changing margins "on the fly"

2_composition/texte/pages/modifier_les_marges_en_cours_de_document.txt · Dernière modification: 2021/02/14 16:08 par yannick.tanguy
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0