我正在尝试使用该包mdframed
来处理框架框,当框的内容太大时允许分页。然而,我遇到了以下困难:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{blindtext}
\usepackage{mdframed}
\begin{document}
\blindtext\blindtext\blindtext\vspace{5cm}
\begin{mdframed}[userdefinedwidth=\textwidth]
\begin{tabular}{rl}
coucou &coucou \\
coucou &coucou \\
coucou &coucou \\
\end{tabular}
TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2
\end{mdframed}
\end{document}
\vspace{5cm}
在这种环境选择下mdframed
,表格出现在一页的顶部,其余部分出现在下一页,这种情况很荒谬。
这是一个错误吗?我该如何绕过它?
tabular
我猜问题出在不可分裂的事实上。
编辑:PeterGrill
根据 Marco 的要求,这里有一个没有 MWE 的版本\vspace
,可以重现该问题:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{blindtext}
\usepackage{mdframed}
\begin{document}
\blindtext\blindtext\blindtext\blindtext%\vspace{5cm}
TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT22
\begin{mdframed}[userdefinedwidth=\textwidth]
\begin{tabular}{rl}
coucou &coucou \\
coucou &coucou \\
coucou &coucou \\
\end{tabular}
TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2
\end{mdframed}
\end{document}
編輯:NicolasRoy
我附加了两张截图。
使用 mdframed v1.0b 的输出:
使用 mdframed v1.3a 的输出:
編輯:NicolasRoy
我把 Marco 提出的代码放在\def\mdf@put@frame@i
我的 MWE 的序言中,并得到以下输出:
答案1
我知道这是一条评论但是太长了;-)
感谢@PeterGrill 提供的精彩示例。问题基于内部算法。为了解释这种行为,我描述了该算法。
如果环境内容有足够的空间供当前页面
mdframed
打印材料。如果内容对于一个页面来说太大,但可用的垂直空间大于
2\baselineskip
mdframed
尝试分割内容。
问题就在这里。环境tabular
无法分割。mdframed
仅测试分割框的空间是否小于可用的垂直空间。如果此测试失败,则mdframed
使用较低的尺寸(可用空间的 90%)重复分割并打印第一部分。
这是我的错误。我没有注意到你的方法。;-)。环境tabular
无法分割,分割维度的缩减失败。所以我必须实施额外的测试。
我上传了1.4a 版本发布到 github。使用@PeterGrill 的示例,您将获得以下输出:
附言:我对每一位校对员都很满意;-)