使用 ntheorem 时删除“定理”和定理编号之间的空格

使用 ntheorem 时删除“定理”和定理编号之间的空格

我正在使用ntheorem假设和子假设(即 H1a、H1b 等)包,后者对我的问题并不重要。仅供您参考,以了解为什么我不能简单地使用 amsthm 包。

我的代码给了我1代替H1作为输出,我想删除“H”和“1”之间的空格。请看附件截图。谢谢!

这是我的 MWE:

\documentclass{scrreprt}

\usepackage{ntheorem}
\newtheorem{hyp}{H}     %I tried \newtheorem{hyp}{H\ignorespaces} - not working

\begin{document}

\begin{hyp}
The higher the mountain the harder the hike.
\end{hyp}

\end{document}

在此处输入图片描述

答案1

感谢 daleif 的有益评论,我能够通过创建\newtheoremstyle基于中的默认样式“plain”来解决问题ntheorem.sty

朴素风格:

\newtheoremstyle{plain}%
  {\item[\hskip\labelsep \theorem@headerfont ##1\ ##2\theorem@separator]}%
  {\item[\hskip\labelsep \theorem@headerfont ##1\ ##2\ (##3)\theorem@separator]}

可以看出,空格的出现是因为 中的空格##1\ ##2,因此改为##1\ ##2解决##1##2了我的问题。

这导致了以下修正的 MWE:

\documentclass{scrreprt}

\usepackage{ntheorem} 

\makeatletter %
\newtheoremstyle{hypotheses}%
  {\item[\hskip\labelsep \theorem@headerfont ##1##2\theorem@separator]}%
  {\item[\hskip\labelsep \theorem@headerfont ##1##2\ (##3)\theorem@separator]}
\makeatother

\theoremstyle{hypotheses}
\newtheorem{hyp}{H} 

\begin{document}

\begin{hyp}
The higher the mountain the harder the hike.
\end{hyp}

\end{document}

输出为:

在此处输入图片描述

希望这也能对将来的一些人有所帮助。

相关内容