Une histoire de LaTeX et point médian

/assets/images/articles/une-histoire-de-latex-et-point-median.png

Publié le 31/05/2020, dans informatique, latex, clavier

Voici une petite histoire qui m'est arrivée hier et qui montre comment un problème banal permet d'apprendre plein de choses. Depuis environ un an je m'intéresse à LaTeX et donc cela va faire un an que je n'utilise plus que cela pour mes textes et présentations/diaporamas. J'ai voulu faire pour la première fois un point médian dans une présentation et rien n'a fonctionné.

L'histoire

J'étais donc en train d'écrire une présentation avec Beamer quand j'ai écrit « tou·te·s » dans une phrase. En français le point médian permet de marquer du neutre, certaines personnes le font aussi avec un tiret mais cela risque de se confondre avec la césure ou les mots composés, donc je trouve le point médian plus pratique et plus esthétique. Puis j'ai compilé ma présentation et… je remarque que les points médians dans le pdf généré ne s'affichent pas et semblent remplacés par des espaces comme ceci : « tou te s ».

J'ai donc vérifié mes déclarations de packages en début de fichier :

\usepackage[francais]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{fontspec}
\usepackage{lmodern}
\usepackage{graphicx}
\usepackage{booktabs}
\usepackage{xspace}
\usepackage{polyglossia}
\setdefaultlanguage{french}

Je ne vois rien d'anormal, mais je suppose que l'erreur vient de ma méconnaissance de LaTeX et commence à chercher une solution sur internet à base de phrases comme “latex utf8 middle dot rendering”. Je tombe sur certaines réponses indiquant un mauvais rendu du point médian mais pas une absence de rendu comme c'est le cas pour moi.

À tout hasard j'en parle sur IRC pour savoir si quelqu'un arrive bien à afficher ses points médians avec LaTeX et il se trouve que c'est le cas. Notez qu'il faut être dans des canaux IRC assez cools pour trouver des gens non seulement adeptes de LaTeX mais également du point médian. S'ensuit une discussion sur les packages LaTeX, le point médian et sa représentation sur les dispositions de claviers.

Disposition de clavier

En discutant des représentations une personne dit que le point médian n'est pas présent sur la disposition fr-oss du clavier qui est celle que j'utilise au quotidien. Je dis alors que pourtant j'arrive bien à faire un point médian via la combinaison de touches AltGr + Shift + ;. Et c'est là qu'apparaît ma première erreur. En effet, cette personne me fait remarquer que malgré sa grande ressemblance avec celui-ci, le caractère que je prends pour un point médian est en réalité l'opérateur point, utilisé pour la multiplication.

Et en effet en mettant les deux côte à côte la différence est visible (⋅·) : le premier est U+22C5 : DOT OPERATOR et le second U+00B7 : MIDDLE DOT {midpoint (in typography); Georgian comma; Greek middle dot (ano teleia)}.

Changer le mapping de cette combinaison

Du coup je décide de changer le mapping de mon clavier pour que cette combinaison de touches affiche un point médian. Je génére un fichier contenant mon mapping actuel :

$ xmodmap -pke > ~/.Xmodmap

Je regarde dans ce fichier et trouve la ligne :

keycode  59 = semicolon period g G multiply U22C5 dead_greek

En effet il y a le code Unicode U22C5 qui correspond bien au DOT OPERATOR, je le remplace donc par le code du point médian pour obtenir :

keycode  59 = semicolon period g G multiply U00B7 dead_greek

Et j'ajoute au lancement de ma session le chargement de ce mapping (dans le fichier .xinitrc pour moi) :

[[ -f ~/.Xmodmap ]] && xmodmap ~/.Xmodmap

L'affichage en LaTeX

Une fois les opérateurs point remplacés par des points médians dans mon fichier LaTeX, je recompile et cette fois je vois bien apparaître les points médians dans mon PDF… mais il y a un souci : ces points sont représentés bien trop haut par rapport aux lettres et contient un espace trop grand sur les côtés, rendant l'affichage du mot peu esthétique.

Je me souviens du coup avoir trouvé un post sur stackexchange traitant de ce problème : pour corriger le souci la solution consiste à déclarer le caractère du point médian comme devant être remplacé par \cdot au lieu d'afficher le glyphe potentiellement erroné de la police de caractère choisie.

J'ajoute donc la ligne suivante après mes déclarations de packages :

\catcode`=13 \def\cdottext{\ensuremath\cdot} \let·\cdottext

Je recompile et vois avec plaisir s'afficher le mot « tou·te·s » avec les points médians bien représentés et rangés à leur place.

Conclusion

Un petit souci m'a permis d'en apprendre plus sur LaTeX, les polices de caractères, la disposition de mon clavier et le mapping de touches. Et bien sûr merci aux copain·e·s d'IRC sans qui je n'aurais pas appris autant de choses.


Vous pouvez commenter en envoyant un mail via ce bouton (votre adresse ne sera pas publié).

Commenter par mail