我正在尝试复制环境上方的空间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