如何更改定义的可选标题的字体,但不更改定理的可选标题的字体?

如何更改定义的可选标题的字体,但不更改定理的可选标题的字体?

我的序言如下:

\newtheorem{teo}{Theorem}[subsection]
\theoremstyle{definition}
\newtheorem{defi}{Definition}[subsection]

默认设置如下

\begin{defi}[Some defi]
\end{defi}

\begin{teo}[Some theorem]
\end{teo}

在括号内输出两个标题 [Some xxx]。我只想将定义标题更改为粗体并删除其括号。我尝试了以下方法:

\makeatletter
\def\thmhead@plain#1#2#3{%
  \thmname{#1}\thmnumber{\@ifnotempty{#1}{ }\@upn{#2}}%
  \thmnote{ {\the\thm@notefont\textbf{#3}}}}
\let\thmhead\thmhead@plain
\makeatother

正确将标题字体更改为粗体并删除括号,但在所有情况下都是如此。我也试过,

\makeatletter
\def\th@definition{%
  \thm@notefont{}% same as heading font
  \normalfont % body font
}
\makeatother

保持定理标题不变,将定义标题字体改为粗体,但保留括号。

最后我尝试了,

\makeatletter
\def\thmhead@definition#1#2#3{%
  \thmname{#1}\thmnumber{\@ifnotempty{#1}{ }\@upn{#2}}%
  \thmnote{ {\the\thm@notefont\textbf{#3}}}}
\let\thmhead\thmhead@plain
\makeatother

这根本不起作用。有什么想法可以继续吗?

答案1

以下代码用于\pdfstrcmp判断\thmheaddefinition还是theorem。这样,您可以根据环境格式化内容以满足您的需求:

在此处输入图片描述

\documentclass{article}

\usepackage{amsthm}

\newtheorem{teo}{Theorem}[subsection]
\theoremstyle{definition}
\newtheorem{defi}{Definition}[subsection]

\makeatletter
\def\thmhead@plain#1#2#3{%
  \thmname{#1}\thmnumber{\@ifnotempty{#1}{ }\@upn{#2}}%
  \ifnum\pdfstrcmp{#1}{Definition}=0
    \thmnote{ {\the\thm@notefont\textbf{#3}}}%
  \else
    ~\thmnote{{\the\thm@notefont (#3)}}%
  \fi
  }
\let\thmhead\thmhead@plain
\makeatother

\begin{document}

\section{A section}

\subsection{A subsection}

\begin{defi}[Some defi]
\end{defi}

\begin{teo}[Some theorem]
\end{teo}

\end{document}

相关内容