
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}