Biblatex、Biber 和 LaTeX:引用未定义

Biblatex、Biber 和 LaTeX:引用未定义

我收到“存在未定义的引用”错误,尝试了两天后仍无法修复。我尝试在 Mac 上将编辑器从 Sublime Text 3 切换到 TeXStudio,然后在 PC 上尝试两者。此时我愿意尝试任何方法。

我的test.tex文件:

\documentclass{article}
\usepackage[style=numeric,backend=biber]{biblatex}
\addbibresource{\Username\Dropbox\test.bib}
\begin{document}
  Hello\cite{greenwade93}.
  \printbibliography
\end{document}

我的test.bib文件:

@ARTICLE{greenwade93,
  author  = "George Greenwade",
  title   = "The {C}omprehensive {T}ex {A}rchive {N}etwork ({CTAN})",
  year    = "1993",
  journal = "TUGBoat",
  volume  = "14",
  number  = "3",
  pages   = "342--351"
}

pdf 显示:你好[greenwade93]

TeXStudio 日志显示以下错误:

"Citation 'greenwade93' on page 1 undefined.
"Empty bibliography"
"There were undefined references"
"Please (re)run Biber on the file:(biblatex)test(biblatex) and rerun LaTeX afterwards.

我读过关于编译技巧的文章,但我不知道如何在 SublimeText 或 TexStudio 中做到这一点。我不知道如何使用命令行。我遇到了很多问题,走了许多弯路,导致其他问题。我不知所措。有人能给我一些提示或关键字来解决这些问题吗?或者一个完整的解决方案?我甚至无法得到一个最小的工作示例。我会安装任何东西。

答案1

TeXstudio 的构建过程(“构建和查看”)默认运行 pdfLaTeX,但不运行参考书目工具,您需要单独执行此操作。还需要更改设置以运行 Biber 而不是 BibTeX 来创建参考书目。因此所需的步骤如下:

  1. 在 TeXstudio 偏好设置中(Mac 上的“偏好设置...”)或Windows 上的“选项 -> 配置 TeXstudio”),选择“构建”选项卡,将“默认书目”更改为“Biber”。保存并关闭首选项。

  2. 从“工具”菜单运行“构建和查看”(或按两个绿色箭头图标),这将创建一个 PDF,但参考书目尚未完成

  3. 从“工具”菜单运行“参考书目”。

  4. 再次运行“构建和查看”:参考书目将出现在 PDF 中。

正如评论中所述,可以在其他方式达到同样的效果。关键是你必须确保是一个序列

  1. 乳胶
  2. 比贝尔
  3. 乳胶

可以“手动”完成(就像我所做的那样),也可以通过各种方式自动完成。请注意,无论使用哪种编辑器,都适用相同的一般思想:这是 LaTeX 的功能,而不是编辑器的功能。


关于文件路径的问题(一个单独的问题),最好不要包含任何路径,而是将文件放在.bib可以“找到”的位置:当前目录或 TeX 自动搜索的某个地方。这是一个单独的问题,所以我假设一个演示文件读取:

\documentclass{article}
\begin{filecontents*}{\jobname.bib}
@ARTICLE{greenwade93,
  author  = "George Greenwade",
  title   = "The {C}omprehensive {T}ex {A}rchive {N}etwork ({CTAN})",
  year    = "1993",
  journal = "TUGBoat",
  volume  = "14",
  number  = "3",
  pages   = "342--351"
}
\end{filecontents*}
\usepackage[style=numeric,backend=biber]{biblatex}
\addbibresource{\jobname.bib}
\begin{document}
  Hello\cite{greenwade93}.
  \printbibliography
\end{document}

将 BibTeX 数据库“汇总”到 LaTeX 源中。

答案2

为了解决 Sublime Text 3 中的相同问题:

  1. 打开 LaTeX.sublime-build 文件。转到/User/username/Library/Application Support/Sublime Text 3/Packages/LaTeXTools/LaTeX.sublime-build。如果找不到 Library 文件夹,则可能需要取消隐藏它。在终端中输入以下内容:chflags nohidden ~/Library。输入chflags hidden ~/Library以重新隐藏。

  2. 在文件顶部附近的“osx”下找到以下代码块:

    "cmd": ["latexmk", "-cd", "-e", "\$pdflatex = '%E -interaction=nonstopmode -synctex=1 %S %O'", //"-silent", "-f", "-pdf"],

  3. 使其看起来像这样(仅添加 3 行):

    "cmd": ["latexmk", "latexmk", "biber", "latexmk", "-cd", "-e", "\$pdflatex = '%E -interaction=nonstopmode -synctex=1 %S %O'", //"-silent", "-f", "-pdf"],

  4. 使用相同的 LaTeXTools 系统进行构建。现在应该按顺序运行、、、。参考书目应该pdflatex可见!biberpdflatexpdflatex

相关文章:PDF 中缺少参考书目(Sublime Text 2 和 Miktex)

更新

上述对 sublime-build 文件的修改源自一篇博客。它使我的参考书目能够编译,并防止出现未定义的引用。但是,我今天通过 TeXLiveUtility 更新了我的所有软件包,恢复到默认的 sublime-build 文件调用“latexmk”一次,并顺利编译了可用的参考书目和引用。

答案3

正如其他人已经发现的那样,问题在于 BibTeX/BibLaTeX 没有运行。最简单的解决方案是使用 Texlipse(LaTeX Eclipse 插件)。它具有默认流程:

  1. 乳胶
  2. BibTeX/Biber(取决于您在包含包时指定的后端)
  3. 乳胶
  4. 乳胶

这应该适合所有情况。默认情况下,每次保存更改时都会执行此操作。

答案4

&对我来说,问题在于我的参考文献中有一个符号:

...
journal = {Information Processing & Management},
...

我通过转义符号解决了该问题:\&

相关内容