我通常使用subequations
嵌套环境align
,这样我就可以使用整齐的 1a、1b、1c 等编号来很好地对齐方程式,这样就没问题了。但现在我仍然希望对齐这些多个方程式,但使用不同的组,例如:
x = a + v (1)
y = w + bc (2a)
w = z^2 + g (2b)
q = o + pq (3a)
r = s^t (3b)
为了回答这个问题,我随便用了一些东西。所以,我想要使用我们在对齐环境中使用的相同技术(& 字符)对齐所有这些方程,并保留单独的子方程组。这可能吗?
编辑
因此,在 @Zarko 的帮助下,对齐问题得到了解决(这实际上是我所要求的),但是,如何引用没有字母的方程式呢?我需要这样的东西:
这些方程式\ref{eq:first}
显示\ref{eq:last}
了一些有趣的事情:
\begin{align}
x &= a + v \label{eq:first} \\
y &= w + bc \tag{\addtocounter{equation}{1}\theequation a} \\
w &= z^2 + g \tag{\theequation b} \\
q &= o + pq \tag{\addtocounter{equation}{1}\theequation a} \label{eq:last}\\
r &= s^t \tag{\theequation b}
\end{align}
在这种情况下,\ref{eq:last}
将变成!3a
,而我只需要3
。
答案1
尝试
\documentclass{article}
\usepackage{amsmath}
\newcounter{subeq}
\newcommand{\stags}{
\addtocounter{equation}{+1}
\setcounter{subeq}{0}
}
\newcommand{\stag}{%
\addtocounter{subeq}{1}%
\theequation\alph{subeq}%
}
\begin{document}
\begin{align}
x &= a + v \label{eq:1} \\
\stags
y &= w + bc \tag{\stag} \label{eq:2a} \\
w &= z^2 + g \tag{\stag} \label{eq:2b} \\
q &= o + pq \label{eq:3} \\
\stags
y &= w + bc \tag{\stag} \label{eq:4a} \\
w &= z^2 + g \tag{\stag} \label{eq:4b}
\end{align}
Test of referencing: \eqref{eq:1}, \eqref{eq:2a}, \eqref{eq:2b}, \eqref{eq:3}, \eqref{eq:4a} and \eqref{eq:4b}.
\end{document}
编辑:第一个解决方案我升级了子方程计数器,并定义了一些新命令,这些命令稍微简化了方程标签的编写。解决方案仍然很粗糙,但它有效。引用也有效......但不像 OP 所希望的那样。(到目前为止)不可能对一个方程使用两个标签或两个标签,因此使用此解决方案您无法引用具有共同引用的子方程。
现在我也进一步简化MWE。