大括號中的參數被指令替換

大括號中的參數被指令替換

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

相關內容