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, 12:17

Steff's gravatar image

Steff
3314
Akzeptiert: 100%

bearbeitet 15 Nov '13, 12:29

Clemens's gravatar image

Clemens
19.0k112960


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, 12:59

Clemens's gravatar image

Clemens
19.0k112960

bearbeitet 15 Nov '13, 16: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, 16: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, 16:25) Clemens

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!

(15 Nov '13, 18:40) Steff
Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Aktuelle Buch-Infos

LaTeX Cookbook

LaTeX Beginners Guide

Limitierter Rabatt ebook
50% Coupon code tDRet6Y

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üge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×33
×15

Frage gestellt: 15 Nov '13, 12:17

Frage wurde angeschaut: 4,524 Mal

Zuletzt aktualisiert: 15 Nov '13, 18:51