вертикальный пробел между абзацами и `topsep` в \usepackage{enumitem} отменяют друг друга

вертикальный пробел между абзацами и `topsep` в \usepackage{enumitem} отменяют друг друга

Я использую \setlength{\parskip}{\baselineskip}для вставки вертикального пространства между абзацами в моем документе. Однако это создает конфликт с моими средами списка. Чтобы решить эту проблему, я использую пакет enumitemдля установки пространства между последней строкой перед моей средой itemize и моим первым элементом, =0ptоднако интервал между абзацами, созданный с помощью, \setlength{\parskip}{\baselineskip}отменяет это. Я могу добиться этого, установив topsepзначение ~ -9pt, но тогда я потеряю пространство между последним элементом и следующим абзацем (MWE ниже). Я намеренно выбрал, noitemsepпоскольку я также хочу уменьшить расстояние между отдельными элементами, я хотел бы сохранить это.

Пространство, от которого я пытаюсь избавиться

\documentclass{article}

% insert vertical space between paragraphs
\setlength{\parskip}{\baselineskip} 

% Modifies itemized lists with enumitem http://www.ctan.org/pkg/enumitem
\usepackage{enumitem}
 \setlist[itemize]{noitemsep, topsep=0pt} % , topsep=-9pt

 % http://tug.ctan.org/tex-archive/macros/latex/contrib/blindtext/blindtext.pdf
\usepackage{blindtext} 

\begin{document} 

\blindtext

\noindent
This is the things cancel each other out:
% space I would like to get rid of is here!
\begin{itemize}
\item dummy first item
\item insert vertical space between paragraphs
\item \verb|[topsep=0pt]| in \verb| \usepackage{enumitem} |
\item dummy last item
\end{itemize}

\blindtext

\blindtext

\end{document}

решение1

Добавьте before={\vspace*{-\baselineskip}}к вашим itemizeвариантам:

\setlist[itemize]{noitemsep, topsep=0pt, before={\vspace*{-\baselineskip}}}

МВЭ:

\documentclass{article}

% insert vertical space between paragraphs
\setlength{\parskip}{\baselineskip}

% Modifies itemized lists with enumitem http://www.ctan.org/pkg/enumitem
\usepackage{enumitem}
 \setlist[itemize]{noitemsep, topsep=0pt, before={\vspace*{-\baselineskip}}} % , topsep=-9pt

 % http://tug.ctan.org/tex-archive/macros/latex/contrib/blindtext/blindtext.pdf
\usepackage{blindtext}

\begin{document}

\blindtext

\noindent
This is the things cancel each other out:
% space I would like to get rid of is here!
\begin{itemize}
\item dummy first item
\item insert vertical space between paragraphs
\item \verb|[topsep=0pt]| in \verb| \usepackage{enumitem} |
\item dummy last item
\end{itemize}

\blindtext

\blindtext

\end{document} 

Выход:

введите описание изображения здесь

решение2

Ответ Карлкёллера отлично работает в течение некоторого времени, но вам следует знать следующее:

Использование негатива vspaceдля окружающей среды может иметь нежелательные побочные эффекты, как вэтот вопросСо мной случилось. Манипуляция vspaceприводит к тому, что Latex вычисляет неправильный вертикальный размер и может привести к переполнению содержимого страницы, например, области сноски.

Вместо этого вам следует манипулировать \topsepсредой до (и после, если необходимо), чтобы она занимала меньше вертикального пространства.

Связанный контент