这个问题导致了一个新的方案的出现:
xurl
我希望在一段文本中排版一些相对较长的 URL,当我使用 时\url{..}
,生成的文本不会遵守控制正文的边距边界,而是一直延伸到纸张的边缘然后环绕。
\documentclass{article}
\usepackage{hyperref}
\begin{document}
\url{very-long-url-very-long-url-very-long-url-very-long-url-very-long-url-very-long-url-very-long-url-very-long-url}
\end{document}
我正在使用 pdflatex 进行编译,尽管我怀疑这是否会有所不同。
答案1
(将之前的评论转换为答案)
快速谷歌搜索(唉,太快了)揭示了一个解决方案。使用软件包[hyphens]
中的选项url
:
\PassOptionsToPackage{hyphens}{url}\usepackage{hyperref}
一些建议还包括插入,\sloppy
以防乳胶过于努力地对齐事物。
答案2
Herbert Voß 创建于 2017 年 12 月包裹xurl
。
这个包允许 URL 在任何地方中断,可以用 进行简单编译pdflatex
,并且具有与 相同的选项url
(实际上,它会加载url
包)。
这里是 MWE:
% arara: pdflatex
\documentclass{article}
\parindent=0pt
\usepackage{xurl}
\begin{document}
\rule{\linewidth}{1pt}
An example of everywhere breaking url:
\url{very-long-url-very-long-url-very-long-url-very-long-url-very-long-url}
Another example of everywhere breaking url:
\url{very-long-url-very-long-url-very-long-url-very-long-url-very-long-url}
A third example:
\url{very-long-url-very-long-url-very-long-url-very-long-url-very-long-url}
\end{document}
这里是输出:
更新:自 0.05 版(2018 年 12 月)以来,软件包作者添加了对其biblatex
自己的 url 处理的支持。
如果您在此xurl
之后加载,则biblatex
默认情况下会完成。
如果您想避免这种情况,请xurl
提前加载biblatex
或使用以下选项nobiblatex
:
\usepackage[nobiblatex]{xurl}
有关详细信息,请参阅包文档。
答案3
该包url
定义了一个命令\def\UrlOrds{\do\*\do\-\do\~\do\'\do\"\do\-}%
,可以将其添加到默认 URL 断行字符中,在该字符处可以断行。下面,该行将\g@addto@macro
定义的字符列表附加\UrlOrds
到\UrlBreaks
宏中。
\documentclass{article}
\textwidth=8cm
\parindent=0pt
\usepackage{url}
\makeatletter
\g@addto@macro{\UrlBreaks}{\UrlOrds}
\makeatother
\begin{document}
\rule{\linewidth}{1pt}
foo bar baz \url{very-long-url-very-long-url-very-long-url-very-long-url-very-long-url-}
\end{document}
\renewcommand
使用更常见的on可以获得相同的效果\UrlBreaks
,但这会删除中已定义的字符\UrlBreaks
。
编辑:
如果你加载包,etoolbox
你可以减少这 3 行:
\makeatletter
\g@addto@macro{\UrlBreaks}{\UrlOrds}
\makeatother
到这个单行:
\gappto{\UrlBreaks}{\UrlOrds}
答案4
使用sloppypar
如下环境
\begin{sloppypar}
Figure \ref{fig:example_instant_lumi}:
Public result available from \url{https://twiki.cern.ch/twiki/bin/view/AtlasPublic/LuminosityPublicResults}, version of 16.12.2011.
\end{sloppypar}
对我的情况有帮助。没有sloppypar
部分AtlasPublic
超出右边距,sloppypar
LaTeX 之后中断view/
,一切都很好。(不需要包url
。)