使用 minted 排版彩色终端输出

使用 minted 排版彩色终端输出

我需要在 LaTeX 文档中重现命令的输出。该命令使用 ANSI 转义码来生成彩色输出。

我想使用minted,但使用\inputminted{shell}{coloredoutput}会产生以下错误:

! Text line contains an invalid character.
l.2 ^^[
       \PY{o}{[}01\PY{p}{;}31m^^[\PY{o}{[}Kt^^[\PY{o}{[}m^^[\PY{o}{[}K^^[\PY...

要重现,请通过运行创建彩色输出

grep --color=always . <(echo test) > coloredoutput

然后编译以下 MWE:

\documentclass{article}
\usepackage{minted}

\begin{document}
\inputminted{shell}{coloredoutput}
\end{document}

你会需要-shell-escape

我猜想这个错误是由于 pygments 无法正确解析颜色代码造成的。我该如何强制让它正确解析颜色代码?

答案1

不幸的是,这是不可能的。目前,Pygments(minted内部使用)根据样式执行所有着色,而不是根据传递给它的颜色信息。类似这样的功能请求自 2012 年以来,但似乎没有取得任何进展。

您有几个选择。您可以查看现有的 Pygments 样式,看看其中是否有一个足够接近您的需求。如果没有,您可以考虑创建自定义样式否则,高分辨率截图可能是最简单的解决方案。

相关内容