同一作者的多个书籍条目的书目特定格式 - 解决方案怪癖

同一作者的多个书籍条目的书目特定格式 - 解决方案怪癖

这个问题与问题相关同一作者的多个书籍条目的书目特定格式,它有一个非常好的解决方案,但是当应用到我的数据时,出现了与作者相关的奇怪的怪癖。

一位作者的书目列表的第一个条目也应以与第二、第三...相同的格式出现,即它应从作者下方的行开始,并在其前面有一个破折号。这只适用于特殊格式的书目。但是,对于下面使用的参考书目,在同一作者的多个书籍条目的书目特定格式给出了奇怪的结果。为什么会这样?

以下是实际示例:

\documentclass{article}

\usepackage[style=authortitle-dw,
edsuper=true,
namefont=smallcaps,
useprefix=true,
ibidemfont=smallcaps,
idemfont=smallcaps,
idembibformat=dash,
shorthandibid=true,
backref=false,
backrefstyle=none,
isbn=false,
backend=biber,
edstringincitations=false,
bibencoding=utf8,
minxrefs=2]{biblatex}
\listfiles
\usepackage{filecontents}

\begin{filecontents}{quellen.bib}
@book{wendearchivderuniversitatrostock7.12.1989,
    author = {Gauck, Joachim and Schmachtel, Jochen and others},
    title = {Predigt in der Rostocker Donnerstagsandacht am 7.12.1989 zu Jes 43,1-3a},
    address = {Rostock},
    shorttitle = {Predigt am 7.12.1989}
}


@book{wendearchivderuniversitatrostock8.2.1990,
    author = {Gauck, Joachim and Schmachtel, Jochen and others},
    title = {Predigt in der Rostocker Donnerstagsandacht am 8.2.1990 zu Lk 9,61.62 und Mt 13,31f.},
    address = {Rostock},
    shorttitle = {Predigt am 8.2.1990}
}


@book{wendearchivderuniversitatrostock9.11.1989,
    author = {Gauck, Joachim and others},
    year = {9}, month = {1}, day = {9},
    title = {Predigt in der Rostocker Donnerstagsandacht am 9.11.1989 zu Lk 7,11-16; 1. Joh 3,18f.},
    address = {Rostock},
    shorttitle = {Predigt am 9.11.1989}
}
@book{wendearchivderuniversitatrostock26.10.1989,
    author = {Gauck, Joachim and Heldt, Thomas and Leefhelm, Kirsten},
    title = {Predigt in der Rostocker Donnerstagsandacht am 26.10.1989 zu Mt 5,44-47a},
    address = {Rostock},
    shorttitle = {Predigt am 26.10.1989}
}


@book{wendearchivderuniversitatrostock30.11.1989,
    author = {Gauck, Joachim},
    title = {Predigt in der Rostocker Donnerstagsandacht am 30.11.1989 zu Lk 21,34-36},
    address = {Rostock},
    shorttitle = {Predigt am 30.11.1989}
}
@book{wendearchivderuniversitatrostock23.11.1989,
    author = {Gauck, Joachim},
    title = {Predigt in der Rostocker Donnerstagsandacht am 23.11.1989 zu Jer 8,4-7},
    address = {Rostock},
    shorttitle = {Predigt am 23.11.1989}
}
@book{wendearchivderuniversitatrostock2.11.1989,
    author = {Gauck, Joachim and others},
    title = {Predigt in der Rostocker Donnerstagsandacht am 2.11.1989 zu Mt 7,15-17},
    address = {Rostock},
    shorttitle = {Predigt am 2.11.1989}
}
@book{wendearchivderuniversitatrostock19.10.1989,
    author = {Gauck, Joachim},
    title = {Predigt in der Rostocker Donnerstagsandacht am 19.10.1989 zu Amos 5,21-24},
    address = {Rostock},
    shorttitle = {Predigt am 19.10.1989}
}
@book{wendearchivderuniversitatrostock11.10.1990,
    author = {Gauck, Joachim and others},
    title = {Gottesdienst am 11.10.1990 in Rostock, St. Marien: Plakat und Presseerklärung},
    address = {Rostock},
    shorttitle = {Gottesdienst am 11.10.1990}
}


