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

marcel_devries's gravatar image

marcel_devries
11224
Akzeptiert-Rate: 0%

bearbeitet 27 Jan '15, 10:34

saputello's gravatar image

saputello
11.1k174365

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, 17: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, 09:30

ErnstZ's gravatar image

ErnstZ
611132833
Akzeptiert-Rate: 62%

bearbeitet 26 Jan '15, 11:51

Okay.

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

(25 Jan '15, 11: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, 14: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, 07:38

Henri's gravatar image

Henri
15.7k133943
Akzeptiert-Rate: 46%

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, 10:37) saputello
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
×23

gestellte Frage: 23 Jan '15, 17:15

Frage wurde gesehen: 18,078 Mal

zuletzt geändert: 27 Jan '15, 10:37