Comment gérer des longueurs ?#

1.  Commandes de base#

Plusieurs longueurs sont prédéfinies en Par exemple les dimensions de la feuille et de la zone d’écriture.

Pour utiliser une nouvelle longueur, il faut avant tout la déclarer à l’aide de la commande \newlength{⟨longueur⟩} où l’argument obligatoire est le nom de la longueur, qui doit obligatoirement commencer par une contre-oblique.

Initialement, la longueur est nulle. Il existe des commandes pour modifier une longueur :

  • \setlength{\longueur}{valeur} et

  • \addtolength{\longueur}{valeur}.

On peut utiliser plusieurs unités pour spécifier les longueurs. Voir le paragraphe unités à ce sujet.

Pour afficher la valeur d’une longueur en points (pt), on utilisera la commande \the\longueur.

\newlength{\largeur}
\setlength{\largeur}{12cm}

La largeur est : \the\largeur

2.  Longueurs fixes et longueurs flexibles#

Une longueur peut être rendue flexible en ajoutant les mots-clés plus et minus à sa définition. Cela permet d’ajuster l’espacement quand un respect strict de la valeur donnée produirait un mauvais effet : ainsi, un espacement vertical peut être réduit si cela permet d’éviter qu’un paragraphe se termine sur la première ligne de la page suivante. L’exemple suivant traite le cas d’un espacement horizontal.

\newlength{\pasflexible}
\setlength{\pasflexible}{0.5em}
\newlength{\flexible}
\setlength{\flexible}{0.5em plus 0.3em minus 0.3em}

\newcommand*{\seppasflexible}{\hspace{\pasflexible}|\hspace{\pasflexible}}
\newcommand*{\sepflexible}{\hspace{\flexible}|\hspace{\flexible}}

\thispagestyle{empty}

Voici du texte\seppasflexible que l'on a\seppasflexible voulu
diviser\seppasflexible en micro-unités\seppasflexible de quelques petits
mots\seppasflexible qui vont\seppasflexible plus ou moins\seppasflexible
ensemble.\seppasflexible En revoici\seppasflexible en revoilà un.

Voici du texte\sepflexible que l'on a\sepflexible voulu diviser\sepflexible en
micro-unités\sepflexible de quelques petits mots\sepflexible qui
vont\sepflexible plus ou moins\sepflexible ensemble.\sepflexible En
revoici\sepflexible en revoilà un.

Dans le premier paragraphe, où les espaces autour du séparateur | ont une longueur fixe, le compilateur ne peut pas éviter que la dernière ligne ne contienne que trois caractères : pour y parvenir, il aurait dû resserrer les mots de la ligne précédente de manière excessive. Dans le second paragraphe, au contraire, le compilateur a tiré parti de la possibilité de réduire légèrement la longueur de ces espaces pour placer la chaîne de caractères un. dans la deuxième ligne, évitant ainsi de produire une « ligne à voleur ».