历史杂志书目重复作者姓名

历史杂志书目重复作者姓名

我使用的是稍微定制的Historische Zeitschrift Style。当我在最后的文献列表中排版我的文件时,一些作者姓名会重复(尽管它们不应该重复)。如下所示:

在此处输入图片描述

红色标记的东西不应该在那里。我猜想这与我所拥有的包的定制有关。

这是我的 MWE:

\documentclass[a4paper,11pt]{scrartcl}
\usepackage[latin1]{inputenc}
\usepackage{csquotes}
\usepackage{blindtext}
\usepackage{filecontents}
\usepackage{hyperref}
\hypersetup{
    colorlinks,
     citecolor=black,
     filecolor=black,
     linkcolor=black,
     urlcolor=black
}
\usepackage{chngcntr}
\counterwithin*{footnote}{section}
\begin{filecontents}{\jobname.bib} 
@incollection{athanasius1998,
    Address = {Berlin/New York},
    Author = {{Athanasius Alexandrinus}},
    Booktitle = {Athanasius Werke - Die dogmatischen Schriften},
    Call-Number = {TH: Vb 17.02-1.1.2},
    Date-Added = {2010-10-16 13:24:30 +0200},
    Date-Modified = {2014-03-13 17:12:32 +0000},
    Editor = {Marin Tetz and others},
    Keywords = {source},
    Pages = {109-175},
    Publisher = {Walter de Gruyter},
    Read = {No},
    Series = {Urkunden zur Geschichte des Arianischen Streites 318-328},
    Shortauthor = {Ath.},
    Shorttitle = {Ar. 1},
    Usera = {SCh},
    Title = {Oratio I contra Arianos},
    Volume = {1, Tl. 1, Lfg. 2},
    Year = {1998}}
