我正在用 beamer 写一个演示文稿,我想让引用出现在幻灯片的底部,以及最后的参考文献页面上。
在普通文章中,我会使用缩写字母引用,并在末尾链接到参考文献页面,并且此页面将包含两列参考书目,每行包含第一列的缩写字母引用以及第二列中的相应完整引用。
我想将这种风格适用于 beamer 类。为此,我想用这些缩写字母引文替换标准脚注标记。这意味着当第一次调用脚注时,以及在随后对脚注的所有引用中,缩写字母引文都会出现在预期脚注的位置。我附上了一个模拟图,展示了它的外观。
这是通过强制定义单个脚注标记实现的。下面是我实现此示例的 LaTeX 代码。
\documentclass{beamer}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{James,
title={The representation theory of the symmetric groups},
author={James, Gordon Douglas},
volume={682},
year={2006},
publisher={Springer}
}
\end{filecontents}
\usepackage[style=alphabetic,backend=biber]{biblatex}
\bibliography{\jobname.bib}
\renewcommand{\thefootnote}{\fnsymbol{footnote}}
\makeatletter
\def\@fnsymbol#1{%
\ifcase#1\or {\cite{James}}\fi
}%
\def\@makefnmark{\hbox{{{\usebeamercolor[fg]{footnote mark}\usebeamerfont*{footnote mark} \@thefnmark}}}}
\def\@makefntext#1{%
\def\insertfootnotetext{\hphantom{\cite{James}}#1}%
\def\insertfootnotemark{\@makefnmark}%
\usebeamertemplate***{footnote}}
\makeatother
\begin{document}
\begin{frame}{Frame Title}
\footnote{\fullcite{James}}
\end{frame}
\begin{frame}{Frame Title}
\printbibliography
\end{frame}
\end{document}
这是一种糟糕的方法,因为任何进一步的脚注都会导致错误,因为我已经用完了定义的脚注符号。我可以手动定义更多的脚注符号,但这样我就只能使用最多 9 个脚注(这是不同脚注符号数量的限制)。这还需要我手动定义脚注符号的顺序以匹配脚注引用的顺序。此外,它排除了将脚注用于脚注引用以外的任何用途的能力。我还必须在 \insertfootnotetext 的开头手动定义额外的水平间距,因为这些受欢迎的字母引用的宽度超过了标准脚注环境中为脚注标记分配的列的宽度。
如果有人能帮助我找到实现这一结果的“正确”方法,我将不胜感激。
答案1
我将使用\cite
和\fullcite
组合创建一个新命令,重置脚注编号:
\documentclass{beamer}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{James,
title={The representation theory of the symmetric groups},
author={James, Gordon Douglas},
volume={682},
year={2006},
publisher={Springer}
}
@book{booka,
title={Another book},
author={van Duck, Paulinho},
volume={10},
year={2020},
publisher={Quack}
}
\end{filecontents}
\usepackage[style=alphabetic,backend=biber]{biblatex}
\bibliography{\jobname.bib}
\addtobeamertemplate{footnote}{\hskip -1.5em}{}
\newcounter{mycounter}
\newrobustcmd*{\myfootfullcite}[1]{%
{% this parenthesis is needed to create a group
\cite{#1}%
\renewcommand\thefootnote{}%
\footnote{%
\setcounter{mycounter}{\value{footnote}}%
\sbox0{\textsuperscript{\the\value{mycounter}}}%
\hspace{-\the\wd0}%
\cite{#1}~\fullcite{#1}}%
\addtocounter{footnote}{-1}%
}%
}
\begin{document}
\begin{frame}{Frame Title}
\myfootfullcite{James}
An ordinary footnote\footnote{A footnote.}
Another citation \myfootfullcite{booka}
Another footnote\footnote{Another footnote.}
\end{frame}
\begin{frame}{Bibliography}
\printbibliography
\end{frame}
\end{document}