\documentclass{article}
\usepackage{minted}
\begin{document}
This is a python
\begin{minted}[escapeinside=||]{py}
def f(x):
y = x|\colorbox{green}{**}|2
return y
\end{minted}
This is a json
\begin{minted}[escapeinside=||]{json}
{
"hello":"world|\colorbox{green}{**}|"
}
\end{minted}
\end{document}
遇到一个问题,我在 python 代码中可以显示绿色框,但在 json 代码中却无法显示绿色框。我猜是因为 json 的花括号。我试过了,\{ \}
但不起作用。
还有关于 json 颜色的另一个问题。
This is a normal json
\begin{minted}{json}
{
"hello":"world",
"hell":"worl",
"hello1":"world1"
}
\end{minted}
This is a json with color problem
\begin{minted}[escapeinside=||]{json}
{
"hello":|\colorbox{green}{**}|"world",
"hell":"worl",
"hello1":"world1"
}
\end{minted}
This is a json with color problem but without green box
\begin{minted}[escapeinside=||]{json}
{
"hello":"world",
"hell":"worl",
"hello1":"world1"
}
\end{minted}
答案1
铸造的文档说“请注意 escapeinside 在字符串中不起作用。”(第 20 页)。由于"world"
是字符串,因此您不能在其中放置任何转义代码。
它确实可以在字符串之外工作。但是,escapeinside 仍然(错误地)导致结尾被突出显示为语法错误。您可以通过在 minted 环境中}
重新定义命令来关闭错误的颜色框。\fcolorbox
\documentclass{article}
% from https://tex.stackexchange.com/questions/14166/red-box-drawn-around-question-mark-operator-in-minted-erlang-code
\usepackage{etoolbox}
\AtBeginEnvironment{minted}{%
\renewcommand{\fcolorbox}[4][]{#4}}
\usepackage{minted}
\begin{document}
This is a python
\begin{minted}[escapeinside=||]{py}
def f(x):
y = x|\colorbox{green}{**}|2
return y
\end{minted}
This is a json
\begin{minted}[escapeinside=||]{json}
{
"hello":|\colorbox{green}{**}|"world"
}
\end{minted}
\end{document}