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

时间:2010-04-12 21:51:01

标签: 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 = {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}  
}  

alt text http://i42.tinypic.com/wivrxl.jpg


编辑:

我正在使用

\usepackage{hyperref}

不是

\usepackage{url}

。与url包一起使用时会产生错误。这两个人不能一起工作吗?

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

\usepackage[hyperindex,breaklinks]{hyperref}

但仍然没有像以前一样的换行符。我该怎么办?


编辑:

一起使用url和hyperref时, 如果它只是

\usepackage{hyperref}  
\usepackage{url}

乳胶编译很好,但链接仍然是超链接,仍然没有换行符。如果我不使用hyperref包,链接有linebreak,但我失去了超链接。由于\ url可以在hyperref和url包中使用,我如何指定正在使用哪个包的\ url?

如果是

\usepackage{hyperref}  
\usepackage[hyphens]{url}

latex命令编译将报告与url冲突:

  

! LaTex Error: Option clash for package url.

所以我想知道该怎么做?

9 个答案:

答案 0 :(得分:15)

您应该按此顺序使用它们:

\usepackage[hyphens]{url}
\usepackage{hyperref}  

当您以相反的方式使用它们时会出现此错误。

! LaTex Error: Option clash for package url.

因为hyperref包在内部的某个地方加载url包而没有那个超级选项,然后你想用选项加载它,所以它会发生冲突。

转动顺序可以实现你想要的并且没有给出这个错误(因为包已经加载了hyperref不会再用不同的选项加载它)

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

答案 1 :(得分:10)

如果您指的是太宽的间距,那是因为网址似乎不允许换行符。为什么会发生这是另一个问题,答案取决于你的序言(你使用的包等)。原则上,如果使用得当,url package应该允许换行。

修改 这个问题(及其解决方案)描述为here(由于网站目前处于离线状态,因此将您发送到Google缓存)。底线:使用breakurl包,或PDFLaTeX,或两者兼而有之。

答案 2 :(得分:10)

我遇到了几乎相同的问题,发现它已经解决了

\PassOptionsToPackage{hyphens}{url}

之前的

\usepackage[...]{hyperref}

答案 3 :(得分:6)

很奇怪,我加载了url包(没有选项),如果需要,可以在斜杠/处完成连字。 无论如何,简单的解决方法:

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

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

答案 4 :(得分:3)

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

编辑:当你改变你的bib条目时,你碰巧改变它的方式使文本确实很合适。这只是一个巧合,你没有解决你的问题。

我怀疑是

\usepackage{url}
你的序言中的

将解决它。

答案 5 :(得分:1)

对我来说只有这个有用:

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

取自:https://tex.stackexchange.com/questions/22854/url-line-breaks-with-biblatex

答案 6 :(得分:1)

我添加了这个包:

\usepackage[hyphens]{url}

在我使用的bibtex中:

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

然后就可以了。

答案 7 :(得分:0)

在序言中,只需将\usepackage{breaker}放在\usepackage{hyper ref}之后的某处。 \burl命令已定义,默认情况下,程序包还会将\url命令转换为\burl的同义词。

答案 8 :(得分:0)

这个简单的解决方案对我有用:

\ usepackage {hyperref}宏 \ usepackage {breakurl}

网址现已完美。