Непоследовательный интервал с опцией parskip скрипта KOMA и amsthm

Непоследовательный интервал с опцией parskip скрипта KOMA и amsthm

Эта проблема похожа наВопрос 25346, однако предложенное решение не решает мою проблему.

\documentclass[parskip=full]{scrreprt}

\usepackage{amsmath, amsthm}

\theoremstyle{definition}
\newtheorem{definition}{Definition}[chapter]

\begin{document}

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

\begin{definition} 
In luctus mattis felis ac tristique.
\end{definition}

Nunc vulputate lectus at eros vehicula.

Aliquam fermentum eu justo in lobortis. 
\end{document}

создает непоследовательный интервал:


введите описание изображения здесь


Добавление

\begingroup
    \makeatletter
    \@for\theoremstyle:=definition,remark,plain\do{%
        \expandafter\g@addto@macro\csname th@\theoremstyle\endcsname{%
            \addtolength\thm@preskip\parskip
            }%
        }
\endgroup

к преамбуле, как это предлагается вВопрос 25346производит


введите описание изображения здесь


но это пространство теперь значительно больше, чем пропуск абзаца. Я бы хотел, чтобы text-to-theorem-skip был идентичен по размеру parskip. Спасибо!

решение1

Ваш код приводит по сути к двум \parskips до и после определения. Перед теоремой вы можете установить интервал \parskipс помощью \setlength, а не \addtolengthв настройке \thm@preskip. Для после теоремы соответствующая величина равна \thm@postskip, но ее нужно приравнять к нулю, так как в \parskipлюбом случае наступает :

Пример вывода

\documentclass[parskip=full]{scrreprt}

\usepackage{amsmath, amsthm}

\begingroup
    \makeatletter
    \@for\theoremstyle:=definition,remark,plain\do{%
        \expandafter\g@addto@macro\csname th@\theoremstyle\endcsname{%
            \setlength\thm@preskip\parskip
            \setlength\thm@postskip{0pt}
            }%
        }
\endgroup

\theoremstyle{definition}
\newtheorem{definition}{Definition}[chapter]

\begin{document}
\show\definition

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

\begin{definition} 
In luctus mattis felis ac tristique.
\end{definition}

Nunc vulputate lectus at eros vehicula.

Aliquam fermentum eu justo in lobortis. 

\end{document}

Связанный контент