我该如何修补 \begin{enumerate}?

我该如何修补 \begin{enumerate}?

我发现自己使用

\begin{enumerate}[label=\alph*), topsep=-3ex]
\item ...
\end{enumerate}
~\newline

非常常见。由于我使用 topsep 的负值来减少枚举上方的空白,因此枚举后也缺少空白。为了解决这个问题,我目前~\newline在每个枚举块后添加。

现在我的问题是:我可以修补命令\begin{enumerate}或使用枚举定义我自己的命令来自动在第一个和最后一个项目之前和之后分别获得我需要的空格吗?

我希望我的问题不是太愚蠢,并提前感谢您的帮助:)。

答案1

为什么不直接设置\topsep为零呢?也可能是\partopsep

\documentclass{article}
\usepackage{enumitem,lipsum}
\begin{document}

\lipsum*[2]
\begin{enumerate}[label=\alph*), topsep=0pt,partopsep=0pt]
\item ...
\end{enumerate}
\lipsum[3]

\begin{enumerate}[label=\alph*), topsep=0pt,partopsep=0pt]
\item ...
\end{enumerate}

\lipsum[3]

\end{document}

在此处输入图片描述

答案2

您可以使用以下方式定义新环境\newenvironment{myenum}。有关详细信息,请参阅任何文档,例如。http://de.sharelatex.com/learn/Environments?&nocdn=true. 它可能看起来像

\newenvironment{myenum}
   {\begin{enumerate}[Label=\alph*),tops‌​ep=-3ex]}
   {\end{enume‌​rate}}

使用方法:

\begin{myenum}
   \item ...
\end{enum}

如果你确实想合并代码片段的最后一行(为什么?),你可以写:

\newenvironment{myenumalt}
   {\begin{enumerate}[Label=\alph*),tops‌​ep=-3ex]}
   {\end{enume‌​rate}
    ~\newline}

请注意,这(myenumalt)不是规范解决方案。如果您在此环境之后需要更多空间,则有更好的方法可以获得它(请参阅上面 David Carlisle 的评论)。

相关内容