我想标记一个alignat*
环境并引用它。它适用于alignat
环境,但不适用于alignat*
。
有人知道问题是什么吗?
答案1
“星号”环境(例如align*
、eqn*
等)用于隐藏标签。要创建标签,您需要使用环境的标准形式(align
、eqn
)。
答案2
如果你是仅有的有兴趣引用该页面,你可以使用传统的 LaTeX\label
LaTeX前,alignat*
从中你可以提取\pageref
:
\label{<label>}
\begin{alignat*}{..}
...
\end{alignat*}
也许使用传统的\label
- 修改为amsmath
to \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)}。