我发现 PdfLaTeX 的行为相当奇怪。在这个例子中
\documentclass{article}
\usepackage[breaklinks]{hyperref}
\begin{document}
\url{http://www.emarketer.com/blog/index.php/quick-stat-smartphone-users-account-38-mobile-phone-users/}
\end{document}
PdfLaTeX 不会破坏 URL 并创建过长的行。但是,如果我将 \url 替换为 \href,如下所示:
\documentclass{article}
\usepackage{hyperref}
\begin{document}
\href{http://www.emarketer.com/blog/index.php/quick-stat-smartphone-users-account-38-mobile-phone-users/}{http://www.emarketer.com/blog/index.php/quick-stat-smartphone-users-account-38-mobile-phone-users/}
\end{document}
我得到了断线,但链接的字体当然不再正确(正常字体而不是文本字体)。为什么 URL 不在破折号处断线?我该怎么做才能得到排版良好的断线链接?
答案1
url
使用以下选项明确加载包hyphens
:
\usepackage[hyphens]{url}
\usepackage{hyperref}
默认情况下,该url
包不将连字符视为合法的断点。
答案2
当 PDFLaTeX 抱怨“包 url 的选项冲突”时,mhp 的上述回答可能无法提供解决方案。
造成这种情况的原因可能是 hyperref 包也加载了该包。如果 hyperref 在 url 包之前加载,则会出现此错误,因为 url 包随后会使用不同的选项加载两次:一次没有选项,一次有hyphens
选项(这总是会导致冲突)。
如果必须在 hyperref 之后加载 url,可以先hyphens
用以下PassOptionsToPackage
命令指定选项:
\PassOptionsToPackage{hyphens}{url}
\usepackage{hyperref}
\usepackage{url}
请注意,在加载 url 包时不需要再次提供连字符选项(或者根本不需要明确加载 url)。
我注意到 biblatex 包显然也与 url 冲突。因此,biblatex 和 hyperref 也一样:在它之前加载 url 或使用PassOptionsToPackage
。
致 moewe 和 Heilo;我知道,我很抱歉,我本来会的,但正如你所说,在我拥有一定的“声誉”之前,我不能发表评论。所以我会编辑我的“答案”,把它变成一个真正的答案。也许我现在应该积累足够的声誉 ;-)
奇怪的是,我的另一篇帖子被删除了,但它仍然建议我编辑那篇帖子,而不是创建新帖子!(它仍然可见,是红色的!)