![newtheorem 错误名称错误](https://linux22.com/image/457749/newtheorem%20%E9%94%99%E8%AF%AF%E5%90%8D%E7%A7%B0%E9%94%99%E8%AF%AF.png)
您好,我将这个新定理写入了新的空白 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
?