在两个连续的列表环境之间添加内容\nopagebreak
会在它们之间添加垂直空间。如何才能在不添加虚假垂直空间的情况下防止分页?
梅威瑟:
\documentclass{article}
\begin{document}
\begin{minipage}[t]{.495\linewidth}
\textbf{Allowing page breaks:}
\begin{trivlist}\item AAA \end{trivlist}
\begin{trivlist}\item AAA \end{trivlist}
\end{minipage}
%
\begin{minipage}[t]{.495\linewidth}
\textbf{Disallowing page breaks:}
\begin{trivlist}\item AAA \end{trivlist}
\nopagebreak
\begin{trivlist}\item AAA \end{trivlist}
\end{minipage}
\end{document}
答案1
假设小页面只是为了显示(否则你可以简单地省略\nopagebreak
你可以备份然后在惩罚后重新插入胶水以便下面的列表看到它。在小页面里面你可以用去除胶水\unskip
但假设这真的是为了主垂直列表把它留在那里但留有负空间。
\documentclass{article}
\begin{document}
\begin{minipage}[t]{.495\linewidth}
\textbf{Allowing page breaks:}
\begin{trivlist}\item AAA \end{trivlist}
\begin{trivlist}\item AAA \end{trivlist}
\end{minipage}
%
\begin{minipage}[t]{.495\linewidth}
\textbf{Disallowing page breaks:}
\begin{trivlist}\item AAA \end{trivlist}
\ifnum\lastnodetype=11 % glue
\skip0=\lastskip
\vskip-\skip0
\nopagebreak
\vskip\skip0
\else
\nopagebreak
\fi
\begin{trivlist}\item AAA \end{trivlist}
\end{minipage}
\end{document}