중괄호 안의 인수는 명령으로 대체됨

중괄호 안의 인수는 명령으로 대체됨

\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}

관련 정보