如何在 beamer + biblatex 中删除这个空格

如何在 beamer + biblatex 中删除这个空格

如果我编译以下内容

\documentclass{beamer}
\usepackage[style=verbose]{biblatex}

\usepackage{filecontents}% to embed the file `myreferences.bib` in your `.tex` file
\begin{filecontents*}{myreferences.bib}
@article{foo12,
  year = {2012},
  title = {Title},
  author = {H Miller},
  journal = {Journal}
}
\end{filecontents*}
\addbibresource{myreferences.bib}
\AtEveryCitekey{
    \clearfield{pages}
    \clearfield{issn}
    \clearfield{doi}
    \clearfield{address}
    \clearfield{volume}
    \clearfield{isbn}
    \clearfield{series}
    \clearfield{number}
    \clearfield{note}
}

\begin{document}

\begin{frame}
Some text.\footnote{Some text in a footnote.} Some more text.\footcite{foo12}
\end{frame}

\begin{frame}
\printbibliography
\end{frame}

\end{document}

2脚注标签和引文之间有很大的空白。如果我移除该\AtEveryCitekey块,空白就会消失,并且两个脚注会对齐。这是一个错误吗?我怎样才能去除空白而保留\AtEveryCitekey

(示例改编自这里

答案1

正如解释的那样行尾的百分号 (%) 有什么用?(为什么我的宏会产生额外的空间?),TeX 通常将行尾视为空格。行内\AtEveryCitekey空格是相关的(本质上\AtEveryCitekey就像是内部宏上的\newcommand/ ,每次处理引用时都会调用这个宏),因此每个行尾最终都会在引用输出中给出一个空格。\renewcommandbiblatex

解决方法是使用 隐藏行尾%

\documentclass{beamer}
\usepackage[style=verbose]{biblatex}

\AtEveryCitekey{%
    \clearfield{pages}%
    \clearfield{issn}%
    \clearfield{doi}%
    \clearfield{address}%
    \clearfield{volume}%
    \clearfield{isbn}%
    \clearfield{series}%
    \clearfield{number}%
    \clearfield{note}%
}

\begin{filecontents*}{\jobname.bib}
@article{foo12,
  year    = {2012},
  title   = {Title},
  author  = {H Miller},
  journal = {Journal}
}
\end{filecontents*}
\addbibresource{\jobname.bib}

\begin{document}

\begin{frame}
Some text.\footnote{Some text in a footnote.} Some more text.\footcite{foo12}
\end{frame}

\begin{frame}
\printbibliography
\end{frame}

\end{document}

2 H Miller。“标题”。刊于:期刊(2012 年)。

相关内容