同一文档中的双重索引

同一文档中的双重索引

我对我面临的一个问题有疑问。我有一份由两个不同且独立的部分组成的文档,其中第二部分仅引用第一部分的一些元素。这两个部分共享一个共同的信息,例如参考书目。

我想要生成的是一份文档,其中每个部分的编号都从 1 开始(图、表等也遵循相同的编号...)。例如:

第一部分

第1章 第 1.x 节 第 1.xy 节

第2章 第 2.x 节子第 2.xy 节 -->图 2.x.1

ETC。

第二部分

第1章 第 1.x 节 第 1.xy 节

第2章 第 2.x 节子第 2.xy 节 -->图 2.x.1

ETC。

正如我所说,第二部分以某种方式引用了第一部分中的元素。因此,在第二部分 - 第 2 章 - 第 2.x 节中,我可以引用第一部分的第 2.x 节(例如图 2.x.1)

可以做到吗?

答案1

与类相比book,章节在新的部分开始时重置,图表和表格在新的部分开始时重置。有几种方法可以做到这一点,请参阅上面 Count Zero 注释中的链接。

问题仍然存在,编号不唯一,并且不清楚图 2.1.1 属于哪个部分。如果引用指向当前部分之外,以下示例将添加该部分:

参考

每个引用都以 为前缀,并\p@<counter>重新定义为\RefPart使用当前部件号扩展为。\RefPart使用 进行定义\DeclareRobustCommand,因为在将标签写入文件时,它不能扩展.aux。 这样, 将\RefPart在 时执行,\ref可以在两个部件中调用,从而生成不同的引用(带和不带部件前缀)。

另外,该示例还经过了测试hyperref

\documentclass{book}

\usepackage{hyperref}
\usepackage{bookmark}

\makeatletter
% numbering of chapters inside part:
\@addtoreset{chapter}{part}
\@ifpackageloaded{hyperref}{%
  \renewcommand*{\theHchapter}{%
    \theHpart.\arabic{chapter}%
  }%
}{}
% numbering of figure/table inside section:
\@addtoreset{figure}{section}
\renewcommand*{\thefigure}{\thesection.\arabic{figure}}
\@addtoreset{table}{section}
\renewcommand*{\thetable}{\thesection.\arabic{table}}
\DeclareRobustCommand*{\RefPart}[1]{%
  \begingroup
    \def\x{#1}%
    \protected@edef\y{\thepart}%
    \ifx\x\y
    \else
      \x.%
    \fi
  \endgroup
}
\renewcommand*{\p@table}{\RefPart{\thepart}}
\renewcommand*{\p@figure}{\RefPart{\thepart}}
\makeatother

\begin{document}
\tableofcontents

\part{First part}
\chapter{Chapter A}
Reference inside part: \ref{figE}\\
reference to other part: \ref{figEE}
\chapter{Chapter B}
\section{Section C}
\subsection{Subsection D}
\begin{figure}
\caption{Figure E}
\label{figE}
\end{figure}

\part{Second part}
\chapter{Chapter AA}
Reference to other part: \ref{figE}\\
reference inside part: \ref{figEE}   
\chapter{Chapter BB}
\section{Section CC}
\subsection{Subsection DD}
\begin{figure}
\caption{Figure EE}
\label{figEE}
\end{figure} 

\end{document}

相关内容