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