Latex无法生成参考文献页面,报错 I found no \bibstyle & \bibdata & \citation command

问题描述

今天老的TexWorks出了各种问题,一怒之下卸载了,重新下了一个TexLive,配置了一个新的VSCode的LaTex环境。结果在用模板编译的时候出现了报错:

I found no \citation commands---while reading file individual_thesis.aux
I found no \bibdata command---while reading file individual_thesis.aux
I found no \bibstyle command---while reading file individual_thesis.aux

原因分析

经过一番查阅资料,以及一些失败的尝试,最后确定了问题所在:

使用的模板中用了biblatex包,还给塞到了一个xxx.cls文件里面并在tex主文件里面用\documentclass{xxx}调用。

\RequirePackage[style=ieee]{biblatex}

然后我在配置的时候,用的编译链是xelatex --> bibtex --> xelatex*2,而在使用biblatex包的时候,其对应的引擎应该是biber,而不是bibtex!

参见:biblatex - No `\citation`, `\bibdata` or `\bibstyle` command - TeX - LaTeX Stack Exchange

There are two engines to read .bib files:

  • BibTex. This is the old one and is the default engine used by TeXmaker
  • Biber. This is the new engine and is used in my example

解决方法

解决方法就是把编译链改成xelatex --> biber --> xelatex*2。

Biber和BibTex这两个宏包在安装TexLive的时候都会有,加入系统环境变量后可以直接调用,所以我们直接在VSCode的设置中修改编译链即可。于是我们在settings.json中新增:

在"latex-workshop.latex.tools":属性内加入

{
    "name": "biber",
    "command": "biber",
    "args": [
        "%DOCFILE%"
    ]
}

再在"latex-workshop.latex.recipes":属性中加入

{
    "name": "Biber",
    "tools": [
        "biber"
    ]
},
{
    "name": "xelatex -> biber -> xelatex*2",
    "tools": [
        "xelatex",
        "biber",
        "xelatex",
        "xelatex"
    ]
},
{
    "name": "pdflatex -> biber -> pdflatex*2",
    "tools": [
        "pdflatex",
        "biber",
        "pdflatex",
        "pdflatex"
    ]
}

这样就新了三种编译链:(1)单独运行biber编译;(2)一次XeLaTex,一次Biber,两次XeLaTex;(3)一次PdfLaTex,一次Biber,两次PdfLaTex(用于英文论文)。((1)和(3)视情况可不加)

保存,重启VSCode,再编译时手动选择xelatex -> biber -> xelatex*2的recipe运行,即可。

更多补救措施

如果还没有解决,可以参考这篇文章试着清一下bib的缓存,然后再重新编译:

VSCode和TexStudio中使用Biber编译时出现ERROR - Cannot find ‘XXX.bcf‘!的问题解决办法_error - cannot find 'main.bcf'!-CSDN博客

如果还还没有解决,可以尝试在调用biblatex包的时候指定backend=biber:

\RequirePackage[style=ieee, backend=biber]{biblatex}
或者更一般地:
\usepackage[style=ieee, backend=biber]{biblatex}

PS:如果没有调用biblatex包,而是直接用bibtex写引用,则应当使用xelatex -> bibtex -> xelatex*2的编译链,设置方法与上面类似,只要将biber改为bibtex即可。

以前都是Overleaf直接搞定的,第一次在本地跑Latex折腾了半天,也算吃一堑长一智了。

  • 21
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
"i+found+no+bibdata+command" 是一个错误信息,通常出现在使用 LaTeX 编译文档时。这个错误表示 LaTeX 在处理参考文献时找不到 bibdata 命令。 这个错误通常是由以下几种情况引起的: 1. 缺少引用文件:如果你在 LaTeX 文档中使用了参考文献,但是没有正确引入 bib 文件,就会出现这个错误。你需要确保在 LaTeX 文档中使用了正确的引用命令,并且 bib 文件存在于相应的位置。 2. 引用命令错误:如果你在 LaTeX 文档中使用了错误的引用命令,也会导致出现这个错误。你需要检查你的引用命令是否正确,并且与 bib 文件中的条目相匹配。 3. 编译顺序错误:有时候,如果你在编译 LaTeX 文档时没有按照正确的顺序进行编译,也会导致出现这个错误。一般来说,正确的编译顺序是先运行 LaTeX 编译器,然后运行 BibTeX 编译器,最后再运行两次 LaTeX 编译器。 如果你遇到了这个错误,可以尝试以下几个解决方法: 1. 检查引用命令:确保你在 LaTeX 文档中使用了正确的引用命令,并且与 bib 文件中的条目相匹配。 2. 检查 bib 文件:确保 bib 文件存在于正确的位置,并且包含了正确的参考文献条目。 3. 检查编译顺序:按照正确的顺序编译 LaTeX 文档,先运行 LaTeX 编译器,然后运行 BibTeX 编译器,最后再运行两次 LaTeX 编译器。 如果以上方法都没有解决问题,可以提供更多的信息,例如你的 LaTeX 代码和错误日志,以便更好地帮助你解决问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值