Erweitertes Makro als Suchmuster für \patchcmd verwenden

Erweitertes Makro als Suchmuster für \patchcmd verwenden

Gibt es eine Möglichkeit, den Wert eines erweiterten Makros als Suchmuster für etoolbox's \patchcmd(oder xpatch's \xpatchcmdusw.) zu verwenden, sodass man durch Ändern der Catcodes eine Art „dynamischen“ Patch erhalten kann?

Hier ist ein minimales Arbeitsbeispiel (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}

Antwort1

Sie möchten mychoicevor dem Aufruf erweitern \selectpet, also:

\expandafter\selectpet\expandafter{\mychoice}

verwandte Informationen