Aller au contenu

ConTeXt/Choisir des polices pour les langues non-romanes (grec ancien, arabe, cyrillique, CJK)

Un livre de Wikilivres.

Choisir des polices pour les langues non romanes (grec ancien, arabe, cyrillique, CJK)

[modifier | modifier le wikicode]

ConTeXt, grâce à LuaTeX, peut composer des textes dans de nombreuses écritures : grec ancien, cyrillique, hébreu, arabe, chinois, japonais, coréen (CJK), etc. Cependant, toutes les polices ne se valent pas. Cette page propose quelques repères pour choisir des polices adaptées aux langues non romanes et les combiner correctement dans un même document.

En travauxlink={{{link}}}

Cette page est en travaux. Tant que cet avis n'aura pas disparu, veuillez en considérer le plan et le contenu encore incomplets, temporaires et sujets à caution. Si vous souhaitez participer, il vous est recommandé de consulter sa page de discussion au préalable, où des informations peuvent être données sur l'avancement des travaux.

Objectifs de cette section :

  • comprendre les enjeux des écritures non latines dans ConTeXt ;
  • choisir des polices adaptées au grec ancien, au cyrillique, à l’hébreu, à l’arabe et au CJK ;
  • configurer des familles et des polices de secours (fallback) selon les scripts ;
  • éviter les principaux pièges : caractères manquants, shaping incorrect, mélanges incohérents.

1. Généralités : écritures non romanes et ConTeXt

[modifier | modifier le wikicode]

ConTeXt compose le texte en Unicode. En théorie, une seule police “universelle” suffirait. En pratique :

  • beaucoup de polices ne couvrent qu’un sous-ensemble de l’Unicode ;
  • certaines écritures (notamment l’arabe) nécessitent un shaping complexe ;
  • la qualité des glyphes varie fortement selon les familles.

Pour obtenir un rendu fiable :

  • on choisit une famille principale pour le latin (et éventuellement le grec/cyrillique) ;
  • on ajoute des polices de secours (fallback) pour les scripts non couverts ;
  • on teste chaque écriture avec un court texte dédié.

Exemple de principe (latin + grec) :

\definefontfamily[mainface][serif][Libertinus Serif]
\definefallbackfamily[mainface][serif][GFS Didot][range=greek]

\setupbodyfont[mainface, 11pt]

ConTeXt utilise alors Libertinus pour le texte latin, et bascule automatiquement sur GFS Didot pour les caractères grecs.

💡 Astuce : testez toujours chaque script séparément (petite page de test) avant de lancer un long document.


2. Grec ancien (polytonique)

[modifier | modifier le wikicode]

La composition du grec ancien nécessite :

  • une police couvrant le grec polytonique (accents, esprits, iota souscrit, etc.) ;
  • un dessin cohérent avec le reste du texte (si l’on mélange latin et grec).

Polices recommandées pour le grec ancien :

GFS Didot
GFS Porson
GFS Artemisia
EB Garamond (grec polytonique correct)
Libertinus Serif (bonne couverture du grec)

Exemple minimal : latin + grec

[modifier | modifier le wikicode]
\definefontfamily[mainface][serif][Libertinus Serif]
\definefallbackfamily[mainface][serif][GFS Didot][range=greek]

\setupbodyfont[mainface, 12pt]

\starttext

Texte latin : « La philosophie commence par l’étonnement. »

Grec ancien : ἡ φιλοσοφία ἀρχίζει ἀπὸ τοῦ θαυμάζειν.

Polytonique : ἡ ἀλήθεια, τὸ ἔργον, τῇ ψυχῇ, τῷ λόγῳ.

\stoptext

⚠️ Attention : toutes les polices “grecques” ne gèrent pas correctement le polytonique. Les iotas souscrits, certains esprits et combinaisons d’accents peuvent manquer ou être mal dessinés. Vérifiez toujours les formes : ᾳ, ῃ, ῳ, ἅ, ὁ, ᾧ, etc.


3. Cyrillique (russe, bulgare, serbe)

[modifier | modifier le wikicode]

Le cyrillique présente plusieurs défis :

  • différences typographiques entre russe, bulgare, serbe ;
  • italique cyrillique parfois mal gérée (formes incorrectes pour certaines lettres) ;
  • jeux incomplets (absence de certaines lettres anciennes).

Familles généralement fiables :

Libertinus Serif
Libertinus Sans
TeX Gyre Termes
TeX Gyre Pagella
DejaVu Serif

Exemple : latin + russe

[modifier | modifier le wikicode]
\definefontfamily[mainface][serif][Libertinus Serif]
\setupbodyfont[mainface, 11pt]

\starttext

Texte français : Ceci est un exemple de texte.

Texte russe : Это пример русского текста.

Texte en italique : {\it Это пример курсивного шрифта.}

\stoptext

💡 Astuce : vérifiez l’italique cyrillique. Selon les polices, certaines lettres prennent des formes très différentes (notamment г, т, д). Comparez avec des modèles typographiques de qualité (livres imprimés en russe moderne).


L’hébreu se compose de droite à gauche (RTL), avec éventuellement des signes diacritiques (niqqud).

Polices utiles :

SBL Hebrew
Ezra SIL
Noto Sans Hebrew
Noto Serif Hebrew

Pour les textes avec niqqud (points voyelles) ou cantillation, privilégiez des polices conçues à cette fin (SBL Hebrew, Ezra SIL).

