未定义引用错误

未定义引用错误

当我尝试引用参考书目中的参考文献时,他们会收到一个未定义的“警告”,当我打印 PDF 时,引用存在,但只有 bibitem 的名称而不是编号。

\documentclass[12pt]{article}
\textheight 650pt
\textwidth 6in
\voffset -1cm
\hoffset -0.75cm

\input epsf
\def\figin{\epsfcheck\figin}\def\figins{\epsfcheck\figins}
\def\epsfcheck{\ifx\epsfbox\UnDeFiNeD
\message{(NO epsf.tex, FIGURES WILL BE IGNORED)}
\gdef\figin##1{\vskip2in}\gdef\figins##1{\hskip.5in}% blank space instead
\else\message{(FIGURES WILL BE INCLUDED)}%
\gdef\figin##1{##1}\gdef\figins##1{##1}\fi}

\def\figinsert{}
\def\ifig#1#2#3{\xdef#1{fig.~\the\figno}
\writedef{#1\leftbracket fig.\noexpand~\the\figno}%
\figinsert\figin{\centerline{#3}}\medskip\centerline{\vbox{\baselineskip12pt
\advance\hsize by -1truein\center\footnotesize{  Fig.~\the\figno.} #2}}
\bigskip\endinsert\global\advance\figno by1}
\def\footnotefont{}\def\endinsert{}


\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage[nottoc]{tocbibind}
\usepackage{csquotes}
\usepackage[backend=biber]{biblatex}
\usepackage{amsmath}
\usepackage{slashed}
\usepackage{graphicx}
\usepackage{caption}

\begin{document}

Nambu and Jona-Lasinio's paper was motivated by an analogy between fermions and quasi-particle excitations in Superconductivity. The theory of 
Superconductivity was written down by Bardeen, Cooper and Schrieffer (BCS) \cite{BCS} and then by Bogoliubov, \cite{Bogoliubov}. 

\begin{thebibliography}{9}

\bibitem{BCS} 
J. Bardeen, L. N. Cooper, and J. R. Schrieffer. 
\textit{Theory of Superconductivity}. 
Physical Review 106,162 (1957)

\bibitem{Bogoliubov} 
N.N.Bogoliubov, V. V. Tolmachev and D. V. Shirkov.
\textit{A New Method in the Theory of Superconductivity}. 
Aacademy of Sciences of U.S.S.R., Moscow, (1958)


\end{thebibliography}
\end{document}

答案1

你似乎把两件事混在一起了:要在 LaTeX 中创建参考书目,你可以

  1. 自己创建书目
  2. 让 BibTeX 或 BibLaTeX 创建参考书目(看这里

你可以同时做两件事... 使用\usepackage[backend=biber]{biblatex},你告诉 LaTeX 你想使用 BibLaTeX 和 Biber 作为后端。但之后,你又可以使用 自己创建参考书目 \begin{thebibliography} ... \end{thebibliography}

解决方案是决定以下任一项:

1. 手动创建参考书目:实际上,你已经创建了参考书目。你只需删除以下行

\usepackage[backend=biber]{biblatex}

并编译该文件两次,例如使用pdflatex

2. 让 BibLaTeX 完成工作:这样做的好处是您不需要(过多)关心参考书目的格式和排序。

a) 创建 BibTeX 文件,例如mybibliography.bib,包含所有参考文献。您通常可以直接从获取文章的地方下载文章的 BibTeX 条目(例如 IEEEXplore、Google Scholar 等)。对于您来说,此文件如下所示:

@article{BCS,
  title={Theory of superconductivity},
  author={Bardeen, John and Cooper, Leon N and Schrieffer, J Robert},
  journal={Physical Review},
  volume={108},
  number={5},
  pages={1175},
  year={1957},
  publisher={APS}
}

@article{Bogoliubov,
  title={A new method in the theory of superconductivity},
  author={Bogoliubov, Nikolai Nikolaevich and Tolmachev, VV and Shirkov, DV},
  journal={Consultants Bureau, New York},
  year={1960}
}

我从 Google Scholar 复制粘贴了这些条目,因此不能保证它们的正确性。我建议始终检查这些条目,并添加您需要的字段(看这里有关可能的条目的许多详细信息,...)

b) 添加此BibTeX 文件就在\usepackage...下面

\bibliography{mybibliography.bib}

c) 更换整個\begin{thebibliography} ... \end{thebibliography}\printbibliography

d) 编译用 创建文档pdflatex yourDocument.tex,然后通过调用创建参考书目biber yourDocument,最后用 再编译两次pdflatex yourDocument.tex

瞧,这两种方法都可以。尽管现在看起来 2. 的工作量更大,但它往往是值得的,因为添加论文就像复制粘贴一样简单,而且你不需要关心格式。你可以从各种标准引用样式中进行选择,并且可以轻松地在它们之间切换,而无需重写整个参考书目。

最后,正如对这个问题的评论所建议的那样,你似乎正在使用一些很旧的软件包。提示:删除所有你不知道的软件包。例如,从

\documentclass{article}
\usepackage[utf8]{inputenc}         % Needed for UTF-8 support
\usepackage[english]{babel}         % English hyphenation etc.
\begin{document}
    Hello World!
\end{document}

并根据需要添加包。例如,现在添加 BibLaTeX 内容。当您需要添加图像时,请包含graphicx(或您所需的任何包)具体来说需要)。如果你开始做数学题,请包括amsmath。这样你就不会有成千上万个你真正不需要的包和旧东西。

相关内容