Suivant: \phantom & \vphantom & \hphantom, Monter: Spacing in math mode [Table des matières][Index]
\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: \phantom & \vphantom & \hphantom, Monter: Spacing in math mode [Table des matières][Index]