我正在使用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
}