我想突出显示包含用户定义命令的文本,并添加换行符。我找到了换行符的解决方案(Colorbox 不换行),但该\ctext{}
命令不能将其他命令视为其参数。
我的MWE如下:
\documentclass{article}
\usepackage{lipsum}
\usepackage{xcolor}
\usepackage{soul}
\usepackage{etoolbox}
\usepackage{ifmtarg}
\newcommand{\red}[1]{{\color{red} #1}}
\newcommand{\ctext}[3][RGB]{%
\begingroup
\definecolor{hlcolor}{#1}{#2}\sethlcolor{hlcolor}%
\hl{#3}%
\endgroup
}
%Frame of command '\spec'
\newcommand{\defineSpecies}[2]{\csdef{spec@#1}{#2}}
\newrobustcmd{\spec}[1]{%
\ifcsname spec@#1\endcsname%
\csuse{spec@#1}%
\else
\GenericError{}{Undefined species `#1'}{}{}
\fi
}
\defineSpecies{h216o}{H$_2^{~16}$O}
\begin{document}
\ctext[RGB]{0,209,0}{\red{\spec{h216o}}}
\end{document}