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}
?
为什么 pygmentize
无法通过 Sublime Text 找到?
最佳答案
尽管我非常喜欢 OS X - 整个路径故事只是一个痛苦,至少对我来说,它似乎在每个主要版本中都会再次发生变化。现在,当启动 Sublime Text 时,它继承了 $PATH
变量(它基本上告诉 Sublime Text 它应该在哪里寻找外部程序,如 pdflatex
或 pygmentize
) 来自 launchctl
工具 - 而不是来自 shell。因此,即使一切在 shell 中都运行良好,它也无法在 Sublime Text(或大多数其他编辑器)中运行。
您可以尝试自行修复此问题,如 this question on AskDifferent.SE 中所述.这样做的好处是它“固定”了所有应用程序的路径,即即使您切换到另一个编辑器。为此,您必须将以下内容添加到您的 .bash_profile
中:
export PATH=some_path:another_path launchctl setenv PATH $PATH
Taken from this answer
请注意,如果终端中一切正常,您可能不需要第一行。只需确保在设置所有路径后调用 launchctl
。
如果您更喜欢 Sublime Text 方式,另一种可能性是使用 SublimeFixMacPath plugin对于 Sublime Text 2 或 3,它将所有路径从您的 shell 添加到 Sublime Text 路径。这样,任何在 shell 中工作的东西也可以在 Sublime Text 中工作。
关于latex - Sublime Text Build LaTex,类型转换包问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40614100/