将其参数的每个字作为参数传递给另一个宏的宏(再次)

将其参数的每个字作为参数传递给另一个宏的宏(再次)

我知道这是重复的将其参数的每个单词作为参数传递给另一个宏的宏?,这就是我保留标题的原因,但是当包含单词的参数也作为宏给出时,我没能得到正确的结果。

请参阅下面的代码:

\documentclass{minimal}%
\begin{document}

\def\somefigures{1 2 3 4 5 6 7 8 9}
\def\wbox#1{\boxw#1 \empty}
\def\boxw#1 #2{\fbox{#1}\ \ifx #2\empty\else\expandafter\boxw\fi #2}

\wbox{1 2 3 4 5 6 7 8 9}\bigskip

\wbox{\somefigures}

\end{document}

答案1

你里面缺少一些扩展\wbox

在此处输入图片描述

\documentclass{article}%
\begin{document}

\def\somefigures{1 2 3 4 5 6 7 8 9}
\def\wbox#1{\expandafter\boxw#1 \empty}% expanded #1 first
\def\boxw#1 #2{\fbox{#1}\ \ifx #2\empty\else\expandafter\boxw\fi #2}

\wbox{1 2 3 4 5 6 7 8 9}\bigskip

\wbox{\somefigures}

\end{document}

相关内容