Emphase (\emph)

Mettez en évidence un mot à l'intérieur d'une phrase déjà mise en évidence, et il ne penche pas davantage : il se redresse. Imbriquez \emph{...} en LaTeX et la forme bascule à chaque niveau — italique, puis droit (romain), puis italique de nouveau. Faites la même chose avec \textit et rien ne bouge : empilez autant de couches que vous voulez, tout reste en italique. La différence n'est pas affaire de goût. \emph inscrit le sens « ceci est accentué », non l'instruction « penchez ceci », et l'apparence de ce sens se décide ensuite. Cette page suit le mécanisme de bascule, l'écart inattendu entre \em et \emph, la correction d'italique \/, et la raison pour laquelle souligner en LaTeX est plus délicat qu'il n'y paraît — chiffres issus de compilations réelles à l'appui.

La différence entre \emph et \textit

\emph regarde son contexte et bascule ; \textit penche sans condition. Dans un entourage droit, \emph compose son argument en italique ; à l'intérieur d'un texte déjà italique, ce même \emph le remet droit. Le but est de rester distinct du texte courant : si celui-ci penche, se tenir droit sert mieux ce but. \textit ne fait pas ce raisonnement. Employé dans un passage italique, il ne change rien visuellement et le mot que l'on voulait accentuer se fond dans son voisinage. C'est la raison principale pour laquelle l'accentuation passe par \emph et non par \textit.

latex
% nesting the two commands, side by side
\emph{outer \emph{inner \emph{deepest}}}

\textit{outer \textit{inner \textit{deepest}}}

Composez ces deux lignes en affichant à chaque niveau l'attribut de forme que NFSS conserve, et la différence saute aux yeux. \emph bascule itnitn, une inversion par niveau ; \textit annonce ititit et ne bouge jamais. Et ce que \emph examine n'est pas « est-ce de l'italique » mais « est-ce actuellement penché ». À l'intérieur de \textsl{...} (incliné), un \emph revient lui aussi à n, c'est-à-dire droit ; à l'intérieur de \textbf{...}, la graisse bx est conservée et seule la forme devient it, ce qui charge une italique grasse — cmbxti10 en Computer Modern. Les axes étant indépendants, l'accentuation se superpose sans détruire la graisse.

ContexteForme obtenue par \emphForme obtenue par \textit
upright body textitalique (it)italique (it)
inside \emphretour au droit (n) — l'accent se voitreste italique — l'accent disparaît
inside \textitretour au droit (n)reste italique (aucun changement)
inside \textslretour au droit (n) — toute inclinaison compteécrasé en italique (it)
inside \textbfitalique, graisse bx conservéeitalique, graisse bx conservée
italic correctioninsérée automatiquementinsérée automatiquement (la déclaration \itshape non)
when to useaccent dans la phrase — dès qu'il s'agit de senstitres d'ouvrages, noms d'espèces, mots étrangers — quand l'inclinaison est l'objectif

Pourquoi l'imbrication redresse l'accentuation

La réponse est dans la définition elle-même. La ligne 11172 de latex.ltx, le cœur de LaTeX, tient en une ligne : \DeclareTextFontCommand{\emph}{\em}. Dix lignes plus haut, la ligne 11162 dit \DeclareTextFontCommand{\textbf}{\bfseries}. \emph n'est donc pas une commande de police : c'est la déclaration bascule \em emballée dans une forme à argument, produite par la même fabrique que celle qui transforme \bfseries en \textbf. La capacité d'inverser appartient à \em, non à \emph, et \em choisit sa destination après avoir examiné la forme courante. Cette décision se prend à nouveau, indépendamment, à chaque niveau d'imbrication.

Cette conception reprend exactement la répartition entre <em> (accentuation) et <i> (italique) du HTML — et LaTeX2e l'implémente depuis 1994. <em> porte le sens « accentué » et la feuille CSS décide de l'apparence ; en LaTeX, on écrit de même uniquement le sens dans le corps avec \emph et l'on laisse la classe ou le préambule décider de l'aspect. Le bénéfice pratique est concret. Si l'on décide plus tard que l'accentuation doit être grasse plutôt qu'italique, on modifie l'unique endroit qui la définit et tout le document suit, sans toucher au manuscrit. Semez \textit{...} dans le texte, et chaque changement de politique oblige à retrouver et réécrire chaque occurrence — et comme \textit sert aussi aux titres d'ouvrages, un simple rechercher-remplacer ne peut même pas distinguer les deux cas.

Concevoir les niveaux d'accentuation (\DeclareEmphSequence)

L'alternance italique/droit n'est que la valeur par défaut, et le préambule peut la remplacer entièrement. La commande pour cela est \DeclareEmphSequence, introduite dans LaTeX News 31 (2020). Son argument est une liste de déclarations de police séparées par des virgules, prises dans l'ordre pour le premier niveau d'accentuation, le deuxième, et ainsi de suite. Jusque-là, LaTeX ne savait que faire la navette entre italique et droit ; avec ce mécanisme, on peut décider par exemple que le premier niveau est italique, le deuxième en petites capitales et le troisième en petites capitales italiques.

