使用 bib 文件作为参考文献时未定义控制序列

使用 bib 文件作为参考文献时未定义控制序列

我正在使用 TexMaker,如果它有帮助的话。我还有 TeXnicCenter 和 TexWorks。

该tex文件如下:

\documentclass[11pt]{book}  
\begin{document}  
(...)  
\bibliographystyle{unrst}  
\bibliography{C:\filelocation\bibfile}  
\end{document}

这会产生“未定义的控制序列”错误...我该如何修复它?

任何帮助将不胜感激!

答案1

假设您已经找到错误的根源,我将尝试向您解释将您的参考书目文件放在哪里,以便 BibTeX 找到您的参考书目。

  1. 将其放在bibfile.bib与文件相同的目录中.tex

  2. 将您的文件留bibfile.bib在目录“C:\filelocation”中,然后以这种方式调用 BibTeX(假设您的.tex文件是test.tex

    bibtex --include-directory="C:/filelocation" 测试

在这两种情况下,请更改有问题的行:

\bibliography{C:\filelocation\bibfile}

\bibliography{bibfile}

注意第二种方式仅适用于 MiKTeX(它与 TeX Live 不兼容)。

不幸的是,使用BIBINPUTS环境变量来设置搜索.bib文件的额外路径(如@mapf 所建议的)对 MiKTeX 来说效果不好,所以最好不要这样做。这是因为 MiKTeX 有一种奇怪的方式管理变量,例如BIBINPUTS。事实上,搜索顺序是:

  1. 当前目录。

  2. --include-directory用命令行开关指定的目录。

  3. MiKTeX 根文件夹中的目录

  4. BIBINPUTS变量中指定的目录

就您而言,安装了 Complete MiKTeX 后,运行后kpsewhich bibdata.bib您将获得:

C:/Program Files/MiKTeX 2.9/bibtex/bib/mslapa/bibdata.bib

(或类似内容),这是 MiKTeX 使用的文件,即使您设置:

BIBINPUTS=.;C:/filelocation;

附录

只是为了完整性,我忘了提及这个明显的案例:

  1. 将您的放在文件bibfile.bib的子目录中.tex,比方说biblio

在这种情况下,如果你写

\bibliography{biblio/bibfile}

答案2

正如@mafp 在评论中所说,您不能\在路径名中使用。相反,更改\/应该可以解决问题。

相关内容