Archiv verlassen und diese Seite im Standarddesign anzeigen : Mehrere Programmiersprachen mit dem Paket Listings in einem Dokument
Hi Leute!
Ich hätte mal eine Frage bzgl. des Listings-Paket:
Kann man auch unterschiedliche Programmiersprachen in ein Dokument einbinden?
Wäre nämlich sehr geschickt, da ich höchstwahrscheinlich Java, TCL und ggf. Shell-Skript-Code in meiner Doku zur Erklärung verwenden will.
Hab auch schon in der Paket-Doku gestöbert, aber nichts Brauchbares entdecken können!
Gruß
Mic
sofa-surfer
07-02-2008, 20:54
Hab auch schon in der Paket-Doku gestöbert, aber nichts Brauchbares entdecken können!
Dann hast du nicht gut gestöbert ... ;)
\documentclass{article}
\usepackage{listings}
\begin{document}
\begin{lstlisting}[language=C]
#include <R.h>
\end{lstlisting}
\begin{lstlisting}[language=R]
#include <R.h>
\end{lstlisting}
\end{document}
Matthias
Oha! :o
Da hab ich echt nicht richtig "gestöbert"! Vielen Dank! Interessant sind auch die Befehle \lstdefinestyle{style name}{key=value list}, alsolanguage=[dialect]language und defaultdialect=[dialect]language. Da werde ich gleich mal ausprobieren, Java als "default Language" einzustellen und für jede Programmiersprache einen Style zu definieren. Muss nur noch herausfinden, wo ich dann denn Style bei einem Listing angeben muss. Binde meinen Quell-Code wie folgt ein:
\lstinputlisting[caption={bla.java}, label=blabla]{JavaKlassen/bla.java}
Hier sind übrigens mal meine Einstellungen für meinen Java-Code:
\lstset{language=Java, keywordstyle=\color{javaLila}\bfseries, commentstyle=\color{javaGreen}, stringstyle=\color{javaBlue},
numbers=left, numberstyle=\tiny, stepnumber=1, frame=trbl, showstringspaces=false, captionpos=b, breaklines=true,
basicstyle=\rmfamily, morecomment=[s][\color{javaDocBlue}]{/**}{*/},tabsize=2, emph={@author, @deprecated, @param, @return,
@see, @since, @throws, @version, @serial, @serialField, @serialData, @link}, emphstyle=\color{javaDocTags},
extendedchars=true}
Nur der emph-Befehl, um die Javadoc-Keywords hervorzuheben funktioniert nicht. Weiß da noch jemand Bescheid, wieso diese Tags (@author etc.) nicht fett gedruckt werden?
Greetz
Mic
Also mit den unterschiedlichen Styles funktioniert es bei mir wunderbar!
Diese definiere ich im Header meines Dokuments wie folgt:
\lstdefinestyle{java}{language=Java, keywordstyle=\color{javaLila}\bfseries, commentstyle=\color{javaGreen}, stringstyle=\color{javaBlue},
numbers=left, numberstyle=\tiny, stepnumber=1, frame=trbl, showstringspaces=false, captionpos=b, breaklines=true,
basicstyle=\rmfamily, morecomment=[s][\color{javaDocBlue}]{/**}{*/},tabsize=2, emph={@author, @deprecated, @param, @return,
@see, @since, @throws, @version, @serial, @serialField, @serialData, @link}, emphstyle=\color{javaDocTags},
extendedchars=true}
\lstdefinestyle{tcl}{language=tcl, numbers=left, numberstyle=\tiny, stepnumber=1, frame=trbl, showstringspaces=false, captionpos=b, breaklines=true,
basicstyle=\rmfamily}
Mein Listings-Aufruf sieht dann so aus:
\lstinputlisting[caption={a.java}, label=a, style=java]{JavaKlassen/a.java}
\lstinputlisting[caption={b.tcl}, label=b, style=tcl]{JavaKlassen/b.tcl}
Funzt perfekt! :) Aber ich hab immer noch das Problem mit den Javadoc-Tags (s. oben)...:confused:
Mic
Stefan_K
08-02-2008, 22:19
Hallo,
wie wäre:
emph={@author, @deprecated, ... , @link},
emphstyle=\color{javaDocTags}\bfseries, ...
Viele Grüße,
Stefan
Leider geht das auch nicht!:mad:
Es wird noch nicht einmal die Farbe übernommen! Könnte es daran liegen, dass die javadoc-tags hinter einem "*" stehen. Also eben so:
/**
* bla bla bla
*
* @author Max Mustermann
*
*/
Und diese "Sterne" habe ich ja mit folgender Zeile als Kommentare eingestellt:
..., morecomment=[s][\color{javaDocBlue}]{/**}{*/}, ...
Gruß
Mic
Stefan_K
09-02-2008, 00:47
Hallo Mic,
innerhalb eines Kommentars geht das nicht, es liegt tatsächlich an den /** ... */. Versuch folgende Änderung:
morecomment=*[s][\color{blue}]{/**}{*/}
Viele Grüße,
Stefan
Hallo Stefan,
vielen vielen Dank! :) Jetzt funktioniert es! Hier mal mein kompletter Java-Style (von der IDE eclipse übernommen):
\lstdefinestyle{java}{language=Java, keywordstyle=\color{javaLila}\bfseries, commentstyle=\color{javaGreen},
stringstyle=\color{javaBlue}, numbers=left, numberstyle=\tiny, stepnumber=1, frame=trbl, showstringspaces=false,
captionpos=b, breaklines=true, basicstyle=\rmfamily, morecomment=*[s][\color{javaDocBlue}]{/**}{*/},tabsize=2,
emph={@author, @deprecated, @param, @return, @see, @since, @throws, @version, @serial, @serialField, @serialData, @link},
emphstyle=\color{javaDocTags}\bfseries, extendedchars=true}
Und hier die definierten Farben:
% Definieren neuer Farben für den Java-Quelltext
\definecolor{javaBlue}{RGB}{42,0.0,255}
\definecolor{javaGreen}{RGB}{63,127,95}
\definecolor{javaLila}{RGB}{127,0,85}
\definecolor{javaDocBlue}{RGB}{63,95,191}
\definecolor{javaDocTags}{RGB}{127,159,191}
Greetz
Mic
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.