2010-04-12 49 views
15

爲什麼在我的參考書目中沒有正確顯示這個項目?在Bibtex和hyperref包中url的換行

 
@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軟件包,鏈接已經斷行,但是我失去了超鏈接。由於\ url可以在hyperref和url包中使用,我如何指定使用哪個包的\ url?

如果

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

編譯乳膠命令將網址報表衝突:

! LaTex Error: Option clash for package url.

所以我不知道我應該怎麼辦?

回答

10

如果您的意思是太寬的間距,那是因爲URL似乎不允許換行。爲什麼會發生這是另一個問題,答案取決於你的序言(你使用的軟件包等)。原則上,如果使用得當,url package應允許換行。

編輯 這個問題(和解決方案)中描述here(送你到谷歌的緩存,因爲該網站目前處於脫機狀態)。底線:使用breakurl包或PDFLaTeX或兩者。

+1

謝謝,AVB!我想使用PDF文件中的超鏈接,所以我仍然想使用hyperref包而不是url包。我搜索了一下,然後嘗試\ usepackage [hyperindex,breaklinks] {hyperref},但仍然沒有像以前那樣換行。我該怎麼做? – Tim 2010-04-13 00:38:44

+0

breakurl很棒,謝謝你的回答! – 2012-06-04 12:52:07

+0

@Tim,也沒有工作。 BibTeX與bibplain-fl。 – vonbrand 2017-01-18 13:03:11

3

通常URL是用連字符表示的,但在您的參考書目中它們似乎不是。當URL不適合一行時,它們被移動到下一行,並且它們之前的文本被拉伸以填充前面的行。由於只有一個地方可以打破這條線,因此前面的文本很可能不會很好地適合整行數據,因此您可以獲得所有額外的空間。

編輯:當你改變你的圍脖入口時,你碰巧改變了它,使得文字很好地吻合。這只是一個巧合,你沒有解決你的問題。

我懷疑是把

\usepackage{url} 

在序言部分將解決這個問題。

+0

謝謝,ptomato!我想使用PDF文件中的超鏈接,所以我仍然想使用hyperref包而不是url包。我搜索了一下,然後嘗試\ usepackage [hyperindex,breaklinks] {hyperref},但仍然沒有像以前那樣換行。我該怎麼做? – Tim 2010-04-13 00:38:03

+0

同時使用它們。沒有什麼可以阻止你使用url *和* hyperref。 – 2010-04-13 01:49:08

+0

使用它們或者仍然不起作用或者報告與url包衝突。 – Tim 2010-04-13 02:40:28

14

您應該按以下順序使用它們:

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

當你周圍使用它們的其他方式你得到這個錯誤。

! LaTex Error: Option clash for package url. 

因爲包hyperref宏加載URL封裝內部的某個地方沒有這種hypens選項,然後要與選項加載它,所以它相撞。

轉眼順序你想要做什麼,不給這個錯誤(因爲包裝已經被加載hyperref宏將不會與不同的選項再次裝入)

+0

這對我有用! (在'hyperref'之前包含'url',並且不需要使用'breakurl')。 – larsr 2012-02-01 08:53:58

+0

只有breakurl爲我工作,這個答案不。 :( – Ali 2012-06-22 15:52:46

7

我剛剛跑過幾乎同樣的問題,發現它通過把

\PassOptionsToPackage{hyphens}{url} 

\usepackage[...]{hyperref} 
0

在序言解決,只是把\usepackage{breaker}某處後。定義了\burl命令,並且默認情況下,該程序包還將\url命令轉換爲\burl的同義詞。

3

奇怪,我加載url包(不帶選項)和連字符是在斜線/如果需要完成。 總之,簡單的解決方法:

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

手冊的工作,但它分裂了URL回答是或者。

0

這種簡單的解決方案爲我工作:

\ usepackage {hyperref}宏 \ usepackage {} breakurl

現在,這些網址是完美的。

0

我加入這個包:

\usepackage[hyphens]{url} 

,並在中文提供我用:

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

和它的作品了。