自动使用 \vspace{\abovedisplayshortskip} 和 \vspace{\abovedisplayskip}

自动使用 \vspace{\abovedisplayshortskip} 和 \vspace{\abovedisplayskip}

我正在尝试复制环境上方的空间equation。目前,我必须手动切换

\vspace{\abovedisplayskip}

\vspace{\abovedisplayshortskip}

取决于上面那条线的长度。(如果足够长,我就用第一条。如果足够短,我就用第二条。)

我怎样才能将其自动化为一个简单的命令?

答案1

我会使用它$$来获得自动间距,但只需调整显示。因此在纯 TeX 中:

在此处输入图片描述

\tracingoutput1
\showboxbreadth\maxdimen

\def\foo#1{%
$$%
\setbox0\hbox{$\displaystyle#1$ QED}%
\dimen0\predisplaysize
\advance\dimen0\wd0
\ifdim\dimen0>\hsize
\hbox to \hsize{\hfill\box0}%
\fi
\rlap{\kern-.5\hsize\hbox to \hsize{\hfill\box0}}%
$$}

aaaaa
\foo{f(x)=ax^2+bx+c}
bbbbbb



aaaaa aaaaa aaaaa aaaaa aaaaa aaaaa aaaaa 
aaaaa aaaaa aaaaa aaaaa aaaaa aaaaa aaaaa 
aaaaa aaaaa aaaaa aaaaa aaaaa aaaaa aaaaa 
aaaaa aaaaa aaaaa aaaaa aaaaa aaaaa aaaaa 
aaaaa aaaaa aaaaa aaaaa
\foo{f(x)=ax^2+bx+c}
bbbbbb bbbbbbbbbbbb bbbbbbbbbbbb bbbbbbbbbbbb bbbbbb
bbbbbb bbbbbbbbbbbb bbbbbbbbbbbb bbbbbbbbbbbb bbbbbb


\bye

检查日志表明第一个示例中使用了短跳过,而第二个示例中使用了长跳过:

$ grep display.*skip dd.log
..\glue(\abovedisplayshortskip) 0.0 plus 3.0
..\glue(\belowdisplayshortskip) 7.0 plus 3.0 minus 4.0
..\glue(\abovedisplayskip) 12.0 plus 3.0 minus 9.0
..\glue(\belowdisplayskip) 12.0 plus 3.0 minus 9.0

相关内容