
Ich verwende biblatex+biber und möchte erreichen, dass nach dem Ausdrucken der Autoren eine neue Zeile beginnt, dann der Titel und wieder eine neue Zeile, in der der Rest wie gewohnt ausgegeben wird. DiesLösungkommt meinem Problem nahe, allerdings verwende ich den Standardstil und der Titel steht trotzdem nicht in einer separaten Zeile.
Hier ist ein Beispiel
Author1, Author2, and Author3. Title. In: Proceedings. Ed. John Doe. World. 2017
und wie es aussehen soll
Author1, Author2, and Author3.
Title.
In: Proceedings. Ed. John Doe. World. 2017
Unten sehen Sie ein minimal funktionierendes Beispiel:
\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}
Antwort1
Der erste Schritt ist
\DeclareDelimFormat[bib]{nametitledelim}{\newline\bibsentence}
um eine neue Zeile nach den Namen zu erhalten.
Dann braucht man etwas, um nach dem Titel in eine neue Zeile zu springen. Leider gibt es hier kein Standard-Trennzeichen, das man neu definieren könnte. Der einfachste Weg, der für alle Eintragstypen funktionierte, war der folgende
\usepackage{xpatch}
\makeatletter
\def\do#1{
\ifcsdef{blx@bbx@#1}
{\xpatchbibdriver{#1}
{\printlist{language}%
\newunit\newblock}
{\printlist{language}%
\printunit{\newline\bibsentence}}
{}{}}
{}}
\abx@doentrytypes
\makeatother
Dies fügt eine neue Zeile nach der Sprache hinzu, die in allen Standardtreibern direkt nach dem Titel steht. Wir verwenden das xpatch
Paket, um die Bibliographietreiber zu ändern und die Änderung mit einer Schleife auf alle Treiber anzuwenden ( \abx@doentrytypes
ist ein internes Makro, das alle durchläuft).
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}
Eine alternative Lösung für eine lose Bibliographie wie diese block=par
wird diskutiert inBibliographiestil für BibLaTeX ähnlich BibTeX+Beamer.
Antwort2
Die folgende Lösung führt nur dann zum gewünschten Ergebnis, wenn alle Einträge das Merkmal „In:“ aufweisen, zB bei Artikeln ohne Zeitschrift wird keine neue Zeile eingefügt.
\documentclass{article}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@article{Neu93,
author = {John von Neumann},
title = {First Draft of a Report on the EDVAC},
journaltitle = {IEEE Ann. Hist. Comput. },
date = {1993},
volume = {15},
number = {4},
pages = {27--75},
}
\end{filecontents*}
\usepackage{biblatex}
\renewcommand*{\labelnamepunct}{\newunitpunct\par}
\renewbibmacro{in:}{\newline In:}
\addbibresource{\jobname.bib}
\begin{document}
\nocite{*}
\printbibliography
\end{document}