命令 \cs 已在回忆录类中定义,但尚未在 amsart 中定义?

命令 \cs 已在回忆录类中定义,但尚未在 amsart 中定义?

考虑以下代码:

\documentclass{memoir}
\newcommand{\cs}{\Sigma}
\title{Rings and Modules}
\author{}
\begin{document}
\maketitle
\end{document}

编译失败,并出现以下错误。

 ! LaTeX Error: Command \cs already defined.
           Or name \end... illegal, see p.192 of the manual.

 See the LaTeX manual or LaTeX Companion for explanation.
 Type  H <return>  for immediate help.
 ...                                              

 l.2 \newcommand{\cs}{\Sigma}

PS 代码与amsart类完全兼容。另外,请告诉我错误消息中提到的“手册”是什么。

答案1

该文件memoir.cls有这一行

\DeclareRobustCommand{\cs}[1]{\texttt{\char`\\#1}}

用于打印控制序列名称:\cs{cs}将打印\cs。它似乎不是一个关键命令,因此您可以使用已知技巧来重新定义它,而不必担心它是否被定义:

\providecommand{\cs}{}
\renewcommand{\cs}{\Sigma}

这对于标准 LaTeX 类、AMS 类和 都是安全的memoir。如果您使用其他类,最好注释掉第一行并查看会发生什么。如果命令已定义,请尝试查看其定义。

答案2

该类memoir确实包括以下定义\cs

\DeclareRobustCommand{\cs}[1]{\texttt{\char`\\#1}}

它用于格式化控制序列的文本示例。

\documentclass{memoir}
%\newcommand{\cs}{\Sigma}
\title{Rings and Modules}
\author{}
\begin{document}
\maketitle
\cs{mycommand}
\end{document}

在此处输入图片描述

相关内容