多个相同页面环境之间的自动分页

多个相同页面环境之间的自动分页

我正在使用mathpartir 包显示一些推理规则。我根据环境定义了自己的 LaTeX 命令,samepage在规则下方添加一些解释,其中规则和解释之间不应有分页符。但是,我希望在这样的规则和解释组之间自动分页。这还不起作用。我搜索了诸如“自动分页多个相同页面环境”(及其各种组合和修改)之类的关键字,但没有找到解决方案。

这是我的 MNWE,它生成一个空白页和一个满页,但应该生成两个或更多页面,其中尽可能多的规则/解释组显示在首页上,其余的显示在下一页上:

\documentclass{book}

\usepackage{mathpartir}

\newcommand{\myrule}[4]{\begin{samepage}\begin{mathpar}\inferrule*[right=(\textsc{#1})]{#2}{#3}\end{mathpar}\begin{center}#4\end{center}\end{samepage}}

\begin{document}

\myrule{name}{premise}{conclusion}{explanation}
\myrule{name}{premise}{conclusion}{explanation}
\myrule{name}{premise}{conclusion}{explanation}
\myrule{name}{premise}{conclusion}{explanation}
\myrule{name}{premise}{conclusion}{explanation}
\myrule{name}{premise}{conclusion}{explanation}
\myrule{name}{premise}{conclusion}{explanation}
\myrule{name}{premise}{conclusion}{explanation}
\myrule{name}{premise}{conclusion}{explanation}
\myrule{name}{premise}{conclusion}{explanation}
\myrule{name}{premise}{conclusion}{explanation}
\myrule{name}{premise}{conclusion}{explanation}
\myrule{name}{premise}{conclusion}{explanation}
\myrule{name}{premise}{conclusion}{explanation}
\myrule{name}{premise}{conclusion}{explanation}
\myrule{name}{premise}{conclusion}{explanation}
\myrule{name}{premise}{conclusion}{explanation}
\myrule{name}{premise}{conclusion}{explanation}
\myrule{name}{premise}{conclusion}{explanation}

\end{document}

我尝试了一些简单的修改,但没有成功:仅在\myrule命令之间添加空行不会改变任何东西。附加\\到命令末尾不起作用,因为那里不允许这样做。附加\par反而不会改变任何东西(这是在使用空行进行测试后预料到的)。将\leavevmode\newline\leavevmode\\附加到每个命令只会在满页之后产生一个额外的空白页。

答案1

只需在最后添加一个合法的断点,我\goodbreak在这里使用:

由于书本使用平底布局,术语垂直展开以填满空间,如果你想要底部的空间,请使用\raggedbottom

\documentclass{book}

\usepackage{mathpartir}

\newcommand{\myrule}[4]{\begin{samepage}\begin{mathpar}%
\inferrule*[right=(\textsc{#1})]{#2}{#3}\end{mathpar}%
\begin{center}#4\end{center}\end{samepage}%
\par\goodbreak}

\begin{document}

\myrule{name}{premise}{conclusion}{explanation}
\myrule{name}{premise}{conclusion}{explanation}
\myrule{name}{premise}{conclusion}{explanation}
\myrule{name}{premise}{conclusion}{explanation}
\myrule{name}{premise}{conclusion}{explanation}
\myrule{name}{premise}{conclusion}{explanation}
\myrule{name}{premise}{conclusion}{explanation}
\myrule{name}{premise}{conclusion}{explanation}
\myrule{name}{premise}{conclusion}{explanation}
\myrule{name}{premise}{conclusion}{explanation}
\myrule{name}{premise}{conclusion}{explanation}
\myrule{name}{premise}{conclusion}{explanation}
\myrule{name}{premise}{conclusion}{explanation}
\myrule{name}{premise}{conclusion}{explanation}
\myrule{name}{premise}{conclusion}{explanation}
\myrule{name}{premise}{conclusion}{explanation}
\myrule{name}{premise}{conclusion}{explanation}
\myrule{name}{premise}{conclusion}{explanation}
\myrule{name}{premise}{conclusion}{explanation}

\end{document}

相关内容