抑制页面/列底部的 \smallskip

抑制页面/列底部的 \smallskip

我有一个与这个简化命令类似的命令:

\newcommand{\revEntry}{#1}{
    #1

    \smallskip
}

在我的文档中我有很多在多列环境中,这样的条目,现在我看到,当这样的条目位于列底部 - 并且后面跟着一个时\columnbreak\smallskip会在页面末尾“打印”。

我怎样才能使它\smallskip只在以下情况下打印:不是在页面/列的底部?


梅威瑟:

\documentclass{article}
\usepackage{multicol}
\newcommand{\test}{
    Test command.

    \bigskip
}

\begin{document}

\begin{multicols}{3}
\test
\test

%\unskip
%\vskip-\lastskip
\columnbreak
\test
\test

Test paragraph.

Test paragraph.

Test paragraph.

Test paragraph.

Test paragraph.

\end{multicols}
\end{document}

在此处输入图片描述

正如您所看到的,在第一列的末尾,我手动将列分隔符\bigskip“打印”了出来。

使用\unskip建议的结果为“您不能在垂直模式下使用 \unskip”,另一个使用负 \lastskip 的解决方案没有任何效果。可能是因为 skip 被“隐藏”在宏中?

答案1

的问题\vskip-\lastskip在于这里有两个垂直跳过,一个来自段落分隔符,一个来自\smallskip

您可以使用这两个命令来避免这种情况:

\newcommand\mybigskip{\addvspace\bigskipamount}
\newcommand\mycolumnbreak{\vskip-\lastskip\columnbreak}

\addvspace是一个内部 LaTeX 命令,它将确保先前的垂直空间被“撤消”。

在此处输入图片描述

相关内容