我使用 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
关键字的方式?