Latex引用参考文献出现问号,LaTex Warning: citation undefined

出现此问题时,一般网络上给的方法是按顺序进行四次编译,但我个人遇到的情况并非如此,将在后面进行说明。
首先的四次编译即:

pdflatex
bibtex
pdflatex
pdflatex

其相关原理我找到了一篇帖子进行了说明,这里进行引用

编译四次涉及到 LaTeX 和 BibTeX 协同工作时的原理。本质上,在 \bibliography 命令处出现的参考文献列表,是从后缀为 .bbl 的文件读取的;而 .bbl 文件则是由 BibTeX 编译后缀为 .aux 的文件之后产生的;.aux 文件则是 (pdf/Xe)LaTeX 编译后缀为 .tex 的文件产生的。所以整个流程是这样的。
(pdf/Xe)LaTeX 编译 .tex 文件
读取 \bibliographystyle 的信息,写入 .aux 文件;
读取散落在文中的 \cite 命令,写入 .aux 文件;
读取 \cite 命令的同时,尝试读入 .aux 文件中有关引用的标记,但是因为文件内无相关信息而失败(\cite 处出现问号);
读取 \bibliography 的信息,尝试读入 .bbl 文件,但是因为文件不存在而失败(不输出参考文献列表)。
BibTeX 编译 .aux 文件
读取刚才写入的信息,然后去 .bib 文件中查找相关的参考文献条目,生成 .bbl 文件。
(pdf/Xe)LaTeX 编译 .tex 文件
读取 \bibliographystyle 的信息,写入 .aux 文件(和第一步完全一样);
读取散落在文中的 \cite 命令,写入 .aux 文件(和第一步完全一样);
读取 \cite 命令的同时,尝试读入 .aux 文件中有关引用的标记,但是因为文件内无相关信息而失败(\cite 处出现问号,和第一步完全一样);
读取 \bibliography 的信息,尝试读入 .bbl 文件,此时第二步已经生成 .bbl 文件,读入成功,输出参考文献列表,同时将引用标记写入 .aux 文件。
(pdf/Xe)LaTeX 编译 .tex 文件
读取 \bibliographystyle 的信息,写入 .aux 文件(和第一步完全一样);
读取散落在文中的 \cite 命令,写入 .aux 文件(和第一步完全一样);
读取 \cite 命令的同时,尝试读入 .aux 文件中有关引用的标记,因为第三步最后写入了引用标记,所以文内引用处出现正确的引用记号;
读取 \bibliography 的信息,尝试读入 .bbl 文件,此时第二步已经生成 .bbl 文件,读入成功,输出参考文献列表,同时将引用标记写入 .aux 文件(和第三步完全一样)。
这就是为什么要编译四遍才有完整结果。

具体如果使用sublime作为编辑器的话,上面的bibtex编译是需要通过将builder改为latexmk实现的,不能在编辑器里通过build with选择实现。

但上面的问题并不是我出现的问题,该问题在我这里的情况是之前用elsevier模板写的可以实现,而这次test写了一个简单的tex就出现了这个问题,于是对比以前的tex文件发现,是由于缺少了

\bibliographystlye{你的选择}

该行命令的缺失导致在编译时无法明确style,因此生成的bbl文件为空,出现了citation undefined的问题。在文件中加入

\bibliographystlye{IEEEtran} %我选择的IEEE Trans类别

即可。

参考资料:
https://tieba.baidu.com/p/3703720810?red_tag=1424465789&traceid=

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值