Hyperref:包括章节交叉引用的部分编号

Hyperref:包括章节交叉引用的部分编号

我有以下代码

\documentclass{scrreprt}
\usepackage{hyperref}

\begin{document}
    \part{First Part}
    \chapter{First Chapter}
    \label{inner} Some text.

    \part{Second Part}
    \chapter{First Chapter}
    \ref{inner}
\end{document}

1为标签生成一个引用inner。我如何才能将与章节相关的部分的编号包含在此引用中,即自动创建形式的交叉引用I.1

答案1

LaTeX 内核提供了一种巧妙的机制,用于将材料“前缀”到计数器的交叉引用中。对于通过\newcounter名为 的宏在某处定义的每个计数器变量somecounter,LaTeX 会自动创建一个名为 的辅助宏,并且此宏的值会自动添加到引用计数器 的命令\p@somecounter的结果的前缀中。\refsomecounter

默认情况下,这些辅助前缀宏是空的,但可以通过指令直接修改它们\renewcommand。对于手头的情况,您可以通过添加指令来实现目标

\makeatletter
\renewcommand{\p@chapter}{\thepart.} % prefix "\thepart." to the number of the chapter
\makeatother

在加载之前,将其添加到序言中hyperref。(需要\makeatletter\makeatother指​​令是因为该宏\p@chapter包含通常具有类别代码“其他”的字符@。)

相关内容