在法语中,amsbook
即使我重新定义,类也会在目录中以小写形式显示零件名称\partname
。我想知道如何解决这个问题。
\documentclass{amsbook}
\usepackage[french]{babel}
\title{La démocratie}
\author{Quelqu'un}
\begin{document}
\frontmatter
\maketitle
\tableofcontents
\mainmatter
\part{Introduction}
\end{document}
答案1
我猜你想在标题中保留“Première partie”,所以这里有几个小窍门。
首先,中的代码babel-french
没有考虑到\thepart
前面有一个应该被忽略(或删除)的空格,所以我通过(本地)重新定义而不是不做任何事情\thepart
来修复它。\unskip
其次,我进行修补\@part
,使其直接写入Partie
而不是写入文件\partname
中toc
。
\documentclass{amsbook}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\usepackage{etoolbox}
% fix a small issue in babel-french
\makeatletter
\renewcommand\FB@emptypart{\def\thepart{\unskip}}
% make \part write 'Partie' instead of '\partname'
\patchcmd{\@part}{\partname}{Partie}{}{}
\makeatother
\title{La démocratie}
\author{Quelqu'un}
\begin{document}
\frontmatter
\maketitle
\tableofcontents
\mainmatter
\part{Introduction}
\end{document}
答案2
根据babel-french
包装文档 PartNameFull
应设置为false
以避免此类问题。
因此只需将其添加\frenchsetup{PartNameFull=false}
到您的序言中即可。这应该可以解决您的问题。
文档摘录:
PartNameFull=false(真);
当设置为 true 时,babel-french 会将 \part{} 命令的标题编号为“Première partie”、“Deuxième partie”等等。对于某些会更改 \part{} 命令的类(AMS 类会这样做),您可能会在目录中看到“Première partie 1”、“Deuxième partie 2”;当出现这种情况时,应将此选项设置为 false,然后部分标题将打印为“Partie I”、“Partie II”。