Latex 定理和证明类环境(amsthm)和(ntheorm)的区别
最近在写毕业论文,出现了一些定理和证明的环境的问题,问题出现在对两个包的理解程度不够的问题上:
\RequirePackage{ntheorem}
1、\newtheorem*{proof}{\hspace{2em}证:} 这个是让证明失去计数原则,该命令不能用于 amsthm
2、该证明环境下,定理的字体和证明的字体一致。
3、关键:证明的环境中,所有的引用(\ref{})都会斜体出现。相对来说比较丑。可通过增加公式符号解决:$\ref{--}$ 。
4、证明结束不会有 证明结束的标志。
\RequirePackage{amsthm}
参考1:Latex 定理和证明类环境的配置(amsthm) - 知乎 (zhihu.com)
参考2: LaTeX (7)——amsthm - 知乎 (zhihu.com):
1、该包是自动添加 qed symbol。即证明自动结束的标志。
2、证明proof 环境不参与自动编号,与包ntheorem的区别。
参考: LaTeX系列笔记(10)-证明 - 知乎 (zhihu.com)
可通下命令修改证明的两字的字体和证毕的标志。
\renewcommand{\proofname}{\indent\bf 证明:} %修改证明字体
\renewcommand{\qedsymbol}{证毕} %设置QED为其它形式
\renewcommand{\qedsymbol}{$\blacksquare$} % 证毕符号改成黑色的正方形
3、该包有个问题就是定理后面会附上一个点,比如 定理2.1.
latex排版的一个问题,怎么去掉1后面的点? - 知乎 (zhihu.com)
\newtheoremstyle{mystyle}
{}
{}
{}
{} %定理缩进两格
{\bfseries}
{} %定理编号后无点
{.5em}
{}
使用自定义的环境要是先声明比如:
\theoremstyle{mystyle}
\newtheorem{definition}{\hspace{2em}定义}[chapter]
\newtheorem{proposition}{\hspace{2em}命题}[chapter]
\newtheorem{property}{\hspace{2em}性质}[chapter]
\newtheorem{lemma}{\hspace{2em}引理}[chapter]
\newtheorem{theorem}{\hspace{2em}定理}[chapter]
\newtheorem{corollary}{\hspace{2em}推论}[chapter]
\newtheorem{example}{\hspace{2em}例}
\newtheorem{remark}{\hspace{2em}注}
\renewcommand{\proofname}{\indent\bf 证明:}
\renewcommand{\qedsymbol}{$\blacksquare$} % 证毕符号改成黑色的正方形
这里给出一个不推荐 ntheorem的理由:
转载:为什么推荐使用定理宏包thmtools? - 知乎 (zhihu.com)
ntheorem
的劣势:有一些长期存在而未修复的 bug,缺乏维护。相关讨论和问答(不全),见- Theorem packages: which to use, which conflict?
这是 2010 年写的三个定理宏包的比较,其中提到的ntheorem
的 bug,现在仍然存在 - ntheorem with thmmarks and standard options fails when thebibliography is empty
这是 2020 年 5 月的问答,涉及ntheorem
的一个具体 bug。- 回答该问题的是 TeX-SX 上积分最高的用户、LaTeX3 团队(他们维护着 LaTeX2e)成员之一的 egreg,
- 他在评论里回应为什么不推荐使用
ntheorem
时说,"unfortunately,ntheorem
seems essentially unmaintaned and has severe problems."
- Theorem packages: which to use, which conflict?
amsmath
和thmtools
的优势:前者实现和功能都简单而稳定,后者提供了 key-value 接口,功能也更丰富。