@book{wendearchivderuniversitatrostock14.12.1989,
    author = {Gauck, Joachim and others},
    title = {Predigt am 14.12.1989 zu Lk 1,46-56},
    address = {Rostock},
    shorttitle = {Predigt am 14.12.1989}
}
@book{wendearchivderuniversitatrostock1.2.1990,
    author = {Gauck, Joachim and others},
    title = {Predigt am 1.2.1990 zu Ex 3,7.10-14},
    address = {Rostock},
    shorttitle = {Predigt am 1.2.1990}
}
\end{filecontents}

\begin{filecontents}{literatur.bib}
@book{1wendearchivderuniversitatrostock7.12.1989,
    author = {Gauck, Joachim and Schmachtel, Jochen and others},
    title = {Predigt in der Rostocker Donnerstagsandacht am 7.12.1989 zu Jes 43,1-3a},
    address = {Rostock},
    shorttitle = {Predigt am 7.12.1989}
}


@book{1wendearchivderuniversitatrostock8.2.1990,
    author = {Gauck, Joachim and Schmachtel, Jochen and others},
    title = {Predigt in der Rostocker Donnerstagsandacht am 8.2.1990 zu Lk 9,61.62 und Mt 13,31f.},
    address = {Rostock},
    shorttitle = {Predigt am 8.2.1990}
}


@book{1wendearchivderuniversitatrostock9.11.1989,
    author = {Gauck, Joachim and others},
    year = {9}, month = {1}, day = {9},
    title = {Predigt in der Rostocker Donnerstagsandacht am 9.11.1989 zu Lk 7,11-16; 1. Joh 3,18f.},
    address = {Rostock},
    shorttitle = {Predigt am 9.11.1989}
}
@book{1wendearchivderuniversitatrostock26.10.1989,
    author = {Gauck, Joachim and Heldt, Thomas and Leefhelm, Kirsten},
    title = {Predigt in der Rostocker Donnerstagsandacht am 26.10.1989 zu Mt 5,44-47a},
    address = {Rostock},
    shorttitle = {Predigt am 26.10.1989}
}


@book{1wendearchivderuniversitatrostock30.11.1989,
    author = {Gauck, Joachim},
    title = {Predigt in der Rostocker Donnerstagsandacht am 30.11.1989 zu Lk 21,34-36},
    address = {Rostock},
    shorttitle = {Predigt am 30.11.1989}
}
@book{1wendearchivderuniversitatrostock23.11.1989,
    author = {Gauck, Joachim},
    title = {Predigt in der Rostocker Donnerstagsandacht am 23.11.1989 zu Jer 8,4-7},
    address = {Rostock},
    shorttitle = {Predigt am 23.11.1989}
}
@book{1wendearchivderuniversitatrostock2.11.1989,
    author = {Gauck, Joachim and others},
    title = {Predigt in der Rostocker Donnerstagsandacht am 2.11.1989 zu Mt 7,15-17},
    address = {Rostock},
    shorttitle = {Predigt am 2.11.1989}
}
@book{1wendearchivderuniversitatrostock19.10.1989,
    author = {Gauck, Joachim},
    title = {Predigt in der Rostocker Donnerstagsandacht am 19.10.1989 zu Amos 5,21-24},
    address = {Rostock},
    shorttitle = {Predigt am 19.10.1989}
}
@book{1wendearchivderuniversitatrostock11.10.1990,
    author = {Gauck, Joachim and others},
    title = {Gottesdienst am 11.10.1990 in Rostock, St. Marien: Plakat und Presseerklärung},
    address = {Rostock},
    shorttitle = {Gottesdienst am 11.10.1990}
}


@book{1wendearchivderuniversitatrostock14.12.1989,
    author = {Gauck, Joachim and others},
    title = {Predigt am 14.12.1989 zu Lk 1,46-56},
    address = {Rostock},
    shorttitle = {Predigt am 14.12.1989}
}
@book{1wendearchivderuniversitatrostock1.2.1990,
    author = {Gauck, Joachim and others},
    title = {Predigt am 1.2.1990 zu Ex 3,7.10-14},
    address = {Rostock},
    shorttitle = {Predigt am 1.2.1990}
}
\end{filecontents}

\addbibresource{literatur.bib}
\addbibresource{quellen.bib}

