使用多语种时部件无法正常工作

使用多语种时部件无法正常工作

我正在处理一份book包含 的文档xelatex。该文档分为parts,我偶尔需要在两种语言之间切换。

我发现当我的文档包含多种语言时,数字part不再显示:

\documentclass{book}

\usepackage{polyglossia}
\setdefaultlanguage{english}
\setotherlanguage{french}

\begin{document}
  \selectlanguage{french}
  \selectlanguage{english}

  \part{My Part}
\end{document}

将导致:

不显示零件编号

如果我只使用一种语言,就不会遇到任何问题:

\documentclass{book}

\usepackage{polyglossia}
\setdefaultlanguage{english}
\setotherlanguage{french}

\begin{document}
  % \selectlanguage{french}
  \selectlanguage{english}

  \part{My Part}
\end{document}

显示零件编号

无论如何,章节和部分都发挥良好的作用。

答案1

french语言重新定义\thepart为不发布任何内容,因为它想要“Première partie”。因此,如果您切换到法语,命令会被重新定义,但切换到英语不会重新定义它。

\documentclass{book}

\usepackage{polyglossia}
\setdefaultlanguage{english}
\setotherlanguage{french}

\makeatletter
\let\latex@thepart\thepart
\appto\noextras@french{\let\thepart\latex@thepart}
\makeatother

\begin{document}

\selectlanguage{french}
\selectlanguage{english}

\part{My Part}

\end{document}

保存原始\thepart命令,并在语言从法语切换到另一种语言时恢复它。

相关内容