2010-07-26 6 views
1

Je veux savoir s'il est possible de coloriser les nombres dans lstlisting package à partir de latex. Par exemple, je veux que tous les chiffres en rouge, même 0x0F (hex) et 0b00001111 (bin):Coloriser les nombres dans lstlisting (latex)

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; 
} 

S'il n'y a aucun moyen, est-il un autre package qui peut le faire? PS: Je travaille avec le langage C. Merci

Répondre

2

Minted utilise une bibliothèque Python (Pygments) et peut faire toute sorte de surlignage pour LaTeX car il est capable de comprendre le code et pas seulement les mots clés comme les listes.

Au moins hex est pris en charge directement, mais en Pygments demo il échoue avec des nombres binaires et serait probablement bien si vous ajouteriez juste en ligne au code de surligneur (probablement une expression similaire à celle qui analyse hex).

EDIT:

En pygments\lexers\compiled.py ligne 60 a:

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

qui parse hex pour C. Vous pouvez ajouter quelque chose comme en dessous (r'0b[0-1]+[Ll]?', Number.Hex), (en utilisant Number.Hex parce que sinon vous auriez probablement besoin d'ajouter Number.Bin tokes.py ou quelque chose).

+0

Pouvez-vous me donner des indications sur où modifier la bibliothèque afin de mettre en surbrillance les valeurs binaires? – RMAAlmeida

+0

@RMAAx Édité la réponse pour donner plus d'informations. – Cloudanger

+0

Parfait! J'ai des problèmes avec les onglets, mais c'est un bug connu. Merci. (accepté et mis à jour) – RMAAlmeida

Questions connexes