我在 Mac 上使用 texmaker,我尝试使用 minted 包和以下代码
\documentclass[12pt,A4]{article}
\usepackage{minted}
\begin{document}
\begin{minted}{python}
def __init__(self, x, y):
self.x=x
self.y=y
\end{minted}
\end{document}
但是在编译我的代码时出现以下错误:
! Package minted Error: You must have `pygmentize' installed to use this package
但是我确实按照说明安装了包
sudo easy_install Pygments
我甚至尝试过重启。但仍然出现同样的错误。
我真的不知道如何修复这个错误,有人能帮我吗?
按照 egreg 的建议创建 pdf 时,生成的 pdf 如下所示:
/Library/Frameworks/Python.framework/Versions/2.7/bin
/opt/local/bin
/opt/local/sbin
/opt/local/bin
/opt/local/sbin
/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin
/usr/texbin
/usr/X11/bin
Is there pygmentize?
/Library/Frameworks/Python.framework/Versions/2.7/bin/pygmentize
由此判断我的 Mac 上有 Pygmentize?!
答案1
path.tex
编写一个包含以下内容的文件:
\catcode`:=\active
\def:{\par}
\parindent0pt\tt
\input|"echo $PATH"
\bigskip
Is there pygmentize?
\input|"which pygmentize"
\bye
并从终端运行命令
pdftex --shell-escape path
path.pdf
您将在生成的文件中看到。如果在“Is there pygmentize?”后面有一个路径,那就没问题了pdftex
。PATH
现在只需告诉 Texmaker 您想要执行外部程序,例如pygmentize
:转到 Texmaker 中的“首选项”菜单并选择“命令”选项卡。在“PdfLaTeX”旁边的行中应该有
"/usr/texbin/pdflatex" -synctex=1 -interaction=nonstopmode %.tex
将其改为
"/usr/texbin/pdflatex" -synctex=1 -shell-escape -interaction=nonstopmode %.tex
请注意,这会导致一些安全问题,因此,-shell-escape
在排版从非可信来源获取的文档时,请将其删除。
更安全的方法可能是定义一个“用户命令”:转到菜单用户 > 用户命令 > 编辑用户命令,在上方空白处写一些内容,例如“pdftex-shell-escape”;在下方空白处写上面的字符串。只有当您选择使用 shell escape 时,您才会有一个快捷方式,即按Alt+ Shift+F1
答案2
我刚刚遇到了同样的问题,从中复制 pygmentize/Library/Frameworks/Python.framework/Versions/2.6/bin/pygmentize
解决/usr/local/bin
了这个问题。
答案3
OP报告以下错误信息:
! Package minted Error: You must have `pygmentize' installed to use this package
首先要确保你的机器上安装了 Pygments(楼主已经安装了)。在终端中输入以下内容:
python3 -m pip show Pygments
which pygmentize
# To install Pygments:
# python3 -m pip install Pygments
在最近的 MacOS 上,即使安装了 Pygments,您也可能遇到上述错误。这是因为诸如 TeXShop 或 Texmaker 之类的 GUI 应用程序无法看到您的环境变量(除非它们是从终端启动的)。因此,PATH 环境变量对于 GUI 应用程序来说是不一样的。除非 pygmentize 安装在 /usr/local/bin 下,否则 GUI 将无法本地化命令行实用程序。
解决方法 1:添加到 /usr/local/bin 的符号链接。
ln -s /path/to/pygmentize /usr/local/bin/pygmentize
解决方法 2:从终端运行 TeX 编辑器。对于 TeXShop:
/Applications/TeXShop.app/Contents/MacOS/TeXShop
# Or with path to source file
/Applications/TeXShop.app/Contents/MacOS/TeXShop path/to/tex/file.tex
解决方法 3:用于launchctl
设置 GUI 可见的环境变量。我不太熟悉launchctl
,所以我只提供此链接到相关帖子。
我不确定这个解决方法是否仍然有效,因为 launchctl 的工作方式在较新的 macOS 下已经发生了变化,看这里。
答案4
用于which pygmentize
查找路径皮格门蒂首先Mac OS 终端,然后将其复制到/usr/local/bin
。