枚举中的方程式按项目编号对齐

枚举中的方程式按项目编号对齐

如果我输入

\begin{enumerate}    
    \item   
    \begin{align*}  
      eqn 1  
      eqn 2  
    \end{align*}  
\end{enumerate}

标签将出现在第一行,而方程式将出现在后续行。如何使方程式与枚举标签在同一行开始?显然,我可以使用\vspace和手动调整位置\rule,但有没有更好的方法?

答案1

\listfiles
\documentclass{article}
\usepackage{amsmath}
\newcommand\Item[1][]{%
  \ifx\relax#1\relax  \item \else \item[#1] \fi
  \abovedisplayskip=0pt\abovedisplayshortskip=0pt~\vspace*{-\baselineskip}}
\begin{document}

\begin{enumerate}    
\item foo
\Item  
    \begin{align*}  
      eqn 1  \\
      eqn 2  
    \end{align*}  
\Item[a)]  
    \begin{align*}  
      eqn 1  \\
      eqn 2  
    \end{align*}  
\item bar
\end{enumerate}

\end{document}

在此处输入图片描述

答案2

这是我的个人品味,你可能不同意我的看法。这是我的经验法则。

  1. enumerate我们知道“列表”( 、、itemize等)所有项目的第一行都是左对齐的。
  2. 因此,如果项目以多行对齐方程式开头,请使用aligned环境(加上t传递给其可选参数的项)而不是align*。请参阅下面示例中的第二个项目。使用align*使方程式居中,因此它打破了“列表”的本质。
  3. 但如果项目以句子开头,请使用align*环境。请参见下面给出的示例中我的第三项。使用align*不会破坏“列表”的性质。

是否有意义?

\documentclass[preview,border=12pt,12pt]{standalone}% change it back to your own document class
\usepackage{amsmath}

\begin{document}
\begin{enumerate}
% number 1
\item $E\neq mc^2$ is the correct formula.
% number 2
\item
$
\!
\begin{aligned}[t]
 (a+b)^2 
    &= (a+b)(a+b) && \text{by definition} \\
    &= a^2 +ab +ab +b^2 && \text{using FOIL steps}\\
    &= a^2 +2ab +b^2 && \text{simplified}
\end{aligned}
$ 
% number 3
\item Consider the following equations,
\begin{align*}
    \vec \nabla \cdot \vec{B} &= 0\\
    \vec \nabla \times \vec{E} &= -\frac{\partial \vec{B}}{\partial t}
\end{align*}
% number
\item $y=mx+c$ is a street line.
\end{enumerate}
\end{document}

在此处输入图片描述

相关内容