我是否有办法在某些环境中将\parskip
更改为其他值,即enumerate
和itemize
。
我想在段落(\setlength{\parskip}{1em plus 1pt minus 1pt}
)之间留出空格,但不要在itemize或enumerate中。
答案 0 :(得分:13)
如果您使用enumitem
套餐,可以在序言中说明
\setlist[itemize]{parsep=0pt}
\setlist[enumerate]{parsep=0pt}
得到你想要的东西。 enumitem
允许进行更多列表自定义,有关详细信息,请参阅其文档。
答案 1 :(得分:6)
是的,你可以;但您必须更改类文件中的enumerate
和itemize
环境(通过复制它们并添加\parskip
),或重新定义\@listi
,这适用于所有列表:
\makeatletter
\def\@listi{%
% default settings for base LaTeX classes at 10pt:
\parsep 4pt plus 2pt minus 1pt
\topsep 8pt plus 2pt minus 4pt
\itemsep 4pt plus 2pt minus 1pt
% your settings:
\parskip 1em plus 1pt minus 1pt
}
\makeatother
如果您想在嵌套列表级别进行不同设置,请更改\@listii
,\@listiii
等。
答案 2 :(得分:5)
你也可以使用:
begin{itemize} \itemsep -5pt
\item foo
\item bar
\end{itemize}
,这只会影响当前列表。
答案 3 :(得分:0)
对序言的以下添加更新enumerate
以进行建议的更改:
\let\oldenumerate\enumerate% Keep a copy of \enumerate (or \begin{enumerate})
\let\endoldenumerate\endenumerate% Keep a copy of \endenumerate (or \end{enumerate})
\renewenvironment{enumerate}
{\begin{oldenumerate}
\setlength{\parskip}{0pt}}% Adjust \parskip to suit your needs
{\end{oldenumerate}}
以下是一个完整的最小示例,显示了将\parskip
设置为0pt
时的调整:
\documentclass{article}
\begin{document}
\begin{enumerate}
\item First line
Second line
\end{enumerate}
\let\oldenumerate\enumerate
\let\endoldenumerate\endenumerate
\renewenvironment{enumerate}
{\begin{oldenumerate}
\setlength{\parskip}{0pt}}
{\end{oldenumerate}}
\begin{enumerate}
\item First line
Second line
\end{enumerate}
\end{document}
itemize
可以完全相同。