软件包 minted 错误:缺少 Pygments 输出

软件包 minted 错误:缺少 Pygments 输出

我今天安装了 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 上解决此问题,请按照以下步骤操作:

  1. 转到pygmentize.exeWindows 资源管理器中包含的文件夹(对我来说是C:\ProgramData\Anaconda3\Scripts\pygmentize.exe)。如果你不知道那是什么文件夹,你可以where pygmentize.exe在 cmd.exe 中运行来找到它(如果该命令给出错误,则需要按照说明设置 pygmentize这里)。

  2. 右键单击pygmentize.exe,然后单击属性>安全>高级>继续:

    在此处输入图片描述

    (抱歉,这是瑞典语,但无论使用哪种语言,按钮的位置都应该相同。“Säkerhet”的意思是“安全”,“Avancerat”的意思是“高级”,“Fortsätt”的意思是“继续”。)

  3. 接下来,点击添加>选择主账户:

    在此处输入图片描述

    (“Lägg till” 表示“添加”,“Välj ett huvudkonto” 表示“选择一个主账户”)

  4. 在文本框中,以系统语言输入“Users”(如果您的系统是英文系统,则输入“Users”,如果是瑞典语系统,则输入“Användare”,如果是法语系统,则输入“Utilisateurs”等)。然后单击“控件名称”,再单击“确定”。

    如果它抱怨你输入的内容无效,你可以转到“高级”>“立即搜索”查看有效选项列表,其中应该有一些表示“用户”的内容。或者,如果你只需要它适用于你的用户帐户,你也可以输入你的 Windows 用户名。

  5. 勾选“读取”和“读取并执行”复选框,并确保在“类型”下选择了“允许”:

    在此处输入图片描述

    (“Läsa” 表示“阅读”,“köra” 表示“执行”,“Typ” 表示“类型”,“Tillåt” 表示“允许”)

  6. 在每个打开的窗口上单击“确定”。

-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

您的代码对我来说工作正常,我尝试了以下命令,我使用提示DOS来获取输出,希望--shell-escape这是解决您问题的方法,但不确定,请在您的终端尝试:

latex --shell-escape %filename.tex获取 DVI 格式的输出

pdflatex --shell-escape %filename.tex 获取 PDF 格式的输出

并生成如下输出:

在此处输入图片描述

答案3

我已经正确使用-shell-escape并安装了Pygments。但仍然收到错误。

原因是我正在使用\begin{minted}{txt}而不是\begin{minted}{text}

确保您使用的是Pygments 支持的语言。(只有一个简称条目表示textnot txt。)

相关内容