问题:
我在使用该包时收到多个未定义的控制序列minted
,我认为这是由 pygmentize 引起的。
背景
我使用该软件Texpad
并将活动的 LaTeX 分布设置为:
/usr/local/texlive/2016/bin/x86_64-darwin
然后我检查python
和pygmentize
:
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
此方法对我的情况很有效。