![多列并枚举方程内的内容](https://linux22.com/image/364409/%E5%A4%9A%E5%88%97%E5%B9%B6%E6%9E%9A%E4%B8%BE%E6%96%B9%E7%A8%8B%E5%86%85%E7%9A%84%E5%86%85%E5%AE%B9.png)
在以下 MWE 中,如何将框内的内容括在方程环境中,以便以后可以通过其方程编号引用它?
\documentclass{scrartcl}
\usepackage{mathtools,multicol,blindtext,enumitem}
\begin{document}
\begin{multicols}{2}
\blindtext
\begin{multicols}{2}
\begin{enumerate}[label=(\arabic*)]
\item\label{itm:1} $a = b$,
\item\label{itm:2} $c = d$,
\item\label{itm:3} $e = f$,
\item\label{itm:4} $g = h$.
\end{enumerate}
\end{multicols}
\blindtext
\blindtext
\end{multicols}
\end{document}
答案1
这使用一个数组来显示 4 个子方程。
\documentclass{scrartcl}
\usepackage{mathtools,multicol,blindtext,enumitem}
\begin{document}
\begin{multicols}{2}
\blindtext
\begin{equation}\label{name}
\begin{array}{cc@{\qquad}cc}
(1) & a=b & (3) & e=f\\
(2) & c=d & (4) & g=h
\end{array}
\end{equation}
\blindtext
\blindtext
\end{multicols}
\end{document}
我对子方程格式进行了一些修改,并引入了命令\subeq
来简化代码。
有趣的是,方程式内部不像有多个\label
,因此\extralabel
。
\documentclass{scrartcl}
\usepackage{mathtools,multicol,blindtext,enumitem}
\newcounter{subequation}[equation]
\renewcommand{\thesubequation}{\theequation\text{\alph{subequation}}}
\let\extralabel=\label
\newcommand{\subeq}[1]% #1 = label
{\bgroup\refstepcounter{subequation}\extralabel{#1}\egroup(\thesubequation)}
\begin{document}
\begin{multicols}{2}
\blindtext
\begin{equation}\label{name}
\begin{array}{cc@{\qquad}cc}
\subeq{itm:1} & a=b & \subeq{itm:2} & e=f\\
\subeq{itm:3} & c=d & \subeq{itm:4} & g=h
\end{array}
\end{equation}
\blindtext
\blindtext
\end{multicols}
\end{document}
答案2
在我看来,子方程应该以不同的方式编号(例如用字母),并通过全局编号的链接引用。
\documentclass{scrartcl}
\usepackage{mathtools}
\usepackage{multicol}
\usepackage{array}
\usepackage{blindtext}
\makeatletter
\let\sublabel\ltx@label
\newcounter{subeq}
\renewcommand{\thesubeq}{\alph{subeq}}
\renewcommand{\p@subeq}{\theequation.}
\makeatother
\newcommand{\subeq}{\refstepcounter{subeq}\textnormal{(\thesubeq)}}
\begin{document}
\begin{multicols}{2}
\blindtext
\begin{equation}\label{foo}
\renewcommand{\arraystretch}{1.5}
\setcounter{subeq}{0}
\begin{array}{
@{}
>{$}c<{$}>{\displaystyle}l
@{\qquad}
>{$}c<{$}>{\displaystyle}l
@{}
}
\subeq\sublabel{itm:1} & a = b, &
\subeq\sublabel{itm:2} & c = d, \\
\subeq\sublabel{itm:3} & e = f, &
\subeq\sublabel{itm:4} & g = h.
\end{array}
\end{equation}
\eqref{itm:1}, \eqref{itm:4}, \eqref{foo} and
\blindtext
\blindtext
\end{multicols}
\end{document}