如何从 amsthm 中的可选标题中删除括号?

如何从 amsthm 中的可选标题中删除括号?

这是这个问题

使用时\begin{theorem}[Open mapping]...\end{theorem}

我收到了

这

是否可以将格式改为“定理:开放映射”(粗体)?

多谢!

答案1

定理标题的可选元素被指定为\thmnote,但它并未在 中定义amsthm为独立元素。它在两处展开,一处用于定理标题,其数字跟在主标题词后面,另一处(如您所见)与使用 的节标题一样将数字“交换” \swapnumbers

产生所需样式的最简单方法(全部粗体、标题词后有一个冒号并且没有括号)可能是重新定义标题交换形式的内部命令:

\makeatletter
\renewcommand{\swappedhead}[3]{%
  \thmnumber{\@upn{\@secnumfont#2\@ifnotempty{#1}{.~}}}%
  \thmname{#1}%
   \thmnote{: #3}}
%  \thmnote{ {\the\thm@notefont(#3)}}}
\makeatother

我保留了原始定义并\thmnote进行了注释,以便您可以看到如何应用间距的变化。\thm@notefont由于默认字体没有改变,因此省略了和用于隔离其调用的额外括号。

有时会要求进行此类更改,因此,我将把这视为正式请求,以考虑在对软件包进行彻底检查时(也许是明年年底)更容易地改变可选元素的样式。

答案2

另一种选择是不涉及重新定义内部命令,可以使用thm工具包作为前端amsthm

\documentclass{article}
\usepackage{amsthm}
\usepackage{thmtools}

\declaretheoremstyle[
notefont=\bfseries, notebraces={}{},
bodyfont=\normalfont\itshape,
headformat=\NUMBER~\NAME:\NOTE
]{nopar}
\declaretheorem[style=nopar]{theorem}

\begin{document}

\begin{theorem}[FTA]
Every non-constant single-variable polynomial with complex coefficients has at least one complex root. 
\end{theorem}

\end{document}

在此处输入图片描述

答案3

\patchcmd这是使用该包的宏的版本etoolbox。它包含用于重置“普通”(定理数)和“交换”(数定理)定理样式的代码。

\documentclass{article}
\usepackage{etoolbox,amsthm}

\makeatletter
% case 1: theorem name--number ("ordinary") style
\patchcmd{\thmhead@plain}%
   {\thmnote{ {\the\thm@notefont(#3)}}}%  original form
   {\thmnote{:  #3}}%  new form
   {}{}
\let\thmhead\thmhead@plain
% case 2: number--theorem name ("swapped") style
\patchcmd{\swappedhead}%
   {\thmnote{ {\the\thm@notefont(#3)}}}%  original form
   {\thmnote{:  #3}}%  new form
   {}{}
\let\swappedhead@plain=\swappedhead
\makeatother
\swapnumbers % switch to "swapped" style for this MWE
\newtheorem{thm}{Theorem}

\begin{document}
\begin{thm}[Pythagoras] $a^2+b^2=c^2.$ \end{thm}
\end{document}

在此处输入图片描述

相关内容