Polyglossia et XeLaTeX 3.14159265-2.6-0.99996 (TeXLive 2016)

dimanche 12 juin 2016, par Maïeul
Suivre la vie du site RSS 2.0 Forum

Cet article est obsolète. Soit qu’il existe une manière plus « moderne » de procéder, soit que j’ai trouvé une autre méthode plus appropriée.
Voyez plutôt la nouvelle version : Polyglossia français debugué.

TeXLive 2016 est sortie lundi dernier. Elle inclut une nouvelle version de XeLaTeX qui nécessite quelques adaptations de polyglossia, lesquelles n’ont pas encore été faites. Heureusement, ceci se corrige en quelques lignes

Le problème

XeTeX propose de définir des classes de caractères (par exemple « signes de ponctuations » « espaces » « guillemets »). Ceci permet d’insérer automatiquement des espaces de tailles déterminées entre certains caractères, selon la classe à laquelle ils appartiennent. Par exemple insérer une espace fine avant les caractères de ponctuation double.

Problème : il existe une classe spéciale, celles correspondant à la limite d’un mot, dont le code était 255 dans les anciennes versions de XeTeX, mais qui dans la version distribuée dans TeXLive2016 est devenue 4095.

Résultat : alors que un mot ; un autre mot mettait une espace fine avant le point-virgule, elle met désormais une espace normale.

La solution

Il suffit simplement de patcher la commande french@punctuation. Ajoutez donc les lignes suivantes dans votre préambule, après avoir chargé le français :

\makeatletter
\appto\french@punctuation{%
      \XeTeXinterchartoks \french@punctguillstart 255 = {\nobreakspace\xpg@nospace}% "«  " -> "«~"
      \XeTeXinterchartoks 255 \french@punctguillend = {\xpg@unskip\nobreakspace}% "  »" -> "~»"  
      \XeTeXinterchartoks \french@punctguillstart 4095 = {\nobreakspace\xpg@nospace}% "«  " -> "«~"
      \XeTeXinterchartoks 4095 \french@punctguillend = {\xpg@unskip\nobreakspace}% "  »" -> "~»"
      \XeTeXinterchartoks 4095 \french@punctthin = {\xpg@unskip\nobreak\thinspace}%
      \XeTeXinterchartoks 4095 \french@punctthick = {\xpg@unskip\nobreakspace}%  
}
\makeatother

On retrouve le \makeatletter, \makeatother pour manipuler les commandes contenant des @ dans leur nom. Nous ajouter à la fin de la commande \french@punctuation la déclaration des « tokens » (éléments TeX de base) à ajouter entre les caractéres, en utilisant le bon code de classe.

Ceci inclut la correction pour le bug sur les guillemets signalée il y a peu.

Vos commentaires

  • Le 13 juin 2016 à 02:43, par A. Pouliquen En réponse à : Polyglossia et XeLaTeX 3.14159265-2.6-0.99996 (TeXLive 2016)

    Encore merci !

  • Le 14 décembre 2016 à 19:53, par Frédéric Vachon En réponse à : Polyglossia et XeLaTeX 3.14159265-2.6-0.99996 (TeXLive 2016)

    Merci pour l’information ; depuis la mise à jour j’utilisais une classe fournie par ma nouvelle université et j’ai cru naïvement que c’était une modification de leur part un peu étrange, jusqu’à ce que je fasse une présentation beamer ces dernières semaines et que je rencontre le même problème.

    Probablement une évidence pour plusieurs, il faut ajouter le code de la solution après l’appel du paquet csquotes et de l’appel de langue. J’avais mis le code entre les deux et, évidemment, ça ne fonctionnait pas.

    Sinon, doit-on s’attendre à un correctif d’ici 2017 ou le patchage est là pour rester encore un bon moment ? J’ai fouillé un peu sur les pages Github des paquets polyglossia et csquotes sans trouver de réponse claire à ce sujet.

  • Le 14 décembre 2016 à 19:59, par Maïeul En réponse à : Polyglossia et XeLaTeX 3.14159265-2.6-0.99996 (TeXLive 2016)

    cela risque de durer un petit moment, parce que tant le mainteneur du package que moi même somme trop occupé pour l’incorporer correctement…

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 champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Acheter XeLaTeX appliqué aux sciences humaines

À propos

Titulaire d’un doctorat en théologie et d’un doctorat en histoire, sous la direction conjointe de Frédéric Amsler et d’Élisabeth_Malamut, je commence à partir du 1er août 2017 un travail d’édition critique des Actes de Barnabé.

Dans le cadre de la rédaction de mon mémoire de master puis de ma thèse de doctorat, 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. Ceci m’a conduit à maintenir ou créer plusieurs packages LaTeX et à donner plusieurs formations.

J’ai reçu en 2018 le prix DANTE e.V pour mon travail autour de LaTeX, en particulier autour de reledmac et reledpar.

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