使用 XeLaTeX 在 \begin{french} 环境中 Polyglossia 的 \textlatin 之前出现不需要的空格

使用 XeLaTeX 在 \begin{french} 环境中 Polyglossia 的 \textlatin 之前出现不需要的空格

使用 Polyglossia 时,外部法语环境中的拉丁语文本前会出现不需要的空格。当外部环境语言为英语时,不会发生这种情况。

在我的示例中,使用 进行编译时xelatex,法语环境中的第一行看起来不错,因为没有使用任何语言命令。第二行和第三行在单词动词

如何去掉不需要的空格?有规范的解决方案吗?还是我在这里错误地使用了 Polyglossia?

梅威瑟:

\documentclass[12pt]{article}

% Use polyglossia for many languages.
\usepackage{polyglossia}
\setdefaultlanguage{latin}
\setotherlanguage{french}

% Create a command to show Latin words in italics.
\newcommand{\lat}[1]{\textlatin{\textit{#1}}}

\begin{document}

Latine hic. Etiam pars Gallica sequitur: 

\begin{french}

% This looks OK.
En français ici. Mais \textit{verbum} en latin!

% The word verbum has extra white space before it.
En français ici. Mais \textlatin{\textit{verbum}} en latin!

% The word verbum has extra white space before it.
En français ici. Mais \lat{verbum} en latin!

\end{french}

\end{document}

答案1

您正在运行过时的 TeX 发行版,其中文件gloss-french.ldf在第 438 行末尾有一个虚假空格(没有%可以屏蔽行尾的内容)。很可能是 TeX Live 2020 或更早版本。

此问题已在 2021 年 4 月 13 日左右发布的版本中得到修复(请参阅变化)。

您可以在等待更新 TeX 发行版时自行修复它。要么复制工作目录中的文件(您可以在日志文件中找到位置)并修复缺失部分,%要么鼓起勇气编辑已分发的文件(没有真正的风险,如果您使用 TeX Live,该文件将不再更新)。

\def\nofrench@capsformat{%
   % Reset chapter and part heading
   \ifcsdef{titleformat}{%
      % With titlesec
     \ifcsdef{xpg@save@part@format}{%
        \ifcsdef{H@old@part}{\let\@H@old@part\xpg@save@part@format}{\let\@part\xpg@save@part@format}
     }{}%

应该成为

\def\nofrench@capsformat{%
   % Reset chapter and part heading
   \ifcsdef{titleformat}{%
      % With titlesec
     \ifcsdef{xpg@save@part@format}{%
        \ifcsdef{H@old@part}{\let\@H@old@part\xpg@save@part@format}{\let\@part\xpg@save@part@format}% <---- WAS MISSING
     }{}%

相关内容