Beamer 中的引文别名

Beamer 中的引文别名

我使用的是法兰克福风格的 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 隐藏了原始引文标签,这会在引文文本末尾添加一个空格。但由于我总是在行末添加引文,所以对于我的用例来说,这样做没问题。

相关内容