如何在 biblatex 中引用多作者、单一编辑合集中的一本书?

如何在 biblatex 中引用多作者、单一编辑合集中的一本书?

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

相关内容