align* 环境中的标签

align* 环境中的标签

我想标记一个alignat*环境并引用它。它适用于alignat环境,但不适用于alignat*

有人知道问题是什么吗?

答案1

“星号”环境(例如align*eqn*等)用于隐藏标签。要创建标签,您需要使用环境的标准形式(aligneqn)。

答案2

如果你是仅有的有兴趣引用该页面,你可以使用传统的 LaTeX\labelLaTeXalignat*从中你可以提取\pageref

\label{<label>}
\begin{alignat*}{..}
  ...
\end{alignat*}

也许使用传统的\label- 修改为amsmathto \ltx@label- inside 也应该适合您:

在此处输入图片描述

\documentclass{article}

\usepackage{amsmath,lipsum}

\makeatletter
\newcommand{\labelpage}[1]{\ltx@label{#1}}
\makeatother

\begin{document}

See pages~\pageref{eq:first} and~\pageref{eq:second}.

\begin{alignat}{1}
  f(x) &= ax^2 + bx + c \label{eq:first}
\end{alignat}

\lipsum[1-20]

\begin{alignat*}{1}
  f(x) &= ax^2 + bx + c \labelpage{eq:second}
\end{alignat*}

\end{document}

答案3

除非我们要引用的方程式有,否则无法\label在带星号的显示环境(align*alignat*、和)中使用。flalign*gather*multline*\tag

相反,\label可以进入非星号显示环境的任意一行。

因此,如果您坚持不对方程式进行编号,那么您有几种选择。

\documentclass{article}
\usepackage{amsmath}

\begin{document}

Some aligned and not numbered equations, but for one that has
a tag to which we can refer with the standard reference system
\verb|\eqref| getting \eqref{test-tag}
\begin{align*}
a &= b \\
c &= d \tag{a}\label{test-tag}
\end{align*}

Another strategy might be using the page reference, but in
this case the \verb|\label| must go between the text and
the display environment\label{test-page}
\begin{align*}
x &= y \\
u &= v
\end{align*}
and we can then refer to the page with the standard
\verb|\pageref|, getting \pageref{test-page}.

\end{document}

在此处输入图片描述

答案4

使用 \tag 即可。如果您不想在公式编号位置打印标签,请使用 \tag*{}。(这也不会增加公式计数器。)如果您在该行中放置一个标签,例如 \label{anytext},则可以通过 \hyperref[anytext]{(a)} 引用其行,这将打印对 (a) 的引用,或您为该行指定的任何其他名称,例如,通过在其开头包含 \text{(a)}。

相关内容