minted 环境在 overleaf 中不起作用

minted 环境在 overleaf 中不起作用

当涉及在子目录中的文件中使用的 minted 环境(或 mint 命令)时,代码无法在 Overleaf 上运行。 请注意,如果放在主目录中,相同的代码也可以起作用。 在 Chrome 上使用 LaTex、PdfLaTex、XeLaTex 和 LuaLaTex 进行测试

您可以在Overleaf 网站但为了您的方便,我可以添加 MWE:

\documentclass{article}
\usepackage{minted}

\begin{document}
test
\begin{minted}{python}
import numpy as np

def incmatrix(genl1,genl2):
    m = len(genl1)

\end{minted}

\mint{html}|<h2>Something <b>here</b></h2>|

\end{document}

这将仅生成行“测试”。

请注意,这\inputminted是一种魅力;我采用它作为一种解决方法,但在某些情况下它确实很麻烦。

显然,对于非平凡的项目,我几乎不可能将每个文件保存在同一个(背面)文件夹中。

日志显示:(两次,另一个几乎相同的是\mint

Package minted Error: Missing Pygments output; \inputminted was

probably given a file that does not exist--otherwise, you may need 
the outputdir package option, or may be using an incompatible build tool,
or may be using frozencache with a missing file.

See the minted package documentation for explanation.
Type  H <return>  for immediate help.
 ...                                              

l.12 \end{minted}

This could be caused by using -output-directory or -aux-directory 
without setting minted's outputdir, or by using a build tool that 
changes paths in ways minted cannot detect, 
or using frozencache with a missing file.

答案1

好吧,我遇到了同样的问题,我认为 @yo 的解决方法是正确的。请注意,outputdir 取决于您当前所在的位置,因此如果您在文件夹中(例如“documents”),则应按如下方式操作:

\usepackage[outputdir=../]{minted}

但是如果你有两层深度(比如“documents/pics”),那么下面的操作应该可以工作:

\usepackage[outputdir=../../]{minted}

希望这可以帮助!

这已进一步讨论这里。有些情况下,[outputdir=../../]当存在不同的子目录时仍会导致问题。讨论中开发了一个针对此问题的补丁,该补丁适用于不同的导入包。

你必须将下面的代码添加到序言中,

\usepackage{xpatch}

\makeatletter
% fix for first kind
\xpatchcmd\inputminted
  {#3}
  {\import@path #3}
  {}{\fail}

% fix for second kind
\xpretocmd\minted@pygmentize
  {\restore@IfFileExists} % direct \let\IfFileExists\im@@IfFileExists works too
  {}{\fail}
\def\restore@IfFileExists{%
  \ifx\IfFileExists\@iffileonpath
    \let\IfFileExists\im@@IfFileExists
  \fi
}
\makeatother

这将成功

\input{files/file.tex}

希望这会对类似情况有所帮助。

答案2

(Overleaf 支持团队的汤姆发言。)

不幸的是,这是 Overleaf 当前设置的一个限制,对此深表歉意。主文件最好始终放在主目录中;这对于使用外部工具的任何文档尤其重要,对于 minted 也是如此。

答案3

这是一个实际的错误,并且@yo' 使用选项提出的解决方法outputdir不起作用

我已经在 github 上报告了这个问题:https://github.com/gpoore/minted/issues/233

相关内容