我需要重新定义 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