让 biblatex-chicago 在后续注释中引用第一次提及

让 biblatex-chicago 在后续注释中引用第一次提及

在 biblatex-chicago 的注释版本中,第一次引用会在脚注中给出完整引用,而任何后续引用只会给出姓氏和简称。有没有办法在使用完整引用的地方添加脚注编号?

因此在示例中:

\documentclass{memoir}
\usepackage[notes]{biblatex-chicago}
\usepackage{filecontents}

\begin{filecontents}{biblio.bib}
    @book{book1,
        title = {First Book title},
        author = {Author, The},
        location = {Place},
        publisher = {Publisher},
        date = {2020},
    }
    @book{book2,
        title = {Second Book title},
        author = {Author, Another},
        location = {Place},
        publisher = {Publisher},
        date = {2020},
    }
\end{filecontents}
\bibliography{biblio}
\begin{document}
Here is\footcite{book1} some\footcite{book2} text as filler.\footcite{book1}

\end{document}

注释 3 的输出应为“作者,第一本书的标题(参考文献 1)”,而不仅仅是“作者,第一本书的标题”

为了使其正常工作,我还要求在每章开始时重置引用。

答案1

标准风格verbose-note提供了这样的选项,所以我们可以尝试将其代码移植到其中biblatex-chicago

\documentclass{memoir}
\usepackage[notes]{biblatex-chicago}

% Taken from verbose-note.cbx
\newtoggle{cbx:pageref}
\DeclareBibliographyOption[boolean]{pageref}[true]{%
  \settoggle{cbx:pageref}{#1}%
  \iftoggle{cbx:pageref}
    {\ExecuteBibliographyOptions{pagetracker}}
    {}}

\newbibmacro*{seenote}{%
  \printtext[parens]{%
    \bibstring{seenote}\addnbspace
    \ref{cbx@\csuse{cbx@f@\thefield{entrykey}}}%
    \iftoggle{cbx:pageref}
      {\ifsamepage{\the\value{instcount}}
                  {\csuse{cbx@f@\thefield{entrykey}}}
         {}
         {\addcomma\space\bibstring{page}\addnbspace
          \pageref{cbx@\csuse{cbx@f@\thefield{entrykey}}}}}
      {}}%
}

% Simplified version of chicago-notes.cbx's definition
% cf. also the definition in verbose-note.cbx
\renewbibmacro*{footcite:save}{%
  \iffootnote
    {\csxdef{cbx@f@\thefield{entrykey}}{\the\value{instcount}}%
     \label{cbx@\the\value{instcount}}}%
    {}}%

\makeatletter
% Just add a call to \usebibmacro{seenote} to the definition
\renewbibmacro*{cite:short}[1]{%
  \global\let\cms@pnsaved\undefined%
  \ifcsundef{cite:short:#1}%
    {\csuse{cite:short:book}}%
    {\csuse{cite:short:#1}}%
   \setunit{\addspace}%
   \usebibmacro{seenote}}%
\makeatother


\begin{filecontents}{\jobname.bib}
@book{book1,
  title     = {First Book title},
  author    = {Author, The},
  location  = {Place},
  publisher = {Publisher},
  date      = {2020},
}
@book{book2,
  title     = {Second Book title},
  author    = {Author, Another},
  location  = {Place},
  publisher = {Publisher},
  date      = {2020},
}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
Here is\footcite{book1} some\footcite{book2} text as filler.\footcite{book1}
\end{document}

作者、第一本书的书名(见注释 1)。

编辑已更新至 2020/04/20 版biblatex-chicago。请参阅旧版本代码的编辑历史。

相关内容