Amsthm、Tcolorbox 和列表

Amsthm、Tcolorbox 和列表

在尝试调试列表缩进问题(较大)时,我遇到了这个 MWE。我不明白为什么定义的标题会出现在框内,并且与列表中的第一个项目位于同一行。

\documentclass[12pt]{amsbook}

\usepackage{tcolorbox}

\theoremstyle{remark}
\newtheorem{definition}{Definition}

\newtcolorbox{dcbtheorem}[1][]{#1}

\begin{document}

\begin{definition}
\begin{dcbtheorem}
One line

Another line

Yet, another one, why is ``Definition'' below? 

\begin{enumerate}[label={[\roman*]}]
\item First line
\item Second line
\item Third line
\item Fourth line
\item Fifth line
\item Sixth line
\end{enumerate}
\end{dcbtheorem}
\end{definition}

\end{document}

amsthm 和 tcolorbox 的问题

答案1

我还没有尝试调试这个,但实际上,这没有必要。

您使用的是amsbook,因此amsthm是默认设置。所有定理类对象(包括 )的定义 definition都假定下一个输入(除 之外[<optional note>])将是文本,并且 将被设置为与标题在同一行上的文本。

在您的示例中,接下来的\begin{definition}\begin{dcbtheorem},我不会期望它做任何可预测的事情。

这里显然要做的是转到另一行,要么添加文本和段落分隔符,要么明确地换行,只留下标题。建议的方法是\leavevmode在 之后立即插入\begin{definition}

答案2

我猜您想使用手册第 17.4 节中描述的方法tcolorbox

\documentclass[12pt]{amsbook}
\usepackage{enumitem}
\usepackage{tcolorbox}

\tcbuselibrary{theorems}

\theoremstyle{remark}
\newtheorem{definition}{Definition}

\tcolorboxenvironment{definition}{
  % options
}

\begin{document}

\begin{definition}
One line

Another line

Yet, another one, why is ``Definition'' below? 

\begin{enumerate}[label={[\roman*]}]
\item First line
\item Second line
\item Third line
\item Fourth line
\item Fifth line
\item Sixth line
\end{enumerate}
\end{definition}

\end{document}

在此处输入图片描述

为什么会得到这种奇怪的输出?因为definitiondcbtheorem的使用存在冲突\everypar

答案3

至于为什么定义会出现在它出现的地方:当编译你的代码时,会出现错误。要修复它们,至少需要加载包enumitem。一旦开始猜测,就不能确保提供正确的解释。

然而,如果你利用theorems 图书馆。这是您可以使用它的一种方式。

\documentclass[12pt]{amsbook}

\usepackage[theorems]{tcolorbox}
\usepackage{cleveref}
\usepackage{enumitem}
\tcbset{
defstyle/.style={fonttitle=\bfseries\upshape, fontupper=\slshape,
arc=0mm, colback=blue!5!white,colframe=blue!75!black},
theostyle/.style={fonttitle=\bfseries\upshape, fontupper=\slshape,
colback=red!10!white,colframe=red!75!black},
}
\newtcbtheorem[number within=section,crefname={definition}{definitions}]%
{Definition}{Definition}{defstyle}{def}
\begin{document}

\section{Some section}

\begin{Definition}{Mice}{mice}
One line: mice are mice.

Another line: and not ducks.

Yet, another one: certainly not squirrels.

\begin{enumerate}[label={[\roman*]}]
\item First line
\item Second line
\item Third line
\item Fourth line
\item Fifth line
\item Sixth line
\end{enumerate}
\end{Definition}
\end{document}

在此处输入图片描述

defstyle只是从手册 v4.30 第 370 页复制而来。您可以根据需要进行更改。重点是,如果遵循手册,一切都会按预期进行。

相关内容