当使用mdframed
边距绝对紧密的环境(全部设置为 0pt)时,放置在页面顶部的分割 md 框架的负垂直空间过多。
为了说明这一点,最小工作示例创建了两个文本页面,其中第二个页面包含 md 框架中的文本,显然与第一个页面中的文本不对齐。
我使用命令创建了示例\FOO
,该命令调用一个valignFOO
包含名为的实际 mdframed 环境的环境mdframedFOO
,后者的边距大小为零并带有一个小框架以供视觉参考。
valignFOO
为...负责使 mdframed 段落在间距方面表现得像普通段落。但即使利用了垂直间距方面的改进,我仍然观察到如上所述的额外空间。
\documentclass[12pt,a6paper]{scrbook}
\usepackage[framemethod=tikz]{mdframed}
\usepackage{lipsum}
% New mdframed environment called mdframedFOO:
\newmdenv[leftmargin = 0pt,
rightmargin = 0pt,
innerleftmargin = 0pt,
innerrightmargin = 0pt,
innertopmargin = 0pt,
innerbottommargin = 0pt,
skipabove = 0pt,
skipbelow = 0pt,
splittopskip = 0pt,
splitbottomskip = 0pt,
outerlinewidth = 1pt,
middlelinewidth = 0pt,
innerlinewidth = 0pt,
topline = false,
bottomline = false
]{mdframedFOO}
% Correct vertical alignment of mdframedFOO:
% (This is for making mdframed behave like a normal paragraph,
% see https://tex.stackexchange.com/questions/88525/making-mdframed-paragraph-behave-like-normal-paragraphs-in-terms-of-spacing)
\newenvironment{valignFOO}
{\par\vskip\dimexpr\dp\strutbox-\prevdepth\relax\mdframedFOO\strut\ignorespaces}
{\par\xdef\notetpd{\the\prevdepth}\endmdframedFOO\vskip-\notetpd\relax}
% FOO:
\newcommand{\FOO}[1]{%
\begin{valignFOO}
#1
\end{valignFOO}
}
\begin{document}
\lipsum[2]
\FOO{\lipsum[2]}
\end{document}