
Мне нужно отформатировать список литературы для моей бакалаврской диссертации в соответствии с рекомендациями университета. В моем документе я использую biblatex и biber. В настоящее время у меня это: (MWE)
\documentclass{article}
%
% biblatex, biber
%
\usepackage[backend=biber, style=authoryear, doi=false, natbib=true, maxcitenames=2, maxbibnames=15, firstinits=true]{biblatex}
\addbibresource{Literatur.bib}
\setlength\bibitemsep{1.8\itemsep}
\renewcommand{\cite}{\parencite}
\DeclareNameAlias{author}{last-first}
\DefineBibliographyStrings{ngerman}{andothers = {et al\adddot}}
\DeclareDelimFormat[parencite]{nameyeardelim}{\addspace}
\DeclareFieldFormat{journaltitle}{#1}
\DeclareFieldFormat{booktitle}{#1}
\DeclareFieldFormat*{title}{#1}
\DeclareDelimFormat{yeartitledelim}{\addcomma\addspace}
\setlength{\bibhang}{0pt}
\usepackage{xpatch}
\xpatchbibmacro{date+extradate}{%
\printtext[parens]%
}{%
\setunit*{\addcomma\space}%
\printtext%
}{}{}
\DefineBibliographyExtras{ngerman}{
\renewcommand*{\finalnamedelim}{\addcomma\addspace}
}
\renewbibmacro*{publisher+location+date}{
\printlist{publisher}
\setunit*{\addcomma\space}
\printlist{location}
\setunit*{\addcomma\space}
\usebibmacro{date}
\newunit
}
\begin{document}
\noindent test \cite{RolfFischer}
\printbibliography
\end{document}
Со следующим нагрудным номером:
@book{RolfFischer,
author ={Fischer, Rolf},
title ={Elektrische Maschinen},
publisher ={Carl Hanser Verlag},
address ={{M{\"u}nchen}},
year ={2011},
isbn ={978-3-446-42554-5},
}
Но мне нужна запятая после года: Fischer, R., 2011, Elektrische Maschinen. Карл Хансер и т.д.
Как мне этого добиться?
решение1
Соответствующим разделителем здесь является nametitledelim
(в bib
контексте). (Это сделано для обеспечения согласованности со всеми другими стилями библиографии, где год не перемещается на позицию после автора, и, таким образом, этот разделитель будет появляться между именем и заголовком, а не как в этом случае между годом после имени и заголовком. В стандартных стилях этого yeartitledelim
не существует.)
\documentclass{article}
\usepackage[
backend=biber,
style=authoryear,
maxcitenames=2, maxbibnames=15, firstinits=true,
doi=false,
natbib=true,
]{biblatex}
\setlength\bibitemsep{1.8\itemsep}
\setlength{\bibhang}{0pt}
\DefineBibliographyStrings{ngerman}{andothers = {et al\adddot}}
\DeclareNameAlias{sortname}{family-given}
\DeclareDelimFormat{finalnamedelim}{\addcomma\space}
\DeclareDelimFormat[bib]{nametitledelim}{\addcomma\addspace}
\DeclareDelimFormat[parencite]{nameyeardelim}{\addspace}
\DeclareFieldFormat{journaltitle}{#1}
\DeclareFieldFormat{booktitle}{#1}
\DeclareFieldFormat*{title}{#1}
\usepackage{xpatch}
\xpatchbibmacro{date+extradate}{%
\printtext[parens]%
}{%
\setunit*{\addcomma\space}%
\printtext%
}{}{}
\renewbibmacro*{publisher+location+date}{%
\printlist{publisher}%
\setunit*{\addcomma\space}%
\printlist{location}%
\setunit*{\addcomma\space}%
\usebibmacro{date}%
\newunit
}
\begin{filecontents}[overwrite]{\jobname.bib}
@book{RolfFischer,
author = {Fischer, Rolf},
title = {Elektrische Maschinen},
publisher = {Carl Hanser Verlag},
address = {München},
year = {2011},
isbn = {978-3-446-42554-5},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
test \autocite{RolfFischer}
\printbibliography
\end{document}