在 biblatex 中更改作者和位置分隔符

在 biblatex 中更改作者和位置分隔符

我正在尝试将以下分隔符从句点更改为逗号:

我想要更改的分隔符

Tex 文件:

\documentclass[paper=A4,12pt]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{setspace}
\usepackage{lmodern}
\usepackage[left=25mm, right=50mm, top=25mm, bottom=20mm]{geometry}
\setlength{\parindent}{0pt}
\onehalfspacing

\usepackage[
    backend=biber,
    style=ext-verbose-inote,
    autocite=footnote,
    sortlocale=de_DE,
    innamebeforetitle=true,
    natbib=true,
    url=false,
    doi=true,
    eprint=false
]{biblatex}
\addbibresource{literatur.bib}


\DeclareFieldFormat[incollection]{title}{#1}
\DeclareFieldFormat[incollection]{booktitle}{#1}

\renewcommand{\multinamedelim}[0]{ / }
\renewcommand{\finalnamedelim}[0]{ / }

\DeclareNameAlias{sortname}{last-first}
\DeclareNameAlias{default}{last-first}


%\usepackage{xpatch}
%\def\dopatchbibdrivereditorcomma#1{%
%  \xpatchbibdriver{#1}
%    {\usebibmacro{maintitle+booktitle}%
%     \newunit\newblock}
%    {\usebibmacro{maintitle+booktitle}%
%     \setunit{\addcomma\space}\newblock}
%    {}
%    {\typeout{failed to patch driver for type #1}}}
%\forcsvlist{\dopatchbibdrivereditorcomma}{inbook,incollection,inproceedings}



\begin{document}

\begin{titlepage}
\begin{spacing}{1}
   Some Text
  \end{spacing}
\end{titlepage}

\newpage
\tableofcontents
\addtocontents{toc}{\protect\thispagestyle{empty}}
\newpage
\setcounter{page}{1}
\section{Erster Abschnitt}
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua\Footcite[Vgl.][]{dbwnf}. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua\Footcite[Vgl.][]{dbwnf}. .. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
\printbibliography[keyword=pl, title={Primärliteratur}]
\end{document}

围兜文件:

@book{test,
    Author = {Test},
    Booktitle = {test},
    Date-Added = {2019-08-04 15:48:27 +0200},
    Date-Modified = {2019-08-04 15:48:37 +0200},
    Publisher = {test},
    Title = {test},
    Year = {2019}}

@incollection{dbwnf,
    Address = {M{\"u}nchen},
    Author = {Dietrich Bonhoeffer},
    Booktitle = {Dietrich Bonnhoeffer Werke},
    Date-Added = {2019-08-04 14:01:21 +0200},
    Date-Modified = {2019-08-04 14:54:00 +0200},
    Editor = {Kuske, Martin and T{\"o}dt, Ilse},
    Keywords = {pl},
    Title = {Nachfolge},
    Year = {1989}}

我已检查过biblatex-ext文档但无法识别相关的分隔符以及如何更改它们。

答案1

作者(或编辑)姓名和标题之间的分隔符称为nametitledelim。可以使用以下方式更改

\DeclareDelimFormat[bib]{nametitledelim}{\addcomma\space}

位置前的分隔符没有特殊名称。biblatex只是打印通常的\newunitpunct。我们可以在此处修改ext-standardpubinstorg+location+date宏,以在location

\renewbibmacro*{pubinstorg+location+date}[1]{%
  \setunit{\addcomma\space}%
  \printlist{location}%
  \iflistundef{#1}
    {\setunit*{\locdatedelim}}
    {\setunit*{\locpubdelim}}%
  \printlist{#1}%
  \setunit*{\pubdatedelim}%
  \usebibmacro{date}%
  \newunit}

然而,在我看来,除了“in:”之前,几乎所有地方都希望使用逗号,因此也许以下想法(其中\newunitpunct设置为逗号并且我们只在“in:”之前添加一个句号)更适合您。

\documentclass[paper=A4,12pt]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{lmodern}

\usepackage[
  backend=biber,
  style=ext-verbose-inote,
  autocite=footnote,
  innamebeforetitle=true,
  natbib=true,
  url=false,
  doi=true,
  eprint=false
]{biblatex}

\renewcommand*{\newunitpunct}{\addcomma\space}

\renewbibmacro*{in:}{%
  \setunit{\addperiod\space}%
  \printtext{%
    \bibstring{in}\intitlepunct}}

\DeclareNameAlias{default}{family-given}
\DeclareNameAlias{sortname}{default}

\DeclareDelimFormat{multinamedelim}{\addspace\slash\space}
\DeclareDelimAlias{finalnamedelim}{multinamedelim}


\DeclareFieldFormat[incollection]{title}{#1}
\DeclareFieldFormat[incollection]{booktitle}{#1}


\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{test,
  Author    = {Test},
  Booktitle = {test},
  Publisher = {test},
  Title     = {test},
  Year      = {2019},
}
@incollection{dbwnf,
  Address   = {München},
  Author    = {Dietrich Bonhoeffer},
  Booktitle = {Dietrich Bonnhoeffer Werke},
  Editor    = {Kuske, Martin and Tödt, Ilse},
  Keywords  = {pl},
  Title     = {Nachfolge},
  Year      = {1989},
}
\end{filecontents}

\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}


\begin{document}
Lorem\Footcite[Vgl.][]{dbwnf}.
Ipsum\Footcite[Vgl.][]{test}.

\printbibliography[keyword=pl, title={Primärliteratur}]
\end{document}

是。朋霍费尔,狄特里希,《后遗症》。收录于:Kuske, Martin / Tödt, Ilse, Hrsg., Dietrich Bonnhoeffer Werke, München, 1989.//Vgl.测试,测试,测试,2019。


无论如何,您可能希望看看我在上面的 MWE 中应用的代码的轻微现代化修改。

相关内容