为列表中的数字着色(latex)

为列表中的数字着色(latex),latex,lstlisting,Latex,Lstlisting,我想知道是否有可能从latex中为列表包中的数字着色。例如,我希望所有数字均为红色,偶数为0x0F(十六进制)和0b00001111(二进制): void SetaPWM2(无符号字符) { //100 * 256 = 25.600 无符号int val=porcento*PR2; val/=25; //一个10位的磁带机 val&=0x03ff; //os 8 primeiros bits são colocados no CCPR1L CCPR2L=val>>2; //圣科洛卡多斯纳波西斯科

我想知道是否有可能从latex中为列表包中的数字着色。例如,我希望所有数字均为红色,偶数为0x0F(十六进制)和0b00001111(二进制):

void SetaPWM2(无符号字符)
{
//100 * 256 = 25.600
无符号int val=porcento*PR2;
val/=25;
//一个10位的磁带机
val&=0x03ff;
//os 8 primeiros bits são colocados no CCPR1L
CCPR2L=val>>2;
//圣科洛卡多斯纳波西斯科5号和4号CCP1CON酒店
CCP2CON |=(val&0b0001111)使用Python库(Pygments),可以为LaTeX执行任何类型的高亮显示,因为它能够理解代码,而不仅仅像清单中那样理解关键字

至少直接支持十六进制,但在这种情况下,二进制数会失败,如果您只需在线添加到高亮代码(可能是一个类似于解析十六进制的regexp)就可以了

编辑:

pygments\lexers\compiled.py
第60行中:

(r'0x[0-9a-fA-F]+[Ll]?', Number.Hex),

它解析C的十六进制。您可以在它下面添加类似于
(r'0b[0-1]+[Ll]?',Number.hex),
(使用Number.hex,否则您可能需要将Number.Bin添加到toks.py或其他内容).

您能告诉我在哪里修改库以同时突出显示二进制值吗?太好了!我在选项卡上遇到一些问题,但这是一个已知的错误。谢谢。(接受并投票)
(r'0x[0-9a-fA-F]+[Ll]?', Number.Hex),