在枚举项内对齐方程编号

在枚举项内对齐方程编号

看一下下面的最小工作示例:

\documentclass[a4paper, 11pt, leqno]{article}
\usepackage{amsmath, enumitem}
\title{}
\author{Who knows?}
\date{}
\begin{document}
    \maketitle
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam felis nisi, hendrerit vitae accumsan et, gravida nec felis. Maecenas turpis urna, ultrices non volutpat ac, eleifend sit amet dui.

    \begin{enumerate}[label=(YZW\alph*), leftmargin=*, align=left, widest=4]
        \item Nullam enim turpis, condimentum non pretium ut, pharetra at justo. Donec eu nibh nec augue rhoncus pharetra vel hendrerit mi:
            \begin{equation}
                E \neq mc^{\sqrt{2}}.
            \end{equation}
        \item Sed aliquet enim magna. Phasellus ligula quam, pharetra id bibendum sed, mollis quis nibh. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. 
    \end{enumerate}
    Nulla molestie ultrices lectus, vel facilisis arcu laoreet ac. Nullam pulvinar, ligula in commodo auctor, augue nibh tincidunt nulla:
    \begin{equation}
        E = mc^{(-\sqrt{2})^2}.
    \end{equation}
    Here endeth the lesson.
\end{document}

在两个方程式中,第一个出现缩进在枚举列表中。我想将所有方程编号对齐,就像它们通常应该对齐的那样——在边距的最左边。有什么想法可以做到这一点吗?

答案1

这似乎有效,但我不知道是否在所有情况下都有效。但是,如果您计划在枚举列表中使用编号方程式,最好将数字放在右侧,这样它们就不会与列表项发生冲突。

\documentclass[a4paper, 11pt, leqno]{article}
\usepackage{enumitem}
\usepackage{amsmath}

\makeatletter
\everydisplay=\expandafter{\the\everydisplay
  \ifdim\@totalleftmargin>\z@
    \displayindent=\dimexpr-\@totalleftmargin+\leftmargin\relax
    \displaywidth=\columnwidth
  \fi
}
\makeatother

\begin{document}

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam felis nisi, hendrerit vitae accumsan et, gravida nec
felis. Maecenas turpis urna, ultrices non volutpat ac, eleifend sit amet dui.
\begin{enumerate}[label=(YZW\alph*), leftmargin=*, align=left, widest=4]
\item Nullam enim turpis, condimentum non pretium ut, pharetra at justo. Donec eu nibh nec augue rhoncus pharetra vel
hendrerit mi:
\begin{equation}
E \neq mc^{\sqrt{2}}.
\end{equation}
\item Sed aliquet enim magna. Phasellus ligula quam, pharetra id bibendum sed, mollis quis nibh. Class aptent taciti
sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.
\end{enumerate}
Nulla molestie ultrices lectus, vel facilisis arcu laoreet ac. Nullam pulvinar, ligula in commodo auctor, augue nibh
tincidunt nulla:
\begin{equation}
E = mc^{(-\sqrt{2})^2}.
\end{equation}
Here endeth the lesson.
\end{document}

在此处输入图片描述


当 TeX 开始排版数学显示时,它会执行 token 参数中包含的标记\everydisplay。因此,我告诉 LaTeX 在为正数(在列表中为正数)时覆盖计算出的\displaywidth和的\displayindent\@totalleftmargin。因此,我们希望缩进是\@totalleftmargin减去的负数\leftmargin(计算取决于 LaTeX 如何设置列表),并且\displaywidth是正常的列宽。

任何人都可以改变这些参数(只要他们知道自己在做什么);TeX 将使用数学材料末尾的当前值来排版显示。

答案2

您可以enumerate在环境之前结束环境equation,然后启动一个新环境,产生以下结果(删除选项leqno):

在此处输入图片描述

\documentclass[a4paper, 11pt]{article}
\usepackage{ enumitem}
\title{}
\author{Who knows?}
\date{}
\begin{document}
\maketitle
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam felis nisi, hendrerit vitae accumsan et, gravida nec felis. Maecenas turpis urna, ultrices non volutpat ac, eleifend sit amet dui.

\begin{enumerate}[label=(YZW\alph*), leftmargin=*, align=left, widest=4, nolistsep]
    \item Nullam enim turpis, condimentum non pretium ut, pharetra at justo. Donec eu nibh nec augue rhoncus pharetra vel hendrerit mi:
\end{enumerate}
\begin{equation}
   E \neq mc^{\sqrt{2}}.
\end{equation}
\begin{enumerate}[label=(YZW\alph*), leftmargin=*, align=left, widest=4, nolistsep, resume]
    \item Sed aliquet enim magna. Phasellus ligula quam, pharetra id bibendum sed, mollis quis nibh. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.
\end{enumerate}
Nulla molestie ultrices lectus, vel facilisis arcu laoreet ac. Nullam pulvinar, ligula in commodo auctor, augue nibh tincidunt nulla:
\begin{equation}
    E = mc^{(-\sqrt{2})^2}.
\end{equation}
Here endeth the lesson.
\end{document}

enumerate如果没有这些选项,和环境之间的间距equation可能不正确。但正如 Gonzalo 在他的评论中指出的那样,选择正确的选项基本上可以解决这个问题。

答案3

我还没有尝试过,但在我看来,只需删除该[leqno]选项就可以解决定位问题。如果方程式编号不在左边,那么缩进enumerate甚至不会进入图片。

当然,如果您的文档还包含定理和证明,您希望在证明的末尾有一个“墓碑”,并且您的任何证明都以编号显示结尾,那么就会存在内置冲突,这不是一个好的选择。

相关内容