Biblatex:类型和学校之间的分隔符

Biblatex:类型和学校之间的分隔符

我的文档(LuaLaTeX):

\documentclass[a4paper,oneside,12pt]{scrreprt}
\usepackage{fontspec}
\usepackage[backend=biber,firstinits=true,sorting=nyt,maxbibnames=3]{biblatex} 
\usepackage[ngerman]{babel}
\addbibresource{lit.bib}
\begin{document}
\cite{schmidt14}
\printbibliography
\end{document}

文件“lit.bib”:

@phdthesis{schmidt14,
  author = {Schmidt, Johannes},
  title = {Testtest},
  school = {Test Univ.},
  year = {2014},
}

但是“Diss.”(德语中博士论文的缩写)和学校之间没有逗号:

在此处输入图片描述

我该怎么办?如何修改默认样式?其他样式会在那里放一个逗号。

(顺便说一句,这 \usepackage[ngerman]{babel} 没关系,英语也有同样的问题。尽管如此,我还是把它包括进去作为最小的例子。该文档是用德语写的。)

谢谢你的帮助!

答案1

不幸的是,该type字段不是在宏中打印的,而是直接在驱动程序中打印的,所以我们必须修改@thesis驱动程序。我们可以使用xpatch包裹。

\xpatchbibdriver{thesis}
  {\printfield{type}%
   \newunit}
  {\printfield{type}%
   \setunit{\addcomma\space}}
  {}{}

我们只需\setunit{\addcomma\space}在类型字段后面添加一个显式的,而不是正常的\newunit

\documentclass{article}
\usepackage{filecontents}
\usepackage[backend=biber,firstinits=true,sorting=nyt,maxbibnames=3]{biblatex} 
\usepackage[ngerman]{babel}
\begin{filecontents*}{\jobname.bib}
@phdthesis{schmidt14,
  author = {Schmidt, Johannes},
  title = {Testtest},
  school = {Test Univ.},
  year = {2014},
}
\end{filecontents*}
\usepackage{xpatch}

\xpatchbibdriver{thesis}
  {\printfield{type}%
   \newunit}
  {\printfield{type}%
   \setunit{\addcomma\space}}
  {}{}

\addbibresource{\jobname.bib}
\begin{document}
  \cite{schmidt14}
  \printbibliography
\end{document}

在此处输入图片描述

答案2

将这些行添加到你的序言中:

\usepackage{xpatch} 
\xpatchbibdriver{thesis}{%
  \printfield{type}%
  \newunit
}
{%
  \printfield{type}%
  \setunit{\addcomma\space}
}{}{}

在此处输入图片描述

相关内容