\def\foo{\futurelet\next\fooo} % 다음 토큰을 \next로 복사하고 \fooo 실행 \def\fooo{\ifx\next\bgroup\expandafter\foooo\fi} % \next가 '{'이면 \fi를 읽은 후 \foooo 실행 \def\foooo#1{\fbox{#1}\foo} % fbox 수행 후 \foo로 되돌아감.
\makeatletter \def\fooo{% \ifx\next\par\else % \next가 \par도 아니고 \ifx\next\@sptoken\else % 스페이스도 아니면 \expandafter\expandafter\expandafter\foooo % 아래 \fi 두 개를 읽은 후 \foooo 실행 \fi \fi } \makeatother
이렇게 하면 대체로 무난할 거 같네요. 이 코드의 장점(혹은 단점)은 \foo 123456 789 처럼 중괄호를 매번 입력하지 않아도 된다는 것입니다.
빈 칸(스페이스)이나 개행이 오면 인자 전달이 종료된다,는 주문사항을 존중한다면 두번째 매크로를
이렇게 하면 대체로 무난할 거 같네요. 이 코드의 장점(혹은 단점)은 \foo 123456 789 처럼 중괄호를 매번 입력하지 않아도 된다는 것입니다.
이번에도 루아를 이용한 코드, expl3를 이용한 코드를 볼 수 있기를 희망합니다.