我定义了以下 subeqnarray
\documentclass{article}
\begin{document}
\begin{subeqnarray}
& a_1+b_1=c_1, \label{eq:subeq1} \\
& a_2+b_2=c_2, \label{eq:subeq2} \\
& a_3+b_3=c_3. \label{eq:subeq3}
\end{subeqnarray}
\end{document}
我如何引用其中一个方程,比如 subeq2。我用过\ref{eq:subeq2}
,但它只给出了一个没有 b 的数字。我想要的是 (eq-number b)。或者还有其他方法可以实现我的目标吗?
答案1
我会不是使用subeqnarray
环境。相反,我会(a)加载数学包装和(b)将align
环境嵌套在subequations
环境中。
\documentclass{article}
\usepackage{amsmath} % for "align" and "subequations" environments and "\eqref" macro
\setlength\textwidth{3in} % just for this example
\begin{document}
\begin{subequations}
\begin{align}
& a_1+b_1=c_1, \label{eq:subeq1} \\
& a_2+b_2=c_2, \label{eq:subeq2} \\
& a_3+b_3=c_3. \label{eq:subeq3}
\end{align}
\end{subequations}
A cross-reference to equation \eqref{eq:subeq1}.
\end{document}
答案2
我坚决支持米科的建议他的回答关于切换到 提供的环境之一amsmath
。但是,如果您决定继续使用subeqnarray
,则需要使用\slabel
而不是标准\label
命令来获取交叉引用中的正确字符串:
\documentclass{article}
\usepackage{subeqnarray}
\begin{document}
Some cross-references to subequations~\ref{eq:subeq1}, \ref{eq:subeq2} and~\ref{eq:subeq3}.
\begin{subeqnarray}
& a_1+b_1=c_1, \slabel{eq:subeq1} \\
& a_2+b_2=c_2, \slabel{eq:subeq2} \\
& a_3+b_3=c_3. \slabel{eq:subeq3}
\end{subeqnarray}
\end{document}
另外,如果您加载amsmath
,那么您可以使用\eqref
它来自动获取交叉引用周围的括号,但同样,如果您加载amsmath
,请切换到它提供的环境之一。