\theoremstyle 的奇怪行为

\theoremstyle 的奇怪行为

我刚刚注意到这个\theoremstyle命令有些奇怪。以下是示例文档的代码:

\documentclass{article}
\usepackage{amsthm}
\theoremstyle{plain}
\newtheorem{thm}{Theorem}[section]
\theoremstyle{definition}
\newtheorem{defn}{Definition}[section]
\theoremstyle{remark}
\newtheorem{case}{Case}
\begin{document}
\thm 1
\defn 2
\case 3
\thm 4
\end{document}

我期望“案例”之后的定理表现得像第一个定理,但输出却如下所示:

输出

有任何解释或解决方案吗?我使用amsthm错了吗?

答案1

\newtheorem{thm}{Theorem}[section]正在定义一个thm 环境需要用作

\begin{thm}
A statement.
\end{thm}

事实上,\thm没有出现错误只是因为\begin\end命令的内部实现,而这实际上不应该被依赖。

\theoremstyle声明使用环境的属性团体从技术意义上来说:它们内部的声明在相应的\end命令处结束其范围。

当你这样做

\theoremstyle{remark}
\newtheorem{case}{Case}

在序言中\begin{case}在文档中,LaTeX 会执行一些任务,例如声明“Case”标签以斜体排版。这是由内部的 \case宏(您不应该使用它)。在这种情况下看到“范围结束”,因此的下一个实例将继承标签thm的字体属性:采用默认样式,不会发出字体声明。caseplain\thm

\begin在我看来, –语法\end也更清晰:它在您的输入中提供了视觉线索,让您更容易找到东西。这只是一个培训问题,也许,需要一个好的文本编辑器,只需按一下键即可插入和\begin标签\end

相关内容