忽略连续的垂直空间

忽略连续的垂直空间

在上面的代码中,我对一些垂直空间进行了不太好的自动化处理,如下面的输出所示。我希望我的代码中\spaceafter \spacebefore变成\spacebefore。处理这种情况的好方法是什么?


enter image description here


\documentclass{article}
    \usepackage[utf8x]{inputenc}

    \newcommand\blabla{
        Bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla,
        bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla,
        bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla
    }

    \newcommand\spacebefore{\par \bigskip \par}
    \newcommand\spaceafter{\par \medskip \par}

    \newcommand\specialtext[1]{
        \spacebefore
        #1
        \spaceafter
    }

\begin{document}

\specialtext{SOME TEXT}

\blabla{}

\specialtext{Other text}

\blabla{}


\specialtext{SOME TEXT}

\specialtext{Other text}

\blabla{}

\end{document}

答案1

使用\addvspace。两个连续的\addvspace命令使垂直间距等于两者中最大值的大小。

\documentclass{article}

\newcommand\blabla{%
  Bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla,
  bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla,
  bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla%
}

\newcommand\spacebefore{\par\addvspace{\bigskipamount}}
\newcommand\spaceafter{\par\addvspace{\medskipamount}}

\newcommand\specialtext[1]{%
  \spacebefore
  #1
  \spaceafter
}

\begin{document}

\blabla

\specialtext{SOME TEXT}

\blabla

\specialtext{Other text}

\blabla

\specialtext{SOME TEXT}

\specialtext{Other text}

\blabla

\end{document}

enter image description here

如果我改变\bigskipamount2cm\medskipamount0.5cm我得到

enter image description here

这更清楚地表明间距正是您想要获得的。

相关内容