使用 minted 包时 pygmentize 出错

使用 minted 包时 pygmentize 出错

问题:

我在使用该包时收到多个未定义的控制序列minted,我认为这是由 pygmentize 引起的。

背景

我使用该软件Texpad并将活动的 LaTeX 分布设置为:

  • /usr/local/texlive/2016/bin/x86_64-darwin

然后我检查pythonpygmentize

  • which python结果是/System/Library/Frameworks/Python.framework/Versions/2.7/bin/python
  • which pygmentize结果是/opt/local/bin/pygmentize

我已经安装了 MacPorts,并且使用以下命令检查活动版本:

  • port select --list python结果是python34 (active)

问题 1

这就是我感到困惑的地方,不应该which python也指向/opt/local/bin/python吗?

路径

paths通过执行来检查我的nano ~/.bash_profile,结果是:

export PATH=/System/Library/Frameworks/Python.framework/Versions/2.7/bin:$PATH
export PATH=/usr/local/texlive/2016/bin/x86_64-darwin:$PATH
export PATH=/usr/local/bin:$PATH
export PATH=/usr/local/:$PATH

##
# Your previous /Users/Batman/.bash_profile file was backed up as /Users/Batman/.bash_profile.macports-saved_$
##

# MacPorts Installer addition on 2017-02-12_at_00:07:31: adding an appropriate PATH variable for use with MacPorts.
export PATH="/opt/local/bin:/opt/local/sbin:$PATH"
# Finished adapting your PATH environment variable for use with MacPorts.

问题2

根据以上信息,pygmentize 需要做什么才能正常工作?

最小工作示例(MWE):

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}

\usepackage{minted}

\usemintedstyle[php]{autumn}

\begin{document}
\begin{minted}{php}
<?php
    try {
        // Connect to SQL database
        $dsn = new PDO('mysql:host=servername;dbname=databasename', 'username', 'password');
    }
    catch (PDOException $e) {
        // Prints out error message
        echo 'Error: ' . $e->getMessage();
    }
?>
\end{minted}
\end{document}

答案1

经过一番搜索,我在这里找到了答案:

https://github.com/gpoore/minted/issues/81#issuecomment-125685237

解决方案是:

\usepackage[cache=false]{minted}

如果错误仍然存​​在,可以尝试:

\usepackage[cache=false,outputdir=.texpadtmp]{minted}

该问题似乎出在minted包上,而与 无关pygmentize

答案2

可以通过使用 pip2 安装 pygments 来解决 pygmentize 问题。

sudo pip2 install pygments

此方法对我的情况很有效。

相关内容