5

我按照此处提供的说明(如何在 Sublime Text 中为用户的构建系统创建快捷方式?)在 xelatex 中编译乳胶文档,除此之外,我还希望它像使用 latexmk 一样在编译后自动打开 pdf,怎么能我做到了吗?该文档构建得很好,但我每次都必须手动打开它。

4

1 回答 1

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)

需要轮询循环;否则,打开调用可能会在 PDF 生成之前发生。可能有一种更简洁的方法可以通过run_command.

我现在无法访问 Windows,但是从这篇文章中您可能只需要更改"open ""start ". PATH 初始化逻辑要么需要被消除,要么需要调整。

于 2014-05-17T07:22:10.997 回答