使用 mdframed 跨页面边界的框架宽度不同

使用 mdframed 跨页面边界的框架宽度不同

mdframed框架以显示数学开始时,并且中断恰好发生在显示数学环境的末尾,则框架的宽度在分页符边界处是不同的:

enter image description here

还请注意第二页前几行的间距不一致。

笔记:

  • 页面几何形状的改变是为了让图像更好地显示问题。
  • 我在使用版本时遇到了这个问题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}

结果为: enter image description here

答案2

我发现,一个好的定位\mbox{}有时可以帮助修复环境中的这些类型的坏事mdframed。不过,也许 Marco Daniel 会有更好的解决办法 :)

enter image description here

\begin{Myframe}
    \mbox{}
    \begin{align*}
        e &= mc^2\\
        F &= ma
    \end{align*}
    \lipsum[1]
\end{Myframe}

相关内容