How to break a long URL
It should be noted up front that the long-URL issues you are encountering can arise regardless of whether the URL occurs inside an enumerate
environment or not.
By default, if a URL string contains a hyphen character, neither \burl
of the breakurl
package nor \url
of the url
package will insert a linebreak after a hyphen character. (This setting is chosen to avoid ambiguities over whether the hyphen character is a part of the URL string or not.) To override the default setting, load the breakurl
package with the hyphenbreaks
option or, equivalently, load the url
package with the hyphens
option set (and use the command \url
instead of \burl
, of course).
However, even with the hyphenbreaks
/hyphens
options set, overfull lines can still occur. An additional measure you may have to take is to issue the command \sloppy
. This directive lets TeX expand the amount of interword whitespace (almost) arbitrarily to support its efforts to avoid overfull lines.
The following, modified form of your MWE shows how this works. The packages breakurl
and url
are loaded with the options hyphenbreaks
and hyphens
, respectively. Even so, the first two items in the enumeration, which use the \burl
and \url
commands, produce overfull lines. In contrast, the third and fourth items, for which the directive \sloppy
is in effect, do not produce overfull lines. (By the way, in this MWE the scope of the \sloppy
directive ends at the \end{enumerate}
statement.)
\documentclass{article}
\usepackage{lipsum} % load paragraphs of filler text
\usepackage[margin=3cm]{geometry}
\usepackage[hyphenbreaks]{breakurl}
\usepackage[hyphens]{url}
\begin{document}
\lipsum[2] % generate some filler text (to show width of text block)
\begin{enumerate}
\item
svn co \burl{https://svn.xxx.ch/reps/yyyyyyyyyy/Publications/ABC-paper-2012/trunk ABC-paper-2012}
\item
svn co \url{https://svn.xxx.ch/reps/yyyyyyyyyy/Publications/ABC-paper-2012/trunk ABC-paper-2012}
\item
\sloppy
svn co \burl{https://svn.xxx.ch/reps/yyyyyyyyyy/Publications/ABC-paper-2012/trunk ABC-paper-2012}
\item
svn co \url{https://svn.xxx.ch/reps/yyyyyyyyyy/Publications/ABC-paper-2012/trunk ABC-paper-2012}
\end{enumerate}
\end{document}
None of the answers helped me out. My long url was placed in a footnote. After searching around I found a working solution here.
In my preamble:
\usepackage{hyperref}
\def\UrlBreaks{\do\/\do-}
The last line instructs the url-package which is loaded with the hyperref-package to additionally break at the characters /
and -
. The option breaklinks=true
in hyperref can be invoked too but for me it had no effect.
The problem with breakurl package is that it seems incompatible with PDFLaTeX, and XeLaTeX. My colleague Dag Langmyhr pointed out that the url package is compatible with hyperref if it is loaded before the latter, and consequently
\usepackage[T1,hyphens]{url}
\usepackage[colorlinks,urlcolor=blue]{hyperref}
does the job more elegantly (breaklinks=true
did also not work for me). This approach allows the normal \url
command to be used when inserting the URLs.