\DeclareSourcemap{
    \maps[datatype=bibtex]{
        \map{
            \perdatasource{quellen.bib}
            \step[fieldset=keywords, fieldvalue={quellen}]
        }
        \map{
            \perdatasource{literatur.bib}
            \step[fieldset=keywords, fieldvalue={literatur}]
            \step[fieldset=options, fieldvalue={,}, append]
            \step[fieldsource=options, notmatch=\regexp{.*useauthor\s*=\s*false.*}, final]
            \step[fieldsource=author, match=\regexp{(.*)}, final]
            \step[entrynew={$1}, entrynewtype=specialauthor]
            \step[entrytarget={$1}, fieldset={author}, fieldvalue={$1}]
            \step[entrytarget={$1}, fieldset={keywords}, fieldvalue={literatur}]
            \step[fieldset=xref, fieldvalue={$1}]
        }
        \map{
            \perdatasource{literatur.bib}
            \step[notfield=author, final]
            \step[fieldset=options, fieldvalue={,}, append]
            \step[fieldsource=options, notmatch=\regexp{.*useeditor\s*=\s*false.*}, final]
            \step[fieldsource=editor, match=\regexp{(.*)}, final]
            \step[entrynew={$1}, entrynewtype=specialauthor]
            \step[entrytarget={$1}, fieldset={editor}, fieldvalue={$1}]
            \step[entrytarget={$1}, fieldset={keywords}, fieldvalue={literatur}]
            \step[fieldset=xref, fieldvalue={$1}]
        }
        \map{
            \perdatasource{literatur.bib}
            \step[notfield=author, final]
            \step[notfield=editor, final]
            \step[fieldset=options, fieldvalue={,}, append]
            \step[fieldsource=options, notmatch=\regexp{.*usetranslator\s*=\s*false.*}, final]
            \step[fieldsource=options, match=\regexp{.*usetranslator.*}, final]
            \step[fieldsource=translator, match=\regexp{(.*)}, final]
            \step[entrynew={$1}, entrynewtype=specialauthor]
            \step[entrytarget={$1}, fieldset={translator}, fieldvalue={$1}]
            \step[entrytarget={$1}, fieldset={options}, fieldvalue={usetranslator=true}]
            \step[entrytarget={$1}, fieldset={keywords}, fieldvalue={literatur}]
            \step[fieldset=xref, fieldvalue={$1}]
        }
    }
}

\DeclareBibliographyDriver{specialauthor}{%
    \renewcommand*{\finentrypunct}{\addcolon}%
    \ifbool{cbx:idemfull}
    {}
    {\usebibmacro{author/editor+others/translator+others}%
        \ifnameundef{labelname}
        {}
        {\setunit{\labelnamepunct}\newblock}}%
    \usebibmacro{finentry}}

\makeatletter
\AtEveryBibitem{%
    \ifboolexpr{
        test {\ifkeyword{literatur}}
        and
        not test {\ifentrytype{specialauthor}}
        and
        test {\iffieldequals{namehash}{\bbx@lasthash}}
        and
        not test {\iffirstonpage}
    }
    {\renewbibmacro*{translator+othersstrg}{}%
        \renewbibmacro*{editor+othersstrg}{}}
    {}}
\makeatother

