经常看到有人询问要如何去掉定理编号后面的点。这里查到了两种方法,分享出来。注意这里只谈论 amsthm
的情况。
先明确概念。那个点叫 punctuation
,在 amsthm
中用 \thm@headpunct
来标识它。
这里我们给出一个不做任何处理的例子。
\documentclass{article}
\usepackage{amsthm}
\newtheorem{thm}{Theorem}[section]
\begin{document}
\section{A section here}
\begin{thm}
A theorem here.
\end{thm}
\end{document}
大家自行运行,可以看到 punctuation
存在。 接下来我们调整定理的 punctuation
。由于默认的定理样式 theoremstyle
是 plain
,因此我们需要改动 \th@plain
。
\documentclass{article}
\usepackage{amsthm}
\newtheorem{thm}{Theorem}[section]
%https://latex.org/forum/viewtopic.php?t=14755
\makeatletter
\g@addto@macro\th@plain{\thm@headpunct{}}
\makeatother
\begin{document}
\section{A section here}
\begin{thm}
A theorem here.
\end{thm}
\end{document}
在上述代码中给出了参考链接,大家可以学习。
这样的做法需要用户自行了解定理样式,不太方便。因此我们可以调用 xpatch
来帮助我们解决这个问题。
\documentclass{article}
\usepackage{amsthm}
\newtheorem{thm}{Theorem}[section]
%https://tex.stackexchange.com/questions/338209/remove-dot-after-theorem-with-amsthm-and-hyperref
\usepackage{xpatch}
\makeatletter
\xpatchcmd{\@thm}{\thm@headpunct{.}}{\thm@headpunct{}}{}{}
\makeatother
\begin{document}
\section{A section here}
\begin{thm}
A theorem here.
\end{thm}
\end{document}
同样,我们也给出了相关链接。
希望本文能对用户提供一些帮助。