minted 和 tcblisting 出现奇怪的错误,pygments 缺少输出

minted 和 tcblisting 出现奇怪的错误,pygments 缺少输出

好的,基本上我只是想在我的文档中显示一些代码。我通常使用 Windows,但我一直在尝试让 latex 在我的 debian 安装上正常工作。我创建了一个最小的工作示例来演示我的问题。

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

\usepackage{minted}
\usepackage{tcolorbox}
\tcbuselibrary{listings, minted, breakable}
\usemintedstyle{emacs}

\newenvironment{testbox}
{\tcblisting{listing only,colback=blue!10, breakable, colframe=blue!10, width = 1.1\textwidth, center, top=0pt, bottom=0pt, left=25pt,listing engine=minted, minted language=python, minted style=emacs, minted options={autogobble, fontsize=\footnotesize, python3, tabsize=2, linenos, frame=none
}}}
{\endtcblisting}

\begin{document}

\par\noindent This one doesn't work...

\begin{testbox}
a = 10
print('hello world')
print(a)
\end{testbox}


\end{document}

当使用 --shell-escape 进行编译时,我收到以下错误: 错误信息

这里的文档没什么帮助,它说缺少一个文件,但我不确定这是否适用于此处。这个确切的代码确实在我的 Windows 安装的 Latex 上编译,所以不确定为什么它在这里不起作用。

更令人困惑的是,当我用

\begin{minted}{python}
print('hello world')
\end{minted}

编译得很好,没有任何错误。如果有帮助的话,我还有一些关于我的 tex 安装的额外信息:

在 Windows 上,我安装了 miktex,其中 minted 也出现了很多错误(其他错误),这些错误与我的 python 安装路径有关。

在 debian 上我安装了 texlive,但由于标准 minted 环境运行良好,所以我不认为这是路径问题。

非常感谢大家的帮助!我也不介意改变我在文档中显示代码的方式,我只是想要一种添加背景颜色、行号和工作分页符等的方法。

答案1

如果您正确使用 flag; 实现 @muzimuzhi 的建议--shell-escape,它应该会产生正确的输出。我怀疑您使用了\newtcblisting相同的定义。您需要根据正在使用的命令的语法对其进行一些更改。请参阅以下代码。

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

\usepackage{minted}
\usepackage{tcolorbox}
\tcbuselibrary{listings, minted, breakable}
\usemintedstyle{emacs}

\newtcblisting{testbox}{%
  listing only,%
  colback=blue!10,%
  breakable,%
  colframe=blue!10,%
  width = 1.1\textwidth,%
  center,%
  top=0pt,%
  bottom=0pt,%
  left=25pt,%
  listing engine=minted,%
  minted language=python,%
  minted style=emacs,%
  minted options={%
    autogobble,%
    fontsize=\footnotesize,%
    python3,%
    tabsize=2,%
    linenos,%
    frame=none%
  }%
}

\begin{document}
This one works!

\begin{testbox}
a = 10
print('hello world')
print(a)
\end{testbox}
\end{document}

它产生:

1

答案2

所以我玩了一下,现在不知为何它就没问题了。老实说,我不知道为什么,但它确实有效。对于将来遇到同样问题的人来说,也许这个方法有效。

\documentclass{report}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{xcolor}

%\usepackage{minted}
\usepackage{tcolorbox}
\tcbuselibrary{listings, minted, breakable}
\usemintedstyle{emacs}

\definecolor{backcolour}{HTML}{2F1E2E}

\newtcblisting[auto counter]{pymint}[1]{
  listing only, colback=backcolour, colframe=red!75!black, breakable,  listing engine=minted, center, width=1.1\textwidth, top=0pt, bottom=0pt, left=25pt, minted language=python, minted style=paraiso-dark, fonttitle=\normalsize,title =Listing \thetcbcounter:  #1 , minted options={ fontsize=\footnotesize, python3, tabsize=2, linenos, frame=none}
}

\begin{document}
This one works!

\begin{pymint}{}
a = 10
print('hello world')
print(a)
\end{pymint}
\end{document}

我认为在框中添加顶部标题部分可以解决这个问题,但我不知道为什么或如何解决。pdf 产生以下输出:

在此处输入图片描述

也感谢您花时间帮助我!我非常感激。

相关内容