崇高的文本构建系统-如何自动打开PDF

cgn*_*gnx 4 latex xelatex sublimetext3

我按照此处提供的说明(如何在Sublime Text中为用户的构建系统创建快捷方式?)来在xelatex中编译乳胶文档,最重要的是,我还希望它像latexmk一样在编译后自动打开pdf,我实现了吗?该文档构建良好,但每次都必须手动打开它。

Jak*_*ell 5

这是CompileWithXelatexCommand在我的默认PDF查看器中成功打开PDF 的实现的扩展。

import sublime, sublime_plugin
import os
import time

class CompileWithXelatexCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        if '/usr/texbin' not in os.environ['PATH']:
            os.environ['PATH'] += ':/usr/texbin'

        base_fname = self.view.file_name()[:-4]
        pdf_fname = base_fname + ".pdf"
        self.view.window().run_command('exec',{'cmd': ['xelatex','-synctex=1','-interaction=nonstopmode',base_fname]})

        tries = 5
        seconds_to_wait = 1
        while tries > 0:
            if os.path.isfile(pdf_fname):
                break
            time.sleep(seconds_to_wait)
            seconds_to_wait *= 2
            tries -= 1

        os.system("open " + pdf_fname)
Run Code Online (Sandbox Code Playgroud)

需要轮询循环;否则,打开调用可能会在生成PDF之前发生。也许有一种更干净的方法可以通过同步执行一系列命令run_command

我现在无法使用Windows,但是从这篇文章中,您可能只需要更改"open "为即可"start "。PATH初始化逻辑将需要消除或调整。