Hallo

Ich möchte in mein LaTeX Dokument C Code einbinden, welche ich in AVR Studio geschrieben habe.

Ich weiß, dass man mittels den Befehlen \lstdefinestyle alles einstellen kann und mit dem Befehl \lstset ein C File einbinden kann.

Wenn ich nun, aber mein C File einbinde (mit Defines, usw…) bekommt nur das „void“ eine blaue Farbe und der Rest hat die Farbe, welche ich mit „identifierstyle=“ eingestellt habe.

Ich möchte aber das die Farben so eingestellt sind, wie es im AVR Studio ist.

Ist das möglich?

Danke im Voraus für eure Hilfe

Marcel

gefragt 23 Jan '15, 11:15

marcel_devries's gravatar image

marcel_devries
1124
Akzeptiert: 0%

bearbeitet 27 Jan '15, 04:34

saputello's gravatar image

saputello
18.4k22352

Ich kenne AVR Studio nicht, aber das Paket listings unterstützt nur rudimentäres highlighting. Schau dir lieber das Paket minted an.

Ausserdem wäre ein mwe angebracht, ich musste raten welches Paket du nutzt.

(23 Jan '15, 11:20) NobbZ

Kann man alles wunderbar einstellen. Ich habe mein Java-Highlighting so gefärbt, wie es Eclipse bei mir auch macht. Hier das Vorgehen:

Standard-Einstellungen setzen:

Open in writeLaTeX
\lstset{%
    basicstyle=\ttfamily\small, %\small,
    numbers=left,%
    numberstyle=\tiny\color{gray},%
    numbersep=5pt,%
    frame=l,%
    captionpos=b,
    backgroundcolor=\color{gray!10},%
    escapeinside={@}{@},
    ,aboveskip=7pt
    ,abovecaptionskip=3pt
    ,belowskip=3pt
    ,boxpos=c
    ,showspaces=false
    ,showtabs=false
    ,tabsize=4
    ,breaklines=true
    ,columns=flexible
    ,mathescape
}

Deinen Style definieren (die eclipse_*-Farben vorher natürlich noch definieren):

Open in writeLaTeX
\lstdefinestyle{Eclipse} {
    language=Java,
    keywordstyle=\color{eclipse_keyword}\bfseries,
    stringstyle=\color{eclipse_string},
    commentstyle=\color{eclipse_comment}\itshape,
}

Und dann Listing aus Datei lesen:

Open in writeLaTeX
\lstinputlisting[style=Eclipse]{pfad/zu/deinem/listing.c}

Schau auch noch in die Doku von Listings rein.

Permanenter link

beantwortet 24 Jan '15, 03:30

ErnstZ's gravatar image

ErnstZ
541425

bearbeitet 26 Jan '15, 05:51

Okay.

Danke für die Antwort ich werde es mal ausprobieren.

(25 Jan '15, 05:18) marcel_devries

@marcel_devries: Ich habe Deine "Antwort" in einen Kommentar umgewandelt. Hier sind Antworten stets "echte" Antworten, keine Gespräche oder Rückfragen oder Zusatzinfos, sondern Lösungen. Das verbessert die Übersicht erheblich für die Archivierung der Lösungen. Ungewohnt und anders als in Webforen, doch innovativ und nutzbarer. Bemerkungen gern wie hier als Kommentare. "Danke" funktioniert hier übrigens auch einfach über den "Daumen hoch" neben der Antwort.

(25 Jan '15, 08:36) saputello

Angenommen wir haben einen C-Quelltext in der Datei hello.c

Open in writeLaTeX
#include <stdio.h>

int main() {
  printf("Hello World!\n");
  return 0;
}

dann können wir die list macros von Donald Knuth benutzen um ein schönes Listing zu erzeugen. Dazu rufen wir auf

Open in writeLaTeX
pdftex list.tex hello.c <<< "\\bye"

Dieser Aufruf sucht list.tex im TeX-Such-Pfad (die Datei wird mit TeXlive auf jeden Fall ausgeliefert) und gibt außerdem die Datei hello.c ein. Das <<< "\\bye" am Ende signalisiert TeX, dass die Eingabe vorbei ist und das Dokument ausgegeben werden soll.

Hier eine kleine Vorschau auf die Ausgabe:

alt text

Permanenter link

beantwortet 27 Jan '15, 01:38

Henri's gravatar image

Henri
10.0k31730

Grundsätzlich durchaus nützlich. Mit dem Wunsch nach einer bestimmten Syntax abhängigen Färbung aus der Frage hat das aber leider noch wenig zu tun. Also IMHO eher eine interessante Antwort auf eine etwas allgemeinere Frage nach Formatiermöglichkeiten für Listings.

(27 Jan '15, 04:37) saputello
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: 23 Jan '15, 11:15

Frage wurde angeschaut: 4,685 Mal

Zuletzt aktualisiert: 27 Jan '15, 04:37