В настоящее время я работаю над индивидуализацией стиля Biblatex-DW для нужд моей докторской диссертации. Пока что мне удалось решить некоторые проблемы самостоятельно, но текущая проблема вызывает у меня настоящую головную боль, поскольку я не слишком привык к коду.
Окончательный стиль цитирования для всех типов документов должен быть следующим:
[фамилия автора строчными буквами] ([год]), [номер страницы без префикса].
На данный момент я получил:
[фамилия автора строчными буквами], ([год]) [номер страницы без префикса].
Я заполнил большую часть полей, чтобы убедиться, что в цитате не напечатано ни одного поля, которое там не должно быть.
Вот моя попытка MWE:
\documentclass[11pt, a4paper]{book}
\usepackage{acronym}
\usepackage[ngerman]{babel}
\usepackage[parfill]{parskip}
\usepackage{csquotes}
\begin{filecontents*}{test.bib}
@misc{bar_zitiertest_2004,
title = {Zitiertest Dokument 2 Autoren},
shorttitle = {Krzttl},
author = {Bär, Gold and Rahmen, Bilder},
date = {2004-05-19},
publisher = {{Verlag}},
url = {www.url.aub},
urldate = {2020-01-13},
abstract = {Zusammenfassung},
langid = {deutsch},
note = {Extra}
}
@mvbook{baum_zitiertest_2006,
title = {Zitiertest Buch 3 Autoren},
shorttitle = {Krzttl},
author = {Baum, Tannen and Zange, Kneif and Kopf, Schafs},
date = {2006-05-19},
edition = {7},
volume = {1},
publisher = {{Verlag}},
location = {{Ort}},
url = {www.url.de},
urldate = {2020-01-13},
abstract = {Zusammenfassung},
isbn = {0815},
langid = {deutsch},
note = {Extra},
number = {55},
pagetotal = {999},
series = {Reihe},
volumes = {2}
}
@incollection{eis_zitiertest_2004,
title = {Zitiertest Buchteil 5 Autoren},
shorttitle = {Krzttl},
booktitle = {Warum Schneemänner keine Heißgetränke zu sich nehmen sollten ...},
author = {Eis, Schoko and Tasse, Kaffee and Salat, Kartoffel and Duck, Donald and Mann, Schnee},
date = {2004-05-19},
edition = {1},
volume = {5},
pages = {999},
publisher = {{Verlag}},
location = {{Ort}},
url = {www.url.aub},
urldate = {2020-01-13},
abstract = {Zusammenfassung},
isbn = {0815},
langid = {deutsch},
note = {Extra},
number = {45},
series = {Reihe},
volumes = {9}
}
\end{filecontents*}
\usepackage[
style=footnote-dw,
annotation=true,
edstringincitations=true,
idembib=false,
library=true,
namefont=smallcaps,
shorthandibid=false,
xref=false,
abbreviate=true,
backref=false,
bibwarn=true,
ibidtracker=false,
idemtracker=false,
isbn=false,
maxnames=3,
natbib=true,
sorting=nyt,
sortlocale=auto,
url=false,
backend=biber
]{biblatex}
\addbibresource{test.bib}
\usepackage[utf8]{inputenc}
\usepackage[LGR, T1]{fontenc}
\usepackage{geometry}
\geometry{margin=3cm}
\renewcommand*{\bibmultinamedelim}{\addsemicolon\space}
\renewcommand*{\citefinalnamedelim}{\addsemicolon\space}
\renewcommand*{\citemultinamedelim}{\addsemicolon\space}
%Last names only in citations:
\DeclareNameAlias{sortname}{family-given}
\DeclareNameAlias{default}{labelname}
%Getting rid of fields/lists/names in citations:
\AtEveryCitekey{\clearfield{abstract}}%
\AtEveryCitekey{\clearfield{afterword}}%
\AtEveryCitekey{\clearfield{annotation}}%
\AtEveryCitekey{\clearfield{annotator}}%
\AtEveryCitekey{\clearfield{annote}}%
\AtEveryCitekey{\clearfield{authortype}}%
\AtEveryCitekey{\clearfield{bookauthor}}%
\AtEveryCitekey{\clearfield{bookpagination}}%
\AtEveryCitekey{\clearfield{booksubtitle}}%
\AtEveryCitekey{\clearfield{booktitle}}%
\AtEveryCitekey{\clearfield{chapter}}%
\AtEveryCitekey{\clearfield{commentator}}%
\AtEveryCitekey{\clearfield{crossref}}%
\AtEveryCitekey{\clearfield{day}}%
\AtEveryCitekey{\clearfield{edition}}%
\AtEveryCitekey{\clearfield{eventtitle}}%
\AtEveryCitekey{\clearfield{howpublished}}%
\AtEveryCitekey{\clearfield{issue}}%
\AtEveryCitekey{\clearfield{journal}}%
\AtEveryCitekey{\clearfield{journaltitle}}%
\AtEveryCitekey{\clearfield{key}}%
\AtEveryCitekey{\clearfield{month}}%
\AtEveryCitekey{\clearfield{note}}%
\AtEveryCitekey{\clearfield{number}}%
\AtEveryCitekey{\clearfield{organization}}%
\AtEveryCitekey{\clearfield{pages}}%
\AtEveryCitekey{\clearfield{publisher}}%
\AtEveryCitekey{\clearfield{school}}%
\AtEveryCitekey{\clearfield{series}}%
\AtEveryCitekey{\clearfield{shorttitle}}%
\AtEveryCitekey{\clearfield{title}}%
\AtEveryCitekey{\clearfield{type}}%
\AtEveryCitekey{\clearfield{url}}%
\AtEveryCitekey{\clearfield{urldate}}%
\AtEveryCitekey{\clearfield{urlyear}}%
\AtEveryCitekey{\clearfield{volume}}%
\AtEveryCitekey{\clearfield{volumes}}%
\AtEveryCitekey{\clearlist{address}}%
\AtEveryCitekey{\clearlist{institution}}%
\AtEveryCitekey{\clearlist{location}}%
\AtEveryCitekey{\clearname{editor}}%
\AtEveryCitekey{\clearname{journal}}%
%Getting rid of >in:<:
\DefineBibliographyStrings{ngerman}{in = {}}
%Putting the date into parens for the citation & undoing it for the bibliography again:
\DeclareFieldFormat{date}{\mkbibparens{#1}}
\AtBeginBibliography{\DeclareFieldFormat{date}{#1}}
%Getting rid of the page prefix:
\DeclareFieldFormat{postnote}{#1}
\DeclareFieldFormat{multipostnote}{#1}
\renewcommand*{\bibpagespunct}{\addcolon\addspace}
\renewcommand{\postnotedelim}{%
\iffieldpages{postnote}{\addspace}{\addspace}}
\begin{document}
Citation nr. 1\cite[19]{bar_zitiertest_2004}\newline
Citation nr. 2\cite[13-56]{baum_zitiertest_2006}\newline
Citation nr. 3\cite[2-3]{eis_zitiertest_2004}
\printbibliography
\end{document}
С радостью исправлю ошибки и отвечу на вопросы как можно скорее - Flo
решение1
footnote-dw
— это стиль семейства «verbose», который печатает полную библиографическую запись в сносках-цитатах. То, что вам нужно, — это скорее стиль «автор-год». Кажется очень сложным попытаться сделать из verbose стиля стиль «автор-год», поскольку это равносильно удалению почти всей информации для цитат. Это может быть довольно обременительно.
Было бы лучше просто взять стиль типа authoryear
как ваш стиль цитирования. Как правило, biblatex
позволяет вам выбирать разные bibstyle
и citestyle
значения. К сожалению, стили пакета biblatex-dw
не могут быть легко объединены с произвольными другими стилями не из пакета, поскольку существует сильная зависимость между стилем цитирования и библиографии. Поэтому решение типа bibstyle=footnote-dw, citestyle=authoryear,
не работает.
Если вы хотите придерживаться biblatex-dw
стиля, я думаю, самое простое решение — взять authortitle-dw
за основу и изменить его команды цитирования, чтобы они стали стилем автор-год вместо стиля автор-название. Как оказалось, это на самом деле осуществимо без особого труда.
Нам просто нужно загрузить style=authortitle-dw,
то, что нам нужно labeldateparts=true,
, чтобы это biblatex
предоставило labeldate
информацию. Переопределения cite:title
и cite:title:force
должны быть самоочевидными. Мы также модифицируем cite:edstringincitations
, чтобы использовать правильный разделитель.
\documentclass[11pt, a4paper]{article}
\usepackage[ngerman]{babel}
\usepackage{csquotes}
\usepackage[
backend=biber,
style=authortitle-dw,
sorting=nyt,
labeldateparts=true,
maxnames=3,
%
annotation=true,
edstringincitations=true,
idembib=false,
library=true,
namefont=smallcaps,
shorthandibid=false,
xref=false,
abbreviate=true,
backref=false,
bibwarn=true,
ibidtracker=false,
idemtracker=false,
isbn=false,
natbib=true,
url=false,
]{biblatex}
\DeclareDelimFormat[footcite,smartcite]{nameyeardelim}{\addspace}
\renewbibmacro*{cite:edstringincitations}{%
\ifbool{cbx:edstringincitations}
{\usebibmacro{cite:editorstrg/translatorstrg}}
{}%
\setunit{\printdelim{nameyeardelim}}}
\DeclareFieldFormat{labeldate}{%
\ifbool{cbx:parens}
{#1}
{\mkbibparens{#1}}}
\renewbibmacro*{cite:title}{%
\ifboolexpr{
test {\ifentrytype{review}}
and
not test {\iffieldundef{xref}}
}
{\printtext[review]{\bbx@review{\thefield{xref}}}}
{\printtext[bibhyperref]{\printlabeldateextra}}}
\renewbibmacro*{cite:title:force}{%
\printtext[bibhyperref]{\printlabeldateextra}}
\renewcommand*{\bibmultinamedelim}{\addsemicolon\space}
\renewcommand*{\citemultinamedelim}{\bibmultinamedelim}
\renewcommand*{\citefinalnamedelim}{\citemultinamedelim}
\DeclareNameAlias{sortname}{family-given}
\DeclareNameAlias{default}{labelname}
\renewbibmacro*{in:}{}
\DeclareFieldFormat{postnote}{\mknormrange{#1}}
\DeclareFieldFormat{multipostnote}{\mknormrange{#1}}
\renewcommand{\postnotedelim}{\addcomma\space}
\renewcommand*{\bibpagespunct}{\addcolon\addspace}
\begin{filecontents*}{\jobname.bib}
@misc{bar_zitiertest_2004,
title = {Zitiertest Dokument 2 Autoren},
shorttitle = {Krzttl},
author = {Bär, Gold and Rahmen, Bilder},
date = {2004-05-19},
publisher = {Verlag},
url = {www.url.aub},
urldate = {2020-01-13},
abstract = {Zusammenfassung},
langid = {ngerman},
note = {Extra}
}
@mvbook{baum_zitiertest_2006,
title = {Zitiertest Buch 3 Autoren},
shorttitle = {Krzttl},
author = {Baum, Tannen and Zange, Kneif and Kopf, Schafs},
date = {2006-05-19},
edition = {7},
volume = {1},
publisher = {Verlag},
location = {Ort},
url = {www.url.de},
urldate = {2020-01-13},
abstract = {Zusammenfassung},
isbn = {0815},
langid = {ngerman},
note = {Extra},
number = {55},
pagetotal = {999},
series = {Reihe},
volumes = {2}
}
@incollection{eis_zitiertest_2004,
title = {Zitiertest Buchteil 5 Autoren},
shorttitle = {Krzttl},
booktitle = {Warum Schneemänner keine Heißgetränke zu sich nehmen sollten \dots},
author = {Eis, Schoko and Tasse, Kaffee and Salat, Kartoffel
and Duck, Donald and Mann, Schnee},
date = {2004-05-19},
edition = {1},
volume = {5},
pages = {999},
publisher = {Verlag},
location = {Ort},
url = {www.url.aub},
urldate = {2020-01-13},
abstract = {Zusammenfassung},
isbn = {0815},
langid = {ngerman},
note = {Extra},
number = {45},
series = {Reihe},
volumes = {9}
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\begin{document}
Citation nr. 1\autocite[19]{bar_zitiertest_2004}
Citation nr. 2\autocite[13-56]{baum_zitiertest_2006}
Citation nr. 3\autocite[2-3]{eis_zitiertest_2004}
\printbibliography
\end{document}