重复环境之间的垂直空间较小

重复环境之间的垂直空间较小

addvspace我有一个新的环境,在开始和结束时用 定义。如果它被文本包围,则效果很好。现在,smallskipamount如果这些环境直接相连,我希望它们之间的空间更小( )。换句话说,我希望环境之间的空间小于环境和文本之间的空间。如何实现?

\documentclass{article}

\usepackage{blindtext}

\newenvironment{env}
    {\addvspace{\bigskipamount}\bfseries}
    {\par\addvspace{\bigskipamount}}

\begin{document}
\blindtext

\begin{env}
Bla bla bla.
\end{env}

\blindtext

\begin{env}
Bla bla bla.
\end{env}

\begin{env}
Bla bla bla.
\end{env}

\blindtext

\end{document}

在此处输入图片描述

答案1

您可以使用非常具体的惩罚值将有关前一个环境结束的“消息”存储在主垂直列表中。您可以在环境开始时读取此值。

\newenvironment{env}
    {\ifnum\lastpenalty=12345 \vskip-\bigskipamount \penalty0 \fi
     \addvspace{\bigskipamount}\bfseries}
    {\par\addvspace{\bigskipamount}\penalty12345 }

在进行 vskip 校正的情况下,将其\penalty0插入到之前\addvspace以便能够工作。\addvspace

相关内容