Проблема с разделителями в Biblatex-DW: Удалить запятую из цитаты

Проблема с разделителями в Biblatex-DW: Удалить запятую из цитаты

В настоящее время я работаю над индивидуализацией стиля 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}

Бар; Рахмен (2004), 19.//Баум; Занге; Копф (2006), 13–56.//Eis ua (2004), 2–3.

Связанный контент