biblatex:如何将个别参考书目条目显示为脚注?

biblatex:如何将个别参考书目条目显示为脚注?

使用 BibLaTeX (+ Biber) 书目,我希望一些特别重要的条目也作为脚注显示在引用它们的页面上。实际上,这是关于 Beamer 演示文稿的,但我的问题主要与书目条目有关,所以让我们保持简单。脚注应该看起来像常规书目条目,并且该方法应该适用于任何引用样式,而不仅仅是数字样式。\footcite不符合这些要求,也不符合这个老问题

原则上,下面的代码实现了这一点。(只是\vspace为了使下图更紧凑。)

\documentclass{article}
\usepackage[style=alphabetic]{biblatex}
\bibliography{biblatex-examples}

\newcommand*\citeWithEntry[1]{%
  \begingroup%
  \renewcommand\thefootnote{}%
  \cite{#1}\footnote{\cite{#1}~\fullcite{#1}}%
  \addtocounter{footnote}{-1}%
  \endgroup%
}%

\begin{document}
\vspace*{\fill}
Some text with an important reference~\citeWithEntry{hammond}.
And then, we have the same citation again~\citeWithEntry{hammond}.
\end{document}

编译后的 MWE 的屏幕截图

我的问题:

  • 这里使用两次有什么副作用吗\cite?或者还有其他方法可以打印引用标签吗?
  • 当一个引用出现多次时,如何避免多次打印相同的条目?
  • 有没有更“惯用”的解决方案biblatex
  • 补充:我可以不使用专用命令来实现此效果吗?例如,BibLaTeX 支持类别和关键字。我可以为任何\cite引用具有特定关键字或类别的条目自动生成此脚注参考书目条目吗?

答案1

结合两种变体这个答案,我之前的搜索没有找到,除了奖励问题之外,我可以解决所有问题:

\documentclass{article}
\usepackage[style=alphabetic,citetracker=strict]{biblatex}
\bibliography{biblatex-examples}

\makeatletter
\newrobustcmd{\mkbibblfootnote}[1]{%
  \iftoggle{blx@footnote}{%
    \blx@warning{Nested notes}%
    \addspace\mkbibparens{#1}%
  }
  {%
    \unspace
    \ifnum\blx@notetype=\tw@
      \expandafter\@firstoftwo
    \else
      \expandafter\@secondoftwo
    \fi
    {\csuse{blx@theendnote}{\protecting{\blxmkbibnote{end}{#1}}}}
    {\csuse{blfootnote}{\protecting{\blxmkbibnote{foot}{#1}}}}
  }%
}
\makeatother

\newcommand\blfootnote[1]{\begingroup\let\thefootnote\relax\footnotetext{#1}\endgroup}

\DeclareCiteCommand{\citeWithEntry}
  {\usebibmacro{prenote}}
  {%
    \mkbibbrackets{\usebibmacro{cite}}%
    \ifciteseen{}{%
      \mkbibblfootnote{%
        \mkbibbrackets{\usebibmacro{cite}}%
        \setunit{\addspace}%
        \usedriver
          {\DeclareNameAlias{sortname}{default}}
          {\thefield{entrytype}}%
      }%
    }%
  }
  {\multicitedelim}
  {\usebibmacro{postnote}}

\newbibmacro*{morecite}{%
  \printnames{labelname}%
  \setunit{\addspace}%
  \printfield[parens]{year}%
  \setunit{\nametitledelim}%
  \printfield[citetitle]{labeltitle}}


\begin{document}
\vspace*{\fill}
Some text with an important reference~\citeWithEntry{hammond}.
And then, we have the same citation again~\citeWithEntry{hammond}.
\end{document}

MWE 的屏幕截图

相关内容