我今天安装了 minted 以及 Python 和 Pygments,我可以从 cmd 运行它们。当我尝试此代码时:
\documentclass{article}
\usepackage{minted}
\begin{document}
\begin{minted}{c}
int main() {
printf("hello, world");
return 0;
}
\end{minted}
\end{document}
我收到以下错误消息:
! 软件包 minted 错误:缺少 Pygments 输出;\inputminted
可能被赋予了一个不存在的文件 - 否则,您可能需要
outputdir 软件包选项,或者可能使用了不兼容的构建工具,
或者可能使用了缺少文件的 frostcache。请参阅 minted 软件包文档以了解解释。
输入 H 可立即获得帮助。...
\
end{minted}
其他线程对我没有帮助,Google 也没有。我该如何解决这个问题?我在 pdfLatex 中将选项设置为:
pdflatex -synctex=1 -interaction=nonstopmode --shell-escape %filename.tex
这是我的日志档案。
我已设置 PATH,因此我可以从 cmd 执行 Python 和 pygmentize 而不会出现错误,并且我也可以加载包。当我使用 minted 包时,我收到了错误。
答案1
对我来说,这是由于两个不同的问题造成的:我没有足够的权限来运行 pygmentize,并且我-aux-directory
为 pdflatex 指定了一个参数,但没有告诉 minted 在那里查找输出文件。我必须解决这两个问题才能让它正常工作。
权限不足,无法运行 pygmentize
其中一个问题是,出于某种原因,我没有足够的权限来运行 pygmentize。要在 Windows 上解决此问题,请按照以下步骤操作:
转到
pygmentize.exe
Windows 资源管理器中包含的文件夹(对我来说是C:\ProgramData\Anaconda3\Scripts\pygmentize.exe
)。如果你不知道那是什么文件夹,你可以where pygmentize.exe
在 cmd.exe 中运行来找到它(如果该命令给出错误,则需要按照说明设置 pygmentize这里)。右键单击
pygmentize.exe
,然后单击属性>安全>高级>继续:(抱歉,这是瑞典语,但无论使用哪种语言,按钮的位置都应该相同。“Säkerhet”的意思是“安全”,“Avancerat”的意思是“高级”,“Fortsätt”的意思是“继续”。)
接下来,点击添加>选择主账户:
(“Lägg till” 表示“添加”,“Välj ett huvudkonto” 表示“选择一个主账户”)
在文本框中,以系统语言输入“Users”(如果您的系统是英文系统,则输入“Users”,如果是瑞典语系统,则输入“Användare”,如果是法语系统,则输入“Utilisateurs”等)。然后单击“控件名称”,再单击“确定”。
如果它抱怨你输入的内容无效,你可以转到“高级”>“立即搜索”查看有效选项列表,其中应该有一些表示“用户”的内容。或者,如果你只需要它适用于你的用户帐户,你也可以输入你的 Windows 用户名。
勾选“读取”和“读取并执行”复选框,并确保在“类型”下选择了“允许”:
(“Läsa” 表示“阅读”,“köra” 表示“执行”,“Typ” 表示“类型”,“Tillåt” 表示“允许”)
在每个打开的窗口上单击“确定”。
-aux-directory
在 pdflatex 中
如果您已-aux-directory
为 pdflatex 指定了参数(您可以在 TeXstudio 中通过转到设置 > 配置 TeXstudio > 命令 > PdfLaTeX 来执行此操作),则需要明确指定该参数作为ouptupdir
已创建的包。例如,我使用-aux-directory=C:/Users/myname/AppData/Local/Temp
,所以我需要执行\usepackage[outputdir=C:/Users/myname/AppData/Local/Temp]{minted}
而不是\usepackage{minted}
。
一般来说,outputdir
应该是 Latex 放置辅助文件的地方,在这种情况下,有趣的文件是文件.pygtex
。如果您没有指定,则-aux-directory
默认应该是您当前的工作目录,在两种情况下,您都不需要执行任何操作,但如果它仍然不起作用,您可能需要搜索放置文件的位置.pygtex
并将其指定为outputdir
。
答案2
答案3
我已经正确使用-shell-escape
并安装了Pygments
。但仍然收到错误。
原因是我正在使用\begin{minted}{txt}
而不是\begin{minted}{text}
。
确保您使用的是Pygments 支持的语言。(只有一个简称条目表示text
not txt
。)