문자열 쪼개기

2017.03.14 09:56

yihoze 조회 수:288

\foo{234,345,658}

- 이렇게 입력했을 때, 콤마를 기준으로 234, 345, 658로 분리되어 저장되고,
- 또 그것들의 각 문자들이 다시 2, 3, 4, 3, 4, 5, ..., 8로 분리되어 저장되고,
- 이렇게 분리한 문자열, 또는 문자, 또는 둘 다를 불러오는 매크로를 만들어 보겠습니다.

\documentclass{article}
\usepackage{xparse}

\ExplSyntaxOn

\seq_new:N \g_tys_group_seq
\seq_new:N \g_tys_item_seq

\NewDocumentCommand \DefineTys { >{\SplitList{,}} m }
{
  \ProcessList{#1}{ \SplitTys }
}

\NewDocumentCommand \SplitTys { m }
{
  \seq_gput_right:Nn \g_tys_group_seq {#1}
  \tl_map_inline:nn {#1}
  {
    \seq_gput_right:Nn \g_tys_item_seq {##1}
  }
}

\NewDocumentCommand\PrintTys { m o }
{
  \seq_item:Nn \g_tys_group_seq {#1}
  \IfValueT{ #2 }{ : \seq_item:Nn \g_tys_item_seq {#2} }
}

\ExplSyntaxOff

\begin{document}

\DefineTys{201,703,101,121}

\PrintTys{1}

\PrintTys{2}

\PrintTys{3}

\PrintTys{1}[1]

\PrintTys{2}[4]

\PrintTys{3}[7]

\end{document}

SplitTys.png

 




XE Login