@incollection{evagrius2011,
    Address = {Paris},
    Author = {{Evagrius Scholasticus}},
    Booktitle = {{\'E}vagre Le Scholastique: Histoire Eccl{\'e}siastique - Livres I-III},
    Call-Number = {TH: Va1.05/542},
    Date-Added = {2013-08-24 12:11:20 +0000},
    Date-Modified = {2014-03-30 11:54:31 +0000},
    Editor = {Joseph Bidez and Leon Parmentier},
    Keywords = {source},
    Publisher = {Les {\'E}ditions du Cerf},
    Series = {Sources chr{\'e}tiennes},
    Shortauthor = {Evagr.},
    Shorttitle = {h.e.},
    Title = {Historia ecclesiastica},
    Usera = {SCh},
    Volume = {542},
    Year = {2011}}
@incollection{gregoire1978,
    Address = {Paris},
    Author = {{Gregorius Nazianzenus}},
    Booktitle = {Discours 27-31},
    Call-Number = {TH: Va 1.05 250},
    Date-Added = {2011-08-29 09:18:38 +0200},
    Date-Modified = {2014-05-29 10:45:06 +0000},
    Editor = {Paul Gallay},
    Keywords = {source},
    Pages = {226-275},
    Publisher = {Les {\'E}ditions du Cerf},
    Series = {Sources chr{\'e}tiennes},
    Shortauthor = {{Gr. Naz.}},
    Shorttitle = {or. 30},
    Title = {Oratio 30: De Filio (Theologica Quatra)},
    Usera = {SCh},
    Volume = {250},
    Year = {1978}}
@incollection{gregoire1974,
    Address = {Paris},
    Author = {{Gregorius Nazianzenus}},
    Booktitle = {Lettres th{\'e}ologiques},
    Call-Number = {TH: Va 1.05 208},
    Date-Added = {2010-04-22 16:22:42 +0200},
    Date-Modified = {2014-03-30 11:54:28 +0000},
    Editor = {Paul Gallay},
    Keywords = {source},
    Pages = {87-95},
    Publisher = {Les {\'E}ditions du Cerf},
    Series = {Sources chr{\'e}tiennes},
    Shortauthor = {{Gr. Naz.}},
    Shorttitle = {ep. 202},
    Title = {Epistula 202: Ad Nectarium Constantinopolitanum},
    Usera = {SCh},
    Volume = {208},
    Year = {1974}}
@incollection{gregorius1981,
    Address = {Paris},
    Author = {{Gregorius Nazianzenus}},
    Booktitle = {Discours 24-26},
    Date-Added = {2014-05-29 12:04:21 +0000},
    Date-Modified = {2014-05-29 12:05:35 +0000},
    Editor = {Justin Mossay},
    Keywords = {source},
    Pages = {40-85},
    Publisher = {Les {\'E}ditions du Cerf},
    Series = {Sources chr{\'e}tiennes},
    Shortauthor = {{Gr. Naz.}},
    Shorttitle = {or. 24},
    Title = {Oratio 24: In laudem s. Cypriani},
    Usera = {SCh},
    Volume = {284},
    Year = {1980}}
@incollection{gregorius1990,
    Address = {Paris},
    Author = {{Gregorius Nazianzenus}},
    Booktitle = {Discours 38-41},
    Date-Added = {2014-03-27 09:58:33 +0000},
    Date-Modified = {2014-03-30 11:53:58 +0000},
    Editor = {Claudio Moreschini},
    Keywords = {source},
    Pages = {104-148},
    Publisher = {Les {\'E}ditions du Cerf},
    Series = {Sources chr{\'e}tiennes},
    Shortauthor = {{Gr. Naz.}},
    Shorttitle = {or. 38},
    Title = {Oratio 38: In Theophania},
    Usera = {SCh},
    Volume = {358},
    Year = {1990}}
@incollection{gregorius1979/1,
    Address = {Paris},
    Author = {{Gregorius Nazianzenus}},
    Booktitle = {Discours 27-31},
    Date-Added = {2014-03-27 09:54:29 +0000},
    Date-Modified = {2014-03-30 18:41:48 +0000},
    Editor = {Paul Gallay},
    Keywords = {source},
    Pages = {176-225},
    Publisher = {Les {\'E}ditions du Cerf},
    Series = {Sources chr{\'e}tiennes},
    Shortauthor = {{Gr. Naz.}},
    Shorttitle = {or. 29},
    Title = {Oratio 29: Theologica III},
    Usera = {SCh},
    Volume = {250},
    Year = {1979}}

@incollection{gregoire1978/2,
    Address = {Paris},
    Author = {{Gregorius Nazianzenus}},
    Booktitle = {Discours 27-31},
    Call-Number = {TH: Va 1.05 250},
    Date-Added = {2014-03-26 18:56:20 +0000},
    Date-Modified = {2014-03-30 11:54:18 +0000},
    Editor = {Paul Gallay},
    Keywords = {source},
    Pages = {276-343},
    Publisher = {Les {\'E}ditions du Cerf},
    Series = {Sources chr{\'e}tiennes},
    Shortauthor = {{Gr. Naz.}},
    Shorttitle = {or. 31},
    Title = {Oratio 31: Theologica V},
    Usera = {SCh},
    Volume = {250},
    Year = {1978}}

@incollection{gregorius1978,
    Address = {Paris},
    Author = {{Gregorius Nazianzenus}},
    Booktitle = {Discours 1-3},
    Date-Added = {2014-03-26 18:48:54 +0000},
    Date-Modified = {2014-03-30 18:42:08 +0000},
    Keywords = {source},
    Pages = {84-241},
    Publisher = {Les {\'E}ditions du Cerf},
    Series = {Sources chr{\'e}tiennes},
    Shortauthor = {{Gr. Naz.}},
    Shorttitle = {or. 2},
    Title = {Oratio 2: Apologetica},
    Usera = {SCh},
    Volume = {247},
    Year = {1978}}

@incollection{gregorius1990/2,
    Address = {Paris},
    Author = {{Gregorius Nazianzenus}},
    Booktitle = {Discours 38-41},
    Date-Added = {2014-03-26 17:58:16 +0000},
    Date-Modified = {2014-03-30 11:53:48 +0000},
    Editor = {Claudio Moreschini},
    Keywords = {source},
    Pages = {150-197},
    Publisher = {Les {\'E}ditions du Cerf},
    Series = {Sources chr{\'e}tiennes},
    Shortauthor = {{Gr. Naz.}},
    Shorttitle = {or. 39},
    Title = {Oratio 39: In sancta lumina},
    Usera = {SCh},
    Volume = {358},
    Year = {1990}}

@incollection{gregorius1992,
    Address = {Paris},
    Author = {{Gregorius Nazianzenus}},
    Booktitle = {Discours 42-43},
    Date-Added = {2014-03-26 17:58:15 +0000},
    Date-Modified = {2014-03-30 11:53:44 +0000},
    Editor = {Jean Bernardi},
    Keywords = {source},
    Pages = {48-115},
    Publisher = {Les {\'E}ditions du Cerf},
    Series = {Sources chr{\'e}tiennes},
    Shortauthor = {{Gr. Naz.}},
    Shorttitle = {or. 42},
    Title = {Oratio 42: Supremum vale},
    Usera = {SCh},
    Volume = {384},
    Year = {1992}}

@incollection{gregorius1990/1,
    Address = {Paris},
    Author = {{Gregorius Nazianzenus}},
    Booktitle = {Discours 38-41},
    Date-Added = {2014-03-26 17:58:15 +0000},
    Date-Modified = {2014-03-30 18:41:25 +0000},
    Editor = {Claudio Moreschini},
    Keywords = {source},
    Pages = {198-311},
    Publisher = {Les {\'E}ditions du Cerf},
    Series = {Sources chr{\'e}tiennes},
    Shortauthor = {{Gr. Naz.}},
    Shorttitle = {or. 40},
    Title = {Oratio 40: In sanctum baptisma},
    Usera = {SCh},
    Volume = {358},
    Year = {1990}}

@incollection{gregorius1980/1,
    Address = {Paris},
    Author = {{Gregorius Nazianzenus}},
    Booktitle = {Discours 20-23},
    Date-Added = {2014-03-26 17:42:35 +0000},
    Date-Modified = {2014-03-30 11:54:01 +0000},
    Editor = {Justin Mossay},
    Keywords = {source},
    Pages = {220-258},
    Publisher = {Les {\'E}ditions du Cerf},
    Series = {Sources chr{\'e}tiennes},
    Shortauthor = {{Gr. Naz.}},
    Shorttitle = {or. 22},
    Title = {Oratio 22: De pace II},
    Usera = {SCh},
    Volume = {270},
    Year = {1980}}

@incollection{gregorius1978/1,
    Address = {Paris},
    Author = {{Gregorius Nazianzenus}},
    Booktitle = {Discours 1-3},
    Date-Added = {2014-03-26 17:42:34 +0000},
    Date-Modified = {2014-03-30 18:41:59 +0000},
    Keywords = {source},
    Pages = {241-255},
    Publisher = {Les {\'E}ditions du Cerf},
    Series = {Sources chr{\'e}tiennes},
    Shortauthor = {{Gr. Naz.}},
    Shorttitle = {or. 3},
    Title = {Oratio 3: Ad eos qui ipsum acciverant nec occurrerant},
    Usera = {SCh},
    Volume = {247},
    Year = {1978}}

@book{moreschini1997,
    Address = {Oxford},
    Author = {{Gregorius Nazianzenus}},
    Call-Number = {Googlebooks},
    Date-Added = {2014-03-26 15:07:53 +0000},
    Date-Modified = {2014-03-26 15:14:45 +0000},
    Editor = {Claudio Moreschini and},
    Keywords = {source},
    Publisher = {Clarendon Press},
    Series = {Oxford Theological Monographs},
    Title = {St. Gregory of Nazianzus: \textit{Poemata Arcana}},
    Translator = {Donald Sykes},
    Year = {1997}}

@book{white1996,
    Address = {Cambridge},
    Author = {{Gregorius Nazianzenus}},
    Call-Number = {Googlebooks},
    Date-Added = {2014-03-26 15:05:53 +0000},
    Date-Modified = {2014-03-26 15:07:22 +0000},
    Editor = {Carolinne White},
    Keywords = {source},
    Publisher = {Cambridge University Press},
    Title = {Gregory of Nazianzus: Autobiographical Poems},
    Translator = {Carolline White},
    Year = {1996}}
@book{gregorius1862,
    Address = {Parisiis},
    Author = {{Gregorius Nazianzenus}},
    Call-Number = {PDF},
    Date-Added = {2014-03-15 15:58:32 +0000},
    Date-Modified = {2014-03-31 08:01:30 +0000},
    Editor = {Jacques Paul Migne},
    Keywords = {source},
    Publisher = {Accurante J.-P. Migne},
    Series = {Patrologiae cursus completus: Series Graeca},
    Shortauthor = {{Gr. Naz.}},
    Shorttitle = {hym. 30},
    Title = {Hymnus 30: Ad Deum},
    Usera = {PG},
    Volume = {37},
    Year = {1862}}
@incollection{gregorius1980,
    Address = {Paris},
    Author = {{Gregorius Nazianzenus}},
    Booktitle = {Discours 20-23},
    Date-Added = {2013-04-25 14:10:40 +0000},
    Date-Modified = {2014-03-30 11:54:04 +0000},
    Editor = {Justin Mossay},
    Keywords = {source},
    Pages = {110-193},
    Publisher = {Les {\'E}ditions du Cerf},
    Series = {Sources chr{\'e}tiennes},
    Shortauthor = {{Gr. Naz.}},
    Shorttitle = {or. 21},
    Title = {Oratio 21: In laudem Athanasii},
    Usera = {SCh},
    Volume = {270},
    Year = {1980}}
@incollection{gregoire1974/2,
    Address = {Paris},
    Author = {{Gregorius Nazianzenus}},
    Booktitle = {Lettres th{\'e}ologiques},
    Call-Number = {TH: Va 1.05 208},
    Date-Added = {2012-05-04 16:46:23 +0200},
    Date-Modified = {2014-03-30 11:54:26 +0000},
    Editor = {Paul Gallay},
    Keywords = {source},
    Pages = {37-69},
    Publisher = {Les {\'E}ditions du Cerf},
    Series = {Sources chr{\'e}tiennes},
    Shortauthor = {{Gr. Naz.}},
    Shorttitle = {ep. 101},
    Title = {Epistula 101: Ad Cledonium presbyterum contra Apollinarium},
    Usera = {SCh},
    Volume = {208},
    Year = {1974}}
\end{filecontents}
\usepackage[ngerman]{babel}
\usepackage[style=historische-zeitschrift, maxnames=2, hyperref=true, backref=true, backrefstyle=none, backend=bibtex,idemtracker=true]{biblatex}
\bibliography{\jobname}
%
\makeatletter
\renewbibmacro*{footcite}{%
  \global\boolfalse{cbx@loccit}%
  \global\boolfalse{cbx@seenote}% NEW!
  \ifciteseen
    {\iffieldundef{shorthand}
       {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage}
          {\usebibmacro{footcite:ibid}}
          {\usebibmacro{footcite:note}}}
       {\usebibmacro{footcite:shorthand}}}
       {\iffieldundef{usera}
         {\usebibmacro{footcite:full}}{\printnames{author}%
       \setunit{\addcomma\space}%
       \printfield{title}\isdot%
         {\setunit{\addcomma\space}%
          \usebibmacro{in:}%
          \printfield{usera}%
          \setunit*{\addspace}%
          \printfield[default]{volume}}}}%
     \usebibmacro{footcite:save}}

%

\renewbibmacro*{footcite:note}{%
  \global\booltrue{cbx@seenote}% NEW!
  \ifnameundef{labelname}
    {\printfield{label}}
    {\printnames{labelname}}%
  \ifsingletitle
    {}
    {\setunit*{\addcomma\space}%
     \printfield[title]{labeltitle}}%
  \setunit*{\addspace}%<--- CHANGED
  \printtext{%
    \bibhyperlink{\thefield{entrykey}:%
                  \@nameuse{cbx@first@\thefield{entrykey}}}{%
      \printtext{\bibleftparen}%
      \bibstring{seenote}\addnbspace
      \@nameuse{cbx@note@\thefield{entrykey}}%
      \setunit{\addcomma\space}%
      \bibstring{page}\addnbspace
      \@nameuse{cbx@page@\thefield{entrykey}}}}}

\renewbibmacro*{footcite:save}{%
  \ifundef\@thefnmark
    {\ifundef\@theenmark % endnotes.sty
       {\csgdef{cbx@note@\thefield{entrykey}}{%
          \BibliographyWarning{Missing footnote mark}\textbf{??}}}
       {\global\cslet{cbx@note@\thefield{entrykey}}\@theenmark}}
    {\global\cslet{cbx@note@\thefield{entrykey}}\@thefnmark}%
  \global\cslet{cbx@page@\thefield{entrykey}}\thepage
  \csxdef{cbx@first@\thefield{entrykey}}{\the\value{instcount}}}

% NO PAGES IN INCOLLECTION FOOTNOTES BUT PAGES IN BIBLIOGRAPHY
%
\renewbibmacro*{chapter+pages}{%
  \printfield{chapter}%
  \newunit}
\makeatletter
\renewenvironment{thebibliography}
     {\renewbibmacro*{chapter+pages}{%
  \printfield{chapter}%
  \setunit*{\addcomma\space}%
  \printfield{pages}%
  \newunit}}
\makeatother
%
\begin{document}
\section{First section}
\blindtext\footcite[See][S. 56]{athanasius1998}
\blindtext\footcite[See][S. 22]{evagrius2011}
\pagebreak
\section{Second section}
\blindtext\footcite[Vgl.][S. ]{gregoire1974,gregoire1974/2,gregoire1978,gregoire1978/2,gregorius1862,gregorius1978,gregorius1978/1,gregorius1979/1,gregorius1980,gregorius1980/1,gregorius1981,gregorius1990,gregorius1990/1,gregorius1990/2,gregorius1992}
\blindtext\footcite[See][S. 12]{evagrius2011}
\pagebreak
\section{Third section}
\blindtext\footcite[See][S. 11]{athanasius1998}
\blindtext\footcite[See][S. 12]{evagrius2011}
\pagebreak
\printbibliography
\end{document}

答案1

首先观察一下条目那些用作者姓名代替破折号的列表不包含字段editor。一旦它们有了editor,一切都会按预期工作。为了说明这一点,请考虑以下示例:

\documentclass[a4paper,11pt]{scrartcl}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib} 
@incollection{1,author={a},title={1},editor={b}}
@incollection{2,author={a},title={2},editor={c}}
@incollection{3,author={a},title={3}}
@incollection{4,author={a},title={4},editor={d}}
@book{5,author={a},title={5},editor={d}}
@incollection{6,author={a},title={6},translator={e}}
@incollection{7,author={a},title={7},editor={d}}
\end{filecontents}
\usepackage[style=historische-zeitschrift]{biblatex}
\bibliography{\jobname}

\begin{document}
\nocite{*}
\printbibliography
\end{document}

其结果是

示例的裁剪 PDF

有几点需要注意:

  1. editor破折号的位置与否无关。
  2. 它也不关心条目类型(@bookvs @incollection
  3. 如果该editor字段留空(缺失),则作者姓名将显示在下一个条目,即没有破折号。
  4. 就这一点而言,该translator领域并不充当该领域的替代品。editor

这种行为的原因在于比布拉特克斯风格的作品。

同一作者在参考书目中重复出现的处理历史杂志风格是bibmacro author历史杂志

\renewbibmacro*{author}{%
  \ifboolexpr{
    test \ifuseauthor
    and
    not test {\ifnameundef{author}}
  }
    {\usebibmacro{bbx:dashcheck}
       {\bibnamedash}
       {\printnames{author}%
     \usebibmacro{bbx:savehash}}}%
    {\global\undef\bbx@lasthash}}

这将检查是否author应使用字段以及字段是否为空。如果author不为空,则由 决定是否用 替换作者,该 在同一文件中由\bibnamedash定义bibmacro bbx:dashcheck

\newbibmacro*{bbx:dashcheck}[2]{%
  \ifboolexpr{
    test {\iffieldequals{fullhash}{\bbx@lasthash}}
    and
    not test \iffirstonpage
  }
    {#1}
    {#2}}

这有什么用?它将字段fullhash与进行比较\bbx@lasthash应该只是fullhash最后一个条目的。如果它们相同,它将调用第一个参数(在author),即\bibnamedash,否则调用第二个参数,即打印作者的姓名。

但是,如果author字段为空(未定义),则会出现\global\undef\bbx@lasthash最后一行的情况author bibmacro,即的值为\bbx@lasthash“reset”。特别是,下一个条目肯定不会以破折号开头,因为的比较\bbx@lasthash总是会产生错误。

在文件中搜索 的出现\bbx@lasthash,我们还会在 中看到这种行为,而且bibmacro editor——更微妙的是——在 中有editorincoll一个特殊的bibmacro用于打印editor字段的@incollection

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

换句话说,如果字段未定义,则最后一行bibmacro将重置,并停止下一个条目的显示。\bbx@lasthasheditor\bibdash

这个问题有几种解决方案:

  1. 最简单的解决方案是添加一个editor
  2. \global\undef\bbx@lasthash否则,您可以简单地从 中删除editorincoll。但是,这可能会产生不良后果,例如,当处理没有 的条目时author
  3. “最佳”解决方案可能是为每个字段添加不同的检查,即一个dashcheckforauthor和一个 for,editor以便只有当两个字段确实都为空时才会发生这种重置。

相关内容