使用 BibTeX 在 Beamer 演示文稿中为多个参考文献设置逗号分隔符

使用 BibTeX 在 Beamer 演示文稿中为多个参考文献设置逗号分隔符

我想在同一行引用两个来源。它们应该以上标形式出现。它们之间没有分隔符,只有一个空格,这使其看起来像“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。)

不过,我会尝试回答另一个问题,我觉得这是你想问的问题。即:“如何获得具有一致编号和完整脚注引用的数字引用biblatexbeamer

这个问题已经被奥黛丽用非常巧妙的技巧解决了在 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}

带有完整脚注参考的数字引用。

相关内容