我尝试使用包含运算符的包将一些 Erlang 代码示例包含在文档中,minted
该?
运算符用于表示从进程接收到的消息。代码
\documentclass{minimal}
\usepackage{minted}
\begin{document}
\begin{minted}{erlang}
A ! Msg1,
receive
A ? Msg2 ->
ok
\end{minted}
\end{document}
产生以下输出:
操作?
符的处理方式与!
操作符不同,并在其周围画了一个红色框。我怎样才能删除这个框并使其与操作符以相同的方式处理!
?我推测 pygmentize 会在这种情况下以类似的方式对待它们。有什么方法可以检查这个断言是否正确,如果不是,请相应地修改 pygmentize 的处理方式?
答案1
答案2
就我而言,上述解决方案不起作用。我尝试使用 minted 2.1 打印以下 Python 3 行:
>>> print("Instalação!")
Instalação!
我最后通过在序言中插入来禁用“çã”和“!”周围的颜色框:
\AtBeginEnvironment{minted}{%
\renewcommand{\fcolorbox}[4][]{#4}}
我发现这个解决方案这里。
答案3
您还可以pygments
像这样覆盖错误命令:
\expandafter\def\csname PY@tok@err\endcsname{}
这并不是最好的解决方案,因为它会隐藏代码中的所有语法错误,但对我来说效果很好。我仍然不知道上面那行代码到底是什么意思,但它就是有效。
我发现通过pygments
在命令行上运行并读取生成的输出,如下所示(在我的情况下,我使用的是 html 而不是 Erlang):
pygmentize -f latex -O full -l html test.html
答案4
选择不画红框的铸造风格,比如xcode
使用此命令:
\usemintedstyle{xcode}
实际上,您将拥有这种风格,\PYG{err}
所以我不确定您是否会受到?
同等对待,!
但至少您没有红色框,并且没有任何黑客行为。