看看下面的例子。我想像第二个列表那样编写代码,但得到与其他两个列表相同的输出。但是,第二个列表的第三个项目后面有很多额外的垂直空间,我不知道为什么,也不知道该怎么做。
\documentclass{article}
\newenvironment{listitem}{\item}{}
\begin{document}
\begin{enumerate}
\item
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
\item
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
\item
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
\[
2 + 2 = 4
\]
\item
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
\end{enumerate}
\hrule
\begin{enumerate}
\begin{listitem}
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
\end{listitem}
\begin{listitem}
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
\end{listitem}
\begin{listitem}
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
\[
2 + 2 = 4
\]
\end{listitem}
\begin{listitem}
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
\end{listitem}
\end{enumerate}
\hrule
\begin{enumerate}
\begin{listitem}
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
\end{listitem}
\begin{listitem}
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
\end{listitem}
\begin{listitem}
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
\[
2 + 2 = 4
\]
\end{listitem}
%
\begin{listitem}
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
\end{listitem}
\end{enumerate}
\end{document}
答案1
这是由于您将第二个参数留空所致\newenvironment
:
\newenvironment{listitem}{\item}{}
如果将其添加\ignorespacesafterend
为第二个参数,则会忽略环境末尾的所有额外空间。
\newenvironment{listitem}{\item}{\ignorespacesafterend}