ntheorem 定义/引理/...以 \dots 结尾导致没有证明结束符号

ntheorem 定义/引理/...以 \dots 结尾导致没有证明结束符号

我想用省略号来结束定义或证明。但是,当我更改此 MWE 中的ntheorem点时:.

\documentclass{article}
\usepackage[standard,thmmarks]{ntheorem}
\begin{document}

\begin{Definition}[Test definition]
    Text.
\end{Definition}

\end{document}

在此处输入图片描述\dots\ldots\textellipsis,例如:

\begin{Definition}[Test definition]
    Text\dots
\end{Definition}

我得到了最后带有证明结束符号的结果: 在此处输入图片描述 我找不到这种行为的原因。我可以使用 来绕过它$\dots$,但看起来我忽略了真正的原因。是否有可能以更“适当”的方式实现所需的结果?

答案1

这似乎thmmarks依赖于以空格结尾的文本。

\documentclass{article}
\usepackage[standard,thmmarks]{ntheorem}
\begin{document}

\begin{Definition}[Test definition]
Text\dots{}
\end{Definition}

\end{document}

在此处输入图片描述

该包重新定义\endtrivlist

\gdef\endtrivlist{%
  \@endtrivlist{\PotEndMark{\unskip\nobreak\hfill\nobreak}}}
\gdef\@endtrivlist#1{%  % from \endtrivlist
  \if@inlabel \indent\fi
  \if@newlist \@noitemerr\fi
  \ifhmode
     \ifdim\lastskip >\z@ #1\unskip \par  %<<<<<<<<<<<<<<<<<<<<<<
           \else \unskip \par \fi
     \fi
[...]
}

而标准\endtrivlist刚刚

  \ifhmode\unskip \par

这样可以删除两个尾随的粘连项(一个可能来自行尾,一个在之后\end{trivlist})。

重新定义的目的是插入\PotEndMark{\unskip\nobreak\hfill\nobreak}}到适当的位置,但写出来却没什么意义。无论如何,这解释了为什么缺少空格甚至输入如下内容

\begin{Definition}Text\end{Definition}

不会打印标记。如果 之前有空行,则标记也会消失\end{Definition}

相关内容