我使用参考 BibTeX 文件作为 ref.bib,我使用 \cite 命令在以下 latex 环境中引用
\documentclass[10pt,compress]{beamer}
\usepackage[T1]{fontenc}
\usetheme{Madrid}
\usepackage{amsmath,amssymb,amsfonts}
\useoutertheme{shadow}
\useinnertheme{rounded}
\setbeamertemplate{navigation symbols}{}
\setbeamerfont{structure}{family=\rmfamily,series=\bfseries}
\usefonttheme[onlymath]{serif}
\usepackage{caption}
\usepackage{rotating}
\usepackage{multicol}
\usepackage{hyperref}
\usepackage{enumerate}
\usepackage{tikz-cd}
\bibliographystyle{plain}
\usepackage[natbib=true,style=authoryear,backend=bibtex,useprefix=true]{biblatex}
\addbibresource{bibliography.bib}
\usepackage[style=authoryear]{biblatex}
\usepackage{hyperref}
\usetikzlibrary{matrix}
\usepackage{bm}
和
\begin{frame}[t,allowframebreaks]
\frametitle{References}
\printbibliography
\bibliography{ref.bib}
\end{frame}
但我在 pdf 中找不到任何参考资料。谢谢您的帮助。
答案1
您正在混合两种不兼容的方法来在 LaTeX 中生成引文和参考书目。
文档主体中有\bibliographystyle{plain}
和\bibliography{ref.bib}
,它们用于生成基于 BibTeX 的参考书目。(这在当前系统上无关紧要,但从技术上讲\bibliography{ref.bib}
是错误的。文件名参数\bibliography
不能包含文件扩展名,因此\bibliography{ref}
是正确的)。
但随后您还要加载biblatex
(两次!\usepackage[natbib=true,style=authoryear,backend=bibtex,useprefix=true]{biblatex}
和 \usepackage[style=authoryear]{biblatex}
,只加载一次包以避免混淆和选项冲突)并使用其命令\addbibresource{bibliography.bib}
(指向与不同的文件\bibliography
)和\printbibliography
。
biblatex
和基于 BibTeX 的书目方法不兼容,您需要在两者中选择其一。
biblatex
如果选择biblatex
,则需要删除所有调用,并且文档正文中\bibliographystyle
可能没有调用。(您可以在序言中给出文件调用,但建议使用- ,其中必须包含文件扩展名)。\bibliography
.bib
\bibliography
\addbibresource
你的biblatex
文档看起来大致如下
\documentclass{beamer}
\usepackage[T1]{fontenc}
\usepackage{amsmath,amssymb}
\usetheme{Madrid}
\useoutertheme{shadow}
\useinnertheme{rounded}
\setbeamertemplate{navigation symbols}{}
\setbeamerfont{structure}{family=\rmfamily,series=\bfseries}
\usefonttheme[onlymath]{serif}
\usepackage[natbib=true,style=authoryear,backend=bibtex,useprefix=true]{biblatex}
\addbibresource{biblatex-examples.bib}
\begin{document}
\begin{frame}
Lorem \autocite{sigfridsson}
\end{frame}
\begin{frame}[t,allowframebreaks]
\frametitle{References}
\printbibliography
\end{frame}
\end{document}
但请注意,强烈建议使用 Biber 而不是 BibTeX biblatex
。这应该和更改backend=bibtex,
为backend=biber,
并运行 Biber 而不是 BibTeX 一样简单(或者告诉你的编辑器这样做:Biblatex 与 Biber:配置我的编辑器以避免未定义的引用)。
BibTeX
如果您想使用 BibTeX,请删除所有提及biblatex
及其\addbibresource
和\printbibliography
命令的内容。改用\bibliographstyle
和\bibliography
。
基于 BibTeX 的文档如下所示
\documentclass{beamer}
\usepackage[T1]{fontenc}
\usepackage{amsmath,amssymb}
\usetheme{Madrid}
\useoutertheme{shadow}
\useinnertheme{rounded}
\setbeamertemplate{navigation symbols}{}
\setbeamerfont{structure}{family=\rmfamily,series=\bfseries}
\usefonttheme[onlymath]{serif}
\bibliographystyle{plain}
\begin{document}
\begin{frame}
Lorem \cite{incollection-full}
\end{frame}
\begin{frame}[t,allowframebreaks]
\frametitle{References}
\bibliography{xampl}
\end{frame}
\end{document}
请注意,您永远不应加载两次包(在问题中,hyperref
和biblatex
被加载两次)。在这种情况下,根本不需要加载hyperref
,因为biblatex
已经处理好了。