Exemple simple : hébreu sans niqqud

[modifier | modifier le wikicode]
\definefontfamily[hebface][serif][Noto Serif Hebrew]

\starttext

Texte hébreu simple :

{\switchtobodyfont[hebface] שלום, מה שלומך?}

\stoptext

La gestion fine des paragraphes et de la ponctuation RTL dépasse le cadre de cette introduction, mais ConTeXt sait composer de l’hébreu de base lorsqu’une police adaptée est utilisée.


L’arabe est une écriture cursive avec ligatures contextuelles. Le moteur de composition doit :

  • sélectionner les formes initiales, médianes, finales ou isolées ;
  • appliquer des ligatures obligatoires et facultatives ;
  • gérer correctement les voyelles brèves si elles sont présentes.

LuaTeX/ConTeXt sait gérer ces règles si la police les fournit.

Polices recommandées :

Amiri (qualité éditoriale, proche du style naskh classique)
Scheherazade
Noto Naskh Arabic
Noto Sans Arabic

Exemple minimal : arabe + français

[modifier | modifier le wikicode]
\definefontfamily[mainface][serif][Libertinus Serif]
\definefontfamily[arabface][serif][Amiri]

\setupbodyfont[mainface, 11pt]

\starttext

Texte français : ceci est un paragraphe latin.

Texte arabe :

{\switchtobodyfont[arabface]
السلام عليكم ورحمة الله وبركاته
}

\stoptext

⚠️ Attention : certaines polices “arabes” ne contiennent pas toutes les formes contextuelles nécessaires ou ne sont pas pleinement compatibles avec le moteur OpenType. Préférez des familles explicitement conçues pour LuaTeX et les moteurs modernes.


6. CJK (chinois, japonais, coréen)

[modifier | modifier le wikicode]

Les polices CJK sont très volumineuses (des dizaines de milliers de glyphes). Il est rare qu’une police unique gère parfaitement le chinois traditionnel, le chinois simplifié, le japonais et le coréen, même si des familles unifiées existent.

Polices recommandées :

Noto Sans CJK
Noto Serif CJK
Source Han Sans
Source Han Serif

Il est préférable d’isoler la famille CJK dans une configuration dédiée.

Exemple minimal : texte latin + chinois simplifié

[modifier | modifier le wikicode]
\definefontfamily[mainface][serif][Libertinus Serif]
\definefontfamily[cjkface][serif][Noto Serif CJK SC]

\setupbodyfont[mainface, 11pt]

\starttext

Texte français : Ceci est un exemple.

Texte chinois simplifié :

{\switchtobodyfont[cjkface]
汉字是表意文字,用于书写汉语。
}

\stoptext

Selon l’installation, il peut être nécessaire d’ajuster le nom exact de la police (voir la page ConTeXt/Tester_et_explorer_les_polices).


7. Combiner plusieurs écritures dans un même document

[modifier | modifier le wikicode]

Cas typique : un article philologique avec latin, grec, hébreu et arabe ; ou un manuel contenant texte français, russe et chinois.

Une stratégie simple :

  • définir une famille principale pour le latin ;
  • ajouter des familles ou fallback dédiés pour chaque script ;
  • utiliser \switchtobodyfont pour les zones spéciales.

Exemple : latin (Libertinus) + grec (GFS Didot) + arabe (Amiri) + chinois (Noto)

[modifier | modifier le wikicode]
\definefontfamily[mainface][serif][Libertinus Serif]
\definefallbackfamily[mainface][serif][GFS Didot][range=greek]

\definefontfamily[arabface][serif][Amiri]
\definefontfamily[cjkface][serif][Noto Serif CJK SC]

\setupbodyfont[mainface, 11pt]

\starttext

Texte latin : Ceci est un texte de démonstration.

Texte grec : ἡ φιλοσοφία ἀρχίζει ἀπὸ τοῦ θαυμάζειν.

Texte arabe :

{\switchtobodyfont[arabface]
الحكمة تبدأ من الدهشة.
}

Texte chinois :

{\switchtobodyfont[cjkface]
哲学的开始在于惊奇。
}

\stoptext

💡 Astuce : dans un ouvrage complexe, il peut être judicieux de regrouper les choix de polices (latin, grec, arabe, CJK) dans un fichier d’environnement, afin de ne pas répéter ces réglages dans chaque chapitre. Voir ConTeXt/Organisation_du_document.


8. Erreurs fréquentes et vérifications utiles

[modifier | modifier le wikicode]
Problème Cause fréquente Vérification / solution
Caractères grecs manquants police latine partielle utiliser GFS Didot, Porson, Artemisia, EB Garamond
Accents polytoniques incorrects police grecque incomplète tester systématiquement ᾳ, ῃ, ῳ, esprits et accents combinés
Italique cyrillique étrange italique mal dessinée comparer avec des imprimés russes modernes
Texte arabe “cassé” police sans shaping complet tester avec Amiri ou Noto Naskh Arabic
Idéogrammes CJK manquants mauvaise variante de police vérifier l’installation de Noto CJK ou Source Han

Avant d’engager une édition complexe (texte grec + apparat, texte arabe vocalisé, etc.), il est fortement recommandé de :

  • préparer une page de test par langue ;
  • vérifier l’affichage des caractères critiques ;
  • conserver une liste des polices retenues et de leur version.