newtheorem 错误名称错误

newtheorem 错误名称错误

您好,我将这个新定理写入了新的空白 overleaf 项目中。

\newtheorem{graf}{Def}
\begin{graf}

\end{graf}

我不知道为什么,但我收到了一些奇怪的错误:LaTeX 错误:出现问题 - 可能缺少 \item。当我将单词“graf”更改为其他单词(例如“graph”)时,一切正常。在我一年前在 overleaf 上创建的旧项目中,我使用相同的代码和“graf”,一切也都正常。有什么想法吗,问题出在哪里?

答案1

\end{graf}将通过重新定义来定义,\endgraf这是一个已保存的名称,\par并且一切都将被破坏。

按理说\newtheorem应该检查该\end...名称是否被使用,但目前还没有。

查看相关问题

https://github.com/latex3/latex2e/issues/570

\documentclass{article}
\show\endgraf
\newtheorem{graf}{Def}
\show\endgraf
\begin{document}

\end{document}

产生终端输出:

> \endgraf=\protected\long macro:
->\scan_stop: \mode_if_horizontal:TF {\mode_if_inner:F {\tex_unskip:D \hook_use
:n {para/end}\@kernel@after@para@end \mode_if_horizontal:TF {\if_int_compare:w 
11=\tex_lastnodetype:D \tex_hskip:D \c_zero_dim \fi: \tex_par:D \hook_use:n {pa
ra/after}\@kernel@after@para@after }{\msg_error:nnnn {hooks}{para-mode}{end}{ho
rizontal}}}}\tex_par:D .
l.2 \show\endgraf
                 
? 
> \endgraf=macro:
->\@endtheorem .
l.4 \show\endgraf
                 
? 

相关内容