KTUG 한국 텍 사용자 그룹

Menu

KTUG :: Q&A 마당 › 줄바꿈 되는 verb

yihoze | 2023.01.06 13:31:20 | 메뉴 건너뛰기 쓰기

파일 경로를 나타내려면 url의 \path 명령을 쓰면 됩니다. 윈도즈에서는 경로에 공백이 포함될 수 있으니까, obeyspaces 패키지 옵션을 주면 완벽한 해법처럼 보입니다. 그런데 \footnote 안에 \path를 넣으면 언더스코어 앞에 공백이 생깁니다.

이 문제는 간단히 말해 "줄바꿈 되는 verb" 명령 만들기라고 할 수 있습니다.

저는 간단히 대체제를 만들 수 있으리라 생각했습니다. 그런데 \tl_to_str:n 명령은 \foo를, 왜 그렇게 만들었는지 모르겠지만 interface3 매뉴얼에 나와 있듯이, backslash + foo + space로 바꿔버립니다. 여기에서부터 삽질이 시작되었습니다.

좌우지간 다음과 같이 만들어서 대략 기대한 결과를 얻었습니다만, verb라고 볼 수 없습니다. 윈도즈에서는 *와 ?를 제외한 기호들을 파일 이름에 쓸 수 있지만 저는 백슬래시와 언더스코어만 고려했습니다. 개선의 여지가 있겠는지요?

 

\documentclass{article}

\ExplSyntaxOn
\NewDocumentCommand\winpath{m}
{
    \group_begin:
    \str_set:Nn \l_tmpa_str {#1}
    \tl_trim_spaces:N \l_tmpa_str
    \regex_replace_all:nnN {\\}{\\string\\} \l_tmpa_str
    \regex_replace_all:nnN {\s\\string}{\\allowbreak\\string} \l_tmpa_str
    \regex_replace_all:nnN {\_}{\\allowbreak\\_} \l_tmpa_str
    \regex_replace_all:nnN {\s\\allowbreak}{\\allowbreak} \l_tmpa_str
    \str_replace_all:Nnn \l_tmpa_str {~}{\space}
    \tl_set_rescan:Nno \l_tmpa_tl {}{\l_tmpa_str}
    \texttt{\l_tmpa_tl}
    \group_end:
}
\ExplSyntaxOff

\begin{document}
\noindent Template files, which are to be added according to languages, 
are in the \winpath{C:\Project-XX\idml_Module\temp lates\backcover} folder.
\end{document}

댓글 [2]

댓글 쓰기

목록

KTUG 한국 텍 사용자 그룹