使用扩展宏作为 \patchcmd 的搜索模式

使用扩展宏作为 \patchcmd 的搜索模式

有没有办法可以使用扩展宏的值作为(或等)etoolbox的搜索模式,以便可以通过更改 catcodes 获得某种“动态”补丁?\patchcmdxpatch\xpatchcmd

这是一个最小工作示例(MWE)。

\documentclass{article}

\usepackage{etoolbox}
\usepackage{xcolor}

\begin{document}

\newcommand{\wordlist}{cat dog parrot goldfish hamster}

\newcommand\selectpet[1]{%
  \bgroup
  \patchcmd{\wordlist}{#1}{\textcolor{red}{#1}}{}{}
  \wordlist
  \egroup
}

\selectpet{dog}  %% This works

\def\mychoice{dog}
\selectpet{\mychoice}  %% This doesn't

\end{document}

答案1

您想mychoice在调用之前进行扩展\selectpet

\expandafter\selectpet\expandafter{\mychoice}

相关内容