Beamer 中的参考书目编号采用作者年份样式

Beamer 中的参考书目编号采用作者年份样式

我使用 (biblatex+biber)style=authoryear书目,并使用 进行引用\footcite{}。我喜欢这种引用方式。但是,在书目中,我希望项目项目符号为数字,就像使用编号样式时一样(如在如何获取 Beamer 书目中的编号条目)。我怎样才能做同样的事情,但使用 footcite 计数器。


要求的最小示例:我想要下面的代码产生的输出,但我希望参考书目有一个项目项目符号,[i]其中 i 是脚注引用的编号(而不是文档图标)。

\documentclass{beamer}

\usepackage[backend=biber,
style=authoryear,
sorting=none,
bibencoding=ascii
]{biblatex}


\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
  @book{Knu86,
    author = {Knuth, Donald E.},
    year = {1986},
    title = {The \TeX book},
  }
  @book{Aut,
    author = {Author, A.},
    year = {2000},
    title = {A book},
  }
\end{filecontents*}

\addbibresource{\jobname.bib}

% \setbeamertemplate{bibliography item}{???} % Insert something that hopefully magically fixes everything.


\begin{document}

\begin{frame}
  Citation one \footcite{Knu86}
\end{frame}

\begin{frame}
  Citation two \footcite{Aut}
\end{frame}

\begin{frame}
  \frametitle{References}
    \printbibliography
\end{frame}

\end{document}

请注意,如果我使用了,那么包括\setbeamertemplate{bibliography item}{\insertbiblabel}将是解决方案style=authoryear

仅使用 footcite 进行引用,书目条目绝不会被引用两次。footcite 编号和书目编号之间有明确的一一对应关系,所以我希望 Tex 专家知道如何实现这一点。

答案1

尝试这个

\documentclass{beamer}

\usepackage[backend=biber, citestyle=numeric, bibstyle=authoryear, sorting=none, autocite=superscript, labeldateparts]{biblatex}
\addbibresource{biblatex-examples.bib}

\setbeamertemplate{bibliography item}{\insertbiblabel}

\makeatletter
\input{numeric.bbx}
\makeatother

\newbibmacro*{aycite:shorthand}{%
  \printtext[bibhyperref]{\printfield{shorthand}}}

\newbibmacro*{aycite:label}{%
  \iffieldundef{label}
    {\printtext[bibhyperref]{\printfield[citetitle]{labeltitle}}}
    {\printtext[bibhyperref]{\printfield{label}}}}

\newbibmacro*{aycite:labelyear+extrayear}{%
  \iffieldundef{labelyear}
    {}
    {\printtext[bibhyperref]{\printlabeldateextra}}}

\newbibmacro*{aycite}{%
  \iffieldundef{shorthand}
    {\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}}
       {\usebibmacro{aycite:label}%
        \setunit{\printdelim{nonameyeardelim}}}
       {\printnames{labelname}%
        \setunit{\printdelim{nameyeardelim}}}%
     \usebibmacro{aycite:labelyear+extrayear}}
    {\usebibmacro{aycite:shorthand}}}

\DeclareCiteCommand{\supercite}
  {}
  {\footnote[\thefield{labelnumber}]{\usebibmacro{prenote}\usebibmacro{aycite}\usebibmacro{postnote}}}
  {\supercitedelim}
  {}

\begin{document}

\begin{frame}
  Citation one \autocite[12]{sigfridsson}
\end{frame}

\begin{frame}
  Citation two \autocite{worman}
\end{frame}

\begin{frame}
  Citation three \autocite{nussbaum}
  Citation four \autocite{sigfridsson}
\end{frame}

\begin{frame}
  \frametitle{References}
  \printbibliography
\end{frame}

\end{document}

本质上我们authoryear结合numeric在 BibLaTeX 中将数字样式与作者年份样式相结合,此外,我们使用\supercite来为我们提供带有引用编号的脚注。ay宏的代码来自authoryear.cbx。数字印在参考书目中,这要归功于如何获取 Beamer 书目中的编号条目

示例第 1 页(脚注已移动) 示例第 2 页(脚注已移动) 示例第 3 页(脚注已移动) 示例第 4 页(裁剪)

相关内容