2010-07-26 1 views
1

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

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.

ответ

2

Minted использует библиотеку Python (Pygments) и может делать любые подсветки для LaTeX, поскольку он способен понимать код, а не только ключевые слова, например, списки.

По крайней мере, hex поддерживается непосредственно, но в Pygments demo он терпит неудачу с двоичными числами и, вероятно, будет хорошо, если вы просто добавите строку в код маркера (возможно, регулярное выражение, подобное тому, которое анализирует гекс).

EDIT:

В 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 или что-то еще).

+0

Можете ли вы дать мне какое-то направление, где можно изменить библиотеку, чтобы также выделить двоичные значения? – RMAAlmeida

+0

@ RMAAx Отредактирован ответ, чтобы предоставить дополнительную информацию. – Cloudanger

+0

Отлично! У меня проблемы с вкладками, но это известная ошибка. Спасибо. (принято и одобрено) – RMAAlmeida

 Смежные вопросы

  • Нет связанных вопросов^_^