让 emacs 自动使用 biber 而不是 bibtex

让 emacs 自动使用 biber 而不是 bibtex

我正在阅读标题为定制 emacs 以使用 biblatex-biber 而不是 bibtex。在这个问题中,用户@PLK 提到,从 auctex 11.87 开始,auctex 应该会自动检查您是否正在使用 biblatex,如果是,则切换到使用 biber。我已经安装并运行了 auctex 11.87,但我没有得到这种自动切换行为。

假设我有两个文件(借自这个问题)。

测试.tex

\documentclass{article}
\usepackage[backend=biber]{biblatex}

\addbibresource{test.bib}
\defbibheading{bibliography}{}

\begin{document}
    \nocite{*}
    \subsection*{Journal Publications:}
    \printbibliography[type=article]

    \subsection*{Conference Publications:}
    \printbibliography[type=inproceedings]

\end{document}

和 test.bib

@ARTICLE{abc,
  author = {A Author},
  title = {the article title},
  journal = {the journal},
  year = {2012},
  volume = {1},
  pages = {1--2},
  number = {1},
  month = {1},
  doi = {1234/5678}
}

@INPROCEEDINGS{def,
  author = {A Author},
  title = {the proceeding title},
  journal = {the conference},
  year = {2012},
  volume = {1},
  pages = {11--12},
  number = {1},
  month = {1},
  doi = {5678/1234}
}

如果我运行以下命令:

pdflatex test.tex
biber test
pdflatex test.tex

我最终得到了一个正确处理的文档。在 emacs 中,当我按下C-c C-c并选择BibTeX命令时,emacs 会运行bibtex test而不是biber test。然后我收到有关没有\citation \bibdata\bibstyle命令的错误。我的bibtex-dialect变量自动设置为biblatexLaTeX-biblatex-use-Biber设置为tTeX-command-Biber设置为Biber,但由于某种原因TeX-command-BibTex变量仍然设置为 BibTeX。这应该自动更改为Biber吗?我必须使用局部变量来设置它吗?这是一个错误,还是我做错了什么?

编辑

根据这一页在 AUCTeX 11.87 手册中:

如果您在文档中使用 biblatex,AUCTeX 会从 BibTeX 切换到 Biber 进行参考书目处理。

所以我觉得这种自动切换应该已经发生了。

答案1

AUCTeX 使用为默认参考书目处理器。如果在源文件中使用显式bibtex行将变量设置TeX-parse-self为 来激活 LaTeX 文档解析,AUCTeX会根据变量 的值提示或处理器,默认值为。但直到版本 11.87,AUCTeX 都无法t\usepackage{biblatex}biberbibtexLaTeX-biblatex-use-Bibert自动地选择书目处理器,它是在 LaTeX 文档中使用包backend的加载选项设置的biblatex

从未来几周或几个月内发布的 11.88 版本开始,AUCTeX 将查看biblatex加载选项以自动在biber和之间进行选择bibtex。在此版本中,变量LaTeX-biblatex-use-Biber将被删除,因为不再需要它。

答案2

请注意,如果\usepackage{biblatex}写在不同的行中,例如,

\usepackage[
  backend=biber,
  style=numeric,
  sorting=none
             ]
              {biblatex}

AUCTeX 不会注意到它并留下LaTeX-biblatex-use-Biber错误。

相关内容