OSCOLA BibLaTeX 无法识别参考书目中重复列出的作者

OSCOLA BibLaTeX 无法识别参考书目中重复列出的作者

我正在使用OSCOLA BibLaTeX 样式文件。在参考书目中,当多次引用同一作者时,作者的名字应该用双破折号代替。文件通常可以正确处理这个问题。(当有单独和合著作品混合时,它似乎无法识别重复的作者,但这不是我的问题。)

对于特定类型的参考文献,它似乎无法识别作者是否重复。这是一个最小的工作示例。首先,一个 .bib 文件:

@phdthesis{Author2002,  Author = {Author, An},  School = {Department of Something, University College Somewhere},   Title = {A PhD thesis}, Year = {2002}}

@article{Author2003,    Author = {Author, An}, Journal = {Some Journal}, Number = {2}, Pages = {163}, Title = {An Article},Volume = {27}, Year = {2003}}

@incollection{Author2009,   Author = {Author, An},  Booktitle = {Some Book},    Publisher = {Some Publisher}, Title = {Book Chapter}, Year = {2009}}

@article{Author2013,    Author = {Author, An},Journal = {Another Journal},Number = {1},Pages = {55--69},Title = {Another Journal Article},  Volume = {45}, Year = {2013}}

.tex 文件如下:

\documentclass[12pt, a4paper]{article}
\usepackage[style=british]{csquotes}
\usepackage[style=oscola,   ibidtracker=true,          backend=biber,       autolang=hyphen]{biblatex}

\addbibresource{Test.bib} 

\title{Test Document}

\begin{document}
\maketitle 
First citation.\autocite[66]{Author2013}
Second citation.\autocite[31--2]{Author2002}
 Third citation.\autocite{Author2009} 
\printbibliography[nottype=commentary,nottype=jurisdiction,nottype=legislation,nottype=misc,nottype=legal]
\end{document}

至少在我的系统上,参考书目看起来是这样的:

作者 A,《博士论文》(某某大学学院某某系博士论文,2002 年)。

作者 A,《某本书》(某出版社 2009 年出版)中的“书籍章节”。

—《另一篇期刊文章》(2013)45(1)另一篇期刊55。

书籍章节参考中的作者姓名应该是 — 但事实并非如此。如果我将第一个参考的类型更改为书籍或文章,我会得到正确的输出。有人知道如何解决这个问题吗?

答案1

oscola这是由于的驱动程序中存在错误而导致的thesis。代码中包含\printnames{author}而不是\usebibmacro{author}。后者宏会进行检查等,特别是在需要时打印破折号而不是作者姓名。修复此问题的最简单方法是使用xpatch为此类驱动程序提供修补命令的软件包:

\usepackage{xpatch}
\xpatchbibdriver{thesis}{\printnames{author}}{\usebibmacro{author}}{}{} 

示例输出

\documentclass[12pt, a4paper]{article}

\usepackage[style=british]{csquotes}
\usepackage[style=oscola, ibidtracker=true, backend=biber,                         
     autolang=hyphen]{biblatex}

\addbibresource{Test.bib}

\usepackage{xpatch}

\xpatchbibdriver{thesis}{\printnames{author}}{\usebibmacro{author}}{}{}

\title{Test Document}

\begin{document}

\maketitle

First citation.\autocite[66]{Author2013}
Second citation.\autocite[31--2]{Author2002}
Third citation.\autocite{Author2009}

\printbibliography[nottype=commentary,nottype=jurisdiction,nottype=legislation,not\
type=misc,nottype=legal]

\end{document}

Test.bib

@PhdThesis{Author2002,
  author =       {Author, An},
  school =       {Department of Something, University College
                  Somewhere},
  title =        {A PhD thesis},
  year =         2002
}

@InCollection{Author2009,
  author =       {Author, An},
  booktitle =    {Some Book},
  publisher =    {Some Publisher},
  title =        {Book Chapter},
  year =         2009
}

@Article{Author2013,
  author =       {Author, An},
  journal =      {Another Journal},
  number =       1,
  pages =        {55--69},
  title =        {Another Journal Article},
  volume =       45,
  year =         2013
} 

相关内容