我对语言的定义如下:
\lstdefinelanguage{Z80}{
sensitive = true,
keywords={a, hl, h, l, b, c, e, ix, sp, bc, af, d},
keywords = [2]{push, ld, and, pop, ret, sra, call, sla,
cp, jp, sub, inc, require, or, out, in, dec, add, cpl, jr, z, nz, bit, ccf, scf},
keywords = [3]{.include, .end, .text, equ, .data, db},
alsoletter={.},
keywordstyle=\color{red}\bfseries,
keywordstyle=[2]{\color{blue}\bfseries},
keywordstyle=[3]{\color{dkred}\bfseries},
numbers=left,
numberstyle=\scriptsize,
stepnumber=1,
numbersep=8pt,
showstringspaces=false,
breaklines=true,
frame=tb,
comment=[l]{;},
morecomment=[s]{/*}{*/},
commentstyle=\bfseries\color{dkgreen}\ttfamily,
stringstyle=\color{dkred}\ttfamily,
morestring=[b]',
morestring=[b]",
basicstyle={\small\ttfamily},
backgroundcolor=\color{white}
}
问题是,在我想要突出显示的代码的某些部分中,有一些十进制数字后面跟着一个“d”,这是一个关键字。例如,数字 9 写为:“9d”。因此,列表突出显示了“d”,尽管在这种情况下它不应该突出显示。
我是个新手,所以我不明白为什么在这种情况下它会突出显示“d”,而不会突出显示其他单词中也是关键字的其他字母(比如“a”)。
例子:
答案1
我通过执行以下操作解决了这个问题:
alsoletter={. 0 1 2 3 4 5 6 7 8 9},
希望这对某人有帮助。