我试图将“插图画家”编辑器类型添加到我的参考资料中,但收效甚微。我查看了以下答案:
我可以让我的 MWE 工作,直到我添加style=APA
到biblatex
。此时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}
结果:
答案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}
biblatex-apa
使用与标准样式不同的书目字符串有点不幸,但考虑到预定义的术语,我猜这样做是为了避免与其他标准书目字符串发生名称冲突(typevolume
分别typeseries
为卷和系列编辑器;这些不能只是volume
或series
因为这些名称已被使用)。
当未定义时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}}}}}}
没有必要定义typeillustrator
和typeillustrators
。
cbyillustrator
MWE 中不需要该字符串,因为它仅biblatex-chicago
用于如何在 bibtex 中识别 Illustrator?。
最后,请注意周围的花括号Ohio
,以防止句子大小写biblatex-apa
错误地将专有名词 Ohio 转换为小写。参见BibTeX 在创建 .bbl 文件时丢失大写字母。