我想通过 定义一个新命令\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
。