这个问题引出了包中的一个新功能:
impnattypo
法国印刷术建议各章节以大写罗马数字编号,但第 1 章除外,该章应称为“Chapitre premier”,因此应为:
- 第一章
- 第二章
- 第三章
- ETC。
为了实现这一点,我目前想到的办法有:
\usepackage{ifthen}
\renewcommand{\thechapter}{%
\ifthenelse{\value{chapter}=1}{premier}{\Roman{chapter}}
}
但是,当用这个进行编译时,我得到:
! Use of \@chapter doesn't match its definition.
\new@ifnextchar ...served@d = #1\def \reserved@a {
#2}\def \reserved@b {#3}\f...
l.1 \chapter{\`A la recherche de la r\'eponse}
哪里有问题?
答案1
这是一个使用\ifnum
而不使用 的解决方案ifthen
:
\documentclass{book}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\renewcommand{\thechapter}{%
\ifnum\value{chapter}=1
premier%
\else
\Roman{chapter}%
\fi
}
\begin{document}
\chapter{One}
\chapter{Two}
\end{document}
答案2
我猜想这ifthen
在某种程度上无法正确扩展。使用电子工具箱反而。
\documentclass{book}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\usepackage{blindtext}
\usepackage{etoolbox}
\renewcommand{\thechapter}{%
\ifnumequal{\value{chapter}}{1}{premier}{\Roman{chapter}}%
}
\begin{document}
\chapter{foo}
\blindtext
\chapter{bar}
\blindtext
\end{document}