\topsep, \itemsep, \partopsep, \parsep - o que cada um deles significa (e o que acontece com o fundo)?

\topsep, \itemsep, \partopsep, \parsep - o que cada um deles significa (e o que acontece com o fundo)?

Oenumitemdocumentação do pacotediz:

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

Ok, não diz exatamente isso, mas também não ilustra o que essas dimensões significam. Posso obter um diagrama com o que cada um deles significa? E qual é o equivalente a \bottomsep?

Responder1

O livro de Leslie Lamport,LaTeX: um sistema de preparação de documentos(1994) tem uma figura como a que você pediu na página 113, que explica, entre outras coisas, que o espaço vertical no final de uma lista é sempre igual ao espaço no topo. Esta última depende das circunstâncias, nomeadamente, se a lista foi ou não iniciada na modalidade vertical.

Esta é a figura correspondente em “The LaTeX Companion”

insira a descrição da imagem aqui

Responder2

Ok, já que você fez a pergunta com uma foto, responderei com uma (mais ou menos).

Resumo

  • \itemsep= espaço vertical adicionado após cada item da lista.
  • \parsep= espaço vertical adicionado após cada parágrafo da lista.
  • \topsep= espaço vertical adicionado acima e abaixo da lista.
  • \partopsep= espaço vertical adicionado acima e abaixo da lista, mas somente se a lista iniciar um novo parágrafo.

Exemplo de documento

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

saída de código

informação relacionada