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

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

我正在嘗試將以下分隔符號從句點更改為逗號:

我想要更改的分隔符

文字檔:

\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}

Vgl。潘霍華、迪特里希、納赫福爾格。參見:Kuske, Martin / Tödt, Ilse, Hrsg.,Dietrich Bonnhoeffer Werke,慕尼黑,1989。測試,測試,測試,2019 年。


無論如何,您可能想看看我在上面的 MWE 中應用的程式碼的輕微現代化。

相關內容