是否可以用括号或圆括号括起交叉引用?例如,当我编写类似命令时,some text \ref{some label}
编译后的输出为一些文字(12)无需在 latex 命令中手动放置括号,例如some text (\ref{some label})
。
答案1
您可以更新参考命令,也许类似于:
\let\oldref\ref
\renewcommand{\ref}[1]{(\oldref{#1})}
这是一个完整的 MWE,可供使用:
% arara: pdflatex
% arara: pdflatex
\documentclass{article}
\let\oldref\ref
\renewcommand{\ref}[1]{(\oldref{#1})}
\begin{document}
\section{Section heading}\label{sec:testlabel}
Reference: \ref{sec:testlabel}
\end{document}
注意:正如@Mico 提到的,该解决方案与包不兼容hyperref
。
答案2
尝试\eqref{fig:label}
从amsmath
包装中使用。
(摘自此处:https://groups.google.com/forum/#!topic/latexusersgroup/e1CHoBfj8pQ)
答案3
我更喜欢autoref
hyperref 包中提供的功能。
以表格和图形为例:
The Table reference is \autoref{tab:VHTRC}.
The equation reference is \autoref{eq:3}.
接下来,应该在序言中更新新的引用样式。通常我在包含 hyperref 包后立即定义它们。
\usepackage{hyperref}
\def\equationautorefname~#1\null{Equation (#1)\null}
在 样式中定义\def
自动引用变量,该变量括在 中。然后您将获得如下结果:#1
Equation (#1)
()
如果要使用花括号{}
,则应使用 进行转义\
。
\usepackage{hyperref}
\def\equationautorefname~#1\null{Equation \{#1\}\null}
答案4
我尝试了 cmhughes 的答案,但没有成功(没有括号——这很奇怪,因为最小的示例成功了)。guest2015 的答案成功了,但需要一个额外的包。我最终使用了\newcommand\pef[1]{(\ref{#1})}