我按照这里提供的说明(How to create a shortcut for user's build system in Sublime Text?)在xelatex中编译乳胶文档,除此之外我还希望它在编译之后自动打开pdf,就像使用latexmk一样,我怎样才能实现呢?文档构建得很好,但我必须每次手动打开它。
答案 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初始化逻辑需要被删除或调整。