我正在使用书籍课程,并且我的章节和部分具有以下结构:
\renewcommand\thechapter{\Roman{chapter}}
\renewcommand\thesection{\arabic{section}}
这样我就得到了章节和部分
I
1
2
...
II
1
2
...
这很好,因为我不想在章节标题和目录中出现带有 I.1、I.2、...、II.1 的繁重结构。
但是,当我引用第二章第 1 节时,我希望得到结果 II.1,而不仅仅是 1(当我从另一章引用时,这会造成混淆)。
有没有办法自动为章节引用添加章节编号?到目前为止,我还没有找到令人满意的答案。
注意:我不知道这是否有任何兴趣,但我的图表、公式都以章节号命名,所以当我参考它们时,我已经有了章节号,这对我来说没问题。
谢谢
答案1
引用可以在其定义时加上前缀\label
:\p@<counter>
\makeatletter
\renewcommand*{\p@section}{\thechapter.}
\makeatother
例子:
\documentclass{book}
\renewcommand\thechapter{\Roman{chapter}}
\renewcommand\thesection{\arabic{section}}
\makeatletter
\renewcommand*{\p@section}{\thechapter.}
\makeatother
\begin{document}
\tableofcontents
\chapter{First chapter}
\label{chap:first}
\section{First section}
\label{sec:first}
\chapter{Second chapter}
\label{chap:second}
\section{Second section}
\label{sec:second}
Section \ref{sec:first} in chapter \ref{chap:first},
section \ref{sec:second} in chapter \ref{chap:second}.
\end{document}
目录:
参考: