Lettres grecques

Taper \Alpha dans LaTeX pour obtenir un alpha majuscule renvoie ! Undefined control sequence. : c'est l'accident le plus fréquent à l'entrée des lettres grecques. La raison est presque décevante de simplicité — un alpha majuscule a exactement la forme d'un A, si bien que LaTeX suppose que l'on tapera le A latin et ne définit aucune commande. Toutes les lettres grecques du mode mathématique obéissent à cette règle unique : seules reçoivent un nom les formes que l'alphabet latin ne fournit pas déjà. Cette page en déroule les conséquences : les listes complètes de commandes en minuscules et en majuscules, les formes variantes comme \epsilon face à \varepsilon, les lettres grecques en gras et en romain, et leur emploi dans le texte courant.

Pourquoi \Alpha n'existe pas et que taper à la place

Il existe des commandes pour exactement onze majuscules grecques : \Gamma, \Delta, \Theta, \Lambda, \Xi, \Pi, \Sigma, \Upsilon, \Phi, \Psi, \Omega. Pour les treize autres, on tape la capitale latine correspondante : A B E Z H I K M N O P T X. En ouvrant fontmath.ltx dans le noyau LaTeX, on constate que ces onze déclarations sont bien les seules ; \Alpha, \Beta et \Epsilon n'ont jamais été définis. Α et A, Β et B, Ε et E sont la même forme en typographie : un second nom n'avait aucune raison d'être.

Le principe est net, mais peu accueillant pour qui cherche. Une recherche sur \Alpha ne donne rien : la commande n'est pas introuvable, elle n'a jamais existé. Le message se borne à ! Undefined control sequence. et ne suggère pas de taper A. Le contraste avec le mode texte rend la règle éclatante : le package textgreek, lui, définit bel et bien \textAlpha, \textBeta et \textEpsilon. Dans le texte courant on compose de vraies lettres grecques et non des variables mathématiques ; les vingt-quatre ont donc besoin d'un nom. Les onze du mode mathématique ne disent rien du grec : c'est le nombre de formes que l'alphabet latin ne couvre pas déjà.

latex
% the eleven uppercase Greek letters that do have commands
\[ \Gamma(n) = (n-1)!, \qquad \Delta x, \qquad \Omega \]
% the other thirteen: type the Latin capital directly
\[ A, B, E, Z, H, I, K, M, N, O, P, T, X \]
% \Alpha, \Beta, \Epsilon ... -> ! Undefined control sequence.

Les minuscules grecques, de \alpha à \omega

Toutes les minuscules ont une commande sauf omicron — vingt-trois sur vingt-quatre. Omicron manque pour la raison même qui vaut pour les capitales : ο ne se distingue pas d'un o latin minuscule, on tape donc simplement o en mode mathématique. Treize absences chez les majuscules et une chez les minuscules ne font pas deux exceptions : c'est une seule règle qui affleure à deux endroits. Les noms de commandes sont l'orthographe anglaise des lettres — \alpha, \beta, \gamma — et se retrouvent plus qu'ils ne s'apprennent.

CommandeGlypheNom
\alphaαalpha
\betaβbêta
\gammaγgamma
\deltaδdelta
\epsilonϵepsilon (forme ronde)
\zetaζzêta
\etaηêta
\thetaθthêta
\iotaιiota
\kappaκkappa
\lambdaλlambda
\muμmu
\nuνnu (à ne pas confondre avec le v latin)
\xiξxi
ooomicron — pas de commande ; taper le o latin
\piπpi
\rhoρrhô
\sigmaσsigma
\tauτtau
\upsilonυupsilon
\phiϕphi (forme fermée)
\chiχchi
\psiψpsi
\omegaωoméga

