在程式碼區塊內設定兩種特定顏色的關鍵字

在程式碼區塊內設定兩種特定顏色的關鍵字

是否可以在程式碼區塊內為關鍵字設定兩種顏色?

我有我的 Codeblock 的當前設置

\lstset{language=[Sharp]C,
captionpos=b,
%numbers=left, %Nummerierung
%numberstyle=\tiny, % kleine Zeilennummern
frame=lines, % Oberhalb und unterhalb des Listings ist eine Linie
showspaces=false,
showtabs=false,
numbers=left,
basicstyle = small,
breaklines=true,
showstringspaces=false,
breakatwhitespace=true,
escapeinside={(*@}{@*)},
commentstyle=\color{greencomments},
morekeywords={HaarCascade, Image, partial, var, value, get, set},
keywordstyle=\color{bluekeywords},
stringstyle=\color{redstrings},
basicstyle=\ttfamily\small,
}

我可以定義這樣的關鍵字HaarCascadeor Image,它們會在我的程式碼中顯示為藍色。但是我可以如何將這兩個特定關鍵字設定為另一種顏色,例如綠松石色?

答案1

您可以透過語法keyword=[class]...和來使用任意數量的不同關鍵字類別keywordstyle=[class]...class只是用作類別的 id 的自然數。

在你的情況下:

\documentclass{article}
\usepackage[usenames]{xcolor}

\definecolor{turquoise}{RGB}{64, 224, 208}
\colorlet{greencomments}{green!50!black}
\colorlet{bluekeywords}{blue}
\colorlet{redstrings}{red}

\usepackage{listings}
\lstset{language=[Sharp]C,
captionpos=b,
%numbers=left, %Nummerierung
%numberstyle=\tiny, % kleine Zeilennummern
frame=lines, % Oberhalb und unterhalb des Listings ist eine Linie
showspaces=false,
showtabs=false,
numbers=left,
basicstyle = small,
breaklines=true,
showstringspaces=false,
breakatwhitespace=true,
escapeinside={(*@}{@*)},
commentstyle=\color{greencomments},
morekeywords=[1]{partial, var, value, get, set},
morekeywords=[2]{HaarCascade, Image},
keywordstyle=\color{bluekeywords},
keywordstyle=[2]\color{turquoise},
stringstyle=\color{redstrings},
basicstyle=\ttfamily\small,
}
\begin{document}
\begin{lstlisting}
using System;
// From wikipedia
class Program
{
    static void Main()
    {
        Console.WriteLine("Hello, world!");
        Image img;
    }
}
HaarCascade, Image, partial, var, value, get, set
\end{lstlisting}

\end{document}

預覽

相關內容