我进行了大量搜索,但尚未找到更改 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 和False
LimeGreen 中:
以下是您的定制内容:
% 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...
}