\topsep、\itemsep、\partopsep、\parsep - 它們各自代表什麼(底部又如何)?

\topsep、\itemsep、\partopsep、\parsep - 它們各自代表什麼(底部又如何)?

enumitem包文件說:

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

好吧,它並沒有完全說明這一點,但它也沒有說明這些尺寸的含義。我能得到一張圖表來說明這些的含義嗎?相當於什麼\bottomsep

答案1

萊斯利·蘭波特的書,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}

程式碼的輸出

相關內容