我正在使用 mtheme 制作 Beamer 演示文稿,其中包含 XeLaTeX 和 Biber,并且我的参考书目非常拥挤。但是当我尝试添加时,[allowframebreaks]
我收到“超出 TeX 容量”错误。我发现这是主题的一个明显错误(https://github.com/matze/mtheme/issues/20)。
我想修改\printbibliography
命令,使其\framebreak
每 5 个条目后插入一个。我该如何实现?
答案1
我向你介绍的是:大锤方法。
幸运的是,biblatex
它允许我们用 bibmacro 挂接到参考书目条目的最后finentry
,默认情况下定义为\newbibmacro*{finentry}{\finentry}
。
我们定义是
\renewbibmacro*{finentry}{\finentry\brf}
我们定义\brf
如下
\newcounter{bibitmctr}
\newcommand{\brf}{%
\stepcounter{bibitmctr}%
\ifnum\value{bibitmctr}=5%
\setcounter{bibitmctr}{0}
\framebreak
\fi
}
平均能量损失
\documentclass{beamer}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[backend=biber]{biblatex}
\addbibresource{biblatex-examples.bib}
\newcounter{bibitmctr}
\newcommand{\brf}{%
\stepcounter{bibitmctr}%
\ifnum\value{bibitmctr}=5%
\setcounter{bibitmctr}{0}
\framebreak
\fi
}
\renewbibmacro*{finentry}{\finentry\brf}
\begin{document}
\nocite{maron,geer,cicero,wilde,knuth:ct:a,moore,nussbaum,vizedom:related,worman,
knuth:ct:b,knuth:ct:c,knuth:ct:d,knuth:ct:e,knuth:ct:related,massa}
\printbibliography
\end{document}
答案2
没有必要对每页的 bib 条目数进行硬编码(如果五个条目放不下,则会导致页面上出现孤立的条目)。如果您愿意像 moewes 示例一样将参考书目设置在框架之外,则只需稍微调整页面几何形状即可:
\documentclass{beamer}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[backend=biber]{biblatex}
\addbibresource{biblatex-examples.bib}
\begin{document}
\begin{frame} a normal frame \end{frame}
\topskip=2cm\advance\textheight by -2cm\enlargethispage{-1cm}
\nocite{maron,geer,cicero,wilde,knuth:ct:a,moore,nussbaum,vizedom:related,worman,
knuth:ct:b,knuth:ct:c,knuth:ct:d,knuth:ct:e,knuth:ct:related,massa}
\printbibliography
\end{document}