强制在 \url 中换行

强制在 \url 中换行

这个问题导致了一个新的方案的出现:
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超出右边距,sloppyparLaTeX 之后中断view/,一切都很好。(不需要包url。)

相关内容