KTUG 한국 텍 사용자 그룹

Menu

KTUG :: Q&A 마당 › 공백 문자를 식별하는 방법

yihoze | 2016.06.14 08:59:31 | 메뉴 건너뛰기 쓰기

문자열을 받아 문자를 하나씩 분리하여 처리하는 매크로를 만들었습니다.


http://www.ktug.org/xe/index.php?document_srl=219521&mid=KTUG_open_board


\NewDocumentCommand \segment { m }

{

\tl_map_inline:nn { #1 } 

\str_case:nnF {##1}

{

{.} { \segment_include:n {dot} }

{?} { \segment_include:n {QM} }

{|} {\space} %% 여기에서 스페이스를 식별할 방법이 없어서

}

{ \segment_include:n {##1} }

}

}


이 매크로는 스페이스를 처리하지 못하는 문제가 있습니다. \tl_map_inline:nn이 스페이스를 무시(?)해 버리고 ##1에 넘겨주지 않습니다.

스페이스의 캣코드가 다르다는 점, 중복된 공백 문자들을 텍이 모두 무시한다는 점 등을 고려하면 아주 이상한 처리라고 말할 수 없습니다. 해법을 찾다가 궁여지책으로 세로 막대기(|)를 사용했습니다.

\segment{O 20.9} 대신 \segmen{O|20.9}라고 쓰는 거죠.


이 문제에 대한 해법이 있을까요?

댓글 [11]

댓글 쓰기

목록

KTUG 한국 텍 사용자 그룹