\pagestyle{empty}
\begin{document}
    \cite{1wendearchivderuniversitatrostock7.12.1989,1wendearchivderuniversitatrostock8.2.1990,1wendearchivderuniversitatrostock9.11.1989,1wendearchivderuniversitatrostock26.10.1989,1wendearchivderuniversitatrostock30.11.1989,1wendearchivderuniversitatrostock23.11.1989,1wendearchivderuniversitatrostock2.11.1989,1wendearchivderuniversitatrostock19.10.1989,1wendearchivderuniversitatrostock11.10.1990,1wendearchivderuniversitatrostock14.12.1989,1wendearchivderuniversitatrostock1.2.1990},
    \cite{wendearchivderuniversitatrostock7.12.1989,wendearchivderuniversitatrostock8.2.1990,wendearchivderuniversitatrostock9.11.1989,wendearchivderuniversitatrostock26.10.1989,wendearchivderuniversitatrostock30.11.1989,wendearchivderuniversitatrostock23.11.1989,wendearchivderuniversitatrostock2.11.1989,wendearchivderuniversitatrostock19.10.1989,wendearchivderuniversitatrostock11.10.1990,wendearchivderuniversitatrostock14.12.1989,wendearchivderuniversitatrostock1.2.1990}
    \printbibliography[keyword=literatur,title=Specially formatted bibliography]
    \printbibliography[keyword=quellen,title=Plain old'n sturdy bibliography]
\end{document}

以及由此产生的特殊格式的参考书目的图像,其中相同的作者姓名出现多次。

在此处输入图片描述

答案1

正如评论中所解释的那样,这是因为 Biber v. <= 2.7在排序时author = {Gauck, Joachim}将其视为相同,因此“Joachim Gauck”和“Joachim Gauck et al.”排序为同一个名字。author = {Gauck, Joachim and others}

这是不受欢迎的,已在 Biber 2.8 版中修复,其中两个列表将按不同的名称排序。请参阅https://github.com/plk/biber/issues/177

下列几乎适用于 Biber 2.7。它基本上检查名称是否包含,如果包含and others,则附加适当的sortname,以便条目与不包含的名称分开排序。不幸的是,和and others似乎有点问题。参考书目可能应该使用和而不是破折号。namehashand othersfullhashnamehash

\documentclass{article}

\usepackage[style=authortitle-dw,
edsuper=true,
namefont=smallcaps,
useprefix=true,
ibidemfont=smallcaps,
idemfont=smallcaps,
idembibformat=dash,
shorthandibid=true,
backref=false,
backrefstyle=none,
isbn=false,
backend=biber,
edstringincitations=false,
bibencoding=utf8,
minxrefs=2]{biblatex}
\listfiles
\usepackage{filecontents}

\begin{filecontents}{quellen.bib}
@book{wendearchivderuniversitatrostock7.12.1989,
    author = {Gauck, Joachim and Schmachtel, Jochen and others},
    title = {Predigt in der Rostocker Donnerstagsandacht am 7.12.1989 zu Jes 43,1-3a},
    address = {Rostock},
    shorttitle = {Predigt am 7.12.1989}
}


@book{wendearchivderuniversitatrostock8.2.1990,
    author = {Gauck, Joachim and Schmachtel, Jochen and others},
    title = {Predigt in der Rostocker Donnerstagsandacht am 8.2.1990 zu Lk 9,61.62 und Mt 13,31f.},
    address = {Rostock},
    shorttitle = {Predigt am 8.2.1990}
}


@book{wendearchivderuniversitatrostock9.11.1989,
    author = {Gauck, Joachim and others},
    year = {9}, month = {1}, day = {9},
    title = {Predigt in der Rostocker Donnerstagsandacht am 9.11.1989 zu Lk 7,11-16; 1. Joh 3,18f.},
    address = {Rostock},
    shorttitle = {Predigt am 9.11.1989}
}
@book{wendearchivderuniversitatrostock26.10.1989,
    author = {Gauck, Joachim and Heldt, Thomas and Leefhelm, Kirsten},
    title = {Predigt in der Rostocker Donnerstagsandacht am 26.10.1989 zu Mt 5,44-47a},
    address = {Rostock},
    shorttitle = {Predigt am 26.10.1989}
}


@book{wendearchivderuniversitatrostock30.11.1989,
    author = {Gauck, Joachim},
    title = {Predigt in der Rostocker Donnerstagsandacht am 30.11.1989 zu Lk 21,34-36},
    address = {Rostock},
    shorttitle = {Predigt am 30.11.1989}
}
@book{wendearchivderuniversitatrostock23.11.1989,
    author = {Gauck, Joachim},
    title = {Predigt in der Rostocker Donnerstagsandacht am 23.11.1989 zu Jer 8,4-7},
    address = {Rostock},
    shorttitle = {Predigt am 23.11.1989}
}
@book{wendearchivderuniversitatrostock2.11.1989,
    author = {Gauck, Joachim and others},
    title = {Predigt in der Rostocker Donnerstagsandacht am 2.11.1989 zu Mt 7,15-17},
    address = {Rostock},
    shorttitle = {Predigt am 2.11.1989}
}
@book{wendearchivderuniversitatrostock19.10.1989,
    author = {Gauck, Joachim},
    title = {Predigt in der Rostocker Donnerstagsandacht am 19.10.1989 zu Amos 5,21-24},
    address = {Rostock},
    shorttitle = {Predigt am 19.10.1989}
}
@book{wendearchivderuniversitatrostock11.10.1990,
    author = {Gauck, Joachim and others},
    title = {Gottesdienst am 11.10.1990 in Rostock, St. Marien: Plakat und Presseerklärung},
    address = {Rostock},
    shorttitle = {Gottesdienst am 11.10.1990}
}


@book{wendearchivderuniversitatrostock14.12.1989,
    author = {Gauck, Joachim and others},
    title = {Predigt am 14.12.1989 zu Lk 1,46-56},
    address = {Rostock},
    shorttitle = {Predigt am 14.12.1989}
}
@book{wendearchivderuniversitatrostock1.2.1990,
    author = {Gauck, Joachim and others},
    title = {Predigt am 1.2.1990 zu Ex 3,7.10-14},
    address = {Rostock},
    shorttitle = {Predigt am 1.2.1990}
}
\end{filecontents}

\begin{filecontents}{literatur.bib}
@book{1wendearchivderuniversitatrostock7.12.1989,
    author = {Gauck, Joachim and Schmachtel, Jochen and others},
    title = {Predigt in der Rostocker Donnerstagsandacht am 7.12.1989 zu Jes 43,1-3a},
    address = {Rostock},
    shorttitle = {Predigt am 7.12.1989}
}


@book{1wendearchivderuniversitatrostock8.2.1990,
    author = {Gauck, Joachim and Schmachtel, Jochen and others},
    title = {Predigt in der Rostocker Donnerstagsandacht am 8.2.1990 zu Lk 9,61.62 und Mt 13,31f.},
    address = {Rostock},
    shorttitle = {Predigt am 8.2.1990}
}


@book{1wendearchivderuniversitatrostock9.11.1989,
    author = {Gauck, Joachim and others},
    year = {9}, month = {1}, day = {9},
    title = {Predigt in der Rostocker Donnerstagsandacht am 9.11.1989 zu Lk 7,11-16; 1. Joh 3,18f.},
    address = {Rostock},
    shorttitle = {Predigt am 9.11.1989}
}
@book{1wendearchivderuniversitatrostock26.10.1989,
    author = {Gauck, Joachim and Heldt, Thomas and Leefhelm, Kirsten},
    title = {Predigt in der Rostocker Donnerstagsandacht am 26.10.1989 zu Mt 5,44-47a},
    address = {Rostock},
    shorttitle = {Predigt am 26.10.1989}
}


@book{1wendearchivderuniversitatrostock30.11.1989,
    author = {Gauck, Joachim},
    title = {Predigt in der Rostocker Donnerstagsandacht am 30.11.1989 zu Lk 21,34-36},
    address = {Rostock},
    shorttitle = {Predigt am 30.11.1989}
}
@book{1wendearchivderuniversitatrostock23.11.1989,
    author = {Gauck, Joachim},
    title = {Predigt in der Rostocker Donnerstagsandacht am 23.11.1989 zu Jer 8,4-7},
    address = {Rostock},
    shorttitle = {Predigt am 23.11.1989}
}
@book{1wendearchivderuniversitatrostock2.11.1989,
    author = {Gauck, Joachim and others},
    title = {Predigt in der Rostocker Donnerstagsandacht am 2.11.1989 zu Mt 7,15-17},
    address = {Rostock},
    shorttitle = {Predigt am 2.11.1989}
}
@book{1wendearchivderuniversitatrostock19.10.1989,
    author = {Gauck, Joachim},
    title = {Predigt in der Rostocker Donnerstagsandacht am 19.10.1989 zu Amos 5,21-24},
    address = {Rostock},
    shorttitle = {Predigt am 19.10.1989}
}
@book{1wendearchivderuniversitatrostock11.10.1990,
    author = {Gauck, Joachim and others},
    title = {Gottesdienst am 11.10.1990 in Rostock, St. Marien: Plakat und Presseerklärung},
    address = {Rostock},
    shorttitle = {Gottesdienst am 11.10.1990}
}


@book{1wendearchivderuniversitatrostock14.12.1989,
    author = {Gauck, Joachim and others},
    title = {Predigt am 14.12.1989 zu Lk 1,46-56},
    address = {Rostock},
    shorttitle = {Predigt am 14.12.1989}
}
@book{1wendearchivderuniversitatrostock1.2.1990,
    author = {Gauck, Joachim and others},
    title = {Predigt am 1.2.1990 zu Ex 3,7.10-14},
    address = {Rostock},
    shorttitle = {Predigt am 1.2.1990}
}
\end{filecontents}

\addbibresource{literatur.bib}
\addbibresource{quellen.bib}

\DeclareSourcemap{
  \maps[datatype=bibtex]{
    \map{
      \perdatasource{quellen.bib}
      \step[fieldset=keywords, fieldvalue={quellen}]
    }
    \map{
      \perdatasource{literatur.bib}
      \step[fieldset=keywords, fieldvalue={literatur}]
      \step[fieldset=options, fieldvalue={,}, append]
      \step[fieldsource=options, notmatch=\regexp{.*useauthor\s*=\s*false.*}, final]
      \step[fieldsource=author, notmatch=\regexp{(.*)\s+and\s+others}, final]
      \step[fieldsource=author, match=\regexp{(.*)}, final]
      \step[fieldset=xref, fieldvalue={$1}]
      \step[entrynew={$1}, entrynewtype=specialauthor]
      \step[entrytarget={$1}, fieldset={keywords}, fieldvalue={literatur}]
      \step[entrytarget={$1}, fieldset={author}, fieldvalue={$1}]
    }
    \map{
      \perdatasource{literatur.bib}
      \step[fieldset=keywords, fieldvalue={literatur}]
      \step[fieldset=options, fieldvalue={,}, append]
      \step[fieldsource=options, notmatch=\regexp{.*useauthor\s*=\s*false.*}, final]
      \step[fieldsource=author, match=\regexp{(.*)\s+and\s+others}, final]
      \step[fieldsource=author, match=\regexp{(.*)(\s+and\s+others)}, final]
      \step[fieldset=xref, fieldvalue={$1$2}]
      \step[entrynew={$1$2}, entrynewtype=specialauthor]
      \step[entrytarget={$1$2}, fieldset={keywords}, fieldvalue={literatur}]
      \step[entrytarget={$1$2}, fieldset={author}, fieldvalue={$1$2}]
      \step[entrytarget={$1$2}, fieldset={sortname}, fieldvalue={$1andothers}]
    }
    \map{
      \perdatasource{literatur.bib}
      \step[notfield=author, final]
      \step[fieldset=options, fieldvalue={,}, append]
      \step[fieldsource=options, notmatch=\regexp{.*useeditor\s*=\s*false.*}, final]
      \step[fieldsource=editor, notmatch=\regexp{(.*)\s+and\s+others}, final]
      \step[fieldsource=editor, match=\regexp{(.*)}, final]
      \step[fieldset=xref, fieldvalue={$1}]
      \step[entrynew={$1}, entrynewtype=specialauthor]
      \step[entrytarget={$1}, fieldset={keywords}, fieldvalue={literatur}]
      \step[entrytarget={$1}, fieldset={editor}, fieldvalue={$1}]
    }
    \map{
      \perdatasource{literatur.bib}
      \step[notfield=author, final]
      \step[fieldset=options, fieldvalue={,}, append]
      \step[fieldsource=options, notmatch=\regexp{.*useeditor\s*=\s*false.*}, final]
      \step[fieldsource=editor, match=\regexp{(.*)\s+and\s+others}, final]
      \step[fieldsource=editor, match=\regexp{(.*)(\s+and\s+others)}, final]
      \step[fieldset=xref, fieldvalue={$1$2}]
      \step[entrynew={$1$2}, entrynewtype=specialauthor]
      \step[entrytarget={$1$2}, fieldset={keywords}, fieldvalue={literatur}]
      \step[entrytarget={$1$2}, fieldset={author}, fieldvalue={$1$2}]
      \step[entrytarget={$1$2}, fieldset={sortname}, fieldvalue={$1andothers}]
    }
    \map{
      \perdatasource{literatur.bib}
      \step[notfield=author, final]
      \step[notfield=editor, final]
      \step[fieldset=options, fieldvalue={,}, append]
      \step[fieldsource=options, notmatch=\regexp{.*usetranslator\s*=\s*false.*}, final]
      \step[fieldsource=options, match=\regexp{.*usetranslator.*}, final]
      \step[fieldsource=translator, notmatch=\regexp{(.*)\s+and\s+others}, final]
      \step[fieldsource=translator, match=\regexp{(.*)}, final]
      \step[fieldset=xref, fieldvalue={$1}]
      \step[entrynew={$1}, entrynewtype=specialauthor]
      \step[entrytarget={$1}, fieldset={options}, fieldvalue={usetranslator=true}]
      \step[entrytarget={$1}, fieldset={keywords}, fieldvalue={literatur}]
      \step[entrytarget={$1}, fieldset={translator}, fieldvalue={$1}]
    }
    \map{
      \perdatasource{literatur.bib}
      \step[notfield=author, final]
      \step[notfield=editor, final]
      \step[fieldset=options, fieldvalue={,}, append]
      \step[fieldsource=options, notmatch=\regexp{.*usetranslator\s*=\s*false.*}, final]
      \step[fieldsource=options, match=\regexp{.*usetranslator.*}, final]
      \step[fieldsource=translator, match=\regexp{(.*)\s+and\s+others}, final]
      \step[fieldsource=translator, match=\regexp{(.*)(\s+and\s+others)}, final]
      \step[fieldset=xref, fieldvalue={$1$2}]
      \step[entrynew={$1$2}, entrynewtype=specialauthor]
      \step[entrytarget={$1$2}, fieldset={keywords}, fieldvalue={literatur}]
      \step[entrytarget={$1$2}, fieldset={author}, fieldvalue={$1$2}]
      \step[entrytarget={$1$2}, fieldset={sortname}, fieldvalue={$1andothers}]
    }
    \map{
      \step[fieldsource=author, match=\regexp{(.*)\s+and\s+others}, final]
      \step[fieldset=sortname, fieldvalue={$1andothers}]
    }
    \map{
      \step[notfield=author, final]
      \step[fieldsource=editor, match=\regexp{(.*)\s+and\s+others}, final]
      \step[fieldset=sortname, fieldvalue={$1andothers}]
    }
    \map{
      \step[notfield=author, final]
      \step[notfield=editor, final]
      \step[fieldsource=options, notmatch=\regexp{.*usetranslator\s*=\s*false.*}, final]
      \step[fieldsource=options, match=\regexp{.*usetranslator.*}, final]
      \step[fieldsource=translator, match=\regexp{(.*)}, final]
      \step[fieldsource=translator, match=\regexp{(.*)\s+and\s+others}, final]
      \step[fieldset=sortname, fieldvalue={$1andothers}]
    }
  }  
}

\DeclareBibliographyDriver{specialauthor}{%
    \renewcommand*{\finentrypunct}{\addcolon}%
    \ifbool{cbx:idemfull}
    {}
    {\usebibmacro{author/editor+others/translator+others}%
        \ifnameundef{labelname}
        {}
        {\setunit{\labelnamepunct}\newblock}}%
    \usebibmacro{finentry}}

\makeatletter
\AtEveryBibitem{%
    \ifboolexpr{
        test {\ifkeyword{literatur}}
        and
        not test {\ifentrytype{specialauthor}}
        and
        test {\iffieldequals{namehash}{\bbx@lasthash}}
        and
        not test {\iffirstonpage}
    }
    {\renewbibmacro*{translator+othersstrg}{}%
        \renewbibmacro*{editor+othersstrg}{}}
    {}}
\makeatother

\pagestyle{empty}
\begin{document}
    \cite{1wendearchivderuniversitatrostock7.12.1989,1wendearchivderuniversitatrostock8.2.1990,1wendearchivderuniversitatrostock9.11.1989,1wendearchivderuniversitatrostock26.10.1989,1wendearchivderuniversitatrostock30.11.1989,1wendearchivderuniversitatrostock23.11.1989,1wendearchivderuniversitatrostock2.11.1989,1wendearchivderuniversitatrostock19.10.1989,1wendearchivderuniversitatrostock11.10.1990,1wendearchivderuniversitatrostock14.12.1989,1wendearchivderuniversitatrostock1.2.1990},
    \cite{wendearchivderuniversitatrostock7.12.1989,wendearchivderuniversitatrostock8.2.1990,wendearchivderuniversitatrostock9.11.1989,wendearchivderuniversitatrostock26.10.1989,wendearchivderuniversitatrostock30.11.1989,wendearchivderuniversitatrostock23.11.1989,wendearchivderuniversitatrostock2.11.1989,wendearchivderuniversitatrostock19.10.1989,wendearchivderuniversitatrostock11.10.1990,wendearchivderuniversitatrostock14.12.1989,wendearchivderuniversitatrostock1.2.1990}
    \printbibliography[keyword=literatur,title=Specially formatted bibliography]
    \printbibliography[keyword=quellen,title=Plain old'n sturdy bibliography]
\end{document}

相关内容