amsthm:只有当有标题时才使用标点符号

amsthm:只有当有标题时才使用标点符号

因此,我对定理、引理等有以下风格。

\newtheoremstyle{Fancyplain}
{\topsep}   
{\topsep}   
{\itshape}  
{0pt}       
{\bfseries} 
{:}         
{5pt plus 1pt minus 1pt} 
{\thmname{#1} \thmnumber{#2}. \thmnote{\normalfont\bfseries#3}}

本质上它看起来像这样:

定理11.定理标题:

但是,当定理没有标题时,我不希望出现冒号。因为它看起来像这样:

定理12.:

有什么办法吗?我目前的解决方案是不使用标点符号,并在有标题时手动添加冒号。

答案1

为什么不简单地将冒号移到参数内部呢\thmnote笔记:我编辑了代码以纠正我忽略的一个错误,该错误与缺少标题时的正确间距有关。

% My standard header for TeX.SX answers:
\documentclass[a4paper]{article} % To avoid confusion, let us explicitly 
                                 % declare the paper format.

\usepackage[T1]{fontenc}         % Not always necessary, but recommended.
% End of standard header.  What follows pertains to the problem at hand.

\usepackage{amsmath,amsthm}

\newtheoremstyle{Fancyplain}
{\topsep}   
{\topsep}   
{\itshape}  
{0pt}       
{\bfseries} 
{}         
{5pt plus 1pt minus 1pt} 
{\thmname{#1} \thmnumber{#2}.\thmnote{\ #3:}}

\theoremstyle{Fancyplain}
\newtheorem{thm}{Thorem}



\begin{document}

Text text text.

\begin{thm}
    Without a title.
\end{thm}

Text text text.

\begin{thm}[A title]
    With a title.
\end{thm}

Text text text.

\end{document}

显示输出的图片已相应更改:

Output of the amended code

相关内容