\topsep、\itemsep、\partopsep、\parsep - 它们各自是什么意思(底部又是什么意思)?

\topsep、\itemsep、\partopsep、\parsep - 它们各自是什么意思(底部又是什么意思)?

enumitem包装文档说:

\topsep,,,?\itemsep​​\partopsep\parsep

好吧,它并没有完全说明这一点,但它也没有说明这些维度的含义。我可以得到一个图表来说明每个维度的含义吗? 相当于什么\bottomsep

答案1

Leslie Lamport 的书,LaTeX:一种文档准备系统(1994) 有一个类似于您在第 113 页要求的图表,它解释了除其他事项外,列表底部的垂直空间始终与顶部的空间相同。后者取决于具体情况,即列表是否以垂直模式开始。

这是“The LaTeX Companion”中的对应图

在此处输入图片描述

答案2

好的,既然您用图片提问,我就用一张图片(或多或少)来回答。

概括

  • \itemsep= 列表中每个项目后面添加的垂直空间。
  • \parsep= 列表中的每个段落后添加的垂直空间。
  • \topsep= 在列表上方和下方添加的垂直空间。
  • \partopsep= 在列表上方和下方添加垂直空间,但仅当列表开始新段落时。

示例文档

\documentclass[]{article}
\usepackage[margin=1in]{geometry}
\parindent=0pt
\usepackage{enumitem}
\usepackage{fancyvrb}
\DefineShortVerb{\|}
\newcommand{\longline}{This is a line of text that will form a paragraph which we can use in various places.\par}
\newcommand{\printvalues}{topsep=\the\topsep; itemsep=\the\itemsep; parsep=\the\parsep; partopsep=\the\partopsep}
\begin{document}
\hrulefill
\begin{enumerate}[topsep=0pt,itemsep=0pt,parsep=0pt,partopsep=0pt]
\item\printvalues
\item With all |*sep| values set to 0pt there is no space above or below the enumeration nor between the items or paragraphs within the items.
\item\longline
\end{enumerate}
\hrulefill\par
\hrulefill
\begin{enumerate}[topsep=0pt,itemsep=20pt,parsep=0pt,partopsep=0pt]
\item\printvalues
\item When we set |\itemsep| then this much space is placed between items but no space between paragraphs within an item.
\item\longline\longline
\end{enumerate}
\hrulefill\par
\hrulefill
\begin{enumerate}[topsep=0pt,itemsep=0pt,parsep=20pt,partopsep=0pt]
\item\printvalues
\item When we set |\parsep| then this much space is placed after  every paragraph within an item.  This will effectively also separate items too, since each single paragraph item will have the |\parsep| space after it.
\item\longline\longline
\end{enumerate}
\hrulefill\par

\hrulefill
\begin{enumerate}[topsep=20pt,itemsep=0pt,parsep=0pt,partopsep=0pt]
\item\printvalues
\item When we set |\topsep| this much space is placed above and below the enumeration. 
\end{enumerate}
\hrulefill
\begin{enumerate}[topsep=0pt,itemsep=0pt,parsep=0pt,partopsep=20pt]
\item\printvalues
\item When we set |\partopsep| this much space will be placed before and after a list only if the list is preceded by a |\par| (i.e., starts a new paragraph)
\item This enumerate is not preceded by a |\par| so no space is added.
\end{enumerate}
\hrulefill\par
\hrulefill\par
\begin{enumerate}[topsep=0pt,itemsep=0pt,parsep=0pt,partopsep=20pt]
\item\printvalues
\item When we set |\partopsep| this much space will be placed before and after a list only if the list is preceded by a |\par| (i.e., starts a new paragraph)
\item This enumerate is  preceded by a |\par| so space is added.
\end{enumerate}
\hrulefill
\end{document}

代码输出

相关内容