Для моей финальной диссертации мне нужно использовать слегка измененную версию стиля APA. Прежде чем я углублюсь в подробности, я хотел бы показать вам MWE:
\documentclass[12pt]{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{csquotes}
\usepackage[%
backend=biber,
style=authoryear-comp,
bibstyle=apa]{biblatex}
\DeclareLanguageMapping{ngerman}{ngerman-apa}
\DefineBibliographyStrings{ngerman}{andothers={et\ \addabbrvspace al\adddot}}
\usepackage{filecontents}
\begin{filecontents}{literatur.bib}
@book{XYZ2010,
author = {Andrew Alphason and Bertram Betason and Christian Gammason},
year = {2010},
title = {{Ein Testbuch}},
publisher = {Springer},
address = {Stuttgart}
}
@book{XYZ2011,
editor = {Andrew Alphason and Bertram Betason and Christian Gammason},
year = {2011},
title = {{Ein Sammelwerk}},
publisher = {Springer},
address = {Stuttgart},
}
@incollection{XYZ2012,
title = {{Meine kleine Testdatei}},
author = {Dirk Deltason},
editor = {Andrew Alphason and Bertram Betason and Christian Gammason},
year = {2012},
booktitle = {{Ein Sammelwerk}},
publisher = {Springer},
address = {Stuttgart},
}
@incollection{XYZ2013,
title = {{Meine kleine Testdatei}},
author = {Dirk Deltason},
editor = {Andrew Alphason and Bertram Betason},
year = {2013},
booktitle = {{Ein Sammelwerk}},
publisher = {Springer},
address = {Stuttgart},
}
@book{XYZ2014a,
author = {Phil Phison and Bertram Betason},
year = {2014},
title = {{Ein Testbuch}},
publisher = {Springer},
address = {Stuttgart},
}
@book{XYZ2014b,
author = {{Fictional Institution}},
year = {2014},
title = {{Ein Testbuch}},
publisher = {Springer},
address = {Stuttgart},
}
@incollection{XYZ2014c,
title = {{Meine kleine Testdatei}},
author = {Dirk Deltason and Ezra Epsilonson},
editor = {Andrew Alphason and Bertram Betason},
year = {2014},
booktitle = {{Ein Sammelwerk}},
publisher = {Springer},
address = {Stuttgart},
}
\end{filecontents}
\bibliography{literatur}
\begin{document}
\parencite{XYZ2010,XYZ2011,XYZ2012,XYZ2013,XYZ2014a,XYZ2014b,XYZ2014c}
\printbibliography
\end{document}
Мне нужно изменить следующее:
- В случае, если в начальной позиции библиографической записи указано 2 И более 2 авторов/редакторов, перед знаком «&» должна стоять запятая.
- В случае, если редакторы появляются после, как в записях № 3 и 4 в MWE, должна быть только запятая перед "&" в случае, если редакторов больше 2. Здесь нет запятой для 2 редакторов. Не спрашивайте меня, почему, я просто должен сделать это так!
- APA обычно печатает точку между авторами/редакторами/учреждением и годом (в скобках). Мне не разрешено вставлять там точку. Как мне ее удалить? В этом примере точка в записи № 2 после "(Hrsg.)" не будет разрешена.
Я вставил изображение вывода. Я использовал красный цвет, чтобы обозначить, что неправильно, и зеленый, чтобы обозначить, что правильно.
Информация об редактировании: Я добавил еще несколько примеров, чтобы продемонстрировать проблемы, о которых я говорю.
решение1
Вот, пожалуйста;
\documentclass[12pt]{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{csquotes}
\usepackage[%
backend=biber,
style=authoryear-comp,
bibstyle=apa]{biblatex}
\DeclareLanguageMapping{ngerman}{ngerman-apa}
\DefineBibliographyStrings{ngerman}{andothers={et\ \addabbrvspace al\adddot}}
\usepackage{filecontents}
\begin{filecontents}{literatur.bib}
@book{XYZ2010,
author = {Andrew Alphason and Bertram Betason and Christian Gammason},
year = {2010},
title = {{Ein Testbuch}},
publisher = {Springer},
address = {Stuttgart}
}
@book{XYZ2011,
editor = {Andrew Alphason and Bertram Betason and Christian Gammason},
year = {2011},
title = {{Ein Sammelwerk}},
publisher = {Springer},
address = {Stuttgart},
}
@incollection{XYZ2012,
title = {{Meine kleine Testdatei}},
author = {Dirk Deltason},
editor = {Andrew Alphason and Bertram Betason and Christian Gammason},
year = {2012},
booktitle = {{Ein Sammelwerk}},
publisher = {Springer},
address = {Stuttgart},
}
@incollection{XYZ2013,
title = {{Meine kleine Testdatei}},
author = {Dirk Deltason},
editor = {Andrew Alphason and Bertram Betason},
year = {2013},
booktitle = {{Ein Sammelwerk}},
publisher = {Springer},
address = {Stuttgart},
}
\end{filecontents}
\addbibresource{literatur.bib}
\usepackage{xpatch}
\DefineBibliographyExtras{ngerman}{\def\finalandcomma{\addcomma}}
\xpatchbibmacro{editorinauthpos}{%
\clearname{editor}%
\setunit{\adddot\addspace}%
}{%
\clearname{editor}%
\setunit{\addspace}%
}{}{}
\begin{document}
\parencite{XYZ2010,XYZ2011,XYZ2012,XYZ2013}
\printbibliography
\end{document}