Update
I rewrote the post providing a MWE according to the suggestions by the comments below.
Problem
When generating the list of references at the end of my paper, the PDF output has two issues which I can't solve.
1) Links overflow page border but should get a page break at the dash.
2) Bibliography items are split across pages but should stay as one block.
My Document
I'm using RMarkdown with Pandoc to generate a PDF based on http://rmarkdown.rstudio.com/authoring_pandoc_markdown.html#citations
According to the documentation, the list of references is placed at the end of the document. So, I don't have anything like \printbibliography or so.
Using 'knit pdf' in RStudio seems to execute:
/Applications/RStudio.app/Contents/MacOS/pandoc/pandoc +RTS -K512m -RTS MWE.utf8.md
--to latex
--from markdown+autolink_bare_uris+ascii_identifiers+tex_math_single_backslash
--output MWE.tex
--template /usr/local/lib/R/3.3/site-library/rmarkdown/rmd/latex/default-1.15.2.tex
--highlight-style tango
--latex-engine /Library/TeX/texbin/xelatex
--variable graphics=yes
--bibliography library.bib
--filter /Applications/RStudio.app/Contents/MacOS/pandoc/pandoc-citeproc
MWE.Rmd
---
output:
pdf_document:
latex_engine: xelatex
keep_tex: true
bibliography: library.bib
fontsize: 12pt
geometry:
margin = 1.2in,
paper = a4paper,
inner = 1.5cm,
bindingoffset = 2cm,
outer = 2cm,
top = 2.5cm,
bottom = 2.5cm
header-includes:
- \usepackage{setspace}
- \usepackage{lipsum}
- \onehalfspacing
---
# Content
@Boner2015 states that...
I need another line...
And another...
\lipsum[1-3]
# References
\setlength{\parindent}{-0.2in}
\setlength{\leftskip}{0.2in}
\setlength{\parskip}{8pt}
\noindent
library.bib
@misc{Boner2015,
author = {Bon{\'{e}}r, Jonas},
title = {{Interview with Tony Rae Moore: Typesafe AMA Podcast Ep. 03 feat. How Akka Actors Help Build Microservices with Jonas Bon{\'{e}}r}},
url = {https://www.lightbend.com/blog/typesafe-ama-podcast-ep-03-feat-akka-actors-microservices-jonas-boner},
urldate = {2016-11-22},
year = {2015}
}
Generated MWE.tex
\documentclass[12pt,]{article}
\usepackage{lmodern}
\usepackage{amssymb,amsmath}
\usepackage{ifxetex,ifluatex}
\usepackage{fixltx2e} % provides \textsubscript
\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\else % if luatex or xelatex
\ifxetex
\usepackage{mathspec}
\else
\usepackage{fontspec}
\fi
\defaultfontfeatures{Ligatures=TeX,Scale=MatchLowercase}
\newcommand{\euro}{â¬}
\fi
% use upquote if available, for straight quotes in verbatim environments
\IfFileExists{upquote.sty}{\usepackage{upquote}}{}
% use microtype if available
\IfFileExists{microtype.sty}{%
\usepackage{microtype}
\UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts
}{}
\usepackage[margin = 1.2in, paper = a4paper, inner = 1.5cm, bindingoffset = 2cm,
outer = 2cm, top = 2.5cm, bottom = 2.5cm]{geometry}
\usepackage{hyperref}
\PassOptionsToPackage{usenames,dvipsnames}{color} % color is loaded by hyperref
\hypersetup{unicode=true,
pdfborder={0 0 0},
breaklinks=true}
\urlstyle{same} % don't use monospace font for urls
\usepackage{graphicx,grffile}
\makeatletter
\def\maxwidth{\ifdim\Gin@nat@width>\linewidth\linewidth\else\Gin@nat@width\fi}
\def\maxheight{\ifdim\Gin@nat@height>\textheight\textheight\else\Gin@nat@height\fi}
\makeatother
% Scale images if necessary, so that they will not overflow the page
% margins by default, and it is still possible to overwrite the defaults
% using explicit options in \includegraphics[width, height, ...]{}
\setkeys{Gin}{width=\maxwidth,height=\maxheight,keepaspectratio}
\setlength{\parindent}{0pt}
\setlength{\parskip}{6pt plus 2pt minus 1pt}
\setlength{\emergencystretch}{3em} % prevent overfull lines
\providecommand{\tightlist}{%
\setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
\setcounter{secnumdepth}{0}
%%% Use protect on footnotes to avoid problems with footnotes in titles
\let\rmarkdownfootnote\footnote%
\def\footnote{\protect\rmarkdownfootnote}
%%% Change title format to be more compact
\usepackage{titling}
% Create subtitle command for use in maketitle
\newcommand{\subtitle}[1]{
\posttitle{
\begin{center}\large#1\end{center}
}
}
\setlength{\droptitle}{-2em}
\title{}
\pretitle{\vspace{\droptitle}}
\posttitle{}
\author{}
\preauthor{}\postauthor{}
\date{}
\predate{}\postdate{}
\usepackage{setspace}
\usepackage{lipsum}
\onehalfspacing
% Redefines (sub)paragraphs to behave more like sections
\ifx\paragraph\undefined\else
\let\oldparagraph\paragraph
\renewcommand{\paragraph}[1]{\oldparagraph{#1}\mbox{}}
\fi
\ifx\subparagraph\undefined\else
\let\oldsubparagraph\subparagraph
\renewcommand{\subparagraph}[1]{\oldsubparagraph{#1}\mbox{}}
\fi
\begin{document}
\section{Content}\label{content}
Bonér (2015) states that\ldots{}
I need another line\ldots{}
And another\ldots{}
\lipsum[1-3]
\section{References}\label{references}
\setlength{\parindent}{-0.2in} \setlength{\leftskip}{0.2in}
\setlength{\parskip}{8pt} \noindent
\hypertarget{refs}{}
\hypertarget{ref-Boner2015}{}
Bonér, Jonas. 2015. ``Interview with Tony Rae Moore: Typesafe AMA
Podcast Ep. 03 Feat. How Akka Actors Help Build Microservices with Jonas
Bonér.''
\url{https://www.lightbend.com/blog/typesafe-ama-podcast-ep-03-feat-akka-actors-microservices-jonas-boner}.
\end{document}

biblatexas your tag suggests? In your code example I find a.cslmentioned which makes me think you are not actually usingbiblatexat all, but rather some internal Pandoc citation converter. – moewe Nov 25 '16 at 15:03urlorhyperrefshould help with the linebreak if the URL is marked as such in the generated.texfile. But I think.cslissues need to be asked in the Pandoc group because the issue is not the TeX code but how the code is generated in the first place. (And, really, this site would need the generated.texcode to do anything helpful at all.) – jon Nov 25 '16 at 16:32hyperefload theurlpackage with the optionhyphens:\PassOptionsToPackage{hyphens}{url}(put this before loadinghyperref). – jon Nov 25 '16 at 17:18\PassOptionsToPackage{hyphens}{url}in theheader-includes:, the generated .tex already loads the 'hyperref' package before that. How can I specify the order in the YAML? By now, I feel that RMarkdown makes things more complicated than it seemed at the beginning... – Toaditoad Nov 25 '16 at 19:58hyperref! This is a package that should often be loaded quite late in the preamble (often last of all). There is a question or two on this site about package loading order. If it is not possible to change the package loading order, perhaps you should point the RMarkdown devs to it. (In my opinion, loadinghyperreflate should be the default.) – jon Nov 25 '16 at 20:42---in my MWE.Rmd code block. I can place packages inheader-includes:to be loaded in the preamble. When generating the document, it creates an intermediate .tex that is generated based on some tex template what puts my additions after some standard loadings. I don't see any way to specify the order of loading packages in the YAML. So, workaround for now to add\PassOptionsToPackage{hyphens}{url}in front of\usepackage{hyperref}in the default template what lets the urls break in an acceptable way. – Toaditoad Nov 28 '16 at 08:18\widowpenalties 1 10000\raggedbottom? – Toaditoad Nov 28 '16 at 09:33