[LaTeX] Comment insérer des emoji colorés

Bon nombre de ressources en ligne donnent des indications sur comment intégrer les polices de caractères capables d’afficher des emojis colorés.

Cependant, la variété des techniques et de la pile de rendu fait que la plupart de ces ressources sont incompatibles ou non fonctionnelles.

Vous trouverez donc ici l’unique configuration que j’ai personnellement trouvée qui permet d’insérer des emojis colorés.

Code final

Le code suivant est la définition fontspec que j’utilise actuellement dans mon projet en cours.

\newfontfamily\textemoji[
	Path = font/,
	Renderer = Harfbuzz,
	UprightFont = Twemoji.Mozilla.ttf,
]{emoji}

Il ne nécessite que fontspec !

Ça n’a pas l’air compliqué… mais il fallait trouver les bonnes conditions !

Exemple fonctionnel : les emojis sont visibles et en couleur.

Vous avez l’impression d’avoir la même chose dans votre projet, et pourtant, ça ne fonctionne toujours pas. Vous voulez des explications. Lisez donc attentivement la suite.

Choisir LuaLaTeX au lieu de XeLaTeX

C’était la première chose pas évidente qu’il fallait comprendre. Il ne faut pas utiliser XeLaTeX, et préférer LuaLaTeX. En effet, la plupart des ressources en ligne se focalisent sur l’implémentation dans LuaLaTeX, et pas XeLaTeX. Et à raison : XeLaTeX n’arriverait tout simplement pas à afficher les glyphes colorés. Le positionnement est valide, mais rien n’est visible.

Exemple non fonctionnel avec XeLaTeX : les emojis sont invisibles.

Utiliser LuaLaTeX, en particulier la variante LuaHBTex, livré par défaut dans MiKTeK.

Sélectionner LuaLaTeX.
Confirmation du journal de travail que LuaHBTeX est en usage.

Utiliser Renderer = HarfBuzz

J’utilise pour ma part le paquet fontspec pour créer mes définitions de police de caractère. Lors de la déclaration d’une police emoji, il est impératif d’utiliser l’option Renderer=HarfBuzz. Il n’y a rien de spécial à faire pour que cette fonctionnalité soit opérationnelle, à part ajouter la dite option dans la déclaration fontspec.

Ajouter l’extension dans le nom du fichier

Avant d’avoir eu besoin de polices de caractères pour emojis colorés, je me contentais de définitions qui omettaient les extensions de fichier, .ttf en l’occurrence.

Cependant, avec Renderer=HarfBuzz, l’extension de fichier doit impérativement figurer dans le nom du fichier à charger. Sans cela, cela ne compilera pas.

Toutes les polices ne sont pas compatibles

Choisir une police utilisant la méthode COLR/CPAL (polices vectorielles), comme twemoji-colr : https://github.com/mozilla/twemoji-colr. C’est celle que j’utilise.

Les polices CBDT/CBLC (polices « image ») comme Noto Color Emoji ne fonctionnent pas. Je n’ai trouvé aucune solution pour les faire fonctionner sur MiKTeK Windows 11. Cela pourrait fonctionner plus tard ou dans d’autres environnements, mais ce n’était pas fonctionnel sur mon installation en mars 2024.

Mot de la fin

J’espère que cet article vous aura servi à insérer ces fameux emojis colorés. Au pire, j’espère qu’il vous aura donné des pistes pour trouver votre réponse. J’ai passé plus de sept heures à étudier ce sujet, à essayer de comprendre pourquoi ça ne fonctionnait pas. Décidément, (La)TeX n’est pas un langage facile d’accès !

Ressources

  • Cette page sur le site Overleaf a été cruciale dans ma compréhension du système : https://www.overleaf.com/learn/latex/Articles/An_overview_of_technologies_supporting_the_use_of_colour_emoji_fonts_in_LaTeX
NemuLumeN
NemuLumeN
@NemuLumeN@blog.nemulumen.fr
41 articles
7 abonnés

Publié

dans

,

par

Étiquettes :

Commentaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.