将交叉引用放在括号中

将交叉引用放在括号中

是否可以用括号或圆括号括起交叉引用?例如,当我编写类似命令时,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

我更喜欢autorefhyperref 包中提供的功能。

以表格和图形为例:

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自动引用变量,该变量括在 中。然后您将获得如下结果:#1Equation (#1)()

在此处输入图片描述

如果要使用花括号{},则应使用 进行转义\

\usepackage{hyperref}
\def\equationautorefname~#1\null{Equation \{#1\}\null}

答案4

我尝试了 cmhughes 的答案,但没有成功(没有括号——这很奇怪,因为最小的示例成功了)。guest2015 的答案成功了,但需要一个额外的包。我最终使用了\newcommand\pef[1]{(\ref{#1})}

相关内容