我所在大学的论文格式要求目录中的章节使用罗马数字(例如“第二章.....狮子”),但对于文中章节的引用,最好使用计数数字(例如“第二章是关于狮子的。”)。
当我使用\ref
命令生成章节引用(例如“章节\ref{chap:lions}
是关于狮子的”)时,我得到的是罗马数字而不是计数数字(例如“第二章是关于狮子的。”)。我如何才能得到计数数字呢?
答案1
以下示例重新定义\thechapter
为包含\arabic
和\Roman
章节编号的
\ArabicRomanChapter{<arabic number>}{<Roman number>}
宏\ArabicRomanChapter
被定义为忽略第一个参数,从而将\Roman
数字打印在章节标题和目录中。
如果有参考文献,则\p@chapter
在章节号前面添加宏。通常这个宏是空的,但在这种情况下,它会删除\ArabicRomanChapter
和参数<Roman number>
以保留参数<arabic number>
以保留参考文献的
\documentclass{report}
\makeatletter
\protected\def\ArabicRomanChapter#1#2{#2}%
\renewcommand*{\thechapter}{%
\ArabicRomanChapter{\arabic{chapter}}{\Roman{chapter}}%
}
\renewcommand*{\p@chapter}{%
\expandafter\@p@chapter
}
\newcommand*{\@p@chapter}[3]{#2}%
\makeatother
\begin{document}
\tableofcontents
\chapter{My chapter}
\label{chap:my}
See chapter \ref{chap:my}.
\end{document}
我没有举过一个例子\section
s 的示例,因为我不知道它们的数字应该如何格式化。
对于旧版本的 LaTeX,
\expandafter\expandafter\expandafter\@p@chapter
是需要的。