Aller au contenu
Topos Uranos

Résumé

Cette leçon enseigne à entrer dans le mode mathématique et à en sortir avec discernement. Elle explique ce qui change dans ce mode par rapport au texte : les lettres sont composées en italique comme des variables, les espaces du code source ne comptent pas et le moteur calcule l’espacement de chaque signe selon sa classe, les lignes vides sont interdites et certains signes n’existent que dans l’un des deux modes ; elle montre pourquoi une variable ne s’écrit pas avec \textit et ce qui arrive dans LuaLaTeX à un symbole mathématique écrit hors de son mode. Elle présente les formules en ligne, avec $…$ et \(…\), leur hauteur limitée, la coupure de ligne à l’intérieur, le tilde et la ponctuation ; les formules hors texte, avec \[…\] et les environnements equation et equation*, comme des parties de la phrase que l’on ponctue, et les raisons de ne pas employer $$…$$ ni laisser de ligne vide avant elles ; la numérotation, avec \label, \eqref, \numberwithin et \tag ; le texte dans une formule, avec \text et \mathrm, et les espaces explicites ; la virgule décimale dans le mode mathématique et l’extension siunitx pour les nombres et les unités. Elle se termine par les erreurs typiques, telles que le fichier journal les écrit, et par ce qu’il vaut mieux éviter.

Objectifs d’apprentissage

  1. Expliquer ce qui change dans le mode mathématique par rapport au texte et prévoir le résultat d’une variable, d’un mot ou d’un symbole écrits dans le mauvais mode.
  2. Choisir entre une formule en ligne et une formule hors texte, et écrire chacune comme partie de la phrase, avec sa ponctuation et sans lignes vides indues.
  3. Numéroter les formules hors texte avec equation, y renvoyer avec \eqref et prévoir la numérotation que produisent \numberwithin et \tag.
  4. Écrire les nombres décimaux et les grandeurs avec unités selon l’usage français, en sachant ce que le mode mathématique fait du point et de la virgule.
  5. Diagnostiquer à partir du journal les erreurs « Missing $ inserted », « Bad math environment delimiter » et « Missing character », et en localiser la cause dans le code source.

Deux modes de composition

Jusqu’ici, le moteur a composé du texte : des mots séparés par des espaces, répartis en lignes et en paragraphes. Une formule obéit à d’autres règles, et c’est pourquoi LaTeX la compose dans un mode mathématique distinct, où l’on entre et d’où l’on sort par des délimiteurs. Ce qui change en y entrant est considérable, et il convient de l’énumérer avant de voir les délimiteurs, car presque tous les conseils de cette leçon en découlent.

  • Les lettres sont composées dans un italique propre, celui des variables, avec une largeur et un espacement conçus pour être lus comme des symboles et non comme des mots.
  • Les espaces du code source ne comptent pas : $x=a-b$ et $x = a - b$ produisent exactement la même chose. L’espacement est calculé par le moteur selon la classe de chaque signe : ordinaire (une lettre, un chiffre), opérateur binaire (+, -), relation (=, <), ponctuation (la virgule), ouvrant et fermant (les parenthèses).
  • Une ligne vide n’est pas admise : une ligne vide termine le paragraphe, et une formule ne peut rester ouverte à la fin d’un paragraphe.
  • Certains signes n’existent que dans l’un des deux modes : ^ et _, qui forment les exposants et les indices, ou les lettres grecques comme \alpha, sont mathématiques ; les lettres accentuées, comme le é, appartiennent au texte.
ExempleLe moteur espace les signes selon leur classe
Code LaTeX
Comme texte : x=a-b, y=-b.​En mode mathématique : $x=a-b$, $y=-b$.​Avec d’autres espaces dans le source : $x   =   a-   b$, $y = - b$.
Résultat
Résultat

La deuxième et la troisième lignes sont identiques, bien que leurs sources diffèrent. Dans $x=a-b$, le signe moins est binaire, car il a un opérande de chaque côté, et il reçoit une espace moyenne ; après le signe égal de $y=-b$, il n’en a pas à gauche, il est traité comme un signe à un seul opérande et se colle au b. La première ligne, composée comme texte, ne distingue rien : le trait d’union est un trait d’union et le signe égal n’a pas d’espaces.

Pourquoi une variable ne s’écrit pas avec textit

Il s’ensuit que l’italique du texte et celui du mode mathématique ne sont pas la même chose. \textit{x} produit une lettre de l’italique du texte, sans l’espacement que le moteur donne aux signes ; et un mot écrit en mode mathématique n’est pas un mot, mais une suite de variables multipliées, chacune avec son propre espacement.

ExempleL’italique du texte, un mot comme formule et la forme correcte
Code LaTeX
Avec textit : \textit{f}(\textit{x}) = \textit{x} + 1, si \textit{x} > 0.​Comme formule : $f(x) = x + 1$, si $x > 0$.​Un mot en mode mathématique : $cout = prix - remise$.​Les mots comme texte : $\text{coût} = \text{prix} - \text{remise}$.
Résultat
Résultat

Dans la première ligne, les espaces sont seulement ceux que l’auteur a tapés, et les signes sont ceux de la fonte du texte ; les lettres, de plus, sont celles de l’italique du texte, d’un dessin différent de celles de la formule. Dans la formule, en revanche, le moteur donne au signe égal et au signe supérieur l’espace d’une relation de chaque côté. Dans la troisième ligne, « cout » (écrit ici sans accent, que l’italique mathématique ne contient pas) se lit comme le produit de quatre variables, aux lettres espacées de manière irrégulière. La commande \text, de l’extension amsmath, est étudiée plus loin dans cette leçon.

Un symbole mathématique hors de son mode

Avec pdfLaTeX, écrire \alpha dans le texte produit l’erreur « Missing $ inserted ». Avec LuaLaTeX, le moteur de ce cours, non : la lettre grecque est composée sans erreur, mais de façon imprévisible. Si aucune formule n’a encore été composée dans le document, elle disparaît ; si une formule l’a déjà été, elle apparaît, prise dans la fonte mathématique et collée au mot suivant, car l’espace qui suit une commande se perd.

ExempleLa même lettre grecque, trois fois
Code LaTeX
Première : l’angle \alpha est aigu.​Deuxième : l’angle $\alpha$ est aigu.​Troisième : l’angle \alpha est aigu.
Résultat
Résultat

La première phrase perd la lettre sans avertissement visible ; la troisième la conserve par hasard, collée à « est ». La seule trace se trouve dans le journal, et seulement pour la première :

Journal de compilation
Missing character: There is no ^^K (U+000B) in font nullfont!

Par conséquent, dans LuaLaTeX un symbole mathématique écrit hors de son mode n’est pas signalé : il faut toujours l’écrire entre délimiteurs, et il convient de chercher « Missing character » dans le journal avant de tenir un document pour terminé.