\topsep, \itemsep, \partopsep, \parsep – was bedeuten sie jeweils (und was ist mit dem unteren Teil)?

\topsep, \itemsep, \partopsep, \parsep – was bedeuten sie jeweils (und was ist mit dem unteren Teil)?

DerenumitemPaketdokumentationsagt:

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

Ok, das steht nicht ganz so, aber es zeigt auch nicht, was diese Dimensionen bedeuten. Kann ich ein Diagramm bekommen, in dem steht, was jede dieser Dimensionen bedeutet? Und was ist das Äquivalent von \bottomsep?

Antwort1

Das Buch von Leslie Lamport,LaTeX: ein System zur Dokumentvorbereitung(1994) hat auf Seite 113 eine Abbildung wie die von Ihnen gewünschte, die unter anderem erklärt, dass der vertikale Abstand am unteren Ende einer Liste immer gleich dem Abstand am oberen Ende ist. Letzterer hängt von den Umständen ab, nämlich davon, ob die Liste vertikal begonnen wurde oder nicht.

Dies ist die entsprechende Abbildung in „The LaTeX Companion“

Bildbeschreibung hier eingeben

Antwort2

Ok, da Sie die Frage mit einem Bild gestellt haben, werde ich mit einem (mehr oder weniger) antworten.

Zusammenfassung

  • \itemsep= vertikaler Abstand, der nach jedem Element in der Liste hinzugefügt wird.
  • \parsep= vertikaler Abstand, der nach jedem Absatz in der Liste hinzugefügt wird.
  • \topsep= vertikaler Abstand über und unter der Liste hinzugefügt.
  • \partopsep= vertikaler Abstand wird über und unter der Liste hinzugefügt, aber nur, wenn die Liste einen neuen Absatz beginnt.

Beispieldokument

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

Ausgabe des Codes

verwandte Informationen