這有點奇怪。我一直在嘗試使用\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