Le problème
Soit le les lignes suivantes :
\documentclass{article}
\usepackage{polyglossia}
\setmainlanguage{french}
\setotherlanguage{english}
\usepackage[french=guillemets]{csquotes}
\begin{document}
\enquote{x}
\end{document}Avant la version 1.42.4 de polyglossia, des espaces étaient automatiquement insérées au niveau des guillemets.
Après cette version, les espaces disparaissent.
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 :
\apptocmd{\french@punctuation}{%
\XeTeXinterchartoks \french@punctguillstart 255 = {\nobreakspace\xpg@nospace}% "« " -> "«~"
\XeTeXinterchartoks 255 \french@punctguillend = {\xpg@unskip\nobreakspace}% " »" -> "~»"
}{}{}Je ne manquerais pas de vous tenir au courant lorsque la nouvelle version de polyglossia sera sortie, mais il faudra alors passer à la TeXLive 2017, 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)".