我提前道歉,因为我无法提供 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
在模板类中加载的包(我认为)。如果您加载picins
,mdframed
环境将不再跨页面,如以下 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
我猜。
无论如何,对于造成的干扰我深感抱歉,但也许这会对以后遇到类似问题的人有所帮助。