当目录使用罗马数字时,如何以计数方式获取章节 \ref?

当目录使用罗马数字时,如何以计数方式获取章节 \ref?

我所在大学的论文格式要求目录中的章节使用罗马数字(例如“第二章.....狮子”),但对于文中章节的引用,最好使用计数数字(例如“第二章是关于狮子的。”)。

当我使用\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}  

我没有举过一个例子\sections 的示例,因为我不知道它们的数字应该如何格式化。


对于旧版本的 LaTeX,

\expandafter\expandafter\expandafter\@p@chapter

是需要的。

相关内容