Biber 和 Sublime 文本

Biber 和 Sublime 文本

我使用 Sublime 已有两年了,也使用 biber,但在 Latextools 更新后,biber 无法运行。我收到以下两个警告(由于未定义的引用,还收到更多警告):

LaTeX Warning: There were undefined references.

Package biblatex Warning: Please (re)run Biber on the file:(biblatex)                Signalerzeugung(biblatex)                and rerun LaTeX afterwards.

控制台向我显示了以下内容:

<module 'simpleBuilder' from 'C:\\Users\\Dominik\\AppData\\Roaming\\Sublime Text 3\\Packages\\LaTeXTools\\builders\\simpleBuilder.py'>
<class 'simpleBuilder.SimpleBuilder'>
2
Welcome to thread Thread-9
['pdflatex', '-interaction=nonstopmode', '-synctex=1', 'Signalerzeugung']
Finished normally
0
False True True
!TEX root = 'D:\\Dropbox\\Masterarbeit\\dokumentation\\signalerzeugung\\Signalerzeugung.tex'
Jump to:  191 24
Windows, Calling Sumatra

我重新安装了 latextools 和 Miktex,但问题仍然存在 :-(

答案1

因此,为了便于将来参考,我回答了这个问题在 LaTeXTools 问题跟踪器上

总而言之,您有几种选择:

  1. 使用传统的构建器,它使用texifyBIBTEX:创建一个名为(的环境变量Windows 10或者更普遍) 并将其值设置为"biber"或 biber 可执行文件的路径。

  2. 安装并将LaTeXTools 设置中的设置latexmk更改为,这不需要您安装 texlive。distro"texlive"

  3. 创建一个定制建造者基于SimpleBuilder调用的bibtex。作为参考,它可能看起来像这样:

    from pdfBuilder import PdfBuilder
    
    import re
    
    PDFLATEX = ["pdflatex", "-interaction=nonstopmode", "-synctex=1"]
    BIBER = ["biber"]
    
    CITATIONS_REGEX = re.compile(r"Warning: Citation `.+' on page \d+ undefined")
    
    class BiberBuilder(PdfBuilder):
        def __init__(self, *args):
            super(BiberBuilder, self).__init__(*args)
            self.name = "Biber Builder"
    
        def commands(self):
            self.display("\n\nBiberBuilder: ")
    
            yield(PDFLATEX + [self.base_name], "Running pdflatex...")
            self.display("done.\n")
    
            if CITATIONS_REGEX.search(self.out):
                yield(BIBER + [self.base_name], "Running biber...")
                self.display("done.\n")
    
                yield(PDFLATEX + [self.base_name], "Running pdflatex...")
                self.display("done.\n")
    
                yield(PDFLATEX + [self.base_name], "Running pdflatex...")
                self.display("done.\n")
    
            if "Rerun to get cross-references right." in self.out:
                yield (PDFLATEX + [self.base_name], "Running pdflatex...")
                self.display("done.\n")
    

    将生成器保存到名为biberBuilder.pySublime Packages 目录下的文件夹中(在 Sublime 中选择偏好设置|浏览包...)并将"builder_path"LaTeXTools 设置中的设置设置为包含构建器的文件夹的相对路径,例如,"User/LaTeXTools""builder"设置设置为"biber"

相关内容