예컨대 \test{abc,def,ghi}라고 입력했을 때 쉼표로 분리된 각 부분을 별도로 잘라내는 거라면 간단히 할 수 있습니다.
\newcount\mycnt \def\fifo#1,{\ifx\ofif#1\ofif\fi\process{#1}\fifo} \def\ofif#1\fifo{\fi} \def\process#1{\advance\mycnt1 \expandafter\def\csname rsltstr\romannumeral\mycnt\endcsname {#1}} \def\testcmd#1{\mycnt=0\expandafter\fifo#1,\ofif,}
이렇게 정의한 다음 \testcmd를 부르면 앞에서부터 차례로 \rsltstri, \rsltstrii, \rsltstriii 이라는 매크로에 저장됩니다. 이 결과를 어떻게 이용할 것인가는 사용자에게 달렸겠지만,
\usepackage{multido} \def\printcmd{% \begin{itemize} \multido{\i=1+1}{\the\mycnt}% {\item \csname rsltstr\romannumeral\i\endcsname} \end{itemize} }
이것은 itemize 안에 하나씩 차례로 나열하게 한 것입니다. 필요하다면 \testcmd와 \printcmd를 하나의 명령으로 묶을 수도 있겠습니다. 다음 그림은
\testcmd{abc,def,123} \printcmd
이렇게 한 결과입니다.
이밖에도 xstring같은 패키지의 도움을 받거나 expl3로 코딩하거나 할 수 있습니다.
KTUG 한국 텍 사용자 그룹
예컨대 \test{abc,def,ghi}라고 입력했을 때 쉼표로 분리된 각 부분을 별도로 잘라내는 거라면 간단히 할 수 있습니다.
이렇게 정의한 다음 \testcmd를 부르면 앞에서부터 차례로 \rsltstri, \rsltstrii, \rsltstriii 이라는 매크로에 저장됩니다. 이 결과를 어떻게 이용할 것인가는 사용자에게 달렸겠지만,
이것은 itemize 안에 하나씩 차례로 나열하게 한 것입니다. 필요하다면 \testcmd와 \printcmd를 하나의 명령으로 묶을 수도 있겠습니다. 다음 그림은
이렇게 한 결과입니다.
이밖에도 xstring같은 패키지의 도움을 받거나 expl3로 코딩하거나 할 수 있습니다.