使用 \textcolor 校正彩色定理前的垂直间距

使用 \textcolor 校正彩色定理前的垂直间距

我注意到,在任何使用 着色的类定理环境上方都会获得额外的垂直空间\textcolor

以下是一个例子:

\documentclass{amsart}
\usepackage{xcolor}
\newtheorem{theorem}{Theorem}

\begin{document}
Some text.

\begin{theorem}
\end{theorem}

Some more text.

\textcolor{red}{
\begin{theorem}
\end{theorem}}

Some more text.

\end{document}

在此处输入图片描述

谁能解释一下为什么会发生这种情况?

答案1

您可以使用\color{red}并添加一对括号使其成为局部的,或者,如果您不想重复它,可以使用thmtools新的有色定理进行定义,使用与相同的计数器theorem

\documentclass{amsart}
\usepackage{xcolor}
\newtheorem{theorem}{Theorem}

\usepackage{thmtools}
\declaretheorem[sibling = theorem, title =Theorem, preheadhook = \color{blue}]{colourthm}

\begin{document}
Some text.

\begin{theorem}
\end{theorem}

Some more text.

{\color{red}
\begin{theorem}
One has $1 + 1 = 2$.
\end{theorem}}

Some more text.

\begin{colourthm}One has $2 + 2 = 4$.
\end{colourthm}

Some more text.

\end{document} 

在此处输入图片描述

答案2

使用当前的 LaTeX,你可以用钩子添加颜色:

\documentclass{amsart}
\usepackage{xcolor}
\newtheorem{theorem}{Theorem}

\begin{document}
Some text.

\begin{theorem}
\end{theorem}

Some more text.

\AddToHookNext{env/theorem/begin}{\color{red}}
\begin{theorem}
aa
\end{theorem}

Some more text.

\begin{theorem}
aa
\end{theorem}

\end{document}

在此处输入图片描述

相关内容