我正在写一份报告,我想使用上标引用(就像我已经用于参考书目一样)链接到带有括号的部分,\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
开始起作用。存储发生在\refstepcounter
as中\@currentlabel
。
定义\p@foo
为[]
只会[]
在之前打印\thefoo
,但不将其括起来。\csname thefoo\endcsname
必须“吞噬”(用特殊的宏捕获并使用它作为分隔符,然后[A.\thefoo]
才能使用。
为了将此效果仅限于附录,我将其添加到了\appendix
with的定义中\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}