
나는 다음과 같은 몇 가지 질문을 보았습니다.이 하나이에 대한 솔루션을 요청하는URL 분리.
일반 텍스트에서 발생하는 것처럼 URL의 단어에 하이픈을 넣는 것이 가능한지 궁금합니다. 즉, 하이픈 엔진의 도움으로 단어를 분리합니다.하이픈을 추가하지 않고대신 특수 문자 사용), 예 1을 참조하세요.
- 줄 바꿈 표시:하이픈으로 연결된 URL에 대한 오해의 소지가 있는 해석을 피하기 위해 다음과 같은 특수 문자를 보고 싶습니다.캐리지 리턴하이픈 위치에 있는 기호.
- 하이픈과 대시:나는 하이픈 넣기 엔진이 URL의 일부인 것으로 잘못 해석될 수 있는 새로운 하이픈을 삽입하는 것을 원하지 않습니다.
하이픈 넣기 엔진이 다음 위치에서 URL을 분리하는 경우대시(대시는 URL의 일부입니다.) 특수 문자는 무엇이든 삽입해야 합니다. 예 2를 참조하세요.
- 하이픈 넣기 엔진이 다음 위치에서 URL을 분리하는 경우삭감(슬래시는 URL의 일부입니다.) 특수 문자는 무엇이든 삽입해야 합니다. 예 3을 참조하세요.
원하는 하이픈 연결은 단락, 각주 및 참고문헌에서 작동해야 합니다.
예:
(1) http://www.w3.org/hypertext-transport-protocol/secure/test/appli↩
cationformular.html
(2) http://www.w3.org/hypertext-transport-↩
protocol/secure/test/applicationformular.html
(3) http://www.w3.org/hypertext-transport-protocol/secure/↩
test/applicationformular.html
관련된 일:
- 그만큼Peter Grill이 게시한 솔루션새로운 명령을 도입했습니다. 기존 명령을 사용하고 싶습니다
\url
. 또한 그의 솔루션은 모든 문자에서 단어를 분리하는 반면, 나는 올바른 하이픈을 사용하는 하이픈 엔진의 결정에 의존하고 싶습니다.
답변1
이는 T1 및 OT1 인코딩에서 작동하며 다른 인코딩에 대한 수정이 필요합니다(기본적으로 가짜 하이픈 문자로 사용하려면 보이지 않는 문자가 필요함).
/
구분선이 추가되지 않은 경우(첫 번째 예) 화살표가 추가되지 않거나 URL 구문 뒤(두 번째 예) 또는 .
예(세 번째 예)와 같은 하이픈 지점에서 구분되는 경우 화살표가 추가됩니다.
게시된 대로 화살표는 오른쪽 여백에 붙어 있습니다. 텍스트 블록 내에 있도록 하려면 \rlap
에서 을 제거하세요 \discretionary
.
또한 게시된 대로 이것은 원하는 경우 명령을 전역적으로 삭제 \brkurl
하도록 요청하는 질문을 정의합니다.\url
brk
\documentclass{article}
%\tracingonline1
%\showboxbreadth=200
%\showboxdepth=200
\begin{document}
\def\addurlspace#1{%
\ifx\relax#1%
\else
\ifx/#1\space\fi
\ifx.#1\space\fi
#1%
\ifx/#1\space\fi
\ifx.#1\space\fi
\expandafter\addurlspace
\fi}
\makeatletter
\@namedef{OT1-zwidthchar}{255}
\@namedef{T1-zwidthchar}{"17}
\def\brkurl#1{%
\edef\savedhchar{\the\hyphenchar\font}%
\global\setbox1\hbox{}%
\setbox0=\vbox{\hsize=2pt\rightskip=0pt plus 1fill
\hfuzz\maxdimen
\tracinglostchars0
\overfullrule0pt
\hyphenchar\font=\csname \f@encoding-zwidthchar\endcsname
\noindent \hskip0pt \addurlspace #1\relax
\par
\loop
\setbox4 \lastbox
\ifvoid4 \else
\global\setbox1\hbox{\unhbox4\unskip\unskip\discretionary{\hbox{\rlap{$\leftarrow$}}}{}{}\unhbox1}%
\unskip
\unskip
\unpenalty
\unskip
\repeat
}%
\unhbox1
\hyphenchar\font\savedhchar
\relax}
\makeatother
some text \brkurl{http://www.example.com/this/directory/here}
some text \brkurl{http://www.example.com/this/directory/here} some text
some text \brkurl{http://www.example.com/this/directory/here} some text
\end{document}