包含该parskip=half-
选项后,定理环境后的间距不一致(有时空间比应有的要大)。如果我不使用该选项,问题就会消失,但我需要该选项。
我尝试了本网站上的一些建议,但对文档没有明显的影响。我添加了一个 MWE,其中注释掉了建议,因为也许我没有正确尝试它们。
理想情况下,每段文本之间的垂直间距应与两个连续段落相同。如果定理环境周围有更多空间,则间距应相同。
\documentclass[parskip=half-]{scrbook}
\linespread{1.1}
\usepackage{xcolor}
\usepackage{lipsum}
\usepackage{amsthm}
\usepackage{thmtools}
\usepackage[framemethod=TikZ]{mdframed}
\mdfdefinestyle{mdgreenbox}{%
% suppressfirstparskip,
linewidth=2pt,rightline=false,leftline=true,
topline=false,bottomline=false,linecolor=green,
backgroundcolor=green!5,
% skipabove=2\parskip,
% skipbelow=0,
}
\declaretheoremstyle[
headfont=\bfseries\sffamily\color{green!70!black},
mdframed={style=mdgreenbox},
% spacebelow=0,
]{greenbox}
\mdfdefinestyle{mdbluebox}{%
% suppressfirstparskip,
roundcorner = 10pt,linewidth=1pt,innerbottommargin=9pt,
linecolor=blue,backgroundcolor=blue!5,
% skipabove=2\parskip,
% skipbelow=0,
}
\declaretheoremstyle[
headfont=\sffamily\bfseries\color{blue},
mdframed={style=mdbluebox},headpunct={\\[3pt]},
postheadspace={0pt},
% spacebelow=0,
]{bluebox}
\theoremstyle{definition}
\declaretheorem[style=bluebox,name=Theorem,numberwithin=section]{theorem}
\declaretheorem[style=greenbox,name=Observation,sibling=theorem]{observation}
% \begingroup
% \makeatletter
% \@for\theoremstyle:=definition,remark,plain\do{%
% \expandafter\g@addto@macro\csname th@\theoremstyle\endcsname{%
% \setlength\thm@preskip{0pt}
% \setlength\thm@postskip{0pt}
% }%
% }
% \endgroup
% \makeatletter
% \def\thm@space@setup{\thm@preskip=0pt
% \thm@postskip=0pt}
% \makeatother
\begin{document}
% \KOMAoptions{parskip=false}
\begin{observation}
\lipsum[47]
\end{observation}
% \KOMAoptions{parskip=half-}
\lipsum[47]
\lipsum[47]
\begin{observation}
\lipsum[47]
\end{observation}
\begin{theorem}
\lipsum[47]
\end{theorem}
\begin{observation}
\lipsum[47]
\end{observation}
\end{document}
更新:skipabove=0,skipbelow=0
如果我使用里面的选项和里面的\mdfdefinestyle
选项,文本块(段落)之间的每个垂直空间都会减少到零或几乎为零。除了第一个。spaceabove=0,spacebelow=0
\declaretheoremstyle
我的假设是,定理环境或 mdframed 在文本块后放置了一个 parskip,但下一段没有检测到它并放置了另一个 parskip。我如何告诉文档我不想再放置一个 parskip?