1. \tl_count가 1보다 클 때는 무조건 매크로가 아니라고 하는 논리인가요? 만약 제가 이해한 게 맞다면, 마지막 \tl_reverse:N\l_tmptmp_tl은 필요없는 것 아닌가요? 어차피 한 글자만 들어있다고 생각했습니다.
2. 그리고 이렇게 하는 것은 \token_if_cs가 토큰 하나만 먹고 나머지는 input stream에 놓기 때문인 것이 맞을까요?
3. 사실 \tl_gset:Nx \l__delim_tl { { ... 부분이 어렴풋이밖에 이해가 안 됩니다. \use_i:nnn는 \cs_split_function:N이 3부분으로 나누기 때문인 것은 이해했습니다. 그런데 \exp_last_unbraced:Nf가 왜 인자를 두 개만 받는지 잘 모르겠습니다. \exp_last_unbraced:Nf\use_i:nnn {\cs_split_function:N #1}와 같이 뒤에 두 인자를 묶어야 하지 않나요? (이렇게 해도 돌아갑니다.)
4. 3에서 이어지는데요, 그렇게 묶으면 \exp_last_unbraced:Ne도 돌아가지만 묶지 않은 경우에는 :Nf만 돌아갑니다. 또한 :Nx는 어떻게 하든 안 돌아갑니다. interface3의 확장 부분을 여러 차례 읽어도 잘 와닿지 않습니다 ㅠㅠ
5. 아마 3/4를 이해하면 이것도 깨닫겠지만.. \tl_gset:Nx \l__delim_tl {{...에서 왜 시그니처가 :Nx인가요? 이게 어디까지 확장하고 그치는지 그려지지가 않네요..
오! 항상 감사드립니다. 차근차근 이해하고 있는 중인데, 질문이 있습니다.
1.
\tl_count
가 1보다 클 때는 무조건 매크로가 아니라고 하는 논리인가요? 만약 제가 이해한 게 맞다면, 마지막\tl_reverse:N\l_tmptmp_tl
은 필요없는 것 아닌가요? 어차피 한 글자만 들어있다고 생각했습니다.2. 그리고 이렇게 하는 것은
\token_if_cs
가 토큰 하나만 먹고 나머지는 input stream에 놓기 때문인 것이 맞을까요?3. 사실
\tl_gset:Nx \l__delim_tl { { ...
부분이 어렴풋이밖에 이해가 안 됩니다.\use_i:nnn
는\cs_split_function:N
이 3부분으로 나누기 때문인 것은 이해했습니다. 그런데\exp_last_unbraced:Nf
가 왜 인자를 두 개만 받는지 잘 모르겠습니다.\exp_last_unbraced:Nf\use_i:nnn {\cs_split_function:N #1}
와 같이 뒤에 두 인자를 묶어야 하지 않나요? (이렇게 해도 돌아갑니다.)4. 3에서 이어지는데요, 그렇게 묶으면
\exp_last_unbraced:Ne
도 돌아가지만 묶지 않은 경우에는:Nf
만 돌아갑니다. 또한:Nx
는 어떻게 하든 안 돌아갑니다. interface3의 확장 부분을 여러 차례 읽어도 잘 와닿지 않습니다 ㅠㅠ5. 아마 3/4를 이해하면 이것도 깨닫겠지만..
\tl_gset:Nx \l__delim_tl {{...
에서 왜 시그니처가:Nx
인가요? 이게 어디까지 확장하고 그치는지 그려지지가 않네요..긴 질문 읽어주셔서 감사합니다. TeX의 길은 참 멀군요..