Biblatex 脚注引用:参考相同引用上一个脚注编号

Biblatex 脚注引用:参考相同引用上一个脚注编号

我一直在为论文使用 LaTeX,总体来说,我对我的设置非常满意。但是有一个问题我无法理解,也找不到解决方案。使用 Biber 和biblatexverbose-trad1作为选项,我希望每次调用 opcit 时,输出都是

{作者} 同上。

它是

{作者} 同上。#REF

其中 #REF 指的是引用首次出现的脚注编号。

这是 M(n)WE:

%!TEX program = xelatex
% Add packages
\documentclass[12pt]{article}
\usepackage[english,main=french]{babel}
\usepackage{fontspec}
\usepackage[autostyle=true]{csquotes}
\usepackage[citestyle=ext-verbose-trad1, articlein=false, bibstyle=ext-authortitle]{biblatex}
\addbibresource{ref.bib}
\usepackage{hyperref}

% Citation settings
\DefineBibliographyStrings{french}{opcit = {\textit{supra}, note \ref{}},} %<= I guess it'd go there?

% Test proper
\begin{document}
    Some text string\autocite{A}, some other\autocite{B}, some more\autocite{A}.
\end{document}

我希望脚注输出的位置是:

  1. 作者A,完整参考
  2. 作者B,完整参考
  3. 作者 A,上文,注释 1。

这个答案是可行的但这会非常繁琐,而且只能在最后完成,一旦引用固定下来,这就违背了 LaTeX 等语言的初衷。无论如何,我都无法应付。

答案1

如果您只是想要一种verbose引用第一个脚注和“ibidem”的样式,您可以使用(ext-)verbose-inote

\documentclass[12pt]{article}
\usepackage[english,main=french]{babel}
\usepackage[autostyle=true]{csquotes}
\usepackage{fontspec}
\usepackage[style=ext-verbose-inote, articlein=false]{biblatex}
\usepackage{hyperref}

\DefineBibliographyStrings{french}{
  seenote = {supra, note},
}

\addbibresource{biblatex-examples.bib}


\begin{document}
  Some text string\autocite{sigfridsson},
  some other\autocite{worman},
  some more\autocite{sigfridsson}.
\end{document}

Sigfridsson 等 Ryde,上文,注 1。


如果要保留 的所有其他学术缩写verbose-trad1,则需要做更多工作。在此示例中,我仅替换同上。不是位置同上。或任何其他缩写。

\documentclass[12pt]{article}
\usepackage[english,main=french]{babel}
\usepackage[autostyle=true]{csquotes}
\usepackage{fontspec}
\usepackage[style=ext-verbose-trad1, articlein=false]{biblatex}
\usepackage{hyperref}

\DefineBibliographyStrings{french}{
  seenote = {supra, note},
}

\newtoggle{cbx:pageref}

\DeclareBibliographyOption[boolean]{pageref}[true]{%
  \settoggle{cbx:pageref}{#1}%
  \iftoggle{cbx:pageref}
    {\ExecuteBibliographyOptions{pagetracker}}
    {}}

\DeclareFieldFormat{bibhyperlink}{%
  \bibhyperlink{%
    \thefield{entrykey}:\csuse{cbx@\iffootnote{f}{t}@\thefield{entrykey}}}{#1}}
\DeclareFieldFormat{bibhypertarget}{%
  \bibhypertarget{\thefield{entrykey}:\the\value{instcount}}{#1}}

\providecommand*{\mkibid}[1]{#1}

\renewbibmacro*{cite:save}{%
  \csxdef{cbx@lastcite@\thefield{entrykey}}{\the\value{instcount}}%
  \iffootnote
    {\csxdef{cbx@f@\thefield{entrykey}}{\the\value{instcount}}%
     \label{cbx@\the\value{instcount}}}
    {}%
  \global\boolfalse{cbx:noidem}}

\newbibmacro{seenote}{%
  \printtext{%
    \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}}}}}
      {}}}

\renewbibmacro*{cite:opcit}{%
  \iffootnote
    {\usebibmacro{seenote}}
    {\printtext[bibhyperlink]{\bibstring[\mkibid]{opcit}}}}

\addbibresource{biblatex-examples.bib}


\begin{document}
  Some text string\autocite{sigfridsson},
  some other\autocite{worman},
  some more\autocite{sigfridsson}.
\end{document}

相关内容