法国章节编号

法国章节编号

这个问题引出了包中的一个新功能:
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}

相关内容