当我使用babel
withfrench
选项和 时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}
给出以下结果:
顺便说一句:您可以在手册的babel-french
第 1.2.1 章 \frenchsetup 中找到:
请查看那里红色标记的文本。生成的 PDF 与我上面显示的相同。
使用上面 mwe 中的选项,PartNameFull=true
您将获得以下 pdf:
请查看各部分的错误目录条目:应改为Partie 1
数字partie 1
,或者应不Première partie
带数字。
这个bug应该报告给babel-french的作者,电子邮件地址参见文档(texdoc babel-french
)。