两个 tcolorbox 环境之间的 \skip_vertical:n 和 \vspace

两个 tcolorbox 环境之间的 \skip_vertical:n 和 \vspace

\skip_vertical:n和有什么区别\vspace?在下面的例子中,\skip_vertical:n没有效果,但如果将其更改为\vspace则有效。这是为什么?

我正在使用最新的 TeX Live 2022(2022-07-31),希望对您有帮助。似乎两个月前不存在这个问题。

\documentclass{article}

\usepackage[many]{tcolorbox}

\begin{document}

\begin{tcolorbox}
\end{tcolorbox}

\ExplSyntaxOn
\skip_vertical:n { -\baselineskip }
\ExplSyntaxOff

\begin{tcolorbox}
\end{tcolorbox}

\end{document}

背景

在包中colorist我采用了这个答案Phelype Oleinik 连接相邻定义的颜色框。由于包本身是用 编写的expl3,因此我将\vspace改为\skip_vertical:n

一个月前,这个功能还运行良好。今天早上,当我尝试重新编译文档时,我发现我的包中的旧代码无法正常工作,经过一番调试后,发现是\skip_vertical:n两者之间的代码tcolobox无法正常工作。

答案1

在垂直模式下,\vspace{...}本质上是,\vskip ... \vskip 0pt\skip_vertical:n\vskip ...

因此,除了 etex 维度表达式处理中的一些差异之外,主要区别在于\vspace增加了一个额外的零跳过,这将在您查询时显示出来\lastskip

相关内容