我正在写一篇带有方程式的文档,并且我习惯用 来引用方程式\eqref{label}
。
但是,如果我想在带括号的评论中引用它(see Eq. \eqref{label})
,它会产生双括号,我想这并不好。
我期望像 \cite 命令这样的东西允许在其中包含额外的单词,\citep[something before][something after]{label}
但它不起作用。
我应该使用吗(see Eq. \ref{label})
?或者这只是一种黑客攻击和不当的 Latex 打字错误?
答案1
我只是\ref{eq_my_equation}
在所有情况下都使用,因为在我写的内容中,方程编号周围的括号不是必需的。您可以做同样的事情,或者只\ref
在需要时使用。
请注意(来自对这个相关问题)amsmath
还将\eqref
方程编号设置为相应的直立字体。我们可以讨论这样做是否正确,但就此答案而言:我从未遇到过这个问题,也从未在斜体中引用过方程。
答案2
虽然我不认为这是理想的解决方案,但您可以重新定义该命令\eqref
,因为这意味着它将针对整个文档进行更改。如果您不想要这样,只需定义其他命令即可。
如果你想定义一个新命令,只需写下:
\newcommand\myeqref[1]{
(see Eq. \textup{\ref{#1}})
}
输出
代码
\documentclass{article}
\usepackage{amsmath}
\renewcommand{\eqref}[1]{(see Eq. \textup{\ref{#1}})}
\begin{document}
\begin{equation}
a^2+b^2=c^2\label{eq:1}
\end{equation}
If I refer to the equation, it does it all by itself, here: \eqref{eq:1}
\end{document}
答案3
基于@Alenanno 并且还包括@Steven 命令的可选参数,使用更高级的\NewDocumentCommand
包来回答xparse
:
\LetLtxMacro{\oldeqref}{\eqref}
\RenewDocumentCommand\eqref{D<>{Eq.}om}{%
\IfNoValueTF{#2}
{#1~\oldeqref{#3}}
{(#2 #1~\textup{\ref{#3}})}%
}
将完成工作,即:\eqref
保持不变但\eqref[something]{label}
返回(Something n)
,并且还可以使用和更改基本词等式(在我的示例中)\eqref<eqn>{label}
:\eqref<eqn>[Something]{label}
例子
\eqref{eq:label}; \eqref[Before]{eq:label}; \eqref<eqn>{eq:label}; \eqref<eqn>[Before]{eq:label}
输出