Chemin principal : Accueil > LaTeX > Typographie > Bug avec polyglossia 1.42.4

Autres chemins : (Aller directement au contenu de l'article)

Bug avec polyglossia 1.42.4

mercredi 13 avril 2016, mise à jour dimanche 12 juin 2016, par Maïeul
Suivre la vie du site RSS 2.0 Forum

Décidément, c’est la saison des bugs. La version 1.42.4 de polyglossia, envoyée sur le CTAN le 25 mars, casse les espaces à l’interieur des guillemets français.

Voici comment contourner le problème, en attendant qu’il soit résolu directement dans polyglossia.

Le problème

Soit le les lignes suivantes :

  1. \documentclass{article}
  2. \usepackage{polyglossia}
  3. \setmainlanguage{french}
  4. \setotherlanguage{english}
  5. \usepackage[french=guillemets]{csquotes}
  6. \begin{document}
  7.  
  8. \enquote{x}
  9.  
  10. \end{document}

Télécharger

Avant la version 1.42.4 de polyglossia, des espaces étaient automatiquement insérées au niveau des guillemets.

Espaces dans les guillemets : bonne typographie

Après cette version, les espaces disparaissent.

Pas d’espaces dans les guillemets : mauvaise typographie

La solution

Le problème a été introduit par un commit visant à résoudre un autre problème.

On pourrait évidemment surcharger le fichier french.ldf modifié par ce commit pour revenir à l’ancien fichier. Toutefois, il n’est en généralement pas conseillé de surcharger un fichier entier : on ne profite pas des évolutions futures.

Cependant il est assez simple de corriger cela. Il suffit de rétablir au sein de la commande \french@punctuation les codes commentés, et ce grâce à la commande \apptocmd qui permet d’ajouter des morceaux de code à la fin d’une commande déjà existante.

Comme la commande \french@punctuation contient des @, et que les commandes que l’on souhaite insérer aussi, il faut entourer notre \apptocmd de \makeatletter\makeatother.

Cela étant, le seul bout de code à insérer dans le préambule est :

  1. \apptocmd{\french@punctuation}{%
  2. \XeTeXinterchartoks \french@punctguillstart 255 = {\nobreakspace\xpg@nospace}% "« " -> "«~"
  3. \XeTeXinterchartoks 255 \french@punctguillend = {\xpg@unskip\nobreakspace}% " »" -> "~»"
  4. }{}{}

Télécharger

Je ne manquerais pas de vous tenir au courant lorsque la nouvelle version de polyglossia sera sortie, mais il faudra alors passer à la TeXLive 2015, la TeXLive 2016 étant gelée.

Corrigenda : si vous utiliser TeXLive 2016, lisez l’article suivant « Polyglossia et XeLaTeX 3.14159265-2.6-0.99996 (TeXLive 2016) ».

P.-S.

Remerciement à Aurélien Berra pour avoir signalé le problème et trouvé la piste de solution.

Vos commentaires

  • Le 25 avril 2016 à 13:49, par alfa8my En réponse à : Bug avec polyglossia 1.42.4

    Merci, ce problème me turlupinait !

  • Le 10 juin 2016 à 10:31, par achemel En réponse à : Bug avec polyglossia 1.42.4

    Bonjour,

    La solution ci-dessus n’a pas fonctionné pour moi.

    En revanche, grâce à https://github.com/josephwright/csq..., voici ce qui fonctionne :

    1. documentclass{article}>
    2. usepackage{polyglossia}
    3. setmainlanguage{french}
    4. usepackage{csquotes}
    5.  
    6. %problème pour les guillemets avec polyglossia 1.42.4
    7. %https://github.com/josephwright/csquotes/issues/8
    8. makeatletter
    9. apptocmd{french@punctuation}{%
    10. XeTeXinterchartoks french@punctguillstart 4095 = {nobreakspacexpg@nospace}% "« " -> "«~"
    11. XeTeXinterchartoks 4095 french@punctguillend = {xpg@unskipnobreakspace}% " »" -> "~»"
    12. }{}{}
    13. makeatother
    14. begin{document}
    15.  
    16. reprise de l'exemple ci-dessus:
    17. « 1 » % Not csquotes
    18. enquote{ 1 } % Csquotes
    19. " 5 " % Csquotes
    20.  
    21. correct (normalement) ---~je ne mets jamais d'espace autour des accolades, je ne sais pas si ça change quelque chose~---:
    22. enquote{1}
    23. enquote{bond}
    24. enquote{et enquote{dernier} essai}
    25. end{document}

    Télécharger

    Merci en tout cas pour ce blog, je suis en train de faire ma thèse (sciences humaines) grâce à vous sur LaTeX... Bravo pour le travail et les conseils. Je ne suis absolument pas une spécialiste... et j’y arrive :-)

  • Le 10 juin 2016 à 10:47, par Maïeul En réponse à : Bug avec polyglossia 1.42.4

    C’est parce que vous utiliser une version récente de XeLaTeX. Il y a un ticket ouvert sur le sujet, mais je crains qu’il ne soit résolu prochainement. Je comptais publier un billet à ce sujet ce week-end.

  • Le 10 juin 2016 à 10:52, par Maïeul En réponse à : Bug avec polyglossia 1.42.4

    ps : il manque les antislash dans votre exemple. Et puis pour faire bien il faudrait aussi corriger un bug sur certains signes typo.

    Voir ce que j’utilise.

  • Le 10 juin 2016 à 12:15, par achemel En réponse à : Bug avec polyglossia 1.42.4

    Ah oui, les antislash... c’est la première fois que je poste du code sur un blog, alors je n’ai pas trop su utiliser « code », etc. J’ai pourtant fait copier/coller depuis TeXstudio.

    Il est vrai que je rencontre ces problèmes (et d’autres... comme les numéros de notes en bas de page soudainement plus en exposant et bizarrement suivis d’un point [grr.. trouvé un début de réponse, mais qu’un début... re-grr]) depuis que je suis passée à la distribution 2016 de TeXLive, parce que, peut-être bêtement, je me dis qu’il faut passer au plus récent... Je suis même repassée à la distri 2015 pour un rapport à rendre hier soir (ce qui m’embête, parce que je n’ai pas assez de mémoire sur mon Mac pour garder les deux distri ensemble).

    Bon, petits tracas, qui valent quand la peine d’être vécus tant l’apport de LaTeX est un soulagement dans la rédaction d’un très long document !

    Encore merci pour votre lien vers votre package et pour tout le reste.

    PS : je me suis inscrite sur gravatar, comme vous le conseillez, mais ce n’est pas « mon image » (de très belles marguerites) qui apparaît :-(

  • Le 10 juin 2016 à 14:15, par Maïeul En réponse à : Bug avec polyglossia 1.42.4

    Le problème de gravatar était juste une histoire de cache, parce que vous vous êtes inscrits après-coup. Pas très grave.

    Pour ce qui est des notes, c’est un changement survenu dans la version 1.24.4 de polyglossia. Ce type de note correspond plus à la norme française.

    Ce qui est moche, c’est qu’il n’ont pas prévenu, et surtout pas mis d’option pour rendre cela facultatif.

    Cela étant, on peut contourner cela assez facilement. Remplacer \setmainlanguage{french} par :

    1. \let\old@makefntext\@makefntext
    2. \setmainlanguage{french}
    3. \let\@makefntext\old@makefntext

    Télécharger

  • Le 10 juin 2016 à 16:10, par achemel En réponse à : Bug avec polyglossia 1.42.4

    GÉ-NIAL !!!!!

    Ça marche !!!! Merci beaucoup...

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