答案1
gloss-french 中有一个错误(或者更准确地说,它尚未更新到新的 xetex)。在较新的 xetex 版本中,space/boundary 有另一个类。这避免了中断:
\documentclass[12pt]{memoir}
\usepackage{polyglossia}
\setdefaultlanguage{french}
\makeatletter
\XeTeXinterchartoks 4095 \french@punctthin = {\xpg@unskip\nobreak\thinspace}%
\XeTeXinterchartoks 4095 \french@punctthick = {\xpg@unskip\nobreakspace}%
\makeatother
\begin{document}
Bonjour tout le monde. Si je vais au bout de la ligne, je vais avoir cela : non !
\end{document}
允许您使用 luatex 运行文档的补丁是:
\documentclass[12pt]{memoir}
\usepackage{polyglossia}
\setdefaultlanguage{french}
\usepackage{etoolbox}
\makeatletter
\patchcmd\french@punctuation{255}{4095}{}{}
\patchcmd\french@punctuation{255}{4095}{}{}
\makeatother
\begin{document}
Bonjour tout le monde. Si je vais au bout de la ligne, je vais avoir cela : non !
\end{document}
除此之外,您不必在输入中添加空格,因为法语模块会为您完成此操作
\documentclass[12pt]{memoir}
\usepackage{polyglossia}
\setdefaultlanguage{french}
\begin{document}
Bonjour tout le monde. Si je vais au bout de la ligne, je vais avoir cela: non!
\end{document}
(恕我直言,如果您还使用其他语言书写,最好习惯于没有空格的输入,因为它会给出错误的输出,例如在英语或德语环境中。)