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

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

在葡萄牙语中,出版商经常会给某本书的一般“编辑”赋予不同的编辑角色名称。特别是,他们交替使用“编辑”和“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 上的大多数自定义样式(当然适用于编写良好的样式)。

相关内容