Quelques paires se confondent facilement : \xi (ξ) et \zeta (ζ), \nu (ν) et \upsilon (υ), et surtout \nu (ν) et un v latin minuscule. Taper v à la place de ν laisse le document se compiler sans broncher : aucune erreur, seule la page imprimée est fausse. Dans la source, vérifier le nom de la commande, pas la forme. À retenir aussi pour la suite : fontmath.ltx prend les minuscules dans la fonte letters (en Computer Modern, cmmi, l'italique mathématique) ; elles sortent donc penchées comme n'importe quelle variable. Les onze majuscules, on le verra, viennent d'une tout autre fonte.

Les onze commandes de majuscules et pourquoi elles sortent en romain

Écrire \Gamma ou \Omega dans une formule donne, contrairement aux minuscules, un caractère droit (romain). Ce n'est pas un hasard. Dans fontmath.ltx, les minuscules sont prises dans la fonte letters, mais les onze majuscules dans la fonte operators — en Computer Modern, cmr, la même romaine que le texte courant. Placer \Gamma et \gamma dans une même formule, et l'un se tient droit tandis que l'autre penche. C'est une asymétrie célèbre, que LaTeX laisse intacte depuis des décennies.

CommandeGlypheNom
\GammaΓgamma
\DeltaΔdelta
\ThetaΘthêta
\LambdaΛlambda
\XiΞxi
\PiΠpi (à distinguer de \prod)
\SigmaΣsigma (à distinguer de \sum)
\UpsilonΥupsilon
\PhiΦphi
\PsiΨpsi
\OmegaΩoméga

Deux désagréments pratiques se cachent ici. Le premier est une rupture de style : les treize lettres sans commande se tapent en capitales latines et sont donc composées comme des variables, en italique. Mettre \Gamma (droit) et A (italique) sur la même ligne, et l'accord se rompt. Le second est la confusion entre \Sigma/\Pi et \sum/\prod. Les premières sont des lettres, les seconds de grands opérateurs — corps différent, et en mode hors texte les bornes se placent au-dessus et au-dessous. Pour une somme ou un produit, toujours \sum_{i=1}^{n} ou \prod_{i=1}^{n} ; \Sigma et \Pi restent réservés au cas où c'est bien la majuscule grecque que l'on veut.

\epsilon ou \varepsilon, \phi ou \varphi

\epsilon donne le ϵ arrondi et \varepsilon le ε lunaire ; de même, \phi donne le ϕ fermé et \varphi le φ ouvert. À en juger par les noms, \epsilon semble la forme standard — mais l'usage mathématique réclame surtout ε. Le ε de la définition ε–δ, comme celui de « pour tout ε > 0 », s'imprime conventionnellement dans la forme lunaire. Autrement dit, pour obtenir la lettre qui vient à l'esprit quand on dit « epsilon », il faut taper la forme var. Les noms et l'usage tirent en sens contraire : c'est précisément là que les débutants trébuchent.

Une seconde confusion, plus ancienne, entoure ϵ. Le signe d'appartenance ∈ fut d'abord un epsilon grec : Giuseppe Peano employa ε pour l'appartenance dans ses Arithmetices principia, nova methodo exposita de 1889, en précisant lui-même qu'il abrégeait le latin est, « est ». Les deux formes ont ensuite divergé, mais la ressemblance égare encore, et écrire x \epsilon A ne déclenche aucune erreur. \in est déclaré comme relation (\mathrel) et porte donc une espace de part et d'autre, tandis que \epsilon n'est qu'un symbole ordinaire (\mathord) : la faute s'imprime en silence, sous la forme d'une formule dont l'espacement a disparu.

latex
% the epsilon-delta definition conventionally uses the lunate \varepsilon
\[ |x - a| < \delta \implies |f(x) - f(a)| < \varepsilon \]
% \epsilon is a letter, \in is a relation -- different commands, different spacing
\[ x \in A, \qquad \epsilon > 0 \]
CommandeGlypheRemarque
\epsilonϵepsilon arrondi
\varepsilonεforme lunaire ; usuelle en mathématiques
\thetaθthêta standard
\varthetaϑthêta cursif
\piπpi standard
\varpiϖforme proche de ω ; se lit mal
\rhoρrhô standard
\varrhoϱrhô à queue
\sigmaσsigma standard
\varsigmaςsigma final en grec ; rare en formule
\phiϕphi fermé
\varphiφphi ouvert ; courant en physique
\varkappaϰkappa variante ; requiert amssymb
\digammaϝdigamma (lettre archaïque) ; requiert amssymb

La règle pratique est simple : choisir une forme et s'y tenir dans tout le document. Un texte mathématique retiendra le plus souvent \varepsilon et \varphi ; si l'on se conforme à une charte existante, c'est elle qui tranche. Dans le tableau ci-dessus, seuls \varkappa (ϰ) et \digamma (ϝ) ne sont pas définis en LaTeX standard et réclament \usepackage{amssymb} dans le préambule — à défaut, réapparaît ! Undefined control sequence. Notons enfin que les variantes var n'existent que pour les minuscules. Mettre une majuscule en italique n'est pas affaire de variante mais de style de fonte, ce qui fait l'objet des sections suivantes.

Lettres grecques en gras, et pourquoi \mathbf{\alpha} ne fait rien

Pour composer du grec en gras, on utilise \boldsymbol{\alpha} (de amsbsy, chargé par amsmath) ou \bm{\alpha} (du package bm). \mathbf{\alpha} ne fait strictement rien : ni erreur, ni avertissement. En mesurant les boîtes, \alpha et \mathbf{\alpha} font tous deux exactement 6.43404pt de large en Computer Modern à 10pt. La raison tient à la classe du symbole : les commandes d'alphabet mathématique telles que \mathbf n'agissent que sur les symboles de classe \mathalpha, or fontmath.ltx déclare les minuscules grecques comme \mathord, hors de portée.

Le vrai piège est que les majuscules grecques, elles, sont bien de classe \mathalpha : \mathbf{\Gamma} fonctionne — dans les mêmes conditions, sa largeur passe de 6.25002pt à 6.91663pt. D'où le symptôme déroutant : les capitales passent en gras et les minuscules refusent. Pour écrire des vecteurs ou des tenseurs en lettres grecques, mieux vaut s'en tenir dès le départ à \boldsymbol ou \bm. \bm est le plus souple des deux : il s'applique à une sous-formule entière, comme \bm{\nabla \times E}, et sait fabriquer une graisse quand aucune n'est disponible.

latex
\usepackage{amsmath}  % provides \boldsymbol (via amsbsy)
\usepackage{bm}       % provides \bm
% ...
\[ \boldsymbol{\alpha} \cdot \bm{\omega}, \qquad \bm{\nabla \times E} \]
% \mathbf{\alpha} silently produces the same box as \alpha

Grec en romain et règles ISO : upgreek et unicode-math

Les lettres grecques employées pour des constantes et des unités doivent être composées en romain — c'est la convention ISO 80000-2 — et sous pdfLaTeX la réponse est le package upgreek. Après \usepackage{upgreek}, on dispose de \upalpha, \upmu, \uppi pour les minuscules et de \Upgamma, \Updelta, … pour les majuscules (onze de nouveau, car la règle du début de cette page continue d'opérer). ISO 80000-2 prescrit l'italique pour les variables et le romain pour les unités ainsi que pour les constantes mathématiques dont la valeur ne change jamais. La constante π appelle donc \uppi et le préfixe micro \upmu, tandis qu'un π employé comme variable reste simplement \pi.

