我使用的是法兰克福风格的 Beamer。我在演示文稿中引用了一些内容,并在末尾列出了参考文献。
首先我尝试使用标准 \cite 和 \bibliography 以及 \bibliographystyle{plain}:
参考书目采用 Beamer 风格,格式精美,带有表示文档类型的小图标。但文本中的引用显示为 [1],尽管 [1] 并未出现在参考书目列表中。
我想使用自由文本为引文创建别名。我尝试使用 natbib:
\defcitealias{jon90}{Paper~I}
\citetalias{jon90}
这给了我想要的引用,但是我失去了最后参考书目的漂亮格式(它恢复为标准 natbib 样式)。
如何使 natbib 样式的引用别名与 Beamer Frankfurt 书目格式一起工作?
移动网络
测试.bib:
@misc{mybibitem,
title = {The Presentation},
author = {Anon Y Mous},
howpublished = {\url{http://somewebsite}}
}
test.tex,获取格式良好的参考文献,但使用 [1] 作为引用标签:\documentclass{beamer} \usetheme{Frankfurt}
\begin{document}
\begin{frame}{My Content}{Source: \cite{mybibitem}}
Some content
\end{frame}
\begin{frame}{References}{}
\bibliography{test}
\bibliographystyle{plain}
\end{frame}
\end{document}
替代 test.tex,获取自定义引用标签,但格式丑陋的参考文献:
\documentclass{beamer}
\usetheme{Frankfurt}
\usepackage{natbib}
\begin{document}
\defcitealias{mybibitem}{My Custom Label}
\begin{frame}{My Content}{Source: \citetalias{mybibitem}}
Some content
\end{frame}
\begin{frame}{References}{}
\bibliography{test}
\bibliographystyle{plain}
\end{frame}
\end{document}
答案1
最后我找到了一个解决方案,虽然有点粗糙,但对于这次演示来说已经足够了。
我没有使用 natbib,因为它会丢失 Beamer 参考格式。以下是我想要的参考格式:
\begin{frame}[allowframebreaks]{References}{}
\bibliography{test}
\bibliographystyle{unsrt}
\end{frame}
然后我重新定义了 \bibitem 命令并创建了一个新的 \citealias 命令,为用户提供文档内定义的参考标签和超链接交叉引用:
\let\oldbibitem=\bibitem
\renewcommand{\bibitem}[2][]{\label{mybib#2}\oldbibitem[#1]{#2}}
\newcommand\citealias[2]{\hyperlink{mybib#1}{#2}\phantom{\cite{#1}}}
参考文献引用如下:
\begin{frame}{My Content}{Source: \citealias{mybibitem}{My Custom Label}}
棘手的部分是,我使用 \phantom 隐藏了原始引文标签,这会在引文文本末尾添加一个空格。但由于我总是在行末添加引文,所以对于我的用例来说,这样做没问题。