beamer + biblatex:authoryear 导致“\insertbiblabel”出现问题

beamer + biblatex:authoryear 导致“\insertbiblabel”出现问题

介绍

  • 我想在 中使用biblatex( biber) beamer
  • 我也想用一下这个风格authoryear
  • 为了<Author YYYY>在参考书目中使用引用标签(例如)而不是符号,我使用\setbeamertemplate{bibliography item}{\insertbiblabel},请参阅这里例如。
  • 遗憾的是,这会导致错误! Undefined control sequence.\beamer@@tmpl@bibliography item ->\insertbiblabel

问题

  1. 您能重现这个问题吗?
  2. 你有解决方案吗?

\documentclass{beamer}

\usepackage[
    style = authoryear % (un)comment for testing
    ]{biblatex}%

\addbibresource{biblatex-examples.bib}
\setbeamertemplate{bibliography item}{\insertbiblabel} % (un)comment for testing

\begin{document}

\section{Section}
\begin{frame}
\cite{doody}
\end{frame}

\begin{frame}[allowframebreaks]
\frametitle{References}
    \printbibliography
\end{frame}

\end{document} 

我的系统是最新的 TeXLive 2020:This is pdfTeX, Version 3.14159265-2.6-1.40.21 (TeX Live 2020/W32TeX) (preloaded format=pdflatex 2021.3.2) 2 MAR 2021 23:22

答案1

注意

\setbeamertemplate{bibliography item}{\insertbiblabel}

\setbeamertemplate{bibliography item}[text]

是等效的(假设标准定义),所以这个答案同样适用于这两个定义。


使用 时biblatex\insertbiblabel仅适用于具有带标签的参考书目列表的样式(numericalphabetic样式;要了解“带标签的”参考书目列表的含义,请比较 和 的输出style=alphabetic,style=authoryear,\documentclass{article}样式authoryear没有带标签的参考书目列表,并且不会重复参考书目中的引用标签。

因此authoryear根本没有标签可以\insertbiblabel插入。

我只会用

\documentclass{beamer}

\usepackage[style=authoryear]{biblatex}

\addbibresource{biblatex-examples.bib}

\setbeamertemplate{bibliography item}{}

\begin{document}
\begin{frame}
  \cite{doody,sigfridsson}
\end{frame}

\begin{frame}[allowframebreaks]
  \frametitle{References}
  \printbibliography
\end{frame}
\end{document}

Sigfridsson, Emma 和 Ulf Ryde (1998)。“从电势和电势矩推导原子电荷的方法比较”

它提供的输出与 基本相同\documentclass{article}


如果要在参考书目中重复引用标签,以便于查找条目,可以使用biblatex-ext如下方法

\documentclass{beamer}

\usepackage[backend=biber,
  bibstyle=ext-authoryear,
  citestyle=ext-authoryear,
  sorting=nyt,
  introcite=label,
]{biblatex}

\addbibresource{biblatex-examples.bib}

\setbeamertemplate{bibliography item}{\insertbiblabel}

% avoid error about \insertbiblabel being undefined
\preto{\bibsetup}{\providecommand*{\insertbiblabel}{}}

\begin{document}
\begin{frame}
  \cite{doody,sigfridsson}
\end{frame}

\begin{frame}[allowframebreaks]
  \frametitle{References}
  \printbibliography
\end{frame}
\end{document}

Sigfridsson 和 Ryde 1998//Sigfridsson, Emma 和 Ulf Ryde (1998)。“从静电势和力矩推导原子电荷的方法比较”。在:《计算化学杂志》19.4,第 377-395 页。doi:10.1002/(SICI)1096-987X(199803)19:4<377::AID-JCC1>3.0.CO;2-P。

相关内容