![Mdframed、多列和奇怪的分页符](https://linux22.com/image/338820/Mdframed%E3%80%81%E5%A4%9A%E5%88%97%E5%92%8C%E5%A5%87%E6%80%AA%E7%9A%84%E5%88%86%E9%A1%B5%E7%AC%A6.png)
我发现与其他问题有一些相似之处(1和2),但我认为这是不同的。当我一起使用mdframed
和multicol
时,有时会出现奇怪的意外分页符。这是一个 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 稳定得多。