带有“减”的负长度 *负常数* 是什么意思?

带有“减”的负长度 *负常数* 是什么意思?

我们继续负胶水语义然而,这里用更具体的值代替fill。我刚刚发现了一个早期的代码

\vspace{-.56\baselineskip plus.1\baselineskip minus-.1\baselineskip}

我自己在宏中。我之前没有留下任何有意义的评论,现在我想知道这是什么minus-.1\baselineskip意思?“减号”后面的“-”是拼写错误还是有意义?我猜,上面的命令会消除一些垂直间隙(默认情况下为 .56\baselineskip),这样无论 .46\baselineskip 和 .56\baselineskip 之间的拉伸或收缩都会被消除,这毫无意义:排字员的典型愿望是,收缩更多应该被消除,而拉伸更少应该被消除;如果我错了,请纠正我。

我还看到IEEEtran.clsV1.8b 有类似的行,例如

 \def\subsection{\@startsection{subsection}{2}{\z@}{-3.5ex plus -1.5ex minus -1.5ex}{0.7ex plus .5ex minus 0ex}{\normalfont\normalsize\sffamily\bfseries}}

第四个参数\@startsection,即,-3.5ex plus -1.5ex minus -1.5ex很奇怪。IEEEtran.cls 中的注释说“使用绝对值,neg 表示不缩进正文,使拉伸部分也为负数!”但是,我很困惑:是使用拉伸/收缩部分的绝对值,还是使用拉伸/收缩部分的逐字负值?

答案1

有两个可能的答案。

参数中的负值\@startsection永远不会用作负长度,长度始终用作正值但符号用作布尔标志,两个长度参数的符号分别控制标题是否内联或显示,以及第一段是否缩进。

相反,如果长度用作跳过,那么它就具有你所期望的含义

 xxx\hspace{-2pt plus -3pt minus -4pt}xxx

放置自然宽度为 -2pt 的空间,但如果线上的白色空间需要拉伸,则该空间最多会减少 -3pt(希望在其他地方得到抵消),相反,如果框过满并且白色空间需要缩小,则该空间最多会增加 4pt。

答案2

在以下示例中,第一个箱子的“收缩潜力”为 -1cm+1cm=0cm,因此箱子已满。第二个箱子的“收缩潜力”为 1cm+1cm=2cm:

\documentclass{article}


\begin{document}

\hbox to 3cm{%
\rule{1cm}{1pt}\hspace{1cm minus -1cm}\rule{1cm}{1pt}\hspace{1cm minus 1cm}\rule{1cm}{1pt}}

\hbox to 3cm{%
\rule{1cm}{1pt}\hspace{1cm minus 1cm}\rule{1cm}{1pt}\hspace{1cm minus 1cm}\rule{1cm}{1pt}}


\end{document} 

在此处输入图片描述

相关内容