答案1
保存 的含义\label
(如果这样做,则在加载 之后hyperref
)并equation*
与 一起使用\tag
:
\documentclass{article}
\usepackage{amsmath}
\usepackage[colorlinks]{hyperref} % optional
\AtBeginDocument{\let\latexlabel\label}
\begin{document}
\begin{equation*}
\refstepcounter{equation}\latexlabel{firsthalf}
\refstepcounter{equation}\latexlabel{secondhalf}
a=b\qquad c=d
\tag{\ref*{firsthalf}, \ref*{secondhalf}}
\end{equation*}
Another
\begin{equation}
e=f
\end{equation}
\ref{firsthalf} and \ref{secondhalf}
\end{document}
如果您不使用hyperref
,则只需使用\ref
而不是\ref*
(这是为了避免创建虚假链接)。
答案2
以下手动解决方案基于amsmath
确保方程编号可参考的包:
\documentclass{article}
\usepackage{amsmath}
\makeatletter
\newcommand*{\stepeqlabel}[1]{%
\@bsphack
\begingroup
\refstepcounter{equation}%
\label{#1}%
\endgroup
\@esphack
}
\newcommand*{\theequationadd}[1]{%
\the\numexpr\value{equation}+(#1)\relax
}
\makeatother
\begin{document}
Two equations \eqref{eq:first} and \eqref{eq:second} in one line:
\stepeqlabel{eq:first}
\begin{align}
a&=b & c&=d
\tag{\theequation, \theequationadd{1}}
\end{align}
\stepeqlabel{eq:second}
\end{document}
评论:
\tag
用于覆盖正规方程编号。- 如果
\tag
使用,则方程编号不会更新。因此,方程计数器会增加前方程组。 align
(amsmath
) 认为,方程系统中只有一个方程编号。因此方程计数器在系统后增加以匹配第二个方程编号。标签也放在这里。- 如果
\label
不需要,则\stepeqlabel{...}
用替换\stepcounter{equation}
。 \@bsphack
并\@esphack
来自 LaTeX 内核,以避免\label
和类似命令的重复空格\index
。- 如果方程式编号的格式与普通阿拉伯数字不同,则
\theequationadd
可以采用。