\newcommand 名为 \endomorphism 不起作用

\newcommand 名为 \endomorphism 不起作用

我想通过 定义一个新命令\newcommand{\endomorphism}[1]{\mathrm{End}\left(#1\right)},但此方法行不通,因为 latex 错误告诉我“命令\endomorphism已定义”(请参阅​​下面的 MWE)。当我尝试时,返回\renewcommand{\endomorphism}[1]{\mathrm{End}\left(#1\right)}错误“命令未定义”。\endomorphism

我发现,作为一种解决方法,使用大写“e”的命令名称(即\Endomorphism)是可行的(再次参见 MWE)。然而,这并不是我想要的。

这里有什么问题?我能以某种方式解决它吗?我认为有些东西可能与标准命令发生冲突,\end但我还不够熟练,无法自己解决这个问题 :(。谢谢。

\documentclass{article}

\usepackage[utf8]{inputenc}
\newcommand{\endomorphism}[1]{\mathrm{End}\left(#1\right)}
%\renewcommand{\endomorphism}[1]{\mathrm{End}\left(#1\right)}
\newcommand{\Endomorphism}[1]{\mathrm{End}\left(#1\right)}

\begin{document}
Let $\endomorphism{V} = \{\textrm{this does not work}\}$ and $\Endomorphism{V} = \{\textrm{linear mapping from $V$ to $V$}\}$.
\end{document}

答案1

您不能定义名称以 开头的命令,\end因为这些名称用于环境的内部编码(当您定义环境时foo,会创建两个命令:\foo\endfoo)。

但是,如果您确实想要定义命令\endomorphism,您可以使用 TeX 命令\def(环境的概念是 LaTeX 的概念,而原始 TeX 对环境一无所知,这就是为什么\def不禁止\endomorphism(当然,您不应该定义一个名为的环境{omorphism}))。

\documentclass{article}

\def\endomorphism#1{\mathrm{End}\left(#1\right)}

\begin{document}
Let $\endomorphism{V} = ...$
\end{document}

评论

不建议定义输出为 的命令,\mathrm{End}\left(#1\right)因为不鼓励系统地使用\left(\right):括号两边会有额外的小水平空格……很多人建议只使用\DeclareMathOperator

相关内容