Biblatex APA 样式不支持编辑器类型?

Biblatex APA 样式不支持编辑器类型?

我试图将“插图画家”编辑器类型添加到我的参考资料中,但收效甚微。我查看了以下答案:

如何在 bibtex 中识别 Illustrator?

在 biblatex 中创建新的编辑角色“组织者”

我可以让我的 MWE 工作,直到我添加style=APAbiblatex。此时editortype被渲染为类型插图。使用其他预定义的编辑器类型也产生了类似的结果。

如何使 APA 书目样式产生“插图画家”而不是“类型插图“?

\documentclass{article}
\usepackage[style=apa, backend=biber]{biblatex}

\usepackage{filecontents}

\begin{filecontents}{mwe.bib}
@Book{jones1886illustrations,
    author     = {Jones, Howard},
    title      = {Illustrations of the nests and eggs of birds of Ohio with text},
    year       = {1886},
    editor     = {Jones, N. E.},
    editortype = {illustrator},
    location   = {Circleville, OH},
}
\end{filecontents}

\addbibresource{mwe.bib}

\NewBibliographyString{illustrator}
\NewBibliographyString{illustrators}
\NewBibliographyString{byillustrator}
\NewBibliographyString{cbyillustrator}

\DefineBibliographyStrings{english}{%
    illustrator    = {illustrator},
    illustrators   = {illustrators},
    byillustrator  = {illustrated by},
    cbyillustrator = {illustr\adddot},
}


\begin{document}
\nocite{*}
\printbibliography
\end{document}

结果:

MWE 结果

答案1

biblatex-apa用于 for 的字符串editortype被称为type<editortype>type<editortype>s,因此您也必须定义它们。

\documentclass{article}
\usepackage[style=apa, backend=biber]{biblatex}

\NewBibliographyString{illustrator}
\NewBibliographyString{illustrators}
\NewBibliographyString{byillustrator}
\NewBibliographyString{cbyillustrator}
\NewBibliographyString{typeillustrator}
\NewBibliographyString{typeillustrators}

\DefineBibliographyStrings{english}{%
  illustrator      = {illustrator},
  illustrators     = {illustrators},
  typeillustrator  = {illustrator},
  typeillustrators = {illustrators},
  byillustrator    = {illustrated by},
  cbyillustrator   = {illustr\adddot},
}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{jones1886illustrations,
  author     = {Jones, Howard},
  title      = {Illustrations of the nests and eggs of birds of {Ohio} with text},
  year       = {1886},
  editor     = {Jones, N. E.},
  editortype = {illustrator},
  location   = {Circleville, OH},
}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
\nocite{*}
\printbibliography
\end{document}

琼斯,H. (1886)。俄亥俄州鸟类巢穴和鸟蛋的插图,附有文字(插图画家 NE 琼斯)。瑟克尔维尔,俄亥俄州。


biblatex-apa使用与标准样式不同的书目字符串有点不幸,但考虑到预定义的术语,我猜这样做是为了避免与其他标准书目字符串发生名称冲突(typevolume分别typeseries为卷和系列编辑器;这些不能只是volumeseries因为这些名称已被使用)。

当未定义时biblatex-apa尝试标准<editorype>bibstring可能是一个更好的解决方案。type<editortype>

\renewbibmacro*{apaeditorstrg}[1]{%
  \iffieldundef{#1type}
    {\ifthenelse{\value{#1}>1\OR\ifandothers{#1}}
       {\bibcpstring{editors}}
       {\bibcpstring{editor}}}
    {\ifthenelse{\value{#1}>1\OR\ifandothers{#1}}
       {\ifbibstring{type\thefield{#1type}s}
          {\bibcpstring{type\thefield{#1type}s}}
          {\bibcpstring{\thefield{#1type}s}}}
       {\ifbibstring{type\thefield{#1type}}
          {\bibcpstring{type\thefield{#1type}}}
          {\bibcpstring{\thefield{#1type}}}}}}

没有必要定义typeillustratortypeillustrators


cbyillustratorMWE 中不需要该字符串,因为它仅biblatex-chicago用于如何在 bibtex 中识别 Illustrator?


最后,请注意周围的花括号Ohio,以防止句子大小写biblatex-apa错误地将专有名词 Ohio 转换为小写。参见BibTeX 在创建 .bbl 文件时丢失大写字母

相关内容