Sublime Text Build LaTex,铸造包问题

Sublime Text Build LaTex, issue with minted package

Minted 用于在 LaTex 中为代码增添美感,例如:

\documentclass{article}
\usepackage{minted}
\begin{document} 
\begin{minted}{c} 
int main() {
    printf("hello, world");
    return 0;
}
\end{minted} 
\end{document}

我已经安装了它,如果我从命令行调用它,它工作正常:

pdflatex -shell-escape minimal.tex

但是我正在使用 Sublime Text 构建系统制作 PDF,这里是构建脚本:

{
    "cmd": ["/Library/TeX/texbin/pdflatex","-shell-escape","$file"],
    "selector": "text.tex.latex"
}

出于某种原因,当我点击 Ctrl+B 时,它无法像在终端中那样工作。在输出面板中我看到:

This is pdfTeX, Version 3.14159265-2.6-1.40.17 (TeX Live 2016) (preloaded format=pdflatex)
 \write18 enabled.
entering extended mode
(/Users/user/Downloads/minted/minimal.tex
LaTeX2e <2016/03/31>
Babel <3.9r> and hyphenation patterns for 83 language(s) loaded.
(/usr/local/texlive/2016/texmf-dist/tex/latex/base/article.cls
Document Class: article 2014/09/29 v1.4h Standard LaTeX document class
(/usr/local/texlive/2016/texmf-dist/tex/latex/base/size10.clo))
(/usr/local/texlive/2016/texmf-dist/tex/latex/minted/minted.sty
(/usr/local/texlive/2016/texmf-dist/tex/latex/graphics/keyval.sty)
(/usr/local/texlive/2016/texmf-dist/tex/latex/oberdiek/kvoptions.sty
(/usr/local/texlive/2016/texmf-dist/tex/generic/oberdiek/ltxcmds.sty)
(/usr/local/texlive/2016/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty
(/usr/local/texlive/2016/texmf-dist/tex/generic/oberdiek/infwarerr.sty)
(/usr/local/texlive/2016/texmf-dist/tex/generic/oberdiek/etexcmds.sty
(/usr/local/texlive/2016/texmf-dist/tex/generic/oberdiek/ifluatex.sty))))
(/usr/local/texlive/2016/texmf-dist/tex/latex/fancyvrb/fancyvrb.sty
Style option: `fancyvrb' v2.7a, with DG/SPQR fixes, and firstline=lastline fix 
<2008/02/07> (tvz))
(/usr/local/texlive/2016/texmf-dist/tex/latex/float/float.sty)
(/usr/local/texlive/2016/texmf-dist/tex/latex/base/ifthen.sty)
(/usr/local/texlive/2016/texmf-dist/tex/latex/tools/calc.sty)
(/usr/local/texlive/2016/texmf-dist/tex/latex/ifplatform/ifplatform.sty
(/usr/local/texlive/2016/texmf-dist/tex/generic/oberdiek/pdftexcmds.sty
(/usr/local/texlive/2016/texmf-dist/tex/generic/oberdiek/ifpdf.sty))
(/usr/local/texlive/2016/texmf-dist/tex/generic/oberdiek/catchfile.sty)
(./minimal.w18))
(/usr/local/texlive/2016/texmf-dist/tex/latex/etoolbox/etoolbox.sty)
(/usr/local/texlive/2016/texmf-dist/tex/generic/xstring/xstring.sty
(/usr/local/texlive/2016/texmf-dist/tex/generic/xstring/xstring.tex))
(/usr/local/texlive/2016/texmf-dist/tex/latex/lineno/lineno.sty))
(./_minted-minimal/default.pygstyle)system returned with code 256


! Package minted Error: You must have `pygmentize' installed to use this packag
e.

See the minted package documentation for explanation.
Type  H <return>  for immediate help.
 ...                                              

l.3 \begin{document}

? 

为什么无法通过 Sublime Text 找到 pygmentize

尽管我很喜欢 OS X - 整个路径故事只是一个痛苦,至少对我来说,它似乎在每个主要版本中都会再次发生变化。现在,当启动 Sublime Text 时,它从 launchctl 工具继承 $PATH 变量(它基本上告诉 Sublime Text 它应该在哪里寻找外部程序,如 pdflatexpygmentize) - 而不是来自 shell。因此,即使在 shell 中一切正常,它也不会在 Sublime Text(或大多数其他编辑器)中工作。

您可以按照 this question on AskDifferent.SE 中的说明尝试自行修复此问题。这样做的好处是它 "fixes" 所有应用程序的路径,即即使您切换到另一个编辑器。为此,您必须将以下内容添加到 .bash_profile :

export PATH=some_path:another_path
launchctl setenv PATH $PATH

Taken from this answer

请注意,如果终端中一切正常,您可能不需要第一行。只需确保在设置所有路径后调用 launchctl

如果您更喜欢 Sublime Text 方式,另一种可能性是对 Sublime Text 2 或 3 使用 SublimeFixMacPath plugin,这会将您的 shell 中的所有路径添加到 Sublime Text 路径。这样,任何在 shell 中有效的东西在 Sublime Text 中也有效。