mdframed により、ページの下部の位置がずれる

mdframed により、ページの下部の位置がずれる

この LaTeX ドキュメントをコンパイルしていただければ幸いです。

\documentclass[a4paper,11pt]{book}

\usepackage[paper=a4paper,twoside=true,lmargin=4cm,
rmargin=4cm,bindingoffset=0cm]{geometry}

\usepackage{mdframed,lipsum,kantlipsum}
\mdfsetup{font=\small}

\begin{document}
\kant[1-8]


\begin{mdframed}
\kant[1-5]
\end{mdframed}

\end{document}

2 ページ目と 3 ページ目の下部が次のようにずれていることがわかります。

位置がずれたページ

質問:

  1. 3 ページの段落とフレームの間のスペースは、下部が揃うように拡張されるべきではないでしょうか。なぜこれが行われないのでしょうか。

  2. mdframed ボックスの上にも、柔軟な (ゼロ、または段落の間隔と同様に、必要に応じて柔軟なスペースを追加) スペースを追加するにはどうすればよいでしょうか。上記の質問 1 を解決すれば、段落間のスペースにかかる負担が軽減されます。

答え1

理由はわかりませんが、または( のデフォルト) が設定されているmdframedかどうかに関係なく、ページの下部が不揃いになるように最初の (分割) ボックスを出力します。\raggedbottom\flushbottombook

次のパッチを使用すると、より正常な動作が得られます。

\usepackage{mdframed}

\makeatletter

\patchcmd\mdf@put@frame@i{\hrule \@height\z@ \@width\hsize\vfill}{}{}{}
\patchcmd\mdf@put@frame@i{\hrule \@height\z@ \@width\hsize\vfill}{}{}{}
\patchcmd\mdf@put@frame@i{\hrule \@height\z@ \@width\hsize\vfill}{}{}{}

\makeatother

これが何を達成するのか本当に分からないので、おそらく何かが壊れるでしょうが、少なくともページの下部は揃いました ;-)

箱の上のスペースmdframedは で構成されているskipaboveので、柔軟な接着剤が得られます

\mdfsetup{font=\small,skipabove=\parskip}

例

関連情報