我正在使用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}