Harmoniser les polices du texte et des mathématiques
Bien que les sciences du langage soient classées parmi les sciences humaines et sociales, les mathématiques y jouent un rôle important: théorie des langages formels et des automates, théorie de l’information, statistiques et probabilités, logique formelle, etc. Comme évoqué précédemment, il n’est donc pas rare en linguistique d’avoir à noter quelques symboles et formules mathématiques.
LaTeX est particulièrement recommandé pour la mise en forme des formules mathématiques, puisqu’il a été créé dans ce but et reste sans doute insurpassé à ce jour. Pour cela, LaTeX utilise un système de polices propres. Si l’on change la police du texte de base avec XeLaTeX, la différence avec la police mathématique est flagrante.
Par exemple, si l’on mélange du texte normal en police Brill, recommandée pour la linguistique, avec quelques formules susceptibles d’apparaître dans un texte linguistique:
- une équation simple
- une formule glottochronologique
- la densité de probabilité de la loi normale
- l’entropie de Shannon
L'apparence du texte normal \textit{x + y =} 3 et celle des \\ formules mathématiques $x+y=3$ peuvent différer. \[t=\sqrt{\frac{\ln(c)}{-2\lambda\sqrt{c}}} \quad\quad f(x)=\frac{1}{\sqrt{2\pi\sigma}}e^{-\frac{(x-\mu)^2}{2\sigma^2}}\] \[ H(X)=-\sum_{i=1}P(x_i)\log_bP(x_i) \]
Pour les formules les plus simples, on peut s’en tirer sans passer par le mode mathématique de LaTeX, mais celui-ci devient vite indispensable pour les fractions, racines carrées, sommes, etc.
Il est souhaitable dès lors d’harmoniser la police mathématique avec celle du texte normal.
Utiliser une police mathématique différente mais similaire
La première solution, la plus simple mais pas forcément la plus satisfaisante, consiste à utiliser une police mathématique similaire à celle du texte de base.
Dans le cas de la police Brill, le package libertinust1math charge la police mathématique Libertinus Math, un dérivé de Linux LIbertine O, et la combinaison des deux est plutôt satisfaisante. Attention! il faut passer l’option no-math
à fontspec
pour pouvoir combiner les deux polices.
\usepackage{libertinust1math} \usepackage[no-math]{fontspec} \setmainfont{Brill}
Tout dépend évidemment de la police de base choisie, et il n’est pas garanti de trouver une police mathématique se mariant bien avec celle-ci. Le catalogue des polices LaTeX est indispensable pour trouver si une telle police existe.
Si vous utilisez Charis SIL, sachez que cette police est quasi-identique à Bitstream Charter, qui est utilisable dans LaTeX et dispose d’une extension mathématique.
\usepackage[bitstream-charter]{mathdesign} \usepackage[no-math]{fontspec} \setmainfont{Charis SIL}
Utiliser la police du texte en mode mathématique
Dans le cas où l’on ne trouve pas de police mathématique adaptée, ou bien si l’on veut absolument un style uniforme pour le texte et les mathématiques, il est possible de définir la même police pour le mode mathématique que pour le mode texte. Cela est possible grâce au package mathspec
, qui vient remplacer fontspec
.
Le package mathspec
donne accès à la commande \setmathsfont
, qui prend comme argument le nom de la police que l’on affecte au mode mathématique. Cette commande peut prendre les mêmes options entre crochets que fontspec
. Pour les mathématiques, il peut être utile de préciser l’option Numbers=Lining
, afin ne pas avoir des chiffres elzéviriens. La commande prend aussi un autre jeu d’options entre parenthèses, qui définit les jeux de caractères auxquels s’appliquent la police: lettres latines, lettres grecques, chiffres.
\usepackage{mathspec} \setmathsfont(Digits,Latin,Greek)[Numbers=Lining]{Brill}
Cette solution est toutefois loin d’être parfaite puisque mathspec
ne permet pas de définir la police des symboles non alphabétiques (+, =, {}, etc.) et des symboles composés de plusieurs lettres (log, sin, etc.).
Pour résoudre ce problème, on peut utiliser le package mathastext
, qui applique la même police que le texte aux mathématiques. Une différence majeure avec mathspec
est que mathastext
ne permet pas semble-t-il de régler les options typographiques comme Numbers=Lining
. Il vaut donc mieux le charger après mathspec
et la déclaration de \setmathsfont
pour qu’il ne change que les symboles non-affectés par mathspec
. Le package mathastext
possède de nombreuses options bien documentées.
\usepackage{mathspec} \setmainfont{Brill} \setmathsfont(Digits,Latin,Greek)[Numbers=Lining]{Brill} \usepackage[italic,asterisk,mathaccents,defaultmathsizes]{mathastext}
Un dernier problème est celui des symboles absents de la police du texte, et qui restent donc dans la police mathématique par défaut. Il est possible de charger avant la déclaration de mathspec
une police mathématique qui sera alors utilisée uniquement pour les symboles absents.
\usepackage{libertinust1math} \usepackage{mathspec} \setmainfont{Brill} \setmathsfont(Digits,Latin,Greek)[Numbers=Lining]{Brill} \usepackage[italic,asterisk,mathaccents,defaultmathsizes]{mathastext}
Derniers problèmes
Bien sûr, tous les problèmes ne peuvent pas être résolus puisqu’une police de texte n’a pas les spécifications nécessaires pour la mise en forme des mathématiques. En particulier l’alignement et l’espace des symboles peuvent poser des difficultés.
$f^i_j$
Il semble difficile de résoudre ce genre de problèmes à moins d’investir beaucoup de temps à faire des réglages pour une police particulière ou bien à moins de faire des réglages à la main pour résoudre chaque problème individuel.