当引用下级章节时,cleveref 默认显示引用章节的标识符,因为它实际上是以全文显示的。我重新定义了\part
、\chapter
、 ... 命令以仅显示实际章节的标识符。有没有办法同时显示上级章节、章节、部分 ... 的标识符?Cleveref 似乎没有这个选项,不幸的是我无法自己寻找解决方案。
下面是我的 MWE,用于演示我所寻找的内容:
\documentclass[fontsize=12pt, a4paper]{scrreprt}
\usepackage{cleveref}
\renewcommand*\thepart{\Alph{part}}
\renewcommand*\thechapter{\Roman{chapter}}
\renewcommand*\thesection{\arabic{section}}
\renewcommand*\thesubsection{\alph{subsection}}
\renewcommand*\thesubsubsection{\roman{subsubsection}}
\begin{document}
\part{First Part}
\chapter{First Chapter}
\label{first_chapter}
Is: For further information see \cref{first_subsection}.
Should be: For further information see section B.II.1.a.
\section{First Section}
\part{Second Part}
\chapter{Second Chapter}
\section{Second Section}
\subsection{First Subsection}
\label{first_subsection}
Is: As noticed in \cref{first_chapter} ...
Should be: As noticed in A.I. ...
\end{document}
答案1
LaTeX 提供了一种内置机制,用于将下属单位的“前缀”添加到交叉引用调用中。如果mycounter
创建了一个名为 的计数器,LaTeX 会自动创建一个名为 的宏\p@mycounter
,其中包含要在 实例的交叉引用中添加前缀的材料mycounter
。
默认情况下,此“前缀宏”为空,即不插入任何材料。但是,如果您添加指令
\makeatletter
\renewcommand{\p@chapter}{\thepart.} % prefix for chapter-level cross-refs
\renewcommand{\p@section}{\p@chapter\thechapter.} % prefix for section-level cross-refs
\renewcommand{\p@subsection}{\p@section\thesection.} % for cross-refs to subsections
\renewcommand{\p@subsubsection}{\p@subsection\thesubsection.} % for cross-refs to subsubsections
\makeatother
对于文档的序言,由章节、节、小节和小小\cref
节生成的所有交叉引用(以及\ref
对章节、节、小节和小小节的交叉引用)都将使用完整的复合数字。