Pour dire à LaTeX « laisse 2cm ici » ou « ajoute l’équivalent d’une ligne d’espace », on écrit une longueur. Cette page commence par les unités de longueur et leurs conversions exactes, puis traite des longueurs élastiques, des commandes qui émettent réellement de l’espace (\hspace, \vspace, etc.), et enfin de la manière de définir et réutiliser des longueurs comme des variables.
Unités de longueur
Une longueur s’écrit comme un nombre suivi d’une unité (12pt, 2.5cm, -3mm ; les décimales et valeurs négatives sont autorisées). Les unités se divisent en deux familles : les unités absolues, fixes quelle que soit la police (pt, mm, in, …), et les unités relatives à la police, qui suivent la taille courante (em, ex). Ces dernières sont utiles quand l’espace doit grandir naturellement avec la police.
L’unité pivot est pt (point TeX). TeX définit 1 inch = 72.27pt, et toutes les conversions en dépendent. L’unité trompeuse est bp (big point), le point PostScript/PDF où 1 inch = 72bp. pt et bp diffèrent d’environ 0,4 %, donc attention aux confusions lors d’échanges avec des outils graphiques basés sur bp.
| Unité | Nature / conversion | Notes |
|---|---|---|
pt | Point TeX. 1in = 72.27pt | Référence de toutes les longueurs |
bp | Big point. 1in = 72bp | Point PostScript/PDF |
mm | Millimètre. 1mm ≈ 2.845pt | Métrique |
cm | Centimètre. 1cm = 10mm | Métrique |
in | Pouce. 1in = 72.27pt | Impérial |
pc | Pica. 1pc = 12pt | Unité typographique traditionnelle |
sp | Scaled point. 1pt = 65536sp | Plus petite unité de TeX (interne) |
em | ≈ taille courante / largeur de M | Relatif à la police ; horizontal |
ex | Hauteur x de la police courante | Relatif à la police ; vertical |
dd | Point Didot. 1dd ≈ 1.07pt | Tradition européenne ; cc = 12dd |
sp (scaled point) est la plus petite unité interne de TeX pour représenter les longueurs : 1pt = 65536sp. On ne l’écrit presque jamais, mais elle indique la précision la plus fine de TeX. Les unités européennes de typographie dd (point Didot) et cc (cicéro, cc = 12dd) sont aussi disponibles, mais rares dans les documents modernes.
L’unité relative em vaut à peu près la taille de police courante (traditionnellement la largeur d’un M majuscule) et convient aux retraits et espaces horizontaux ; ex est la hauteur x de la minuscule x et sert aux ajustements verticaux fins. Avec une police 10pt, 1em ≈ 10pt. Le mode mathématique ajoute une unité dédiée, mu (math unit), égale à 1/18 d’un em ; les espaces comme \quad y sont définies.
Longueurs élastiques
Une longueur fixe comme 12pt est une longueur rigide. Une longueur qui peut s’étirer et se rétracter selon les besoins est une longueur élastique. plus indique l’étirement possible, minus la rétraction possible. Par exemple, 1cm plus 2mm minus 1mm signifie « normalement 1cm, extensible jusqu’à 1,2cm, réductible jusqu’à 0,9cm ». LaTeX exploite cette marge pour équilibrer naturellement lignes et pages.
% 通常 1cm、最大 1.2cm まで伸び、最小 0.9cm まで縮む縦アキ
\vspace{1cm plus 2mm minus 1mm}La longueur élastique spéciale à étirement infini est \fill. Sa longueur naturelle est 0, mais elle grandit autant que nécessaire : parfaite pour « pousser le reste afin de remplir l’espace ». Plusieurs \fill sur la même ligne ou colonne partagent l’espace également. Pour des rapports pondérés, utilisez \stretch{n} (= n fois \fill) : \hspace{\stretch{2}}…\hspace{\stretch{1}} partage l’écart en 2:1.
Espace horizontal
La commande de base pour insérer un espace horizontal dans une ligne est \hspace{longueur} : \hspace{2cm} insère un blanc de 2cm. Mais un \hspace situé en début ou fin de ligne est supprimé lors de la coupure du paragraphe, afin qu’aucun blanc parasite ne reste au bord. Pour conserver l’espace même en bord de ligne, utilisez la forme étoilée \hspace*{longueur}.
\hfill est le raccourci de \hspace{\fill} ; il repousse ce qui l’entoure aussi loin que possible. C’est la méthode classique pour placer un mot à gauche et un autre à droite. (Il est aussi supprimé en bord de ligne ; utilisez \hspace*{\fill} si vous devez le conserver.) Au lieu de blanc, on peut remplir l’écart par un trait avec \hrulefill ou par des points avec \dotfill, comme entre un titre et son numéro de page dans une table.
Name:\hspace{2cm}Date:\par
\noindent 第1章 はじめに\dotfill 1\par
\noindent 左\hfill 右Pour de petits espaces fixes, les commandes relatives à la police sont pratiques. \quad vaut 1em (= 18mu) et \qquad le double, 2em. Pour une espace très fine, utilisez \, (thin space, 3mu). Comme ces espaces suivent la police, l’équilibre visuel reste correct quand la taille change.
Espace vertical
Pour insérer un espace vertical, par exemple entre deux paragraphes, utilisez \vspace{longueur}. Comme avec \hspace, un espace qui tombe à une limite de page est supprimé, afin de ne pas créer un blanc parasite en haut de page. Pour le conserver même à un saut de page, utilisez \vspace*{longueur}. \vfill vaut \vspace{\fill} et repousse verticalement le reste de la colonne, pratique pour centrer verticalement une page d’une seule ligne.
Pour les espaces verticaux courants, trois commandes sont prêtes : \smallskip, \medskip, \bigskip. Dans les classes standard, leurs valeurs par défaut sont respectivement 3pt plus 1pt minus 1pt, 6pt plus 2pt minus 2pt et 12pt plus 4pt minus 4pt. Ce sont toutes des longueurs élastiques, qui s’ajustent légèrement à la page. Les utiliser plutôt que des valeurs codées en dur garde le document cohérent.
Définir et utiliser des longueurs
Si vous réutilisez la même longueur dans tout un document, créer un registre de longueur, comme une variable, facilite la maintenance. \newlength{\mylen} déclare une nouvelle longueur \mylen, \setlength{\mylen}{2em} lui assigne une valeur, et \addtolength{\mylen}{1pt} l’ajuste. Changez la valeur à un seul endroit et toutes les références suivent.
On peut aussi calculer avec des longueurs existantes comme \textwidth (largeur du corps), \linewidth (largeur de ligne courante) et \baselineskip (interligne). Il suffit de préfixer un facteur pour les mettre à l’échelle : 0.8\textwidth vaut 80 % de la largeur du texte. Pour des calculs plus riches, chargez le paquet calc, qui permet des expressions avec + - * /.
\usepackage{calc}
% ...
\newlength{\halfcol}
\setlength{\halfcol}{(\textwidth - 2em) / 2}
\noindent\hspace*{0.8\textwidth}右寄せの見出しConstruire ainsi les longueurs relativement à des largeurs existantes conserve les proportions même si le format de papier ou les marges changent. Une expression basée sur \textwidth rend le document bien plus robuste aux changements de mise en page qu’une valeur codée en dur comme 8cm.