在葡萄牙语中,出版商经常会给某本书的一般“编辑”赋予不同的编辑角色名称。特别是,他们交替使用“编辑”和“organizador”(组织者)这两个术语,有时也会使用“coordenador”(协调员)。我不确定其他葡萄牙语国家/地区的用法,但巴西就是这种情况。我已经在西班牙语中遇到过“organizador”了。
尽管这些不同名称的含义可能非常相似,但从提供精确参考的角度来看,应该坚持出版商使用的名称。但这biblatex
有点复杂,因为没有相应的编辑角色和相关字符串可供使用。
我知道可以在条目的editortype
字段中插入任意字符串。但这种“解决方案”远非理想,因为它对样式或样式格式的后续更改非常敏感,从而在文件中留下.bib
难以追踪的非标准字符串。它对所使用的相应语言也很敏感。假设我以 biblatex authoryear 样式撰写论文,后来在尝试将其提交给期刊时,期刊要求使用 Chicago、APA 或其他定义不同 bibstring 的样式。或者假设我最初使用了选项abbreviate=false
,后来决定更改它并使用abbreviate=true
。或者如果我决定使用 biblatex 的选项autolang=other
,而我最初并没有这样做。在所有这些情况下,如果我在条目中定义了任意字符串,editortype
则必须更正每个条目。这显然容易出错。
在重新思考这个问题时,我想出了一个解决方法,即“窃取”一个较少使用的编辑角色,例如continuator
,并相应地重新定义其字符串。一个 MWE,使用 biblatex authoryear,此解决方法如下:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[english,portuguese]{babel}
\usepackage[style=american]{csquotes}
\usepackage[bibstyle=authoryear,backend=biber]{biblatex}
\usepackage{filecontents}
\begin{filecontents*}{organizer.bib}
@InBook{Abreu1990,
author = {Abreu, Marcelo de Paiva},
title = {Crise, crescimento e modernização autoritária: 1930--1945},
booktitle = {A Ordem do Progresso},
date = {1990},
editor = {Abreu, Marcelo de Paiva},
booksubtitle = {Cem anos de política econômica republicana, 1889-1989},
publisher = {Campus},
location = {Rio de Janeiro},
chapter = {3},
pages = {73--104},
editortype = {continuator},
}
@Book{Abreu1990book,
title = {A Ordem do Progresso},
date = {1990},
editor = {Abreu, Marcelo de Paiva},
subtitle = {Cem anos de política econômica republicana, 1889-1989},
publisher = {Campus},
location = {Rio de Janeiro},
editortype = {continuator},
}
@InBook{Bergsman1978,
author = {Bergsman, Joel},
title = {A política comercial no pós-guerra},
booktitle = {Formação econômica do Brasil},
date = {1978},
editor = {Versiani, Flávio Rabelo and Barros, José Roberto Mendonça de},
booksubtitle = {A experiência da industrialização},
edition = {1st, rev.\ ed.},
publisher = {Saraiva},
location = {São Paulo},
pages = {391--410},
editortype = {continuator},
}
@Book{BastosFonseca2012,
title = {A Era Vargas},
date = {2012},
editor = {Bastos, Pedro Paulo Zahluth and Fonseca, Pedro Cezar Dutra},
subtitle = {Desenvolvimentismo, economia e sociedade},
publisher = {Editora Unesp},
editortype = {continuator},
}
\end{filecontents*}
\DefineBibliographyStrings{portuguese}{%
continuator = {org\adddot},
continuators = {orgs\adddot},
bycontinuator = {org\adddotspace por},
}
\DefineBibliographyStrings{english}{%
continuator = {org\adddot},
continuators = {orgs\adddot},
bycontinuator = {org\adddotspace by},
}
\addbibresource{organizer.bib}
\begin{document}
\nocite{*}
\printbibliography
\selectlanguage{english}
\printbibliography
\end{document}
产生预期的输出:
但是,这种解决方案也不理想,因为如果某人碰巧有一个选定编辑角色的参考,她就会陷入困境。此外,如果我碰巧将同一个.bib
文件用于另一个项目并忘记重新定义continuator
字符串,事情就会变得非常混乱。
我想知道是否可以定义一个新的编辑角色“组织者”,并带有相应的字符串,以供条目字段调用editortype
。
理想情况下,解决方案应与风格无关。但如果这不可能,那么,如果能提供针对 authoryear biblatex 风格的解决方案,并附带一些关于如何在所选风格中执行相同操作的一般指导,我们将不胜感激。
当然,如果我从错误的角度看待这个问题,并且有更好更简单的方法来处理这个问题,我会很高兴知道。
答案1
这比您想象的还要简单。biblatex
检查它是否“知道”(即有 bibstrings)中的编辑器类型editortype
。如果它知道 bibstrings,它就会使用它们,如果不知道,它只会直接打印其中的内容。
我们唯一需要做的就是定义三个 bibstring
\NewBibliographyString{organizer}
\NewBibliographyString{organizers}
\NewBibliographyString{byorganizer}
并像你一样给出它的值
\DefineBibliographyStrings{portuguese}{%
organizer = {org\adddot},
organizers = {orgs\adddot},
byorganizer = {org\adddotspace por},
}
\DefineBibliographyStrings{english}{%
organizer = {org\adddot},
organizers = {orgs\adddot},
byorganizer = {org\adddotspace by},
}
我们现在可以使用
editortype = {organizer},
在 bib 文件中。
这绝对适用于所有标准样式,并且应该适用于 CTAN 上的大多数自定义样式(当然适用于编写良好的样式)。