La même règle joue en sens inverse. L'ISO demande l'italique pour toutes les variables : une majuscule grecque employée comme variable devrait donc pencher — or LaTeX standard compose \Gamma en romain, comme on l'a vu. Sous pdfLaTeX, le correctif est fixmath de Walter Schmidt, qui reprend les majuscules grecques dans letters au lieu de operators (isomath s'appuie dessus et ajoute des fontes coordonnées pour vecteurs, matrices et tenseurs). Sous XeLaTeX ou LuaLaTeX, la clé math-style de unicode-math règle tout en une ligne : la valeur par défaut math-style=TeX reproduit exactement l'asymétrie héritée — majuscules droites, minuscules italiques — tandis que math-style=ISO met les deux en italique ; french et upright sont également proposés. Une réserve : Γ comme nom de fonction (la fonction gamma) est droit y compris selon l'ISO ; la règle ne s'applique donc pas mécaniquement.

latex
\usepackage{upgreek}
% ...
% constants and units are upright
\[ C = 2 \uppi r, \qquad \lambda = 5\,\upmu\mathrm{m} \]
% variables stay italic
\[ \pi_1(X), \qquad \gamma \]

% XeLaTeX / LuaLaTeX: one line switches the whole convention
% \usepackage[math-style=ISO]{unicode-math}

Des lettres grecques dans le texte courant : éviter ! Missing $ inserted

Écrire \alpha dans le texte courant arrête la compilation sur ! Missing $ inserted. Les commandes grecques sont déclarées comme caractères mathématiques (mathchar), utilisables seulement en mode mathématique ; rencontrant l'un d'eux en mode horizontal, TeX tente d'insérer un $ et échoue. L'échappatoire rapide est $\alpha$, mais la lettre est alors composée en variable italique, ce qui ne convient pas à du grec faisant partie de la prose : une unité comme μm, ou un nom d'espèce. L'outil approprié dépend de ce que l'on écrit — une formule ou une phrase.

Pour la prose, il y a le package textgreek : \textalpha, \textbeta, \textmu, et à côté \textAlpha jusqu'à \textOmega — les vingt-quatre lettres dans les deux casses. Les majuscules, au nombre de onze seulement en mode mathématique, sont ici au complet. Pour composer du texte en grec proprement dit, la voie habituelle passe par babel avec l'option greek (concrètement greek.ldf de babel-greek) et par la saisie dans \textgreek{…}, où la translittération en codage LGR est convertie en lettres grecques. Si seul le préfixe micro est nécessaire, siunitx fournit \micro. Dans tous les cas, écrire $\mu$m est le dernier recours, non le premier.

latex
\usepackage{textgreek}
% ...
A wavelength of 5\,\textmu m, and a coefficient \textalpha.
% writing \alpha here instead -> ! Missing $ inserted.
Commande / optionPackageCe que l'on obtient
\boldsymbol{\alpha}amsmath (amsbsy)grec gras italique
\bm{\alpha}bmgras ; s'applique à une sous-formule entière
\upalphaupgreekminuscules grecques droites
\Upgammaupgreekmajuscules grecques droites (onze lettres)
\varkappaamssymbkappa variante ϰ et \digamma ϝ
\textalphatextgreekles 24 lettres grecques en mode texte
math-style=ISOunicode-mathstyle ISO tout en italique (XeLaTeX / LuaLaTeX)