ntheorem 的局部 \theorempreskipamount 和 \theorempostskipamount

ntheorem 的局部 \theorempreskipamount 和 \theorempostskipamount

似乎\theorempreskipamount\theorempostskipamount不能在本地设置,这意味着它们将为所有定义的环境保留相同的值,即使用户可能希望定理、定义或证明具有不同的值。有没有办法避免这种情况?

答案1

例如,\theoremprework你可以使用为特定组定理类结构设置这些长度:

\documentclass{scrreprt}
\usepackage{ntheorem}
\usepackage{lipsum}   

\theoremprework{%
\setlength\theorempreskipamount{1ex}\setlength\theorempostskipamount{1ex}
}
\newtheorem{defi}{Definition}
\theoremprework{%
\setlength\theorempreskipamount{1cm}\setlength\theorempostskipamount{1cm}
}
\newtheorem{theo}{Theorem}

\begin{document}
\lipsum[1]
\begin{defi}
test
\end{defi}    
\lipsum[1]
\begin{theo}
test
\end{theo}    
\lipsum[1]

\end{document}

在此处输入图片描述

使用前端,您可以为、thmtools定义具有自己值的自定义样式spaceabovespacebelow

\documentclass{scrreprt}
\usepackage{ntheorem}
\usepackage{thmtools}
\usepackage{lipsum}   

\declaretheoremstyle[spaceabove=1ex, spacebelow=1ex]{styleone}
\declaretheorem[style=styleone]{theorem}
\declaretheoremstyle[spaceabove=1cm, spacebelow=1cm]{styletwo}
\declaretheorem[style=styletwo]{definition}

\begin{document}
\lipsum[1]
\begin{definition}
test
\end{definition}    
\lipsum[1]
\begin{theorem}
test
\end{theorem}    
\lipsum[1]

\end{document}

相关内容