有人知道如何定制 Historische-Zeitschrift Style 以使其引用第一次出现的页面而不是仅仅脚注编号吗?
现在默认的引文是这样的:
参见 Ath., Ar. 1 (wie Anm. 1),S. 11。
这就是我需要的:
参见 Ath., Ar. 1 (wie Anm. 1, S. 1), S. 11。
这是我的 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
}
\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},
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},
Volume = {542},
Year = {2011}}
\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}}
\makeatother
%
\begin{document}
\blindtext\footcite[See][S. 56]{athanasius1998}
\blindtext\footcite[See][S. 22]{evagrius2011}
\pagebreak
\blindtext\footcite[See][S. 11]{athanasius1998}
\blindtext\footcite[See][S. 12]{evagrius2011}
\end{document}
提前感谢你的帮助!
答案1
这可以通过修改两个宏来实现:footcite:note
和footcite:save
。
note
本质上,我们复制了在保存页码时保存数字的样式的行为,\csxdef{cbx@page@\thefield{entrykey}}{\thepage}%
然后我们可以通过以下方式在注释编号后打印页码
\bibstring{page}\addnbspace
\@nameuse{cbx@page@\thefield{entrykey}}
将这些重新定义放在\makeatletter
和之间\makeatother
\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}%
\csxdef{cbx@page@\thefield{entrykey}}{\thepage}%
\csxdef{cbx@first@\thefield{entrykey}}{\the\value{instcount}}}
然后我们有 MWE
\documentclass[a4paper,11pt]{scrartcl}
\usepackage[latin1]{inputenc}
\usepackage{csquotes}
\usepackage{blindtext}
\usepackage{filecontents}
\usepackage{hyperref}
\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},
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},
Volume = {542},
Year = {2011}}
\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}%
\csxdef{cbx@page@\thefield{entrykey}}{\thepage}%
\csxdef{cbx@first@\thefield{entrykey}}{\the\value{instcount}}}
\makeatother
\begin{document}
\blindtext\footcite[See][S. 56]{athanasius1998}
\blindtext\footcite[See][S. 22]{evagrius2011}
\pagebreak
\blindtext\footcite[See][S. 11]{athanasius1998}
\blindtext\footcite[See][S. 12]{evagrius2011}
\end{document}
MWE 的相关部分现在显示
请注意,您的 MWE 包含一个小错误:您在行后\renewbibmacro*{footcite}
缺少一个。此外,您应该重新排列宏(如果它停留在 MWE 中的位置,在某些情况下会导致覆盖页码/脚注编号,而我们不希望出现这种情况),这样整个事情就变成了%
\printfield[default]{volume}}}}
footcite:save
biblatex
\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}}%
}