如何在枚举中对齐方程

如何在枚举中对齐方程

我想这样做,其中每一行中的第一个和第二个方程式都对齐。 1

因此我尝试使用multicol

\documentclass{article}
\usepackage{multicol, enumitem, blindtext}
\begin{document}
    \begin{enumerate}
        \begin{multicols}{2}
            \item $f_x = 4x^3y^3+16xy$,
            \item $f_x = -\pi \mathrm{e}^{-t}\sin{\pi x}$,
            \item $z_x = 20(2x+3y)^9$,
        
            $f_y = 3x^4y^2+8x^2$.
        
            $f_t = -e^{-t}\cos{\pi x}$.
        
            $z_y = 30(2x+3y)^9$.
        \end{multicols}
        \item \blindtext
    \end{enumerate}
\end{document}

结果还可以,但是两列之间的距离太大,我必须先写完第一列的内容,然后再写第二列的内容。

我也尝试过使用tabular

\documentclass{article}
\usepackage{multicol, enumitem, blindtext}
\begin{document}
    \begin{tabular}{lll}
        1. & $f_x = 4x^3y^3+16xy$,                    & $f_y = 3x^4y^2+8x^2$.       \\
        2. & $f_x = -\pi \mathrm{e}^{-t}\sin{\pi x}$, & $f_t = -e^{-t}\cos{\pi x}$. \\
        3. & $z_x = 20(2x+3y)^9$,                     & $z_y = 30(2x+3y)^9$.
    \end{tabular}
    \begin{enumerate}
        \addtocounter{enumi}{3}
        \item \blindtext
    \end{enumerate}
\end{document}

这解决了后两个问题,但使得编号变成了手动操作,并且数字不一致。

有没有一种(更简单的)方法可以做到这一点,使两列之间的距离不要太大和/或以一种方便的方式逐行而不是逐列地写入内容?

答案1

使用eqparbox

\documentclass{article}
\usepackage{eqparbox, enumitem, blindtext}

\newcommand{\enumeqboxes}[3]{%
  % #1 = label, #2 = math material left, #3 = math material right
  \eqmakebox[#1@1][l]{$#2$,}\quad\eqmakebox[#1@2][l]{$#3$.}
}


\begin{document}

\begin{enumerate}

\item \enumeqboxes{A}{f_x = 4x^3y^3+16xy}{f_y = 3x^4y^2+8x^2}

\item \enumeqboxes{A}{f_x = -\pi e^{-t}\sin(\pi x)}{f_t = -e^{-t}\cos(\pi x)}

\item \enumeqboxes{A}{z_x = 20(2x+3y)^9}{z_y = 30(2x+3y)^9}

\item \blindtext

\end{enumerate}

\end{document}

第一个参数是任意标签,每次使用该技巧时该标签都应不同。因此,对于另一组公式,您将使用,例如,B等等。

在此处输入图片描述

注意:我修复\sin{\pi x}\sin(\pi x)以及常量排版不一致的问题:要么始终直立,要么始终斜体(我认为这样更好)。

相关内容