自定义列表突出显示符号

自定义列表突出显示符号

我使用 Listings 包来漂亮地打印 CUDA 源代码列表。

CUDA 是 C++ 的一种方言,因此我对自己的风格定义如下:

\documentclass{article}

\usepackage{listings}
\usepackage{tcolorbox}

\newcommand{\lstfont}[1]{\color{#1}\scriptsize\ttfamily}

\lstset{
    language=[ANSI]C++,
    showstringspaces=false,
    backgroundcolor=\color{black!90},
    basicstyle=\lstfont{white},
    identifierstyle=\lstfont{white},
    keywordstyle=\lstfont{magenta!40},
    numberstyle=\lstfont{white},
    stringstyle=\lstfont{cyan},
    commentstyle=\lstfont{yellow!30},
    emph={
        cudaMalloc, cudaFree,
        __global__, __shared__, __device__, __host__,
        __syncthreads,
    },
    emphstyle={\lstfont{green!60!white}},
    breaklines=true
}

\begin{document}

\begin{lstlisting}
__global__
void foo()
{}

foo<<<n,m>>>();
\end{lstlisting}

\end{document}

这产生了很好的结果,我想要强调的 CUDA 特定关键字以绿色打印。

在此处输入图片描述

(请注意,屏幕截图中有一个拼写错误,缺少一个额外的结尾>

这对于关键字非常有效,但我想扩展它,以便将以下代码片段中的<<<和符号也渲染为绿色:>>>

kernel<<<n, m>>>();

有没有办法让 Listings 以所选样式呈现特定的符号序列,类似于使用emph关键字的方式?

相关内容