我使用的是稍微定制的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}
其结果是
有几点需要注意:
editor
破折号的位置与否无关。- 它也不关心条目类型(
@book
vs@incollection
) - 如果该
editor
字段留空(缺失),则作者姓名将显示在下一个条目,即没有破折号。 - 就这一点而言,该
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@lasthash
editor
\bibdash
这个问题有几种解决方案:
- 最简单的解决方案是添加一个
editor
。 \global\undef\bbx@lasthash
否则,您可以简单地从 中删除editorincoll
。但是,这可能会产生不良后果,例如,当处理没有 的条目时author
。- “最佳”解决方案可能是为每个字段添加不同的检查,即一个
dashcheck
forauthor
和一个 for,editor
以便只有当两个字段确实都为空时才会发生这种重置。