\lstset
我的清单使用withescapechar=$
和语法突出显示commentstyle=\color[rgb]{0,0.5,0}
。现在我的 C 代码看起来像这样int16_t speed; // calculated speed in $\(\frac{cm}{s}\)$
,并且注释以绿色打印(数学部分除外):
如何在转义的数学部分上应用颜色?
预先感谢
答案1
您还必须在公式中添加颜色规范:
$\color{lstgreen}\(\frac{cm}{s}\)$
完整示例(请尝试在问题中包含完整的示例):
\documentclass[11pt,a4paper]{article}
\usepackage{xcolor}
\usepackage{listings}
% color definition
\definecolor{lstgreen}{rgb}{0,0.5,0}
\lstset{escapechar=$, %$
keywordstyle=\color{blue}\ttfamily,
commentstyle=\color{lstgreen}\ttfamily,
basicstyle=\ttfamily,
language=C,
morekeywords={int16_t}
}
\begin{document}
\begin{lstlisting}
int16_t speed; // calculated speed in $\color{lstgreen}\(\frac{cm}{s}\)$
int16_t something_else;
\end{lstlisting}
\end{document}
结果:
答案2
有时有许多转义的 LaTeX 代码需要着色(使用相同的颜色)。在这种情况下,我认为使用escapebegin=\color{...}
in\lstset
可能会很有用,因为您不必在每段转义代码中重复颜色。
这样Claudio Fiandrino 的示例可以写成这样:
\documentclass[11pt,a4paper]{article}
\usepackage{xcolor}
\usepackage{listings}
% color definition
\definecolor{lstgreen}{rgb}{0,0.5,0}
\lstset{escapechar=$, %$
keywordstyle=\color{blue}\ttfamily,
commentstyle=\color{lstgreen}\ttfamily,
escapebegin=\color{lstgreen},
basicstyle=\ttfamily,
language=C,
morekeywords={int16_t}
}
\begin{document}
\begin{lstlisting}
int16_t speed; // calculated speed in $\(\frac{cm}{s}\)$
int16_t something_else;
\end{lstlisting}
\end{document}
(结果应该看起来一样)
这对于使用 转义的数学也有效mathescape=true
。