命令类似于 \vspace*{} 但应用于当前行

命令类似于 \vspace*{} 但应用于当前行

因此,在段落中插入\vspace*{-2pt}一行会将下一行(以及接下来的行)的高度提高 2 pt。有没有办法让它应用于当前行?

现在,我得到的是\raisebox{2pt}{current line}\vspace*{-2pt},但这不是很优雅,并且如果当前行是段落的第一行它就不起作用(我以为添加\leavevmode可以解决这个问题,但并不总是如此)。

答案1

\vspace 由 \vadjust 实现,它在当前行后插入垂直材料。如果您使用现代 TeX 引擎,则可以为 \vadjust 提供在pre当前行前插入材料的选项。要将其与 一起使用\vspace,您可以暂时重新定义\vadjust为始终使用pre。写

\let\realvadjust\vadjust
\def\vadjustpre{\realvadjust pre}
\newcommand\vprespace[1]{%
  \begingroup
  \let\vadjust\vadjustpre
  \vspace*{#1}%
  \endgroup
}

在您的序言中,您可以使用\vprespace{-2pt} 移动当前行(以及所有后续行)。

相关内容