在尝试调试列表缩进问题(较大)时,我遇到了这个 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}
答案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}
为什么会得到这种奇怪的输出?因为definition
和dcbtheorem
的使用存在冲突\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 页复制而来。您可以根据需要进行更改。重点是,如果遵循手册,一切都会按预期进行。