![根据同一个基本命令定义多个命令](https://linux22.com/image/351058/%E6%A0%B9%E6%8D%AE%E5%90%8C%E4%B8%80%E4%B8%AA%E5%9F%BA%E6%9C%AC%E5%91%BD%E4%BB%A4%E5%AE%9A%E4%B9%89%E5%A4%9A%E4%B8%AA%E5%91%BD%E4%BB%A4.png)
我想定义这些命令:
\newcommand{\green}[1]{\textcolor{green}{#1}}
\newcommand{\blue}[1]{\textcolor{blue}{#1}}
\newcommand{\red}[1]{\textcolor{red}{#1}}
当我尝试使用\green
与命令相对应的输出\red
时。这表明,除了最后一个之外,前面的定义都被忽略或被最后一个替换,也许是因为所有定义都基于同一个“基本”命令,即\textcolor
。
编辑
感谢大家的回答。这是一个 MWE(相当简单的“不起作用”示例,呵呵)。看来这个cprotect
包确实有问题,我需要它才能使用verb
宏内的环境。不仅先前的宏定义被忽略,而且垂直间距也没有应用。
如果最好的做法是提出一个单独的问题,请毫不犹豫地告诉我。
\documentclass[border=5mm]{standalone}
\usepackage{xcolor,cprotect}
\newcommand{\green}[1]{\textcolor{green}{#1}}
\cMakeRobust\green
\newcommand{\blue}[1]{\textcolor{blue}{#1}}
\cMakeRobust\blue
\newcommand{\red}[1]{\textcolor{red}{#1}}
\cMakeRobust\red
\begin{document}
\green{Huey $e^{\pi i}+1=0$ (math is OK)}\newline
\newline\blue{Dewey \verb|I'm using verbatim here $e^{\pi i}+1=0$|}
\\[3mm]\red{\textbf{Louie}}
\vspace{3mm}\green{Vertical spacing is not working, too.}
\end{document}