命令 \p 定义错误,但也是未定义的

命令 \p 定义错误,但也是未定义的

我正在使用 Springer Nature Latex 模板:https://www.overleaf.com/latex/templates/springer-nature-latex-template/gsvvftmrppwq

\usepackage{amsmath, amsfonts, dsfont}
\usepackage{blindtext}
\usepackage{xcolor}

\usepackage{mathtools}
\usepackage{comment}
\usepackage{amsthm}
\usepackage{algorithm, algpseudocode}
\usepackage{caption, subcaption}
\usepackage[export]{adjustbox}
\usepackage{multirow}
\usepackage{graphicx}
\graphicspath{{images/}}
\usepackage{xr}
\usepackage{subfiles}

\newcommand{\E}{\mathbb{E}}
\newcommand{\p}{\mathbb{P}}
\newcommand{\Reals}{\mathbb{R}}

不幸的是,我收到了错误消息./sn-article.tex:75: LaTeX Error: Command \p already defined. Or name \end... illegal, see p.192 of the manual.

但是,如果我调用$\p$\p,我会得到./sn-article.tex:193: Missing $ inserted. <inserted text>

谢谢!

答案1

宏(或者至少是通过\def\newcommand或朋友定义的宏)不能同时被定义和取消定义。

如果我通过在代码片段前加上前缀\documentclass[default]{sn-jnl}和后缀使其最低限度地可编译\begin{document} \show\p \end{document},我会得到以下输出(写入屏幕和日志文件,但不会写入 pdf 文件):

> \p=macro:
#1->\mathrel {\ooalign {\hfil $\mapstochar \mkern 5mu$\hfil \cr $#1$}}.
l.23 \show\p

该宏接受一个参数,并且应该在数学模式下使用,因为它的“最外层”组成指令是\mathrel

补充:未在 LaTeX 内核或标准 LaTeX 文档类( 、和)\p中定义。而是定义为文档类的一部分。articlereportbook\psn-jnl

如果你不关心这个宏,也不介意破坏它——警告:自行承担风险!——你可以简单地替换

\newcommand{\p}{\mathbb{P}}

\renewcommand{\p}{\mathbb{P}}

\p但是,破坏现有宏通常是不明智的。请考虑为文档主体中使用的宏取一个名称以外的名称。

相关内容