# Linebreak before URL with biblatex/alphabetic

Using biblatex with alphabetic style, how could I insert a line break (\\ or \linebreak) before the URL output (with the aim to have less linebreaks within URL)? (I use url and hyperref)

\documentclass{scrartcl}
\usepackage{xcolor}
\usepackage[style=authoryear,backend=biber,]{biblatex}
\DeclareFieldFormat{formaturl}{\newline #1}
\newbibmacro*{url+urldate}{%
\printtext[formaturl]{%
\printfield{url}}%
\iffieldundef{urlyear}
{}
\printtext[urldate]{\printurldate}}}

\begin{document}
\cite{ctan}
\printbibliography
\end{document}


With DeclaredFieldFormat you can format the whole string of url and urldate. In this case I insert a \newline in front of the ouput.

EDIT:

added printtext

• thanks, it adds a line.. but it changes the text style, before it was kind of verbatim and now it's like the rest of the text.. How come? – Johannes L Sep 9 '11 at 12:31
• @JohannesL: Now it works ;-) – Marco Daniel Sep 9 '11 at 12:48
• I also found a version were it works (in my output, the URL wasn't colored anyway) – Johannes L Sep 9 '11 at 12:50
• @JohannesL: I used colorlinks=true to demonstrate a link. The boxes around a link are not printed. – Marco Daniel Sep 9 '11 at 12:51
• If url is not specified for an entry, this adds a new line and a period (the end marker of the url field?). Adding a surrounding \iffieldundef{url}{}{...} fixes this. – Raphael Apr 23 '15 at 16:44

I found the following package useful for line breaking an URL. At the preamble, just put \usepackage{breakurl} somewhere after \usepackage{hyperref}. The \burl command is defined and, by default, the package also turns the \url command into a synonym of \burl.

• This allows breaks within the url, it does not make the url start on a new line as requested. – Andrew Swann Apr 14 '16 at 8:50

I think the cleanest solution is to just redefine the corresponding field format. I would replace the \space after "URL" with a \nobreakspace instead of explicitly adding a line break. This allows TeX to decide if a line break is the best solution. (I recommend setting the bibliography \raggedright in order to give TeX some more wiggle room here.)

\DeclareFieldFormat{url}{\mkbibacro{URL}\addcolon\nobreakspace\url{#1}}


If you really want the explicit \newline, you can of course do that as well. I would still keep the \nobreakspace in order to avoid "URL" being on a line by itself.

\DeclareFieldFormat{url}{\newline\mkbibacro{URL}\addcolon\nobreakspace\url{#1}}


This was posted by OP as an edit to the question, but it's clearly an answer.

\DeclareFieldFormat{url}{\newline\mkbibacro{URL}\addcolon\space\url{#1}}