如何为语法高亮列表中的转义数学符号着色?

如何为语法高亮列表中的转义数学符号着色?

\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

相关内容