我目前使用 Latex 的工作流程包括使用带有 Sublime Text 2 的 LatexTools 包。我已经到了不知道如何引用会严重影响我的工作效率的地步,但我无法在网上找到有关如何将 biber 合并到 LatexTools 中的良好文档。有人可以指导我如何正确合并引用吗?
我的最小工作示例是 2 个文件,test.bib 和 main.tex。我使用默认构建器和 MikTex。
Test.bib 与 .tex 文件位于同一文件夹中
它包含
@misc{ Nobody06,
author = "Nobody Jr",
title = "My Article",
year = "2006"
}
main.tex 包含(抱歉有多余的包,但我想准确复制文件中的内容)
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{geometry}
\usepackage{parskip}
\usepackage{graphicx}
\usepackage{comment}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsthm}
\usepackage{bm}
\usepackage{bbm}
\usepackage{enumitem}
\usepackage{setspace}
\usepackage[backend=biber]{biblatex}
\addbibresource{test.bib}
\title{}
\author{}
\date{Last Updated: \today}
\begin{document}
\maketitle
\abovedisplayskip=0pt
\belowdisplayskip=0pt
\begin{enumerate}
\item \textcite{Nobody06}
\end{enumerate}
\printbibliography
\end{document}
运行此程序会给我以下警告:
LaTeX 警告:第 1 页上的引用“Nobody06”在输入行 72 上未定义。
LaTeX 警告:输入行 76 上的参考书目为空。
LaTeX 警告:存在未定义的引用。
软件包 biblatex 警告:请在文件:(biblatex) lit_review(biblatex) 上(重新)运行 Biber,然后重新运行 LaTeX。
生成的 PDF 不包含引文,而是显示标签 Nobody06
答案1
我找到了一个解决方案。除了通过执行这些操作使它工作之外,我还没有验证过。可能存在多余的步骤,任何改进都是受欢迎的。
首先,我确保我的 MikTex 是最新的(因此安装了 Biber)。其次,我使用包管理器安装了 latexmk 包。第三,我添加了一个环境变量 BIBTEX,它指向 MikTex bin\ 文件夹中的 biber。
然后,我修改了 traditionalBuilder.py 文件,这样 MIKTEX 的默认命令就和其他引擎使用的命令一样(以 latexmk 开头)。我意识到修改默认构建器是个非常糟糕的主意,但我无法让自定义构建器工作,即使我只是将 builder_path 更改为 User\builder 并将 traditionalBuilder.py 复制到该文件夹(当然是重命名它)。
完成此操作后,通过 Sublime 构建便获得了所需的结果。
我曾希望让 simpleBuilder 工作,但尽管我付出了努力,它还是拒绝运行 bibtex。最终,我的解决方案奏效了,但不是很优雅。
答案2
也许当 Shffl 写下他的答案时这还没有实现,但我可以通过将 LaTeX-Tools 构建器从默认/传统更改为基本来使 biber 工作。
为此,请转到Preferences > Package Settings > LaTeXTools > Settings -- User
,然后将行"builder": "default"
(或"builder": "traditional"
分别) 更改为"builder": "basic"
。 (在我的设置中,这是第 369 行,但您可以在设置文件中查找“builder”时找到它。)
注意:我也将我的distro
设置设置为texlive
,并在 shell 中将 biber 作为命令提供。我不知道这是否也是使构建正常工作所必需的。