1

我想知道是否可以从乳胶中为 lstlisting 包中的数字着色。例如,我希望所有数字都是红色的,甚至是 0x0F(十六进制)和 0b00001111(bin):

void SetaPWM2(unsigned char porcento)
{
  //100 * 256 = 25.600
  unsigned int val = porcento * PR2;
  val /= 25;
  //garante que tem apenas 10 bits
  val &= 0x03ff;
  //os 8 primeiros bits são colocados no CCPR1L
  CCPR2L = val >> 2;
  //os últimos dois são colocados na posição 5 e 4 do CCP1CON
  CCP2CON |= (val & 0b00001111) << 4;
}

如果没有办法,有没有其他包可以做到?

PS:我正在使用C语言。谢谢

4

1 回答 1

2

Minted使用 Python 库 (Pygments) 并且可以为 LaTeX 进行任何类型的突出显示,因为它能够理解代码,而不仅仅是像列表那样的关键字。

至少直接支持十六进制,但在Pygments 演示中,它会因二进制数而失败,如果您只是在线添加到荧光笔代码(可能是类似于解析十六进制的正则表达式),可能会很好。

编辑:

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 添加到 tokes.py 或其他东西)。

于 2010-07-27T06:42:24.480 回答