括弧内の引数はコマンドに置き換えられます

括弧内の引数はコマンドに置き換えられます

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

関連情報