在 Historische Zeitschrift Style 中重复引用中添加页面

在 Historische Zeitschrift Style 中重复引用中添加页面

有人知道如何定制 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:notefootcite: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:savebiblatex

\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}}%
}

相关内容