minted 在 Mac 上不起作用

minted 在 Mac 上不起作用

我在 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?”后面有一个路径,那就没问题了pdftexPATH

现在只需告诉 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

相关内容