![使用 BibTeX 在 Beamer 演示文稿中为多个参考文献设置逗号分隔符](https://linux22.com/image/415640/%E4%BD%BF%E7%94%A8%20BibTeX%20%E5%9C%A8%20Beamer%20%E6%BC%94%E7%A4%BA%E6%96%87%E7%A8%BF%E4%B8%AD%E4%B8%BA%E5%A4%9A%E4%B8%AA%E5%8F%82%E8%80%83%E6%96%87%E7%8C%AE%E8%AE%BE%E7%BD%AE%E9%80%97%E5%8F%B7%E5%88%86%E9%9A%94%E7%AC%A6.png)
我想在同一行引用两个来源。它们应该以上标形式出现。它们之间没有分隔符,只有一个空格,这使其看起来像“12”,而不是所需的“1, 2”。这是一个 MWE:
\documentclass{beamer}
\usepackage[style=verbose-ibid,backend=bibtex]{biblatex}
\usepackage{filecontents}
\begin{filecontents}{refs.bib}
@article{ref_a,
author = {A},
title = {a},
year = {1970},
}
@book{ref_b,
author = {B},
title = {b},
year = {1970},
}
\end{filecontents}
\bibliography{refs}
\begin{document}
\begin{frame}\frametitle{frametitle}
text.
\begin{itemize}
\item item \autocite{ref_a} \autocite{ref_b}
\end{itemize}
\end{frame}
\end{document}
因此,如果我使用\autocite{ref_a} \autocite{ref_b}
,我会得到“12”而不是“1, 2”。如果我使用\autocite{ref_a, ref_b}
,我会得到“1”,并且脚注会在同一条目中列出两个参考文献,以分号分隔。如果我使用\autocite{ref_a}, \autocite{ref_b}
,那么这当然也行不通。我想要的是两个单独的条目和“1, 2”。有没有办法使用 BibTeX 在 Beamer 中为此类参考文献设置分隔符?
答案1
由于biblatex
只是使用常规命令排版\footcite
(这\autocite
与您的设置有关)\footnote
,因此可以独立地重新表述此问题biblatex
:“如何在直接连续的脚注标记之间放置逗号?” (这纯粹是beamer
本例中的一个问题,与无关biblatex
。)
不过,我会尝试回答另一个问题,我觉得这是你想问的问题。即:“如何获得具有一致编号和完整脚注引用的数字引用biblatex
?beamer
”
这个问题已经被奥黛丽用非常巧妙的技巧解决了在 Beamer 中使用覆盖时脚注会消失,所以这里只是该答案的一个轻微的变化
\documentclass{beamer}
\usepackage[backend=bibtex, style=numeric-comp, citetracker=true]{biblatex}
\makeatletter
\newtoggle{cbx@togcite}
\DeclareCiteCommand{\sfcite}[\cbx@superscript]%
{\usebibmacro{cite:init}%
\let\multicitedelim=\supercitedelim
\iffieldundef{prenote}
{}
{\BibliographyWarning{Ignoring prenote argument}}%
\iffieldundef{postnote}
{}
{\BibliographyWarning{Ignoring postnote argument}}}
{\usebibmacro{citeindex}%
\ifciteseen
{\ifnumequal{\value{page}}{\csuse{cbx@page@\thefield{entrykey}}}
{}
{\ifnumequal{\value{framenumber}}{\csuse{cbx@frame@\thefield{entrykey}}}
{\usebibmacro{sfcite}}
{}}}
{\usebibmacro{sfcite}}%
\usebibmacro{cite:comp}}
{}
{\usebibmacro{cite:dump}}
\newbibmacro*{sfcite}{%
\csnumgdef{cbx@page@\thefield{entrykey}}{\value{page}}%
\csnumgdef{cbx@frame@\thefield{entrykey}}{\value{framenumber}}%
\xappto\cbx@citehook{%
\global\toggletrue{cbx@togcite}%
\noexpand\cbx@beamersfcite@footnote{\thefield{entrykey}}}}
% vary bad hack to get the footnote format as desired
\newcommand\cbx@footnotewithmark[2]{%
\def\@makefntext##1{%
\parindent 1em\noindent%
\raggedright
\hbox to 1.8em{\mkbibbrackets{#1}\hfil}\bibfootnotewrapper{#2}\par}%
\footnotetext{we don't need this}}
\DeclareCiteCommand{\cbx@beamersfcite@footnote}
{}
{\cbx@footnotewithmark{%
\usebibmacro{cite:init}%
\usebibmacro{cite:comp}%
\usebibmacro{cite:dump}}
{\usedriver
{\DeclareNameAlias{sortname}{default}}
{\thefield{entrytype}}}}
{}
{}
\newrobustcmd{\cbx@superscript}[1]{%
\mkbibsuperscript{\mkbibbrackets{#1}}%
\cbx@citehook%
\global\let\cbx@citehook=\@empty}
\let\cbx@citehook=\@empty
\DeclareMultiCiteCommand{\sfcites}[\cbx@superscript]{\sfcite}{\supercitedelim}
\DeclareAutoCiteCommand{sfcite}[f]{\sfcite}{\sfcites}
\makeatother
\ExecuteBibliographyOptions{autocite=sfcite}
\addbibresource{biblatex-examples.bib}
\begin{document}
\begin{frame}
\frametitle{frametitle}
text.
\begin{itemize}
\item item \autocite{sigfridsson,worman}
\item ipsum \autocite{sigfridsson}
\end{itemize}
\end{frame}
\end{document}