l3regex는 정규식 매칭할 때 매크로 확장을 하지 않고 "그대로" 비교한다고 알고 있습니다.
1. 그런데 아래 MWE에서 \SetDelim{\in}
이 아니라 \c{in}
으로 해야하는 이유가 무엇인가요?
2. 나아가서, \SetDelim
이 그냥 \SetDelim{\in}
으로 받게 하려면 (내부적으로 매크로들을 \c{_}
으로 변환하게) 어떻게 해야할까요? (가능하다면)
\documentclass{article}
\ExplSyntaxOn
\tl_new:N \l__delim_tl
\regex_new:N \l__delim_regex
\cs_generate_variant:Nn \regex_set:Nn { NV }
\NewDocumentCommand \SetDelim { m }
{
\tl_set:Nn \l__delim_tl { #1 }
}
\NewDocumentCommand \SplitText { m }
{
\regex_set:NV \l__delim_regex \l__delim_tl
\regex_split:NnN \l__delim_regex { #1 } \l_tmpa_seq
\seq_map_inline:Nn \l_tmpa_seq { \fbox{##1} }
}
\ExplSyntaxOff
\begin{document}
\SetDelim{\c{in}}
\SplitText{a\in A}
\end{document}
KTUG 한국 텍 사용자 그룹