![使用 ntheorem 时删除“定理”和定理编号之间的空格](https://linux22.com/image/355100/%E4%BD%BF%E7%94%A8%20ntheorem%20%E6%97%B6%E5%88%A0%E9%99%A4%E2%80%9C%E5%AE%9A%E7%90%86%E2%80%9D%E5%92%8C%E5%AE%9A%E7%90%86%E7%BC%96%E5%8F%B7%E4%B9%8B%E9%97%B4%E7%9A%84%E7%A9%BA%E6%A0%BC.png)
我正在使用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}
输出为:
希望这也能对将来的一些人有所帮助。