Hallo, Ich möchte gerne die Zahlen in meinem C-Code hervorheben. Am besten wäre, wenn hexadezimalzahlen als ganzes farbig gemacht würden z.B. 0x80 Gibt es dafür einen Parameter? Ich konnte in der Doku nichts finden. Danke!

\lstset{
  language=C,
  tabsize=4,
  captionpos=b,
  numbers=left,
  commentstyle=\color{green},
  backgroundcolor=\color{white},
  numberstyle=\color{gray},
  keywordstyle=\color{blue} \textbf,%otherkeywords={xdata},
  keywords=[2]{xdata},
  keywordstyle=[2]\color{red}\textbf,
  identifierstyle=\color{black},
  stringstyle=\color{red}\ttfamily,
  basicstyle = \ttfamily \color{black} \footnotesize,
  inputencoding=utf8/latin1,
  showstringspaces=false
}

\begin{lstlisting}[caption={i2c.h},frame=tlrb]

   xdata unsigned char CS_I2C @ 0xC100;

   xdata unsigned char I2C_REG_S1 @ 0xC101;

\end{lstlisting}

gefragt 15 Nov '13, 18:17

Steff's gravatar image

Steff
33114
Akzeptiert-Rate: 0%

bearbeitet 15 Nov '13, 18:29

cgnieder's gravatar image

cgnieder
22.1k243463


Eine Möglichkeit wäre, mit moredelim ein neues Delimiter-Paar zu definieren und die Hexadezimal-Ausdrücke jeweils damit zu begrenzen. Das wäre zwar nicht automatisch, würde aber funktionieren:

\documentclass{article}
\usepackage{xcolor,listings}
\begin{document}

\lstset{
  language=C,
  tabsize=4,
  captionpos=b,
  numbers=left,
  commentstyle=\color{green},
  backgroundcolor=\color{white},
  numberstyle=\color{gray},
  keywordstyle=\color{blue} \textbf,%otherkeywords={xdata},
  keywords=[2]{xdata},
  keywordstyle=[2]\color{red}\textbf,
  identifierstyle=\color{black},
  stringstyle=\color{red}\ttfamily,
  basicstyle = \ttfamily \color{black} \footnotesize,
  inputencoding=utf8/latin1,
  showstringspaces=false ,
  moredelim=[is][\color{yellow}]{|}{|},
}

\begin{lstlisting}[caption={i2c.h},frame=tlrb]

   xdata unsigned char CS_I2C @ |0xC100|;

   xdata unsigned char I2C_REG_S1 @ |0xC101|;

\end{lstlisting}

\end{document}

alt text

Beschrieben ist moredelim in der Dokumentation zu listings.

Permanenter link

beantwortet 15 Nov '13, 18:59

cgnieder's gravatar image

cgnieder
22.1k243463
Akzeptiert-Rate: 60%

bearbeitet 15 Nov '13, 22:52

Danke, das klappt super mit:

   moredelim = *[is][\color{magenta}]{§}{§}}

Nur das zusätzliche Leerzeichen, dass dadurch entsteht ist etwas schlecht. Wo finde ich denn die Doku zu moredelim?

(15 Nov '13, 22:18) Steff
1

@Steff welches Leerzeichen meinst Du? Ich habe die Doku zu listings in meiner Antwort mal verlinkt. Du findest sie auch auf CTAN: http://www.ctan.org/pkg/listings und vermutlich auf Deinem PC selbst mit texdoc listings auf der Kommandozeile

(15 Nov '13, 22:25) cgnieder

Danke für den Tip mit texdoc. sehr nice.

Das mit dem Leerzeichen sah nur so aus. ich dachte durch die Delimiter wäre eines entstanden.

alles bestens!

(16 Nov '13, 00:40) Steff
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×48
×22

gestellte Frage: 15 Nov '13, 18:17

Frage wurde gesehen: 13,670 Mal

zuletzt geändert: 16 Nov '13, 00:51