在上面的代码中,我对一些垂直空间进行了不太好的自动化处理,如下面的输出所示。我希望我的代码中\spaceafter \spacebefore
变成\spacebefore
。处理这种情况的好方法是什么?
\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}
如果我改变\bigskipamount
为2cm
和\medskipamount
,0.5cm
我得到
这更清楚地表明间距正是您想要获得的。