Accueil > LaTeX > Multilinguisme > Les chaînes de langues de Polyglossia

Les chaînes de langues de Polyglossia

jeudi 23 juin 2011, par Maïeul

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 :

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

Dans le cas présent, cela donne :

\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.


[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.

Messages

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

    Voir en ligne : http://people.untyped.org/damien.pollet

    • 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.

Un message, un commentaire ?

Qui êtes-vous ?
Votre message

Pour créer des paragraphes, laissez simplement des lignes vides.

Lien hypertexte

(Si votre message se réfère à un article publié sur le Web, ou à une page fournissant plus d’informations, vous pouvez indiquer ci-après le titre de la page et son adresse.)