如果引用已经在括号中,如何删除它?

如果引用已经在括号中,如何删除它?

cleveref我在论文中使用它进行交叉引用。对于方程式,它通常如下所示:

从公式(5)可以看出,这些数字加起来不对。

但是,有时我只想引用一个公式,而不想围绕它构造句子,即我只想将其放在括号中。在这种情况下,我不想在数字周围加括号:

这可以通过前面显示的公式(等式 5)来完成。

然而,书写时(\cref{eq5})自然会保留括号,如下所示:

这可以通过前面显示的公式(等式 (5))来完成。

有没有办法得到我想要的结果cleveref,这样我就不必手动更改遇到此问题的所有实例?

我知道我可以将其写为(Eq.~\ref{eq5}),但如果可能的话,我更希望有一个处理所有引用的单个命令。这就是我cleveref首先使用的原因。

我也希望得到一些建议,以便更好地处理这种情况。也许有一种我不知道的标准方法。我觉得很奇怪,\cref{}方程式的默认选择与图表和表格的不同,并导致了图表和表格不会出现的特定问题。所以也许我在某种程度上误用了这个包。

请注意,这不是(也从来不是)对 的功能请求cleveref。我只是询问如何正确使用它,以及我是否可以在我的 Latex 文件中添加一行代码来解决我遇到的问题。

答案1

我想你可以只需书写就能实现所需的输出(Eq.~\ref{eq5}),对吗?

在深入探讨其他建议之前,我想先摘录一下该软件包的用户指南cleveref(参见第 4 页,脚注 2)。在相关内容中,Toby Cubitt(该cleveref软件包的作者和维护者)写道:

尝试自动确定适当的情况相当于解决完整的自然语言处理问题cleveref。大约一个世纪后再回头看看这个功能。

我引用这段话是因为您的请求——让 LaTeX 和/或cleveref自动检测 的实例\cref是否自行发生(用括号括起来),并\cref根据此条件更改 的输出——非常接近于要求解决自然语言处理问题。

还记得,它被设计用来接收和处理多个参数。如果一条指令接收多个参数(这些参数可能是也可能不是对象的标签……)但还被一对括号包围,那么\cref究竟会发生什么呢?\crefequation

因此,我不会尝试直接解决您的功能请求,而是想为您的排版目标提出三条替代解决方案建议:

  • (Eq.~\ref{eq5})——这并不是那么难,不是吗?

  • 使用单个逗号而不是一对括号来在视觉上抵消交叉引用,并继续使用\cref

  • 使用\labelcref而不是\cref,这样可以有效地使“公式”成为与方程编号相关联的名词。就我个人而言,我最喜欢这种方法,因为它避免排版两个名词——“公式”和“方程式”——而一个就足够了。

(以下代码加载包并使用选项hyperref加载包,以便从视觉上清楚地显示 、 和 生成的内容。)cleverefnameinlink\cref\labelcref\ref

在此处输入图片描述

\documentclass{article}
\usepackage[colorlinks,allcolors=blue]{hyperref} % optional
\usepackage[capitalize,nameinlink]{cleveref}
\setlength{\textwidth}{3.5in} % just for this example
\begin{document}
\setcounter{equation}{4} % just for this example


\begin{equation} \label{eq5} 1+4=5 \end{equation}
%As can be seen in \cref{eq5}, the numbers don't add up.

\noindent
\begin{tabular}{@{}ll@{}}
\dots\ the previously shown formula (\cref{eq5}). & bad\\

\dots\ the previously shown formula (Eq.~\ref{eq5}). & good \\

\dots\ the previously shown formula,  \cref{eq5}. & better? \\

\dots\ the previously shown formula~\labelcref{eq5}. & best?
\end{tabular}
\end{document}

相关内容