\patchcmd에 대한 검색 패턴으로 확장된 매크로 사용

\patchcmd에 대한 검색 패턴으로 확장된 매크로 사용

etoolbox확장된 매크로의 값을 's \patchcmd(또는 xpatch's \xpatchcmd등)에 대한 검색 패턴으로 사용하여 catcode 변경을 통해 일종의 "동적" 패치를 가질 수 있는 방법이 있습니까 ?

다음은 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}

관련 정보