
Gibt es eine Möglichkeit, den Wert eines erweiterten Makros als Suchmuster für etoolbox
's \patchcmd
(oder xpatch
's \xpatchcmd
usw.) 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 mychoice
vor dem Aufruf erweitern \selectpet
, also:
\expandafter\selectpet\expandafter{\mychoice}