我有一个与这个简化命令类似的命令:
\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 命令,它将确保先前的垂直空间被“撤消”。