%3F.png)
Theenumitem
пакет документацииговорит:
\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}