Sublime文本构建系统 - 如何自动打开pdfs

时间:2014-05-06 21:57:56

标签: latex sublimetext3 xelatex

我按照这里提供的说明(How to create a shortcut for user's build system in Sublime Text?)在xelatex中编译乳胶文档,除此之外我还希望它在编译之后自动打开pdf,就像使用latexmk一样,我怎样才能实现呢?文档构建得很好,但我必须每次手动打开它。

1 个答案:

答案 0 :(得分:4)

这是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)

需要轮询循环;否则,打开调用可能在生成PDF之前发生。可以通过run_command以更简洁的方式同步执行一系列命令。

我现在无法访问Windows,但是从this post开始,您可能只需要将"open "更改为"start "。 PATH初始化逻辑需要被删除或调整。