有没有办法返回/找到给定方程的标签?

有没有办法返回/找到给定方程的标签?

我的目的是:我有一系列方程式,标签为 1.1、1.2、1.3 等。但是,在这些方程式中间,我希望有一个额外的方程式,标签为1.1',例如将其放在 1.1 和 1.2 之间。我知道我可以通过 来做到这一点\tag{1.1'},但是有没有办法返回或获取方程式 1.1 的标签,并'在其后面添加符号?

PS,当然也欢迎其他满足相同需求的解决方案。

PPS,如果我使用\tag{\ref{eq1}'},将会有一个指向公式 1 的超链接。有没有办法可以防止这种情况发生,即有没有办法将引用转换为纯文本?

下面是一个说明该想法的示例代码。

\documentclass{article}
\usepackage{amsmath}

\title{test}
\begin{document}

\maketitle
this is the equation labelled 1
\begin{equation}
    a=b \label{eq:eq1}
\end{equation}

here is the equation in between, and I need to label it as 1'.
\begin{equation*}
    b=c \tag{1'}
\end{equation*}

this is the equation labelled 2
\begin{equation}
    a=c
\end{equation}

\end{document}

答案1

您可以使用\ref。无需假设特殊标记的方程式最终会出现在何处。

\documentclass{article}
\usepackage{amsmath}

\title{test}
\begin{document}

\maketitle
this is the equation labelled 1
\begin{equation}
    a=b \label{eq:eq1}
\end{equation}

here is the equation in between, and I need to label it as 1'.
\begin{equation*}
    b=c \tag{\ref{eq:eq1}$'$}
\end{equation*}

this is the equation labelled 2
\begin{equation}
    a=c
\end{equation}

\end{document}

为了得到一个素数(不是撇号),您需要$'$

在此处输入图片描述

笔记。如果您还加载\hyperref\ref则应成为\ref*以避免不必要的链接。

我们可以为此写一个特殊的命令吗?是的。

\documentclass{article}
\usepackage{amsmath}
%\usepackage{hyperref}

\makeatletter
\AtBeginDocument{%
  \@ifpackageloaded{hyperref}{%
   % with hyperref use \ref*
   \NewDocumentCommand{\repeateq}{O{$'$}m}{\tag{\ref*{#2}#1}}%
  }{% without hyperref use \ref
   \NewDocumentCommand{\repeateq}{O{$'$}m}{\tag{\ref{#2}#1}}%
  }%
}
\makeatother

\title{test}
\begin{document}

\maketitle
this is the equation labelled 1
\begin{equation}
    a=b \label{eq:eq1}
\end{equation}

here is the equation in between, and I need to label it as 1'.
\begin{equation*}
    b=c \repeateq{eq:eq1}
\end{equation*}

this is the equation labelled 2
\begin{equation}
    a=c
\end{equation}

Another variant of the first equation
\begin{equation}
c=a \repeateq[*]{eq:eq1}
\end{equation}

\end{document}

在此处输入图片描述

如果我取消注释对的调用hyperref,则链接是正确的。

答案2

如果可以确定,公式n'总是紧跟在公式之后n,即中间没有任何编号公式,则确实可以使用\tag{\theequation$'$}。请注意,我将'在数学模式下渲染(“prime”),而不是在文本模式下。

此外,您可能希望执行

\DeclareMathOperator{\numer}{num}
\DeclareMathOperator{\E}{E}

在序言中,E_t(时间 t 条件)期望运算符也是如此;对于数学“运算符”,例如\sin\exp\det和,通常使用直立(又称“罗马字母”)字母\log。此外,写作\numer(对于“numeraire”)比 更容易\operatorname{num},不是吗?

在此处输入图片描述

\documentclass{article}
\usepackage{amsmath} % for '\DeclareMathOperator' macro
\DeclareMathOperator{\numer}{num}
\DeclareMathOperator{\E}{E}
\usepackage{mleftright} \mleftright % better spacing around tall delimiters
\usepackage[colorlinks,allcolors=blue]{hyperref}

\begin{document}

The formula holds for every non-dividend-paying asset. Multiplying through by
$S(t)$, we obtain
\begin{equation} \label{eq:fund_pricing_formula}
    Y(t)=S(t) \E_t^S \left[\frac{Y(T)}{S(T)}\right]
\end{equation}
It is a present value relation: the value at time $t$ of the asset is the
expectation of its value $Y(T)$ at time $T$ ``discounted'' by the (possibly
random) factor $S(t) / S(T)$.

The formula can be written as
\begin{equation*}
    Y(t)=\numer(t) \E_t^{\numer}
    \left[\frac{Y(T)}{\numer(T)}\right]
    \tag{$\theequation'$}
\end{equation*}
where now $\numer(t)$ denotes the price of the (non-dividend-paying)
numeraire asset at time $t$.

Letting $R(t)$ denote the value $\mathrm{e}^{r t}$ of the risk-free asset and
using it as the numeraire, the equation becomes
\begin{equation}
    Y(t)=\mathrm{e}^{r t} \E_t^R
    \left[\frac{Y(T)}{\mathrm{e}^{r T}}\right]
    =\exp(-r(T-t)) \E_t^R[Y(T)]
\end{equation}
which means that $Y(t)$ is the expected value of $Y(T)$ discounted at the
risk-free rate for the remaining time $T-t$, when the expectation is computed
under the risk-neutral probability measure.

\end{document}

答案3

以下示例说明了我们可以用 OpTeX 做什么:

\def\prevmark[#1]{\ea\prevmarkA\expanded{\cs{_lab:#1}}}
\def\prevmarkA(#1){#1} 
% \prevmark[label] expands to previously used \eqmark[label] without ().

\noindent
this is the equation labelled 1
$$
   a=b \eqmark[first]
$$
here is the equation in between, and I need to label it as 1'.
$$
  b=c \eqno (\prevmark[first]')
$$
this is the equation labelled 2
$$
  a=c \eqmark[second]
$$
Another variant of the first equation
$$
  c=a \eqno (\prevmark[first]\hbox{*})
$$

\bye

答案4

正如@jlab 和@cfr 所评论的,使用\tag{\theequation'}因为\theequation显示当前方程编号的值。

相关内容