Délimiteurs (\left \right)

\sin\left(x\right) et \sin(x) semblent être la même formule, mais leurs largeurs diffèrent. Mesurées avec pdfLaTeX de TeX Live 2024 : 27,4375 pt contre 25,77087 pt. L'écart de 1,66663 pt vient de ce que LaTeX traite tout ce qui se trouve entre \left et \right comme un atome Inner, et qu'un atome Inner reçoit devant lui une espace fine de 3 mu. LaTeX propose deux familles de délimiteurs : l'automatique \left \right et les quatre tailles choisies à la main \big \Big \bigg \Bigg. Les deux plaintes que tout le monde connaît — « les parenthèses sont trop grandes » et « impossible de couper une ligne dans \left\right » — tiennent toutes deux à ce choix. Cette page le tranche à l'aide de mesures.

Comment \left\right choisit sa taille

Il ne s'étire pas à la hauteur exacte du contenu : il retient la plus petite des tailles de délimiteur préparées dans la fonte qui franchit un seuil. Deux paramètres fixent ce seuil ; dans le LaTeX de TeX Live 2024, \delimiterfactor vaut 901 et \delimitershortfall 5 pt : le délimiteur doit couvrir au moins 90,1 % de la hauteur requise, ou ne pas manquer de plus de 5 pt — la condition la plus indulgente l'emporte. Le caractère écrit immédiatement après \left ou \right est le délimiteur lui-même : ( ) pour les parenthèses, [ ] pour les crochets, \{ \} pour les accolades, \langle \rangle pour les chevrons.

latex
\[
  \left( \frac{a^2 + b^2}{c^2} \right)
  \qquad
  \left[ \sum_{k=1}^{n} \frac{1}{k} \right]
  \qquad
  \left( a, b \right]
\]

Ce seuil est la véritable cause du « parenthèses trop grandes ». Dans un article en 10 pt, augmentez peu à peu la hauteur du contenu : jusqu'à 9 pt une parenthèse de 12 pt (la taille de \big) suffit, et dès qu'elle atteint 10 pt le choix saute directement à une parenthèse de 18 pt, le niveau de \Big. À 12 pt, c'est encore la même parenthèse de 18 pt. Les paliers étant discrets, un contenu à peine plus haut rend les délimiteurs d'un cran plus voyants. Autre liberté : les délimiteurs appariés ne doivent pas être identiques. Un intervalle semi-ouvert comme \left( a, b \right] s'écrit ainsi.

\left…\right contre \bigl…\bigr : l'espacement change

Quand un guide de style recommande \bigl…\bigr plutôt que \left…\right à taille fixe, ce n'est pas affaire de goût : la différence se mesure. TeX attribue à chaque élément d'une formule une classe d'atome et déduit l'espace environnant des couples de classes. Le résultat de \left\right est un atome Inner, \bigl donne un Open, \bigr un Close, et un \big nu un Ord (symbole ordinaire). Un nom de fonction comme \sin est un Op ; un Op suivi d'un Open ne prend aucune espace, suivi d'un Ord ou d'un Inner il prend une espace fine de 3 mu — les 1,66663 pt du premier paragraphe.

ÉcritureClasse d'atomeLargeur mesurée de \sin…(x)
( x )Open / Close25,77087 pt — la référence
\bigl( x \bigr)Open / Close27,15979 pt — seules les glyphes ont grandi
\left( x \right)Inner27,4375 pt — une espace fine de 3 mu s'ajoute
\big( x \big)Ord28,82642 pt — Op→Ord ajoute aussi 3 mu

