mdframed 环境没有突破页面

mdframed 环境没有突破页面

我提前道歉,因为我无法提供 MWE。

我正在写一本采用自定义 (Springer) 格式的书,希望使用它mdframed来提供示例环境。我从文档中改编了一个示例,并得出了以下初稿:


\documentclass{article}
\usepackage{mdframed}
\usepackage{tikz}
\usepackage{blindtext}

\newcounter{exampl}[section]
\newenvironment{exampl}[1][]{%
 \stepcounter{exampl}%
  \ifstrempty{#1}%
  {\mdfsetup{%
    frametitle={%
       \tikz[baseline=(current bounding box.east),outer sep=0pt]
        \node[anchor=east,rectangle,fill=black!10]
        {\strut Example~\thesection .\theexampl};},nobreak=false}
  }%
  {\mdfsetup{%
     frametitle={%
       \tikz[baseline=(current bounding box.east),outer sep=0pt]
        \node[anchor=east,rectangle,fill=black!10]
        {\strut Example~\thesection .\theexampl:~#1};},nobreak=false}%
   }%
   \mdfsetup{innertopmargin=10pt,linecolor=black!10,nobreak=false,%
             linewidth=2pt,topline=true,backgroundcolor=black!05,%
             frametitleaboveskip=\dimexpr-\ht\strutbox\relax}
   \begin{mdframed}[]\relax%
   }{\end{mdframed}}


\begin{document}

\section{Introduction}

\blindtext

\blindtext

\blindtext

\begin{exampl}[Lorem ipsum]
   \blindtext

   \begin{tabular}{cc}
    A & Table\\
   \end{tabular}

   \Blindtext
\end{exampl}

\end{document}

在提供的 MWE 中,exampl运行良好并使用适当的分页符。但是,在我正在编写的书的源代码上下文中,相同的环境不会中断。

按照上面的 MWE,我尝试nobreak=false在各处明确添加以尝试强制分页,但无济于事。

我尝试过调试它并重新尝试 MWE,但无济于事。我相信可能是自定义书籍模板中的某些内容导致了问题。


我知道我的问题可能无法重现,因此不适合这个网站,但我希望有人能提供一些常见的原因,说明为什么环境mdframed不会跨页面中断。我希望得到调试问题的线索。

分页功能停止工作的常见原因有哪些mdframed

有什么技巧可以再次尝试强制分页吗?

答案1

啊,好的,问完问题几分钟后,我就找到了答案(创建 MWE 有所帮助)。

问题出picins在模板类中加载的包(我认为)。如果您加载picinsmdframed环境将不再跨页面,如以下 M(N)WE 所述:


\documentclass{article}
\usepackage{picins}
\usepackage{mdframed}
\usepackage{tikz}
\usepackage{blindtext}

\newcounter{exampl}[section]
\newenvironment{exampl}[1][]{%
 \stepcounter{exampl}%
  \ifstrempty{#1}%
  {\mdfsetup{%
    frametitle={%
       \tikz[baseline=(current bounding box.east),outer sep=0pt]
        \node[anchor=east,rectangle,fill=black!10]
        {\strut Example~\thesection .\theexampl};},nobreak=false}
  }%
  {\mdfsetup{%
     frametitle={%
       \tikz[baseline=(current bounding box.east),outer sep=0pt]
        \node[anchor=east,rectangle,fill=black!10]
        {\strut Example~\thesection .\theexampl:~#1};},nobreak=false}%
   }%
   \mdfsetup{innertopmargin=10pt,linecolor=black!10,nobreak=false,%
             linewidth=2pt,topline=true,backgroundcolor=black!05,%
             frametitleaboveskip=\dimexpr-\ht\strutbox\relax}
   \begin{mdframed}[]\relax%
   }{\end{mdframed}}


\begin{document}

\section{Introduction}

\blindtext

\blindtext

\blindtext

\begin{exampl}[Lorem ipsum]
   \blindtext

   \begin{tabular}{cc}
    A & Table\\
   \end{tabular}

   \Blindtext
\end{exampl}

\end{document}

加载包的顺序似乎也不重要,所以要么选择分页,mdframed要么picins我猜。

无论如何,对于造成的干扰我深感抱歉,但也许这会对以后遇到类似问题的人有所帮助。

相关内容