我希望在证明中设置偏移段落,比如将一个案例与另一个案例区分开来。我一直在使用
\newtheoremstyle{component}{}{}{}{}{\itshape}{.}{.5em}{\thmnote{#3}#1}
\theoremstyle{component}
\newtheorem*{component}{}
并将其实现为
\begin{component}[Case 1]
...
\end{component}
效果很好,并且具有我想要的外观。
不幸的是,如果这恰好发生在证明的末尾,我需要在末尾手动添加 \qedhere,否则墓碑会出现在下面一行。
有没有更简单的方法来实现类似的功能,同时解决墓碑问题?我知道我可以用
\medskip
\noindent \emph{Case 1.}
...
\medskip
但那更乏味,这就是我首先使用组件定理样式的原因。感谢您提供的任何建议。
答案1
(最初由 Ulrich Schwarz 发表为评论)
在我看来,只要处理\qedhere
.amsthm
的行为,一旦你理解了它,它的行为就非常简单了:\qedhere
如果你的环境以列表(在 TeXnical 意义上)结尾,那么你需要它,对于常见的意图和目的,它显示方程式、子定理(正如你所发现的)和逐项列举/枚举。NTheorem 的替代方法很脆弱,需要多次传递,所以是的,结束标记很棘手。
答案2
为了避免不必要的代码,最好将这些情况视为列表项。通过使用包enumitem
,您可以定义具有适当行为的自定义列表环境
\newlist{pcases}{enumerate}{1}
\setlist[pcases]{
label=\underline{Case~\arabic*:}\protect\thiscase.~,
ref=\arabic*,
align=left,
labelsep=0pt,
leftmargin=0pt,
labelwidth=0pt,
parsep=0pt
}
\newcommand{\case}[1][]{%
\if\relax\detokenize{#1}\relax
\def\thiscase{}%
\else
\def\thiscase{~#1}%
\fi
\item
}
你可以像这样使用它:
\begin{proof}
some text
\begin{pcases}
\case[$k = 0$] This case is obvious.
\case[$k > 0$] Then there exists a...
\end{pcases}
\end{proof}
您仍然必须编写\qedhere
。