La dernière ligne du tableau explique pourquoi il ne faut pas se dispenser des suffixes l/r. Un \big( nu est un Ord : il sort donc 1,66663 pt plus large qu'un \bigl( — exactement une espace fine. Dans latex.ltx, la distinction tient en une ligne chacune : \bigl vaut \mathopen\big, \bigr vaut \mathclose\big, et \bigm vaut \mathrel\big. Les lettres viennent de left, right et middle : \bigm ne produit donc pas une parenthèse mais une relation de la taille d'une parenthèse. La barre de la notation en compréhension, \bigm|, en est l'emploi type, et elle mesure une espace forte de 5 mu de chaque côté — 5,55542 pt en tout.

latex
\[
  \sin\bigl( x \bigr)          % Open/Close: no stray space
  \qquad
  \biggl\{\, x \bigm| x > 0 \,\biggr\}
  \qquad
  \bigl( \Bigl[ \,\cdots\, \Bigr] \bigr)
\]

Les tailles réelles de \big \Big \bigg \Bigg — et pourquoi \big ne fait rien en 12 pt

Les quatre tailles sont inscrites en dur comme des longueurs absolues. Chaque définition dans fontmath.ltx tient sur une ligne et entoure une boîte invisible de \left\right : 8,5 pt pour \big, 11,5 pt pour \Big, 14,5 pt pour \bigg, 17,5 pt pour \Bigg. L'unité est le pt, pas le cadratin : changer le corps du document ne change donc pas la hauteur demandée. Dans un article en 10 pt, ( fait 10 pt et \big( 12 pt, l'écart se voit ; ajoutez l'option de classe 12pt et la parenthèse ordinaire fait déjà 12 pt de haut, si bien que \big( mesure alors 9,0 pt de hauteur et 3,0 pt de profondeur — exactement la même boîte qu'un ( simple. Voilà la réponse à « j'ai écrit \big et rien ne change » : dans un document en 12 pt, commencez à \Big.

CommandeHauteur demandée dans fontmath.ltxMesuré dans un article 10 pt (hauteur + profondeur)
(— (la glyphe ordinaire de la fonte)7,5 + 2,5 = 10 pt
\big8,5 pt8,5 + 3,5 = 12 pt
\Big11,5 pt11,5 + 6,5 = 18 pt
\bigg14,5 pt14,5 + 9,5 = 24 pt
\Bigg17,5 pt17,5 + 12,5 = 30 pt

Chaque profondeur vaut 5 pt de moins que sa hauteur parce qu'un délimiteur est centré sur l'axe de la formule. Dans la fonte mathématique standard en 10 pt, l'axe se situe 2,5 pt au-dessus de la ligne de base : une parenthèse de 12 pt se répartit donc en 8,5 pt au-dessus et 3,5 pt en dessous. Trois raisons pratiques de choisir la taille à la main : égaliser les hauteurs sur plusieurs lignes (\left\right mesure chaque ligne séparément, d'où des parenthèses inégales dans une pile de formules), empêcher le saut à la taille supérieure, et maîtriser soi-même l'espace de part et d'autre. À l'inverse, pour une formule isolée dont la hauteur est imprévisible, \left\right va plus vite et risque moins.

Impossible de couper une ligne dans \left\right — ce qui se passe et comment faire

Un segment \left\right forme un seul groupe : un \\ à l'intérieur arrête la compilation. Essayez dans un environnement align et pdfLaTeX de TeX Live 2024 répond : ! Extra }, or forgotten \right., puis ! Missing \right. inserted. Le premier message signifie « la ligne s'est terminée sans qu'un \right soit arrivé », le second « on en a donc ajouté un ». Deux contournements existent, et tous deux ont été vérifiés à la compilation.

latex
\begin{align}
  % 1. fixed manual sizes: close and reopen, same size on both lines
  a &= \biggl( b + c \notag\\
    &\qquad + d \biggr)\\
  % 2. null delimiters: end each fragment with \right. and reopen with \left.
  e &= \left( f + g \right. \notag\\
    &\qquad \left. + h \right)
\end{align}

La première fixe la taille à la main et referme puis rouvre à l'intérieur de chaque ligne ; les deux lignes portent alors des parenthèses du même palier et s'accordent visuellement. La seconde emploie le délimiteur invisible de la section suivante : fermer chaque fragment par \right. et rouvrir par \left.. La taille reste automatique, mais chaque ligne étant mesurée séparément, les parenthèses de gauche et de droite peuvent différer de hauteur. Quand une longue formule se replie autour d'une fraction ou d'une somme, la première voie — tailles manuelles fixes — est la plus commode. La façon dont les fractions et les matrices se replient elles-mêmes relève de leurs propres pages.

! Missing \right. inserted. et ! Extra \right.

Ces deux messages signalent une paire brisée et indiquent quel côté manque. Écrivez un \left, fermez la formule sans \right : vous obtenez ! Missing \right. inserted. — le signe que LaTeX a fourni un \right. pour continuer. À l'inverse, un \right) sans \left donne ! Extra \right. Le premier cas entraîne des messages compagnons, comme ! LaTeX Error: Bad math environment delimiter. et ! Missing $ inserted. ; le plus rapide est donc de remonter à la première erreur et de compter les \left.

Un délimiteur d'un seul côté : \left. et \right.

Placez un point . juste après \left ou \right et rien n'est dessiné de ce côté. Le . compte comme un délimiteur nul : il respecte la règle d'appariement puis s'efface. L'usage le plus courant est la barre d'évaluation : \left. \frac{dy}{dx} \right|_{x=0} laisse la gauche vide et n'étire que la barre de droite à la hauteur du contenu, la condition en bas à droite. Une intégrale définie, \left. \frac{x^3}{3} \right|_{0}^{1}, a la même allure. Avec une taille manuelle, le \left correspondant n'est même pas nécessaire : f(x) \bigr|_{0}^{1} se suffit à lui-même. Et si aucun délimiteur ne doit paraître tout en gardant le groupe, mettez . des deux côtés — \left. … \right.

latex
\[
  \left. \frac{dy}{dx} \right|_{x=0}
  \qquad
  \left. \frac{x^3}{3} \right|_{0}^{1}
  \qquad
  f(x) \bigr|_{0}^{1}   % fixed size, no \left needed
\]

\middle : un séparateur aussi haut que les parenthèses

Entre \left et \right, on peut écrire autant de fois qu'on veut \middle suivi d'un délimiteur ; chacun grandit à la même hauteur que la paire extérieure. La notation en compréhension, \left\{ x \;\middle|\; \dots \right\}, en est le cas canonique. La commande n'appartient pas au TeX originel de Knuth : c'est une extension d'e-TeX (pdfLaTeX de TeX Live 2024 annonce \eTeXversion 2). Et le manuel d'e-TeX précise noir sur blanc que \right « ajoute un atome Inner à la liste courante ». Les 3 mu du début de cette page découlent directement de cette phrase.

latex
\[
  \left\{\, x \in \mathbb{R} \;\middle|\; x^2 < \frac{1}{2} \,\right\}
  \qquad
  \biggl\{\, x \bigm| x^2 < 1 \,\biggr\}
\]

Un piège l'accompagne. Selon le manuel d'e-TeX, ce qui suit \middle est composé « comme après un délimiteur gauche » : \middle| se comporte donc en ouvrant et ne reçoit aucune espace, ni avant ni après. La mesure le confirme : \left(a\middle| -b\right) fait 27,91093 pt, exactement la largeur de \left(a\mathopen{|} -b\right) et 4,44434 pt de moins que la version \mathord. Il faut donc créer l'espace soi-même : écrire \;\middle|\;, ou l'envelopper en relation avec \mathrel{}\middle|\mathrel{}. Cette dernière ajoute une espace forte de 5 mu de chaque côté — 5,55542 pt au total — soit exactement l'espacement de \bigm|. Si \middle n'est pas indispensable, \bigm| s'écrit de toute façon plus vite.

Le répertoire des délimiteurs : \langle, \lceil, \lfloor, \| et \Vert

Seuls les symboles dont la fonte fournit des pièces extensibles peuvent suivre \left/\right ou la famille \big. Parenthèses, crochets et barre oblique se tapent directement, mais { et } sont des caractères réservés de LaTeX : un délimiteur en accolade s'écrit \{ \}. Pour les chevrons, employez \langle \rangle et jamais les < > du clavier : ce sont des signes d'inégalité, donc des relations, qui reçoivent une espace forte de chaque côté et ne ressemblent en rien à des délimiteurs. Mesuré : \langle a,b\rangle fait 21,79976 pt, tandis que <a,b> enfle à 35,13298 pt — plus de 13 pt de trop.

CommandeGlypheUsage / remarques
( )( )se tape directement ; la paire la plus courante
[ ] \lbrack \rbrack[ ]se tape directement ; \lbrack \rbrack équivalents
\{ \}{ }{ } sont réservés ; la barre oblique inverse est obligatoire
\langle \rangle⟨ ⟩produits scalaires, bra-ket ; pas < >
| \vert|valeur absolue, etc. ; les deux sont Ord — en paire, \lvert/\rvert
\| \Vertnormes, etc. ; sortie identique, tous deux Ord
\lvert \rvert| |amsmath ; une vraie paire Open/Close
\lVert \rVert‖ ‖amsmath ; le bon choix pour les normes
\lceil \rceil⌈ ⌉partie entière supérieure
\lfloor \rfloor⌊ ⌋partie entière inférieure
\backslash /\ /ensembles quotients ; s'apparie en \left\backslash … \right/
\uparrow \downarrow↑ ↓à double trait \Uparrow \Downarrow ; double sens \updownarrow
\lgroup \rgroup⟮ ⟯parenthèses arrondies surdimensionnées ; pour les grands hors-texte
\lmoustache \rmoustache⎰ ⎱moitiés supérieure et inférieure d'une grande accolade
\arrowvert \bracevert│ ⎪les pièces verticales qui prolongent flèches et accolades

Valeur absolue et norme : pourquoi |x| déraille, et \DeclarePairedDelimiter

| et \| sont tous deux des atomes Ord : ils ne se déclarent jamais ouvrants ni fermants. Le prix apparaît le plus crûment dans |-x| : 23,49298 pt mesurés, contre 19,04865 pt pour \lvert -x \rvert. L'écart de 4,44433 pt vient de ce que le - placé après un Ord est lu comme un opérateur binaire et apporte une espace moyenne de 4 mu de chaque côté. Après \lvert, qui est un Open, ce même - devient un moins unaire et ne prend aucune espace. Après un nom de fonction, même chose : \sin|x| ressort plus large d'une espace fine (3 mu) que \sin\lvert x\rvert. Employez \lvert/\rvert d'amsmath, ou \lVert/\rVert pour les normes. \| et \Vert produisent une sortie identique : choisir l'un ou l'autre ne change rien.

Taper \left\lvert … \right\rvert à chaque fois n'est pourtant pas réaliste. Pour une notation répétée, la réponse est \DeclarePairedDelimiter de mathtools. Définissez-la une fois dans le préambule et le corps du texte s'écrit \abs{x}, ou \abs*{\frac{a}{b}} pour s'étirer au contenu, ou \abs[\big]{x} pour figer un palier. Mieux : la forme étoilée engendrée est enveloppée en \mathopen{}\mathclose\bgroup … \aftergroup\egroup, si bien qu'elle emploie \left\right sans devenir un atome Inner — mesuré, \sin\abs*{x} fait 23,54865 pt, exactement comme \sin\lvert x\rvert. Le package annule pour vous les 1,66663 pt du début de cette page.

document.tex
\usepackage{mathtools}
\DeclarePairedDelimiter{\abs}{\lvert}{\rvert}
\DeclarePairedDelimiter{\norm}{\lVert}{\rVert}

% in the body:
\[
  \abs{x} \le \abs*{\frac{a}{b}}, \qquad
  \norm*{\frac{v}{2}}, \qquad \abs[\big]{y}
\]
  • Formule isolée de hauteur imprévisible\left\right ; rapide et sûr
  • Parenthèses accordées entre lignes, ou espacement correct\bigl \Bigl \biggl \Biggl et leurs partenaires r
  • Une barre entre les parenthèses\bigm|, ou \;\middle|\;
  • Un seul côté (la barre d'évaluation)\left. … \right|
  • La même notation encore et encore\DeclarePairedDelimiter de mathtools
  • \big ne fait rien dans un document 12 pt → la parenthèse ordinaire mesure déjà 12 pt ; commencez à \Big