Suivant: , Monter: Spacing in math mode   [Table des matières][Index]


16.6.1 \smash

Synopsis :

\smash{sous-formule}

Compose sous-formule en aplatissant sa boîte comme si sa hauteur et sa profondeur étaient nulles.

Dans l’exemple suivant l’exponentielle est si haut que sans la commande \smash LaTeX séparerait sa ligne de la ligne juste au-dessus, et l’irrégularité de l’espacement des lignes pourrait être visuellement malheureuse.

Pour calculer la tétration $\smash{2^{2^{2^2}}}$,
évaluer de haut en bas, comme $2^{2^4}=2^{16}=65536$.

(À cause du \smash l’expression imprimée pourrait se superposer à la ligne du dessus, aussi vous voudrez sans doute attendre la version finale du document avant de faire de tels ajustements).

Ce qui suit illustre l’effet de \smash en utilisant \fbox pour cerner la boîte que LaTeX met sur la ligne. La commande \barrenoire fait une barre s’étendant de 10 points sous la ligne de base jusqu’à 20 points au-dessus.

\newcommand{\barrenoire}{\rule[-10pt]{5pt}{30pt}}
\fbox{\barrenoire}
\fbox{\smash{\barrenoire}}

La première boîte que LaTeX place fait 20 points de haut et 10 points de profondeur. Mais la seconde boîte est traitée par LaTeX comme ayant une hauteur et une profondeur nulles, même si l’encre imprimée sur la page s’étend toujours bien au-dessus et au-dessous de la ligne.

La commande \smash apparaît souvent en mathématiques pour ajuster la taille d’un élément qui entoure une sous-formule. Ci-dessous la première racine s’étend sous la ligne de base alors que la seconde repose juste sur la ligne de base.

\begin{equation}
\sqrt{\sum_{0\leq k< n} f(k)}
\sqrt{\vphantom{\sum}\smash{\sum_{0\leq k< n}} f(k)}
\end{equation}

Notez l’usage de \vphantom pour donner à la commande \sqrt un argument avec la même hauteur que la \sum (voir \phantom & \vphantom & \hphantom).

Alors que le plus souvent on l’utilise en mathématique, la commande \smash peut apparaître dans d’autres contextes. Toutefois, elle n’assure pas le passage en horizontal. Ainsi si elle débute un paragraphe il est préférable de mettre en premier un \leavevmode, comme dans la dernière ligne de l’exemple ci-dessous :

xxx xxx xxx

\smash{yyy}  % sans renfoncement de paragraphe

\leavevmode\smash{zzz}  % renfoncement normal de paragraphe

Le paquetage mathtools a des opérateurs qui fournissent un contrôle encore plus fin de l’aplatissement d’une boîte de sous-formule.


Suivant: , Monter: Spacing in math mode   [Table des matières][Index]