Latex 带有Bibtex和hyperref包的url中的换行符

Latex 带有Bibtex和hyperref包的url中的换行符,latex,bibtex,Latex,Bibtex,为什么我的参考书目中没有正确地显示这个项目 @misc{ann, abstract = {ANN is an implbmentation of nearest neighbor search.}, author = {David M. Mount and Sunil Arya}, howpublished = {\url{http://www.cs.umd.edu/~mount/ANN/}}, keywords = {knn}, posted-at =

为什么我的参考书目中没有正确地显示这个项目

@misc{ann, abstract = {ANN is an implbmentation of nearest neighbor search.}, author = {David M. Mount and Sunil Arya}, howpublished = {\url{http://www.cs.umd.edu/~mount/ANN/}}, keywords = {knn}, posted-at = {2010-04-08 00:05:04}, priority = {2}, title = {ANN.}, url = "http://www.cs.umd.edu/~mount/ANN/", year = {2008} } @misc{Nilsson96introductionto, author = {Nilsson, Nils J.}, citeulike-article-id = {6995464}, howpublished = {\url{http://robotics.stanford.edu/people/nilsson/mlbook.html}}, keywords = {*file-import-10-04-11}, posted-at = {2010-04-11 06:52:28}, priority = {2}, title = {Introduction to Machine Learning: An Early Draft of a Proposed Textbook.}, year = {1996} } 不是

。与url包一起使用时会产生错误。那么,这两者能否不合作呢

我想在pdf文件中使用超链接,所以我想使用hyperref包而不是url包。我在谷歌上搜索了一下,然后试着

\usepackage[hyperindex,breaklinks]{hyperref}
但仍然没有像以前那样断线。我怎么做


编辑:

当同时使用url和hyperref时, 如果只是

\usepackage{hyperref}  
\usepackage{url}
latex的编译很好,但是链接仍然是超链接,并且仍然没有换行符。如果我不使用hyperref包,则链接有换行符,但我会丢失超链接。由于\url可以在hyperref和url包中使用,如何指定使用的是哪个包的\url

如果是

\usepackage{hyperref}  
\usepackage[hyphens]{url}
latex编译命令将报告与url冲突:

!LaTex错误:程序包url的选项冲突。


所以我想知道我该怎么做?

通常URL是连字符的,但在您的参考书目中它们似乎不是。当URL不适合一行时,会将其移动到下一行,并拉伸前面的文本以填充前面的行。因为只有一个地方可以换行,所以前面的文本不太可能很好地适合整行,因此您可以获得所有额外的空间

编辑:当你改变你的围嘴条目时,你碰巧以这样一种方式改变了它,使得文本非常适合。这只是巧合,你没有解决你的问题

我怀疑

\usepackage{url}

如果你的意思是间距太大,那是因为URL似乎不允许换行。为什么会发生这种情况是另一个问题,答案取决于您的前言(您使用的包等)。原则上,如果使用得当,应允许换行

编辑
这个问题(以及它的解决方案)被描述(将您发送到Google缓存,因为该站点目前处于脱机状态)。底线:要么使用软件包,要么使用PDFLaTeX,要么同时使用两者。

您应该按照以下顺序使用它们:

\usepackage[hyphens]{url}
\usepackage{hyperref}  
当您以相反的方式使用它们时,会出现此错误

! LaTex Error: Option clash for package url.
由于hyperref包在内部某个地方加载url包,而没有hypens选项,然后您希望使用该选项加载url包,因此会发生冲突

改变顺序符合您的要求,不会出现此错误(因为包已加载hyperref不会使用其他选项再次加载)

编辑:这是使用pdftex进行的,我没有使用其他工具进行测试

编辑2:


或者如PatrickT在评论中所述:
\PassOptionsToPackage{hyphens}{url}
如果您使用的类已经加载了包,例如beamer

我刚刚遇到了几乎相同的问题,并发现通过

\PassOptionsToPackage{hyphens}{url}

\usepackage[...]{hyperref}

在序言部分,只需将
\usepackage{breaker}
放在
\usepackage{hyper ref}
之后的某个地方。定义了
\burl
命令,默认情况下,软件包还将
\url
命令转换为
\burl

的同义词,但对我来说,只有这样做有效:

\usepackage[hyphens]{url}
\usepackage{hyperref}
...
\usepackage{biblatex}
\setcounter{biburlnumpenalty}{100}
\setcounter{biburlucpenalty}{100}
\setcounter{biburllcpenalty}{100}

摘自:

奇怪,我加载
url
包(没有选项),如果需要,在斜杠
/
处进行断字。 总之,简单的解决方法是:

howpublished = {\url{http://www.cs.umd.edu/}\url{~mount/ANN/}},

手动作业,但它将URL拆分为yes或yes。

这个简单的解决方案适合我:

\usepackage{hyperref} \usepackage{breakurl}

URL现在非常完美。

我添加了以下程序包:

\usepackage[hyphens]{url}
在我使用的bibtex中:

howpublished = {**\url{**http://www.......**}**}

这就行了。

谢谢你,托马托!我想在pdf文件中使用超链接,所以我仍然想使用hyperref包而不是url包。我在谷歌上搜索了一下,然后尝试\usepack[hyperindex,breaklinks]{hyperref},但是仍然没有像以前一样的换行符。我怎么做?两者都用。没有任何东西可以阻止您使用url和hyperref。使用它们要么仍然不起作用,要么报告与url包冲突。谢谢,AVB!我想在pdf文件中使用超链接,所以我仍然想使用hyperref包而不是url包。我在谷歌上搜索了一下,然后尝试\usepack[hyperindex,breaklinks]{hyperref},但是仍然没有像以前一样的换行符。我该怎么做?这对我很有用!(
url
包含在
hyperref
之前,并且不需要使用
breakurl
)。或者
\PassOptionsToPackage{hyphens}{url}
如果您使用的是一个已经加载包的类,例如bemer。当我在两个url之间放置一个空格时,这也起作用,就像
howpublished={url\{…}\url{…}
。手动修复是唯一适合我的。如果您希望url从新行开始,还可以添加手动换行符,例如
\newline\url{}
。这对于已经加载hyperref和url包的beamer类是必需的。
\usepackage[hyphens]{url}
howpublished = {**\url{**http://www.......**}**}