仅在 enumerate & 内部更改 \parskip逐项列出环境

发布于 2024-08-19 18:22:14 字数 206 浏览 4 评论 0原文

有什么方法可以在某些环境中将 \parskip 更改为不同的值,即 enumerateitemize

我希望段落之间有空格 (\setlength{\parskip}{1em plus 1pt minus 1pt}),但不在 itemize 或 enumerate 内。

Is there any way that I can change \parskip to a different value inside certain environments, namely enumerate and itemize.

I want to have space between paragraphs (\setlength{\parskip}{1em plus 1pt minus 1pt}), but not inside itemize or enumerate.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

吹梦到西洲 2024-08-26 18:22:14

如果您使用 enumitem 包,您可以在序言中说

\setlist[itemize]{parsep=0pt}
\setlist[enumerate]{parsep=0pt}

得到您想要的。 enumitem 允许进行更多列表自定义,有关详细信息,请参阅其文档。

If you use the enumitem package, you can say in your preamble

\setlist[itemize]{parsep=0pt}
\setlist[enumerate]{parsep=0pt}

to get what you want. enumitem allows for doing much more list customization, see its documentation for details.

夜司空 2024-08-26 18:22:14

您还可以使用: ,

begin{itemize} \itemsep -5pt
\item foo
\item bar
\end{itemize}

这只会影响当前列表。

you can also use:

begin{itemize} \itemsep -5pt
\item foo
\item bar
\end{itemize}

and that will only affect the current list.

谁许谁一生繁华 2024-08-26 18:22:14

是的,你可以;但您必须更改类文件中的 enumerateitemize 环境(通过复制它们并添加 \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 ETC。

Yes you can; but you will have to alter either the enumerate and itemize environments from your class file (by copying them and adding your \parskip), or by redefining \@listi, which works for all lists:

\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

If you want different settings at nested list levels, change \@listii, \@listiii etc.

苍景流年 2024-08-26 18:22:14

序言中添加的以下内容更新了 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 执行完全相同的操作。

The following addition to the preamble updates enumerate to make the suggested change:

\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}}

Here is a complete minimal example showing the adjustment when setting \parskip to 0pt:

enter image description here

\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}

One would do exactly the same for itemize.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文