上标交叉引用附录

上标交叉引用附录

我正在写一份报告,我想使用上标引用(就像我已经用于参考书目一样)链接到带有括号的部分,\appendix以便它显示为带有括号的上标,如 [A.1] 或 [A.2](以匹配我指向的部分)。

我所能做的就是以下几点:

\documentclass[12pt,a4paper]{article}
\usepackage[hidelinks]{hyperref}
%a million other packages

\begin{document}

Text see annex 1\ref{ref:a}

\appendix
\section{title of annex}
information\label{ref:a}

\end{document}

效果很好,只是它只显示一个不带括号的 A,大小与文本相同。有什么想法吗?

答案1

交叉引用格式存储在名为 foo 的计数器中,as\p@foo\csname thefoo\endcsname基本上总是\p@foo空的,并\thefoo开始起作用。存储发生在\refstepcounteras中\@currentlabel

定义\p@foo[]只会[]在之前打印\thefoo,但不将其括起来。\csname thefoo\endcsname必须“吞噬”(用特殊的宏捕获并使用它作为分隔符,然后[A.\thefoo]才能使用。

为了将此效果仅限于附录,我将其添加到了\appendixwith的定义中\g@addto@macro{\appendix}

但是,在我的解释foo中用代替section

\documentclass[12pt,a4paper]{article}
\usepackage[hidelinks]{hyperref}
%a million other packages

\makeatletter
\g@addto@macro\appendix{%
  \renewcommand{\thesection}{\arabic{section}}%
  \def\@gobblerefstuff#1\csname thesection\endcsname{%
    [A.\thesection]}%
  \renewcommand{\p@section}{\@gobblerefstuff}
}
\makeatother

\begin{document}

Text see annex \ref{ref:a} or \ref{Completelydifferent}



\appendix
\section{title of annex}
information\label{ref:a}

\section{And now for something completely different} \label{Completelydifferent}

\end{document}

在此处输入图片描述

相关内容