我有这样的代码:
\documentclass[11pt]{report}
\usepackage{minted}
\usepackage{listings}
\begin{document}
\begin{listing}[ht]
\begin{minted}{csharp}
private static string Abc() =>
\$"Abc";
\end{minted}
\caption{Abc}
\label{listing:Abc}
\end{listing}
\end{document}
我有像这样的框架(编译在 overleaf 上):
仅包含“$”:
我怎样才能去掉红框?
答案1
首先,您不需要逃避$
。
这是一个pygments
与 C# 词法分析器相关的错误,请参阅https://github.com/pygments/pygments/issues/1573,已pygments
在 2021 年 8 月 15 日发布的 2.10.0 版本中修复。
2022 年 6 月 12 日更新:
不幸的是,Overleaf.com 的 texlive 2021 仍然提供pygments
v2.9.0。你可以在 overleaf 上编译下面的示例来检查:
\documentclass{article}
\usepackage{bashful}
\begin{document}
\bash[stdout]
pygmentize -V
\END
\end{document}
我如何找到上述信息
- pdf 输出中的红框是
pygments
解析错误的样式,表明这是一个pygments
问题。 - 然后我在本地和网络上测试了 OP 的铸造代码片段https://pygments.org/demo/#try,并且每个都可以正常工作(非转义
$
)。我还检查了$"string"
了有效的 C# 语法. 所有这些都表明这是一个已解决的pygments
问题。 - 所以我直接跳到
pygments
' 更新日志并搜索“c#/csharp”。结果如下更新的词法分析器:
- [...]
- C#(#1573、#1869)
- 我检查了
#1573
发现这和 OP 遇到的问题一模一样。 - 其余的很简单:检查问题是否已修复以及修复是否已发布,获取包含修复的最小版本(使用中的分区线进行双重检查
CHANGE
)。