
\somecmd
중괄호 안에 있는 몇 가지 인수에 대해 해당 작업이 수행 됩니다 \somecmd{{arg1},{arg2}}
.
\myargs
로 확장해서 {args1},{args2}
사용하는 명령어를 만들고 싶습니다 \somecmd{\myargs}
.
답변1
아마도 당신이 찾고 있는 것은
\newcommand\somecmd[2]{...}
\newcommand\myargs{{arg1}{arg2}}
\expandafter\somecmd\myargs
먼저 매크로를 \myargs
한 번 확장하고 입력 스트림에 중괄호 인수를 남겨둔 다음 \somecmd
인수를 사용할 수 있도록 확장합니다. 인수 목록에 쉼표가 없어야 하며 중괄호 그룹만 있어야 합니다.
답변2
당신은 찾고있을 수도 있습니다 \@for
.
\documentclass{article}
\makeatletter
\newcommand{\DoWhatever}[1]{I do something with #1\par}
\newcommand{\MultiArg}[1]{\@for\next:=#1\do{\DoWhatever{\next}}}
\makeatother
\begin{document}
\MultiArg{{arg1},{arg2}}
\end{document}
이것은 또한 작동합니다:
\documentclass{article}
\makeatletter
\newcommand{\DoWhatever}[1]{I do something with #1\par}
\newcommand{\MultiArg}[1]{\@for\next:=#1\do{\DoWhatever{\next}}}
\makeatother
\begin{document}
\newcommand\myargs{{arg1},{arg2}}
\MultiArg{\myargs}
\end{document}