防止之前换行:

防止之前换行:

这是我的最小代码:

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

结果如下:在此处输入图片描述

如何才能避免在“:”之前出现换行符?

答案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}

(恕我直言,如果您还使用其他语言书写,最好习惯于没有空格的输入,因为它会给出错误的输出,例如在英语或德语环境中。)

在此处输入图片描述

相关内容