latex
% in the preamble: italic, then small caps, then italic small caps
\DeclareEmphSequence{\itshape,%
  \upshape\scshape,\itshape}
  • Si l'imbrication va plus loin que la liste\emreset est employé (par défaut \ulcshape\upshape, c'est-à-dire le droit ordinaire), et à partir du niveau suivant la liste repart du début. Avec la liste à deux entrées ci-dessus, cinq niveaux se mesurent itscnitsc : la réinitialisation tombe au niveau trois et le cycle reprend au niveau quatre.
  • Une vérification « intelligente » intervient — LaTeX contrôle que la déclaration fournie modifie réellement la police courante ; sinon, ce niveau est sauté et le suivant essayé, en supposant que la police y a déjà été changée à la main.
  • \emforce contourne la vérification — pour une entrée qui ne change que la couleur, par exemple, les attributs de police ne bougent pas alors que l'apparence change bel et bien, et la vérification se trompe. Ajouter \emforce à cette entrée force son application.

\em ou \emph : lequel employer

Dans un manuscrit, employez \emph{...}. \em effectue la même bascule mais n'ajoute pas la correction d'italique. \em est une déclaration sans argument ; on en limite la portée par des accolades, comme dans {\em seulement ceci}. La logique d'inversion est identique à celle de \emph — ou plutôt, comme on vient de le voir, \em est ce que \emph contient. La différence tient à l'emballage : seule la forme à argument construite par \DeclareTextFontCommand glisse une correction dans la jointure entre un glyphe penché et le suivant. À la mesure, \textit{f}h fait 10,74167 pt de large contre 8,62222 pt pour {\itshape f}h ; \emph{f}h fait 10,74167 pt et {\em f}h 8,62222 pt. Les 2,11945 pt disparaissent purement et simplement. Avec une déclaration, c'est à vous d'écrire le \/ final.

Ce qu'est vraiment la correction d'italique \/

La correction d'italique est un nombre qui indique de combien un caractère déborde vers la droite, et elle est stockée caractère par caractère dans le fichier de métriques. Un glyphe penché saille vers le haut et la droite, mais sa largeur de composition (3,06665 pt pour f) n'en tient pas compte. Si une lettre droite suit immédiatement, le débord la heurte. Les métriques de TeX (TFM) portent ce débord depuis l'origine sous le nom de CHARIC. Dans cmti10, f vaut CHARIC R 0.211945 — soit 2,11945 pt à la taille de dessin 10 pt, ce qui correspond jusqu'à la dernière décimale à l'écart mesuré plus haut entre \textit{f}h et {\itshape f}h. \/ n'est rien d'autre que l'instruction « insère le CHARIC du caractère précédent sous forme d'espace ». À noter que même dans le romain cmr10, le CHARIC de f n'est pas nul : il vaut 0,077779, à cause du crochet.

Dire que \emph et \textit insèrent la correction automatiquement ne veut pas dire qu'ils le font toujours. Si le caractère suivant est une virgule ou un point, la correction est omise. La ligne 11250 de latex.ltx en donne la liste — \def \nocorrlist {,.} — car ces signes sont bas et se glissent justement sous le débord ; ajouter de l'espace ne ferait que les détacher. La mesure confirme : \textit{f}. et {\itshape f}. font tous deux exactement 5,84444 pt. Inversement, pour supprimer la correction, placez \nocorr dans l'argument : \textit{\nocorr text} supprime celle du début, \textit{text\nocorr} celle de la fin. \nocorrlist lui-même se remplace par \renewcommand, mais la virgule et le point par défaut posent rarement problème.

latex
% argument form: the correction is added for you
He was \emph{very} clever.

% declaration form: add \/ at the end of the slanted run
He was {\em very\/} clever.

% before a comma or period nothing is added anyway
He was \emph{very}, and cheerful too.

% to suppress it explicitly
\textit{slanted\nocorr}text

Pourquoi \underline ne peut pas passer à la ligne

