Linebreak в URL с Bibtex и пакетом hyperref

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

@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


РЕДАКТИРОВАТЬ:

я использую

\usepackage{hyperref}

не

\usepackage{url}

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

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

\usepackage[hyperindex,breaklinks]{hyperref}

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


РЕДАКТИРОВАТЬ:

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

\usepackage{hyperref}  
\usepackage{url}

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

Если это

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

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

! LaTex Error: Option clash for package url.

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

Ответы

Ответ 1

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

ИЗМЕНИТЬ Эта проблема (и ее решение) описывается здесь (отправляет вас в кеш Google, так как сайт сейчас отключен). В нижней части: либо используйте breakurl, либо PDFLaTeX, либо и то, и другое.

Ответ 2

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

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

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

! LaTex Error: Option clash for package url.

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

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

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

Ответ 3

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

\PassOptionsToPackage{hyphens}{url}

перед

\usepackage[...]{hyperref}

Ответ 4

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

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

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

Ответ 5

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

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

Я подозреваю, что ставя

\usepackage{url}

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

Ответ 7

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

\usepackage[hyphens]{url}

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

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

и он работает.

Ответ 8

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

Ответ 9

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

\ usepackage {hyperref} \ Usepackage {breakurl}

Теперь URL-адреса идеальны.