перевод строки в URL с пакетом Bibtex и гиперреф - PullRequest
17 голосов
/ 13 апреля 2010

Почему этот элемент не отображается должным образом в моей библиографии?

@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}  
}  

альтернативный текст http://i42.tinypic.com/wivrxl.jpg


EDIT:

Я использую

\usepackage{hyperref}

не

\usepackage{url}

. Выдает ошибку при использовании пакета url вместе с ним. Так могут ли они не работать вместе?

Я бы хотел использовать гиперссылки внутри pdf-файла, поэтому я хочу использовать пакет hyperref вместо пакета url. Я немного погуглил и попробую

\usepackage[hyperindex,breaklinks]{hyperref}

но по-прежнему нет разрыва строки, как и раньше. Как я могу это сделать?


EDIT:

При одновременном использовании url и hyperref, если это просто

\usepackage{hyperref}  
\usepackage{url}

Компиляция по латексу в порядке, но ссылка по-прежнему гиперссылка и без перевода строки. Если я не использую гиперреф-пакет, ссылка имеет разрыв строки, но я теряю гиперссылки. Поскольку \ url можно использовать как в пакетах hyperref, так и в пакетах url, как я могу указать, какой пакет \ url используется?

Если это

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

Компиляция по команде latex сообщит о конфликте с URL:

! LaTex Error: Option clash for package url.

Так мне интересно, как мне поступить?

Ответы [ 9 ]

15 голосов
/ 29 июля 2011

Вы должны использовать их в следующем порядке:

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

Вы получаете эту ошибку, когда используете их наоборот.

! LaTex Error: Option clash for package url.

, поскольку пакет hyperref загружает пакет url куда-то изнутри без этой опции hypens, а затем вы хотите загрузить его с этой опцией, чтобы он конфликтовал.

Изменение порядка выполнения делает то, что вы хотите, и не выдает эту ошибку (поскольку пакет уже загружен, hyperref не будет загружать его снова с другими параметрами)

edit: это было с pdftex, я не тестировал с другими инструментами.

10 голосов
/ 13 апреля 2012

Я только что натолкнулся почти на ту же проблему и обнаружил, что она решена путем ввода

\PassOptionsToPackage{hyphens}{url}

до

\usepackage[...]{hyperref}
10 голосов
/ 13 апреля 2010

Если вы имеете в виду слишком широкий интервал, то это потому, что URL, кажется, не допускает разрывы строк. Почему это происходит - другой вопрос, и ответ зависит от вашей преамбулы (пакетов, которые вы используете и т. Д.). В принципе, при правильном использовании пакет url должен допускать разрывы строк.

EDIT Эта проблема (и ее решение) описана здесь (отправка вас в кеш Google, поскольку сайт в данный момент не работает). Итог: либо используйте пакет breakurl , либо PDFLaTeX, либо оба.

6 голосов
/ 01 февраля 2013

Странно, я загружаю пакет url (без опции) и переносы делаются на слешах /, если это необходимо. В любом случае, простой обходной путь:

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

Ручная работа, но она разделяет URL да или да.

3 голосов
/ 13 апреля 2010

Обычно URL-адреса пишутся через дефис, но в вашей библиографии их нет. Когда URL-адреса не помещаются на одной строке, они перемещаются на следующую строку, а текст перед ними растягивается, чтобы заполнить предыдущие строки. Поскольку разрывать строку можно только в одном месте, маловероятно, что предыдущий текст уместится в целое число строк, и вы получите весь дополнительный пробел.

РЕДАКТИРОВАТЬ : Когда вы изменили запись нагрудника, вы изменили ее таким образом, что текст хорошо вписался. Это просто совпадение, вы не решили свою проблему.

Я подозреваю, что положить

\usepackage{url}

в твоей преамбуле это решит.

1 голос
/ 18 февраля 2015

Я добавляю этот пакет:

\usepackage[hyphens]{url}

и в bibtex я использовал:

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

и это получается.

1 голос
/ 28 декабря 2012

у меня только это сработало:

\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

0 голосов
/ 08 декабря 2014

Это простое решение сработало для меня:

\ usepackage {hyperref} \ Usepackage {breakurl}

URL теперь идеальны.

0 голосов
/ 15 июня 2012

В преамбуле просто поставьте \usepackage{breaker} где-то после \usepackage{hyper ref}. Команда \burl определена, и по умолчанию пакет также превращает команду \url в синоним \burl.

...