[Tex/LaTex] biblatex add line breaks after author and title

biblatex

I'm using biblatex+biber and want to achieve that after the authors are printed a new line should begin, then the title should be printed and again a new line should start, where the rest is printed as usual. This solution comes close to my problem, however I use the default style and the title is still not on a separate line.

Here is an example

Author1, Author2, and Author3. Title. In: Proceedings. Ed. John Doe. World. 2017

and how it should look like

Author1, Author2, and Author3.
Title.
In: Proceedings. Ed. John Doe. World. 2017

Below is a minimal working example:

\documentclass{scrartcl}

\usepackage{biblatex}
\usepackage{filecontents}

\begin{filecontents*}{\jobname.bib}
@inproceedings{inProc,
  author    = {Author11 and Author12 and Author13},
  editor    = {Editor1},
  title     = {Title1},
  booktitle = {Booktitle1},
  year      = {2017},
  pages     = {50--67},
  publisher = {Publisher1}
}
@article{article,
  author  = {Author21 and Author22},
  title   = {Title2},
  journal = {Journal2},
  year    = {2007},
  volume  = {29},
  number  = {5},
  pages   = {29:1--29:27}
}
@book{book,
  author    = {Author31},
  title     = {Title3},
  year      = {1970},
  publisher = {Publisher3}
}
@incollection{inCollection,
   author    = {Author4},
   title     = {Title4},
   booktitle = {Booktitle4},
   pages     = {843--993},
   editor    = {Editor4},
   chapter   = {15},
   volume    = {B},
   series    = {Series4},
   publisher = {Publisher4},
   year      = {1990}
}
@techreport{techreport,
  author      = {Author5},
  institution = {Institution5},
  number      = {Number5},
  pages       = {Pages5},
  title       = {Title5},
  year        = {5}
}
@phdthesis{phdthesis,
  author    = {Author6},
  title     = {Title6},
  school    = {School6},
  month     = {Month6},
  publisher = {Publisher6},
  address   = {Address6},
  year      = {6}
}
\end{filecontents*}

\addbibresource{\jobname.bib}

\begin{document}
\nocite{*}
\printbibliography
\end{document}

Best Answer

The first step is

\DeclareDelimFormat[bib]{nametitledelim}{\newline\bibsentence}

to get a new line after the names.

Then you need something to jump to a new line after the title. Unfortunately, there is no standard delimiter to redefine here. The easiest way that worked for all entry types was the following

\usepackage{xpatch}
\makeatletter
\def\do#1{
  \ifcsdef{blx@bbx@#1}
    {\xpatchbibdriver{#1}
       {\printlist{language}%
        \newunit\newblock}
       {\printlist{language}%
        \printunit{\newline\bibsentence}}
       {}{}}
    {}} 
\abx@doentrytypes
\makeatother

This adds a newline after the language, which in all standard drivers comes right after the title. We use the xpatch package to change the bibliography drivers and apply the change to all drivers with a loop (\abx@doentrytypes is an internal macro that loops over all).

MWE

\documentclass{scrartcl}

\usepackage{biblatex}
\usepackage{filecontents}

\DeclareDelimFormat[bib]{nametitledelim}{\newline\bibsentence}

\usepackage{xpatch}
\makeatletter
\def\do#1{
  \ifcsdef{blx@bbx@#1}
    {\xpatchbibdriver{#1}
       {\printlist{language}%
        \newunit\newblock}
       {\printlist{language}%
        \printunit{\newline\bibsentence}}
       {}{}}
    {}} 
\abx@doentrytypes
\makeatother

\begin{filecontents*}{\jobname.bib}
@inproceedings{inProc,
  author    = {Author11 and Author12 and Author13},
  editor    = {Editor1},
  title     = {Title1},
  booktitle = {Booktitle1},
  year      = {2017},
  pages     = {50--67},
  publisher = {Publisher1}
}
@article{article,
  author  = {Author21 and Author22},
  title   = {Title2},
  journal = {Journal2},
  year    = {2007},
  volume  = {29},
  number  = {5},
  pages   = {29:1--29:27}
}
@book{book,
  author    = {Author31},
  title     = {Title3},
  year      = {1970},
  publisher = {Publisher3}
}
@incollection{inCollection,
   author    = {Author4},
   title     = {Title4},
   booktitle = {Booktitle4},
   pages     = {843--993},
   editor    = {Editor4},
   chapter   = {15},
   volume    = {B},
   series    = {Series4},
   publisher = {Publisher4},
   year      = {1990}
}
@techreport{techreport,
  author      = {Author5},
  institution = {Institution5},
  number      = {Number5},
  pages       = {Pages5},
  title       = {Title5},
  year        = {5}
}
@phdthesis{phdthesis,
  author    = {Author6},
  title     = {Title6},
  school    = {School6},
  month     = {6},
  publisher = {Publisher6},
  address   = {Address6},
  year      = {6}
}
\end{filecontents*}
\addbibresource{\jobname.bib}

\begin{document}
\nocite{*}
\printbibliography
\end{document}

example output


An alternative solution to a loose bibliography like this with block=par is discussed in Bibliography style for BibLaTeX similar to BibTeX+Beamer.