是否可以使用带有 pdf 预览的 LaTeX 工具?

是否可以使用带有 pdf 预览的 LaTeX 工具?

所以我想在 sublime text 2 中使用 LaTeX,然后我遇到了插件 LaTeXTools。它很好用,但需要我安装 Skim PDF Viewer。是否可以设置它,以便当我编译 latex 文件时,它会在我的 Mac 上已安装的 PDF 预览中打开它?

答案1

更新:这并不像广告中说的那样有效。

@Bordaigorl 发布了相同的解决方案后,我恢复了这篇帖子。仍有一些未解决的问题。viewPDF.py只有在未安装 Skim 的情况下,更改才有效。


LaTeXTools 包中的 PDF 查看器在名为viewPDF.py— 正如 @kgr 已经指出的那样。对于 OSX,您可以通过将第 44 行从以下内容更改skim为查看器形式:preview

viewercmd = ["open", "-a", "Skim"]

到:

viewercmd = ["open", "-a", "Preview"]

但我建议不要这么做。Skim 是一款出色的 PDF 查看器,占用的硬盘空间不到 10 MiB。

答案2

LaTeXTools插件从中调用查看器viewPDF.py

线39至44是在 OSX 上运行时选择要调用的命令的代码:

    if s == "Darwin":
        # for inverse search, set up a "Custom" sync profile, using
        # "subl" as command and "%file:%line" as argument
        # you also have to put a symlink to subl somewhere on your path
        # Also check the box "check for file changes"
        viewercmd = ["open", "-a", "Skim"]

如您所见,该Skim命令在脚本中是硬编码的,因此您无法更改任何设置来从脚本外部对其进行修改。

最简单的补丁是将第 44 行替换为

viewercmd = ["open", "-a", "preview"]

但请注意,如果您安装了Package ControlLaTeXTool 并且进行了更新,您将丢失补丁。

所以最好的解决办法是在 github 上打开一个问题建议他们可以从设置中读取要启动的命令,而不是对其进行硬编码。

答案3

Skim 目前无法在 OSX Yosemite 上运行,因此看起来我们暂时只能使用预览版。

我不确定 @arjenz 在他的评论中指的是哪一行,因为代码可能已经更改,但我无法使他的解决方案起作用。以下是我所做的:

找出jumpToPDF.py 文件,并修改以下行(提交 517c5a3 中的 62-70 行):

if plat == 'darwin':
        options = ["-r","-g"] if keep_focus else ["-r"]     
        if forward_sync:
            subprocess.Popen(["/Applications/Skim.app/Contents/SharedSupport/displayline"] + 
                            options + [str(line), pdffile, srcfile])
        else:
            skim = os.path.join(sublime.packages_path(),
                            'LaTeXTools', 'skim', 'displayfile')
            subprocess.Popen(['sh', skim] + options + [pdffile])

对此:

    if plat == 'darwin':
        subprocess.Popen(["open", "-a", "Preview"] + [pdffile])

我也不确定这会破坏什么,但到目前为止,该软件包运行良好。

答案4

最新的(2016 年)答案,在添加了用户可选择的查看器后错误修复 #454,是打开您的用户首选项(首选项 → 包设置 → Latextools → 设置 - 用户),并添加您选择的预览器的行。

就我而言,我将其添加到了首选项的主体中(即,不在该osx部分中,这似乎不起作用):

{
"hide_build_panel":"no_errors",
"viewer": "preview",
....
} 

这在 Latextools 中有记录Viewers 上的“手册”。还有一个命令查看者它将从命令行运行您最喜欢的查看器。

相关内容