使用 amsthm 和 hyperref 删除定理后的点

使用 amsthm 和 hyperref 删除定理后的点

我想知道如何删除amsthm定理数字后面添加的点(它给出定理 1.1。代替定理 1.1)。

梅威瑟:

\documentclass{article}
\usepackage{hyperref}
\newtheorem{theorem}{Theorem}[section]

\usepackage{xpatch}
\makeatletter
\xpatchcmd{\@thm}{\thm@headpunct{.}}{\thm@headpunct{}}{}{}
\makeatother

\begin{document}
\section{Introduction}

\begin{theorem}
Let ...
\end{theorem}

\end{document}

给出

在此处输入图片描述

尽管

\documentclass{article}
\usepackage{amsthm}
\usepackage{hyperref}
\newtheorem{theorem}{Theorem}[section]

\usepackage{xpatch}
\makeatletter
\xpatchcmd{\@thm}{\thm@headpunct{.}}{\thm@headpunct{}}{}{}
\makeatother

\begin{document}
\section{Introduction}

\begin{theorem}
Let ...
\end{theorem}

\end{document}

给出

在此处输入图片描述

事实证明,如果\usepackage{hyperref}不包括,则添加

\usepackage{xpatch}
\makeatletter
\xpatchcmd{\@thm}{\thm@headpunct{.}}{\thm@headpunct{}}{}{}
\makeatother

解决了问题,但是问题仍然存在。

我需要使用amsthm但我不想出现点。

提前致谢。

答案1

\documentclass{article}
\usepackage{amsthm}
\newtheorem{theorem}{Theorem}[section]

\usepackage{xpatch}
\makeatletter
\xpatchcmd{\@thm}{\thm@headpunct{.}}{\thm@headpunct{}}{}{}
\makeatother

\begin{document}
\section{Introduction}

\begin{theorem}
Let ...
\end{theorem}

\end{document}

在此处输入图片描述


编辑:

包括hyperref你必须使用文档开头的补丁,请参阅texlive 2016 hyperref/cleverref 不兼容

\documentclass{article}
\usepackage{amsthm}
\usepackage{hyperref}
\newtheorem{theorem}{Theorem}[section]

\usepackage{xpatch}
\makeatletter
\AtBeginDocument{\xpatchcmd{\@thm}{\thm@headpunct{.}}{\thm@headpunct{}}{}{}}
\makeatother

\begin{document}
\section{Introduction}

\begin{theorem}
Let ...
\end{theorem}

\end{document}

相关内容