Chemin principal : Accueil > LaTeX > Multilinguisme > Les chaînes de langues de Polyglossia

Les chaînes de langues de Polyglossia

jeudi 23 juin 2011, mise à jour mercredi 8 août 2012, par Maïeul
Suivre la vie du site RSS 2.0 Forum

J’ai parlé dans un précédent article de la manière de redéfinir les chaînes de langues de BibLaTeX.

J’explique ici la manière de procéder pour les chaînes de langues de Polyglossia, pour permettre par exemple de changer le texte « Tables des matières » par « Sommaire » lors de l’appel à la commande \tableofcontents.

Le problème

En France, une table des matière est située à la fin d’un livre, alors qu’un sommaire est situé en début de livre.

Si j’utilise \tableofcontents en début de document, j’obtiens une « table des matières » et non pas un « Sommaire ».

Comment faire ?

La solution

Ces textes automatiquement insérés par LaTeX qui varient en fonction de la langue sont des chaînes de langues, définies par le package Polyglossia [1].

Il faut donc les surcharger.

La méthode

Comme pour les toutes les chaînes de langues, il faut commencer par découvrir quelle est la chaîne à modifier. Il faut d’abord ouvrir le fichier gloss-french.ldf, qui définit, entre autres, les chaînes de langues pour le français [2].

On peut une ligne contenant \def\captionsfrench{%. Cette ligne est suivie d’autres lignes sous la forme : \def\chaine{Valeur}%.

Et ce jusqu’à une accolade fermante.

Pour notre cas, on peut aisément repérer la ligne contenant \def\contentsname{Table des matières}%. Notre chaîne de langue est donc contentsname.

Pour redéfinir une chaîne de langue, il suffit d’écrire, de préférence dans le préambule :

  1. \gappto\captionsfrench{\renewcommand{\chaine}{Valeur}}

Dans le cas présent, cela donne :

  1. \gappto\captionsfrench{\renewcommand{\contentsname}{Sommaire}}

Anedocte : \newcommand vs \def

La commande \def permet de créer des nouvelles commandes. Toutefois à la différence de la commande \newcommand, les commandes ainsi créées appartiennent à TeX et non pas à LaTeX.

Définir des commandes en TeX par rapport à les définir en LaTeX permet plus de souplesse. Toutefois définir les commandes en TeX demande plus de maîtrise technique pour éviter divers problèmes (comme des erreurs de compilation.).

Les commandes TeX peuvent contenir des « sous commandes ». Ici par exemple, la commande \captionfrench contient la sous commande \contentsname. J’utilise la commande TeX \gappto pour « injecter » une sous-commande dans une commande déjà définie.

Notes

[1Je travaille avec Polyglossia et non pas avec Babel : tant pis pour les adeptes de Babel, ce tutoriel n’est pas pour vous.

[2Pour trouver le fichier, je renvoie à mon article sur les fichiers par défaut.

Vos commentaires

  • Le 10 janvier 2012 à 22:58, par Damien En réponse à : Les chaînes de langues de Polyglossia

    Si tu as utilisé babel avant d’adopter polyglossia, il y a des différences intéressantes ?

  • Le 10 janvier 2012 à 23:04, par Maïeul En réponse à : Les chaînes de langues de Polyglossia

    je n’ai jamais utilisé babel, en fait quand j’ai commencé avec XeLaTeX, « on » m’a conseillé Polyglossia.

    Ce que je sais en tout cas c’est que certaine caractères ne passaient pas avec LaTeX, y compris avec le package censé géré l’Unicode alors que ce n’est pas le cas avec XeLaTeX.

    Je pense que comme c’est prévu uniquement pour XeLaTeX il doit tirer profit des fonctionnalité de ce dernier.

    Si je lis le manuel il y a apparemment des fonctions intéressant, comme par exemple changer automatiquement la police lors que l’on change de langue. Mais ca se trouve Babel propose cela aussi.

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici
  • Ce formulaire accepte les raccourcis SPIP [->url] {{gras}} {italique} <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

À propos

Titulaire d’un master en sciences religieuses de l’Université de Strasbourg, je suis depuis août 2012 assistant-diplômé en histoire du christianisme antique et littérature apocryphe chrétienne à l’Université de Lausanne, où je prépare une thèse sous la direction de Frédéric Amsler.

Dans le cadre de la rédaction de mon mémoire de master, j’ai été emmené à utiliser LaTeX, et j’ai donc décider de partager mes techniques. En effet, au cours de mes premiers apprentissages, j’ai découvert que les ressources indiquant les outils pour l’utilisation de LaTeX en sciences humaines étaient rares.

Par ailleurs, je suis membre actif de la communauté SPIP, au sein de laquelle j’administre le site Spip-Contrib. Je propose sur ce site quelques notes sur SPIP, en général à destination de webmestre.

Il m’arrive également de faire un petit peu de Python, de temps en temps.

Enfin, je tiens un blog de réflexions politiques et religieuses.

Maïeul