在我的 MacBook 上,我尝试使用以下最小文档pythontex
从 Textmate运行:% !TEX TS-program = pythontex
% !TEX TS-program = pythontex
\documentclass{article}
\usepackage[makestderr]{pythontex}
\begin{document}
\pyb{print('Python says hi!')}
\end{document}
我想使用 anaconda python 运行 pythontex,这是我的终端和 Textmate python 文件的默认 python。
如果我从终端运行pdflatex
,,,一切都正常。pythontex
pdflatex
然而,当我尝试在 Textmate 中排版上述文档时,该% !TEX TS-program = pythontex
行似乎使用了 Apple 的 python,2.7.10 (default, Oct 23 2015, 18:05:06)
这导致出现pygments
未安装的错误。
问题:如何% !TEX TS-program = pythontex
确定使用什么python?? 为什么它除了选择我的终端和文本伴侣默认设置外还选择了其他东西?
答案1
文本伴侣
我找到了这个页面http://blog.macromates.com/2014/defining-a-path/然后我进入 TextMate 的偏好设置,更改(或添加)设置,PATH
如下图所示
启用 shell 转义并运行测试文件后
\documentclass{article}
\begin{document}
\immediate\write18{echo $PATH>\jobname.path}
\end{document}
.path
创建的文件显示
/usr/local/bin:/Library/TeX/texbin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/<username>/Library/Application Support/TextMate/Managed/Bundles/Bundle Support.tmbundle/Support/shared/bin
但是,按下 Command-R 会显示与pythontex
传递选项相关的错误
-interaction=nonstopmode-文件行错误
在我看来,这是 TextMate 的 LaTeX 包中的一个错误。
如果我删除该TS-program
行并在 LaTeX 包首选项中启用“使用 latexmk”,则pythontex
似乎可以进行正确的调用。
TeXShop
如果你使用pythontex.engine
TeXShop 分发的脚本,它会设置
PATH=~/anaconda/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/texbin:/Library/TeX/texbin
它还有一行注释掉
#PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/texbin:/Library/TeX/texbin
很明显,两者都优先考虑/usr/bin/python
,即 Apple 分发的版本(在我的系统上它是 2.7.5 版本,因为我在这台机器上仍然使用 10.9.5),当然,除非你在 中有 Python ~/anaconda/bin
。
如果要使用 Homebrew 或其他独立软件发行版附带的 Python 版本,则需要修改 的设置PATH
。如果您的 Python 在 中/usr/local/bin
,只需注释 的第一个设置PATH
并取消注释第二个设置,但要移到/usr/local/bin
之前/usr/bin
。
的位置pythontex.engine
应该在
~/Library/TeXShop/Engines