我创建了一个基于mdframed的定理环境,如下所示:
\newmdtheoremenv[outerlinewidth=0pt,
leftmargin=0pt,rightmargin=0pt,
innerleftmargin=4pt,outermargin=0pt,
innermargin=0pt,innerrightmargin=4pt,
innerbottommargin=2pt,innertopmargin=3pt,
skipbelow=1.5ex plus2pt minus2pt,
skipabove=1.5ex plus2pt minus2pt]{theoreme}[dummy]{Théorème}
我认为,在需要时,框架前后可以进行弹性垂直拉伸。奇怪的是,\flushbottom
当框架跨页面拆分时,该选项会被忽略,如下所示:
是否有 mdframed 选项可以处理此问题?
建议的 MWE 如下:
\documentclass[11pt,fleqn]{book}
\usepackage{lipsum}
\usepackage{amsmath,amsthm}
\usepackage[framemethod=tikz]{mdframed}
\usepackage[showframe,top=3.2cm,bottom=3.2cm,left=3.25cm,right=3.25cm,headsep=12pt,a4paper]{geometry}
\theoremstyle{plain}
\newmdtheoremenv[backgroundcolor=red!10,%
innerbottommargin=2pt,innertopmargin=3pt,%
skipbelow=1.5ex plus2pt minus2pt,%
skipabove=1.5ex plus2pt minus2pt,linecolor=red!50]{theorem}{Theorem}
\begin{document}
\chapter{Title}
\lipsum[1-3]
\begin{theorem}\lipsum[1-2]
\end{theorem}
\end{document}
答案1
在换行符前添加一个可伸缩空格似乎可以解决问题。这可以通过以下选项完成:
beforebreak={\vspace{0pt plus 1filll}}
弹性较小的填充物会被吞掉。下面的例子给出了
在第 1 页底部,以及
在第 2 页的底部。
\documentclass[11pt,fleqn]{book}
\usepackage{lipsum}
\usepackage{amsmath,amsthm}
\usepackage[framemethod=tikz]{mdframed}
\usepackage[showframe,top=3.2cm,bottom=3.2cm,left=3.25cm,right=3.25cm,headsep=12pt,a4paper]{geometry}
\theoremstyle{plain}
\newmdtheoremenv[backgroundcolor=red!10,%
innerbottommargin=2pt,innertopmargin=3pt,%
skipbelow=1.5ex plus2pt minus2pt,%
skipabove=1.5ex plus 2pt minus2pt,
beforebreak={\vspace{0pt plus 1filll}},
linecolor=red!50]{theorem}{Theorem}
\begin{document}
\chapter{Title}
\lipsum[1-3]
\begin{theorem}
\lipsum[1-2]
\end{theorem}
\lipsum[4-6]
\begin{theorem}
\lipsum[7-8]
\end{theorem}
\end{document}