이것은 약간 이상한 것입니다. 나는 \url{}
매우 긴 URL을 래핑하기 위해 블록을 얻으려고 노력해 왔으며 작동하는 것처럼 보이는 유일한 방법은 \UrlBreaks
거의 모든 문자를 끊을 수 있도록 명령을 갱신하는 것뿐이었습니다.
그러나 이는 긴 URL이 페이지 여백과 겹치는 것을 방지하지만 여전히 문자를 여백 메모 공간( \marginparsep
및 로 정의됨 \marginparwidth
)으로 밀어넣는 것처럼 보입니다.
다음 문서는 문제를 보여줍니다.
\RequirePackage[hyphens]{url}
\documentclass[12pt]{article}
\usepackage[hyphens]{url}
\PassOptionsToPackage{hyphens}{url}
\usepackage[colorlinks=true, urlcolor=blue]{hyperref}
\usepackage[margin=1cm, bottom=3.5cm, top=3.5cm, head=2cm]{geometry}
\usepackage{showframe}
\usepackage{blindtext}
\setlength\parindent{0pt}
\let\origUrlBreaks\UrlBreaks
\renewcommand*{\UrlBreaks}{\origUrlBreaks\do\a\do\b\do\c\do\d\do\e\do\f\do\g\do\h\do\i\do\j\do\k\do\l\do\m\do\n\do\o\do\p\do\q\do\r\do\s\do\t\do\u\do\v\do\w\do\x\do\y\do\z\do\A\do\B\do\C\do\D\do\E\do\F\do\G\do\H\do\I\do\J\do\K\do\L\do\M\do\N\do\O\do\P\do\Q\do\R\do\S\do\T\do\U\do\V\do\W\do\X\do\Y\do\Z\do\0\do\1\do\2\do\3\do\4\do\5\do\6\do\7\do\8\do\9\do\.\do\/\do\-\do\_\do\?\do\&\do\=}
\begin{document}
\blindtext
\url{http://really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-long-url.com}
\end{document}
컴파일할 때 실제로는 'y'의 절반과 '-' 전체가 \marginparsep 영역으로 밀려납니다. 그러나 이는 일반 텍스트 블록에서는 발생하지 않는 것 같습니다. 여기를 보아라:
왜 이런 일이 발생하는지, 해결하려면 어떻게 해야 하는지 아는 사람이 있나요?
답변1
라인에 유연성이 없으므로 TeX는 중단될 곳이 없습니다.
추가하다
\Urlmuskip = 0mu plus 1mu