如何仅更改目录中的部分名称(使用 babel)?或者如何使用 amsart 修补 babel 法语中的错误

如何仅更改目录中的部分名称(使用 babel)?或者如何使用 amsart 修补 babel 法语中的错误

当我使用babelwithfrench选项和 时amsart,我在目录中得到了单词“partie”而不是“Partie”,这是法语中正确的印刷规则(在主文档中我得到了“Première partie”,这是可以的,因为“partie”不是第一个单词,所以不需要大写)。

这是我的 MWE

\documentclass{amsart}
\usepackage[french]{babel}

\begin{document}
\tableofcontents
\part{Essai}

\end{document}

我只想在不使用titletoc包的情况下纠正这个错误。有人有解决方案吗?

答案1

正如已经指出的,babel-french 的选项PartNameFull=false提供了一个修复:然后您会在文档和目录中得到“Partie I”、“Partie II”(罗马数字)。

为了在文档和目录中获得“Première partie”,您可以尝试如下操作:

\documentclass[french]{amsart}
\usepackage{babel}
\usepackage{blindtext}
% Patch amsart.cls:
\usepackage{etoolbox}
\makeatletter
\patchcmd{\@sect}{\@seccntformat{#1}}%
                 {\ifx0#2\unskip.\quad\else\@seccntformat{#1}\fi}{}{}
% To get "Première partie." in the TOC:
\renewcommand{\tocpart}[3]{\indentlabel\ignorespaces
   \ifcase#2\or{Première}\or{Deuxième}\or{Troisième}\else{?}\fi
   \space\partnameord.\quad#3}
% To get "Partie 1." in the TOC only, uncomment these two lines:
%\renewcommand{\tocpart}[3]{\indentlabel\ignorespaces
%   Partie\space#2.\quad#3}
\makeatother
\begin{document}
\tableofcontents
\part{Un essai}
\blindtext
\section{test test test}
\blindtext
\part{Second essai}
\end{document}

这最多适用于三个部分,\tocpart如果需要更多,则扩展命令是显而易见的。

使用amsbook.cls,你可以etoolbox这样使用:

\documentclass[french]{amsbook}
\usepackage{babel}
\usepackage{etoolbox}
\makeatletter
\patchcmd{\@part}{\ \thepart}{}{}{}
\makeatother

每个类别都需要特定的处理,因此我只 PartNameFull=false在 babel-french 中提供选项来解决这个问题。

答案2

在序言中添加代码

\addto\captionsfrench{% <===============================================
  \renewcommand\partname{Partie}%
}

完整的 MWE 包含两个部分

\documentclass{amsart}

\usepackage[french]{babel}
\usepackage{blindtext}

\addto\captionsfrench{% <===============================================
  \renewcommand\partname{Partie}%
}


\begin{document}
\tableofcontents
\part{Essai}
\blindtext
\section{test test test}
\blindtext
\part{test part 2}

\end{document}

给出以下结果:

产生的 toc

顺便说一句:您可以在手册的babel-french第 1.2.1 章 \frenchsetup 中找到:

手册 babel-french

请查看那里红色标记的文本。生成的 PDF 与我上面显示的相同。

使用上面 mwe 中的选项,PartNameFull=true您将获得以下 pdf:

错误的目录和部分

请查看各部分的错误目录条目:应改为Partie 1数字partie 1,或者应不Première partie带数字。

这个bug应该报告给babel-french的作者,电子邮件地址参见文档(texdoc babel-french)。

相关内容