我使用 biblatex 和 biber,以及 biblatex 的标准样式。我需要引用一位古典拉丁作家的一本独立著作,该著作收录于一位编辑编撰的多卷本合集中。参考文献在参考书目中的显示方式如下:
波爱修斯(1995(1844-1855))。亚里士多德四书目录。 在:拉美教父学. 编辑:Jacques-Paul Migne。第 64 卷。Chadwyck-Healey。
但我无法让 biblatex 产生我想要的结果。如果我使用以下参考(根据 biblatex 手册,第 2.3.5 节):
@INBOOK{BoethiusOnCateg,
booktitle = {In Categorias Aristotelis libri quatuor},
maintitle = {Patrologia Latina},
publisher = {Chadwyck-Healey},
year = {1995 (1844-1855)},
editor = {Jacques-Paul Migne},
author = {Boethius},
volume = {64}
}
我得到以下输出:
波爱修斯(1995(1844-1855))。在:拉美教父学. 第64卷:亚里士多德四书目录. 编辑:Jacques-Paul Migne。Chadwyck-Healey。
如果我切换到手册的另一个建议,即:
@BOOK{BoethiusOnCateg,
title = {In Categorias Aristotelis libri quatuor},
maintitle = {Patrologia Latina},
publisher = {Chadwyck-Healey},
year = {1995 (1844-1855)},
editor = {Jacques-Paul Migne},
author = {Boethius},
volume = {64}
}
我得到了相同的结果:
波爱修斯(1995(1844-1855))。拉美教父学. 第64卷:亚里士多德四书目录. 编辑:Jacques-Paul Migne。Chadwyck-Healey。
我尝试使用@BOOK 和@INBOOK 对 maintitle、title 和 booktitle 进行其他排列,但无法获得预期的结果。
有什么建议么?
答案1
(总结一些先前的评论。)
这拉美教父学,共 221 卷,包含更多不同作者的作品,可能最好将其视为一个系列。话虽如此,我发现没有很好的方法来引用这些系列中的单个作品,因为每卷本身通常包含多个标题。无论如何,我会写.bib
这样写条目。(请注意,我实际上并没有使用您提到的订阅版本,而是使用可用的免费版本这里. 该网站附带包括全部PL 和 PG [以及更多]。不过,我保留了你的出版商和出版日期信息。)
更新并简化的答案:
(感谢 Moewe;证明 RTFM 确实有价值……)
事实证明,它biblatex
从一开始就被设计为支持不同类型的“分页”:页面、列、行、诗句、节、段落。(如果这些都不适用,那么原始答案会建议您如何创建自己的系统。)PL/PG 按列打印,因此我们要使用:
pagination = {column},
bookpagination = {column},
在我们的条目中。(似乎两者都是必需的:一个用于引用,一个用于书目条目。)这导致了以下条目,我已将其嵌入到完整的示例文档中:
\documentclass{article}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@INBOOK{BoethiusOnCateg,
title = {In Categorias Aristotelis libri quatuor},
booktitle = {Manlii Severini Boetii opera omnia},
publisher = {Chadwyck-Healey},
editor = {Migne, Jacques-Paul},
author = {Boethius},
year = 1995,
origyear = {1844/1855},
series = {Patrologia latina},
number = 64,
bookpagination = {column},
pagination = {column},
pages = {159--295},
langid = {latin},
}
\end{filecontents}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
\usepackage{csquotes}
\usepackage[
backend=biber, natbib=true, style=authoryear-ibid, sorting=nyt, indexing=cite
]{biblatex}
\addbibresource{\jobname.bib}
\DeclareFieldFormat[inbook]{series}{\mkbibemph{#1}}
\begin{document}
\cite[200]{BoethiusOnCateg}
\printbibliography
\end{document}
最初的、毫无意义的复杂答案:
@INBOOK{BoethiusOnCateg,
title = {In Categorias Aristotelis libri quatuor},
booktitle = {Manlii Severini Boetii opera omnia},
publisher = {Chadwyck-Healey},
editor = {Jacques-Paul Migne},
author = {Boethius},
year = 1995,
origyear = {1844/1855},
series = {Patrologia latina},
number = 64,
columns = {159--295},
langid = {latin},
}
我添加了一个“列”字段,因为 PL 不使用页面,而是使用列。如果您希望将该信息打印在您的书目条目中,则需要进行一些额外的配置。例如,您biblatex-dm.cfg
可以添加以下内容(限制对条目的更改@inbook
):
% use a 'columns' field instead of 'pages'
\DeclareDatamodelFields[type=field,datatype=literal]{columns}
\DeclareDatamodelEntryfields[inbook]{columns}
然后,在主.tex
文件或某个biblatex.cfg
文件中添加:
\renewbibmacro{chapter+pages}{%
\ifentrytype{inbook}%
{\printfield{chapter}%
\setunit{\bibpagespunct}%
\printfield{columns}%
\newunit}%
{\printfield{chapter}%
\setunit{\bibpagespunct}%
\printfield{columns}%
\newunit}%
}
\NewBibliographyString{columns}
\DefineBibliographyStrings{english}{%
columns = {cols\adddot},
}
\DeclareFieldFormat[inbook]{columns}{\bibstring{columns}\space#1}
并且,为了将系列以斜体打印出来,而不是将其硬编码到参考书目中,您可以使用类似如下的内容:
\DeclareFieldFormat[inbook]{series}{\mkbibemph{#1}}
所以,把所有这些放在一起,你会得到这样的结果:
\documentclass{article}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@INBOOK{BoethiusOnCateg,
title = {In Categorias Aristotelis libri quatuor},
booktitle = {Manlii Severini Boetii opera omnia},
publisher = {Chadwyck-Healey},
editor = {Jacques-Paul Migne},
author = {Boethius},
year = 1995,
origyear = {1844/1855},
series = {Patrologia latina},
number = 64,
columns = {159--295},
langid = {latin},
}
\end{filecontents}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
\usepackage{csquotes}
\usepackage[
backend=biber, natbib=true, citestyle=authoryear-ibid, bibstyle=authoryear-ibid, sorting=nyt, indexing=cite]{biblatex}
\addbibresource{\jobname.bib}
\begin{filecontents*}{biblatex-dm.cfg}
% use a 'columns' field instead of 'pages'
\DeclareDatamodelFields[type=field,datatype=literal]{columns}
\DeclareDatamodelEntryfields[inbook]{columns}
\end{filecontents*}
% 'series' in italics
\DeclareFieldFormat[inbook]{series}{\mkbibemph{#1}}
% use a 'columns' field instead of 'pages'
\renewbibmacro{chapter+pages}{%
\ifentrytype{inbook}%
{\printfield{chapter}%
\setunit{\bibpagespunct}%
\printfield{columns}%
\newunit}%
{\printfield{chapter}%
\setunit{\bibpagespunct}%
\printfield{columns}%
\newunit}%
}
\NewBibliographyString{columns}
\DefineBibliographyStrings{english}{%
columns = {cols\adddot},
}
\DeclareFieldFormat[inbook]{columns}{\bibstring{columns}\space#1}
\begin{document}
\cite{BoethiusOnCateg}
\printbibliography
\end{document}