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}
в вашей преамбуле решит его.
Ответ 6
для меня только это сработало:
\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
Ответ 7
Я добавляю этот пакет:
\usepackage[hyphens]{url}
а в bibtex я использовал:
howpublished = {**\url{**http://www.......**}**}
и он работает.
Ответ 8
В преамбуле просто поставьте \usepackage{breaker}
где-нибудь после \usepackage{hyper ref}
. Команда \burl
определена и по умолчанию пакет также превращает команду \url
в синоним \burl
.
Ответ 9
Это простое решение для меня:
\ usepackage {hyperref}
\ Usepackage {breakurl}
Теперь URL-адреса идеальны.