鉴于此图像:
如何创建一个lstdefinelanguage
可以突出Func<double, double, double>
显示而不必在每个逗号后添加空格的代码?
\documentclass{book}
\usepackage{listings}
\usepackage{color}
\usepackage{xcolor}
\lstdefinelanguage{CSharp}
{
basicstyle=\ttfamily,
keywordstyle=\color{blue!60!black}\bfseries,
morekeywords={double,Func},
alsoletter={[, ]},
}
\lstset{
basicstyle=\footnotesize\ttfamily,
language=[Sharp]C,
alsolanguage=CSharp,
keywordstyle=\color[rgb]{0.0,0,1.0}\bfseries
}
\begin{document}
\begin{lstlisting}
double x = 10;
Func<double> x = 10;
Func<double, double, double> x = 10;
Func<double , double , double> x = 20;
\end{lstlisting}
\end{document}
答案1
这是一个展示一种方法的简单示例。
根据评论中给出的信息,您想要突出显示类似 的组合int[]
。在这种情况下,您不应该使用alsoletter
。而是使用otherkeywords
\documentclass[varwidth,border=10,convert={png,size=800,density=1000}]{standalone}
\usepackage{xcolor}
\usepackage{bera}
\usepackage{listings}
\lstdefinelanguage{mylang}{%
basicstyle=\ttfamily,
keywordstyle=\color{blue!60!black}\bfseries,
morekeywords={double,Func,int},
sensitive=false,
otherkeywords={[, ]}
}
\begin{document}
\begin{lstlisting}[language=mylang]
double x = 10;
Func<double> x = 10;
Func<double, double, double> x = 10;
Func<double , double , double> x = 10;
int[];
\end{lstlisting}
\end{document}