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