仅当没有作者时才将编辑作为排序名称?

仅当没有作者时才将编辑作为排序名称?

我按照以下方式编辑了 biblatex 的 authoryear.bbx:

\DeclareNameAlias{author}{sortname}    
%\DeclareNameAlias{editor}{sortname} this I commented out
%\DeclareNameAlias{translator}{sortname} this I commented out

它非常适合按“姓氏、名字和名字姓氏”等对作者进行排序。但现在没有作者、只有编辑的书籍仍然按“名字姓氏”排序,但我希望它们的格式与作者相同。但仅适用于没有作者的书籍,不适用于合集或论文集等。

我尝试这样做,但显然它不起作用:

\DeclareNameAlias{author}{sortname}    
\DeclareNameAlias{collection}{editor}{sortname}
%\DeclareNameAlias{translator}{sortname} 

这是需要的,并且应当保留:

Kahn, Douglas 2007:《巴赫与吟游诗人之间:早期计算机艺术中的生产性约束》,载于 Oliver Grau(编辑):《媒体艺术史》,马萨诸塞州剑桥:麻省理工学院出版社,第 423–451 页。

但这不是:

卡洛琳·伯德索尔/Anthony Enns(编辑)2008:《声音调解:身体声音技术》,泰恩河畔纽卡斯尔:剑桥学者出版社。

这应该改成:

伯德索尔,卡罗琳/Anthony Enns(编辑)2008:《声音调解:身体声音技术》,泰恩河畔纽卡斯尔:剑桥学者出版社。

如果我取消注释 \DeclareNameAlias{editor}{sortname},将会发生以下情况:

Kahn, Douglas 2007: 巴赫与吟游诗人之间:早期计算机艺术中的生产性约束,奥利弗·格劳(编辑):《MediaArtHistories》,马萨诸塞州剑桥:麻省理工学院出版社,第 423–451 页。

这是不受欢迎的。

这是三个 .bbx 文件中的完整代码。抱歉,太混乱了。我是新手。感谢这些代码的所有作者。由于我不知道如何在不手动缩进 4 个空格的情况下正确粘贴较长的代码脚本。我将链接其他两个文件。

http://algorhythmics.com/latexstuff/sm-002.bbx http://algorhythmics.com/latexstuff/philosophy-standard.bbx

以下是我修改的 authoryear 部分:

\DeclareNameAlias{author}{sortname}
\DeclareNameAlias{editor}{sortname} 
\DeclareNameAlias{default}{first-last}
\DeclareNameAlias{byeditor}{default}
%\DeclareNameAlias{translator}{sortname}

请帮助我。谢谢!

答案1

在 中sm-002.bbxincollection和参考书目驱动程序用一个名为 的新宏inproceedings替换该宏,定义如下。byeditor+otherseditorincoll

\newbibmacro*{editorincoll}{%
  \ifthenelse{\ifuseeditor\AND\NOT\ifnameundef{editor}}
    {\ifthenelse{\iffieldequals{author}{editor}\AND
                 \NOT\iffirstonpage}
       {\bibnamedash}
       {\printnames[upshape]{editor}\addspace
        \savefield{namehash}{\bbx@lasthash}}%
     \usebibmacro{editorstrg}%
     \clearname{editor}}
    {\global\undef\bbx@lasthash}}

如果将 替换upshapefirst-last,您将在名称列表中获得所需的顺序。

相关内容