自定义 lstset morekeywords 的颜色

自定义 lstset morekeywords 的颜色

我进行了大量搜索,但尚未找到更改 lstset morekeywords 颜色的答案。我希望它们的颜色与我的常规关键字不同。以下是我现在所拥有的:

\documentclass{article}

\usepackage{listings,lstautogobble}
\usepackage[usenames,dvipsnames]{color}

% Custom Python Syntax
\lstset
{
    basicstyle=\small\ttfamily,
    commentstyle=\color{Green},
    keywordstyle=\color{Cerulean},
    frame=single,
    language=python,
    morekeywords={True, False},
    numbers=left,
    numbersep=10pt,
    numberstyle=\footnotesize\color{Gray},
    showstringspaces=false,
    stringstyle=\color{Mulberry},
    tabsize=3,
}

% Color Numbers
\lstset
{
    literate=%
    {0}{{{\color{Orange}0}}}1
    {1}{{{\color{Orange}1}}}1
    {2}{{{\color{Orange}2}}}1
    {3}{{{\color{rOrange}3}}}1
    {4}{{{\color{Orange}4}}}1
    {5}{{{\color{Orange}5}}}1
    {6}{{{\color{Orange}6}}}1
    {7}{{{\color{Orange}7}}}1
    {8}{{{\color{Orange}8}}}1
    {9}{{{\color{Orange}9}}}1
}

\begin{document}

    % A basic function that tests if a number is prime
    \lstinputlisting{isPrime.py}

\end{document}

产生以下结果我的电脑截图

正如你在第 16 行和第 17 行看到的那样真的错误的颜色相同返回并排放置。我只是想知道我是否可以更改所选关键字的颜色。例如更改真的错误的变成深蓝色或其他颜色。

还:这不是一个值得担心的问题,但是有没有更好的方法来改变数字的颜色(不是行号,而是代码中的数字)?我的方法显然有效,但我觉得效率有点低。

答案1

classoffset您需要在定义之前设置morekeywords。以下规范表明True应该在 WildStrawberry 和FalseLimeGreen 中:

在此处输入图片描述

以下是您的定制内容:

% Custom Python Syntax
\lstset
{
    basicstyle=\small\ttfamily,
    commentstyle=\color{Green},
    frame=single,
    language=python,
    numbers=left,
    numbersep=10pt,
    numberstyle=\footnotesize\color{Gray},
    showstringspaces=false,
    stringstyle=\color{Mulberry},
    otabsize=3,
    % the more interesting/new bits
    classoffset=1,% starting a new class
    morekeywords={True},
    keywordstyle=\color{WildStrawberry},
    classoffset=2,% starting another class
    morekeywords={False},
    keywordstyle=\color{LimeGreen},
    classoffset=0,% restore to default class if more customisations...
}

相关内容