Цифры Colorize в lstlisting (латекс)

Я хочу знать, возможно ли это к colorize числа в lstlisting пакете от латекса. Например, я хочу все числа быть в красном, даже 0x0F (шестнадцатеричное число) и 0b00001111 (мусорное ведро):

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.Спасибо

1
задан RMAAlmeida 26 July 2010 в 16:14
поделиться

1 ответ

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 или что-то в этом роде).

2
ответ дан 2 September 2019 в 22:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: