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

コードの出力

関連情報