如何重新定义收集环境,以便它具有左侧对齐并允许使用枚举?

如何重新定义收集环境,以便它具有左侧对齐并允许使用枚举?

我需要重新定义 gather(由于我之前在这个论坛上问过的其他问题,所以不能是方程式),这样它就会在左侧对齐,枚举数字后没有空行。这听起来可能很奇怪,但我确实需要标签和枚举。文档必须以一种风格编写,而且我必须在某些不需要标签的部分中使用枚举。

所以,我想要这样的东西:

\documentclass[11pt]{article}
\usepackage{amsmath}
\setlength{\jot}{0pt}
\begin{document}
  \begin{enumerate}
       \item \begin{gather} a=b \tag{12}\label{one}\end{gather}
       \item \begin{gather}c=d \tag{lee}\label{two}\end{gather}
       \item \begin{gather}e=f \tag{bom}\label{three}\end{gather}
    \end{enumerate}
     \eqref{one} \eqref{two} \eqref{three}      
\end{document}

看起来像这样

提前致谢!

答案1

像这样吗?

在此处输入图片描述

代码:

\documentclass[11pt]{article}
\usepackage{amsmath}
\setlength{\jot}{0pt}

\makeatletter
\newcommand{\mathleft}{\@fleqntrue\@mathmargin5pt}
\newcommand{\mathcenter}{\@fleqnfalse}
\newcommand{\gatheritem}{%
    \item%
    \abovedisplayskip=0pt\abovedisplayshortskip=0pt%
    \belowdisplayskip=0pt\belowdisplayshortskip=0pt%
    ~\vspace*{-\baselineskip}%
  }
\newenvironment{gatherenum}{%
    \enumerate\mathleft%
  }{%
    \mathcenter\endenumerate%
  }
\makeatother

\begin{document}
  \begin{gatherenum}
       \gatheritem \begin{gather} a=b \tag{12}\label{one}\end{gather}
       \gatheritem \begin{gather}c=d \tag{lee}\label{two}\end{gather}
       \gatheritem \begin{gather}e=f \tag{bom}\label{three}\end{gather}
  \end{gatherenum}
     \eqref{one} \eqref{two} \eqref{three}
\end{document} 

您必须使用新定义的环境gatherenum来代替enumerate,并\gatheritem使用 来代替\item

怎么运行的

fleqn我们用amsmath命令模拟选项\mathleft

\newcommand{\mathleft}{\@fleqntrue\@mathmargin5pt}

并使用命令恢复居中行为\mathcenter

\newcommand{\mathcenter}{\@fleqnfalse}

然后我们定义一个新的\item类似命令(\gatheritem),它删除了项目编号和公式之间不需要的间距

\newcommand{\gatheritem}{%
    \item%
    \abovedisplayskip=0pt\abovedisplayshortskip=0pt%
    \belowdisplayskip=0pt\belowdisplayshortskip=0pt%
    ~\vspace*{-\baselineskip}%
  }

最后,我们创建一个新的环境,并在最后gatherenum利用\mathleft和恢复。\mathcenter

相关内容