我使用 (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 书目中的编号条目