我正在寻找一种方法,让多个方程式在同一行,并能够引用它们。我知道可以使用 为多行完成此操作eqnarray
,但我希望将其放在一行中。
我有以下解决方法,但不太好:
\begin{equation}
\label{eqs}
\mbox{\textbf{(i)}} \ \ x>y \ \ \ \ \ \
\mbox{\textbf{(ii)}} \ \ y>z \ \ \ \ \ \
\mbox{\textbf{(iii)}} \ \ z>a \ \ \ \ \ \
\end{equation}
equation reference (\ref{eqs}\textbf{(i)}), (\ref{eqs}\textbf{(ii)}), (\ref{eqs}\textbf{(iii)}).
这看起来像:
有没有适当的方法来实现这一点?
答案1
以下是使用enumitem
隐藏列表的一种方法mbox
:
\documentclass{article}
\usepackage{enumitem}
\newlist{eqlist}{enumerate*}{1}
\setlist[eqlist]{itemjoin=\quad,mode=unboxed,label=(\roman*),ref=\theequation(\roman*)}
\begin{document}
\setcounter{equation}{17}
\begin{equation}
\label{eq:three}
\mbox{%
\begin{eqlist}
\item\label{eqi:th-one} \( x>y\),
\item\label{eqi:th-two} \( y>z\),
\item\label{eqi:th-three} \( \displaystyle z>\int_{0}^{1} e^{x^{2}}dx \).
\end{eqlist}}
\end{equation}
Referencing (\ref{eqi:th-two}).
\end{document}
但是,这不适用于amsmath
(因为有多个标签命令)并且不允许多行。解决这两个问题的变体如下,基于minipage
:
\documentclass{article}
\usepackage{enumitem,amsmath}
\newlist{eqlist}{enumerate*}{1}
\makeatletter
\setlist[eqlist]{itemjoin=\quad,mode=unboxed,label=(\roman*),
ref=\theequation(\roman*),before={\let\label\ltx@label}}
\makeatother
\begin{document}
\setcounter{equation}{17}
\begin{equation}
\label{eq:three}
\begin{minipage}{.8\linewidth}\centering
\begin{eqlist}
\item\label{eqi:th-one} \( x>y\),
\item\label{eqi:th-two} \( y>z\),
\item\label{eqi:th-three} \( \displaystyle z>\int_{0}^{1}
e^{x^{2}}dx \),\endgraf
\item\label{eqi:th-four} \( \displaystyle a = \int_{U} \frac{\cos
x}{\sin y}\,dx\,dy\).
\end{eqlist}
\end{minipage}
\end{equation}
Referencing \eqref{eqi:th-two} and \eqref{eqi:th-four}.
\end{document}