Mdframed、多列和奇怪的分页符

Mdframed、多列和奇怪的分页符

我发现与其他问题有一些相似之处(12),但我认为这是不同的。当我一起使用mdframedmulticol时,有时会出现奇怪的意外分页符。这是一个 MWE:

\documentclass[10pt,letterpaper]{article}
\usepackage[margin=1in]{geometry}
\usepackage{multicol}
\usepackage{mdframed}

\newcount\myloopcounter
\newcommand{\repeatit}[2][10]{%
\myloopcounter0% initialize the loop counter
\loop\ifnum\myloopcounter < #1 % Test if the loop counter is < #1
#2%
\advance\myloopcounter by 1 % 
\repeat % start again
}

\begin{document}
\begin{multicols}{2}
\repeatit[30]{
\vspace{0.3cm}
\begin{mdframed}
\vspace{3cm}
\end{mdframed}
}
\end{multicols}
\end{document}

归功于Christian Hupfer 对另一个问题的回答repeatit让我可以更简洁地表达这个 MWE。当我运行这个 MWE 时,我在第一页上得到了 10 个框架。然后我在第二页上只得到了一个框架,然后它就跳到第三页了。第四页上只有一个框架,然后第五页上的框架就错位了。发生了什么?

一些额外的细节:有时我没有看到任何奇怪的分页符。这似乎取决于分页符出现之前所有内容在页面上的显示情况。此外,有时奇怪的分页符出现在框架内,因此一页上只有 2/3 的框架,然后该框架在下一页上恢复。

答案1

您可以通过添加额外的框来解决该问题:

\documentclass[10pt,letterpaper]{article}
\usepackage[margin=1in]{geometry}
\usepackage{multicol}
\usepackage{mdframed}

\newcount\myloopcounter
\newcommand{\repeatit}[2][10]{%
\myloopcounter0% initialize the loop counter
\loop\ifnum\myloopcounter < #1 % Test if the loop counter is < #1
#2%
\advance\myloopcounter by 1 %
\repeat % start again
}

\begin{document}
\begin{multicols}{2}
\repeatit[30]{%
\vspace{0.3cm}
\noindent
\begin{minipage}{\linewidth}
\begin{mdframed}
\vspace{3cm}
\end{mdframed}
\end{minipage}\par
}
\end{multicols}
\end{document}

但是我宁愿听从 Christian 的建议并使用 tcolorbox——它比 mdframed 稳定得多。

相关内容