![使用 mdframed 跨页面边界的框架宽度不同](https://linux22.com/image/249508/%E4%BD%BF%E7%94%A8%20mdframed%20%E8%B7%A8%E9%A1%B5%E9%9D%A2%E8%BE%B9%E7%95%8C%E7%9A%84%E6%A1%86%E6%9E%B6%E5%AE%BD%E5%BA%A6%E4%B8%8D%E5%90%8C.png)
当mdframed
框架以显示数学开始时,并且中断恰好发生在显示数学环境的末尾,则框架的宽度在分页符边界处是不同的:
还请注意第二页前几行的间距不一致。
笔记:
- 页面几何形状的改变是为了让图像更好地显示问题。
- 我在使用版本时遇到了这个问题
2012/04/08 v1.5
,但显然早期版本2012/03/04 v1.4
运行良好。
参考:
代码:
\documentclass{article}
\usepackage[bottom=0.2cm,top=0.2cm]{geometry}
\usepackage{amsmath}
\usepackage{lipsum}
\usepackage{mdframed}
\newmdenv[%
leftmargin=0.5cm,
rightmargin=0.5cm,
backgroundcolor=yellow,%
]{Myframe}%
\begin{document}
\vspace*{24.75cm}
\begin{Myframe}
\begin{align*}
e &= mc^2\\
F &= ma
\end{align*}
\lipsum[1]
\end{Myframe}
\end{document}
答案1
今天我在 github 上传了新版本,修复了这个问题。这个想法是受 David Carlisle 启发的:忽略保存框内的第一个 parskip
同样基于新的拆分算法的示例:
\documentclass{article}
\usepackage[bottom=0.2cm,top=0.2cm]{geometry}
\usepackage{amsmath}
\usepackage{lipsum}
\usepackage{mdframed}
\newmdenv[%
leftmargin=0.5cm,
rightmargin=0.5cm,
backgroundcolor=yellow,%
]{Myframe}%
\begin{document}
\vspace*{25.7cm}
\begin{Myframe}
\begin{align*}
e &= mc^2\\
F &= ma
\end{align*}
\lipsum[1]
\end{Myframe}
\end{document}
结果为:
答案2
我发现,一个好的定位\mbox{}
有时可以帮助修复环境中的这些类型的坏事mdframed
。不过,也许 Marco Daniel 会有更好的解决办法 :)
\begin{Myframe}
\mbox{}
\begin{align*}
e &= mc^2\\
F &= ma
\end{align*}
\lipsum[1]
\end{Myframe}