\underline n'est pas une commande de texte : elle rend simplement utilisable en prose le soulignement mathématique. C'est pourquoi son contenu devient une boîte indivisible, impossible à couper. La définition commence ligne 13309 de latex.ltx et, en mode texte, se développe en $\@@underline{\hbox{#1}}\m@th$. Une \hbox est atomique : le découpeur de lignes de TeX ne peut y pénétrer. Placez \underline{alpha beta gamma delta epsilon zeta eta theta iota kappa lambda mu} dans un paragraphe large de 150 pt et la compilation signale Overfull \hbox (170.25879pt too wide) : la locution soulignée déborde de 170 pt dans la marge droite. Un ou deux mots passent ; dès qu'on souligne une phrase, tout casse. La césure s'y interrompt également.

Le soulignement n'a jamais été un outil de la typographie au plomb : c'est un substitut inventé pour la machine à écrire. Sur une machine sans caractères penchés ni gras, le seul moyen de dire « j'ai insisté ici » consistait à remonter le cylindre et à frapper une rangée de tirets bas. Dans un atelier qui compose de vrais caractères, ce besoin n'existe pas : les livres ne soulignent pas, et les classes standard de LaTeX n'offrent donc pas le soulignement comme moyen d'accentuation. Si l'envie de souligner vous prend, vérifiez d'abord s'il vous faut vraiment un filet ou si vous voulez de l'accentuation. Pour l'accentuation, \emph ; pour un titre d'ouvrage, \textit ; pour un niveau du document, \section et ses parents : dans presque tous les cas, un meilleur outil existe déjà. Le filet s'impose vraiment lorsqu'il est lui-même prescrit : consigne d'un relecteur, gabarit d'un document juridique, case à compléter d'un manuel de langue.

Un soulignement qui passe à la ligne : ulem et soul

S'il faut un soulignement qui passe à la ligne, chargez ulem ou soul. Les deux accompagnent TeX Live 2024, aucune installation n'est nécessaire. Dans le même paragraphe large de 150 pt où \underline débordait de 170,26 pt, le \uline{...} d'ulem et le \ul{...} de soul ne débordent que de 0,30 pt : ils se coupent donc comme du texte ordinaire. ulem est le package de Donald Arseneau, entretenu depuis 1989 ; outre \uline, il propose \uuline (double soulignement), \uwave (ondulé), \sout (barré) et \xout (rayé). soul a été publié par Melchior Franz en 1998 et est aujourd'hui maintenu par l'Oberdiek Package Support Group ; à côté de \ul, il gère des formes d'accentuation qui ne sont pas des filets — \so (interlettrage), \st (barré) et \hl (surlignage).

Un piège célèbre se cache ici : le seul fait de charger ulem transforme toutes les accentuations du document en soulignements. L'en-tête d'ulem.sty indique explicitement qu'en LaTeX le package remplace l'italique par un soulignement dans le texte accentué, et la ligne 313, \def\ULforem{\useunder{\uline}{\em}{\emph}}, détourne \em et \emph en bloc. À la mesure : avec ulem chargé tel quel, la boîte de \emph{word} a une profondeur de 2,9 pt — le filet suspendu sous la ligne de base — tandis que le même \emph{word} juste après une déclaration \normalem retrouve une profondeur de 0,0 pt. Autrement dit, dès que vous écrivez \usepackage{ulem}, chaque \emph du manuscrit devient souligné. Pour conserver l'accentuation ordinaire tout en disposant des commandes de soulignement, écrivez \usepackage[normalem]{ulem}. C'est un grand classique des sueurs froides à la relecture du PDF juste avant l'envoi : après avoir ajouté ulem, revoyez toutes les pages.

latex
% keep \emph italic; take only the rule-drawing commands
\usepackage[normalem]{ulem}   % \uline \uuline \uwave \sout \xout
% \usepackage{soul}           % \ul \so \st \hl

\uline{this underline breaks across lines just like ordinary text}

\sout{deleted} \quad \uwave{doubtful}

Jusqu'où peut-on accentuer

Règle empirique : deux passages accentués ou plus dans un même paragraphe signalent qu'il faut corriger la prose, pas la police. L'accentuation fonctionne parce que son entourage ne l'est pas. Plus il y en a sur une page, plus chaque occurrence paraît du même poids, jusqu'à ce que plus rien ne ressorte. L'accentuation paie à la révision, non à la rédaction. Marquez au brouillon les mots importants avec \emph si vous voulez, mais relisez avant de rendre et demandez-vous si définitions, contrastes, mises en garde et conclusions ne pourraient pas être distinguées par la structure des phrases. Là où la structure fait ce travail, l'accentuation ne subsiste que sur le seul point que le lecteur ne doit pas manquer. Notons au passage qu'en français les guillemets et l'italique se partagent des rôles distincts : suivez les usages de votre domaine et de votre classe.

  • L'employer à la première occurrence d'un terme. Marquer avec \emph un terme que l'on vient de définir permet de récolter ensuite ces endroits mécaniquement dans un index ou un glossaire.
  • Séparer ce qui relève de l'apparence. L'italique des titres d'ouvrages, des noms d'espèces et des mots étrangers relève de \textit. Mêlé à l'accentuation, il sera emporté le jour où l'apparence de l'accentuation changera.
  • Ne pas remplacer en masse par \textbf. Si seule l'apparence doit changer, changez-la dans le préambule avec \DeclareEmphSequence. Un remplacement qui efface le sens dans le corps est irréversible.
  • Fixer la politique par document. Si l'accentuation change d'aspect d'un chapitre à l'autre, le lecteur se trompe sur l'importance même.
  • Chercher \textit{ avant de rendre. Vérifier qu'aucun ne tient lieu d'accentuation et que \emph ne s'est pas multiplié dans les titres et les légendes.