Seite 1 von 1

Java Code per \lstinputlisting einbinden

Verfasst: Di 12. Jan 2010, 21:18
von nik
Hallo zusammen,

ich habe eine Frage zur \listing Umgebung. Bzw. dem \lstinputlisting Befehl.
Ich möchte Java Source Code in mein Dokument aufnehmen.
Dazu nutze ich:
\lstset{language=Java}
\lstinputlisting{filename.java}
Im Header steht unter anderem:
\usepackage{listings}
\usepackage{color}	
\usepackage[svgnames]{xcolor}
Jetzt meine Frage, müsste der Java Source Code im Dokument jetzt nicht normalerweise mit richtigem Syntax Highlighting angezeigt werden? Also Schlüsselworte farbig usw?

Erst wenn ich
\lstset{language=Java,
	basicstyle=\small,
	keywordstyle=\color{blue!80!black!100},
	identifierstyle=,
	commentstyle=\color{green!50!black!100},
	stringstyle=\ttfamily,
	breaklines=true,
	numbers=left,
	numberstyle=\small,
	frame=single,
	backgroundcolor=\color{blue!3}
}
\lstinputlisting{filename.java}
nutze funktioniert es richtig.

Bitte um kurze Aufklärung. Habe dazu nicht wiklich was gefunden.

Vielen Danke & viele Grüße
Nik

Verfasst: Mi 13. Jan 2010, 00:21
von aronadaal
Also das hier sieht bei mir jeweils anders aus.
\documentclass[12pt, a4paper, titlepage]{article}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}

\usepackage{listings}
\usepackage{color}  
\usepackage[svgnames]{xcolor}

\begin{document}

\begin{lstlisting}
	public class Fahrzeug {
	  protected String name;
	  protected int Plaetze;

	  public int getPlaetze()
	  {
	    return Plaetze;
	  }
	}
\end{lstlisting}	

\lstset{language=Java}
\begin{lstlisting}
	public class Fahrzeug {
	  protected String name;
	  protected int Plaetze;

	  public int getPlaetze()
	  {
	    return Plaetze;
	  }
	}
\end{lstlisting}

\lstset{language=Java,
   basicstyle=\small,
   keywordstyle=\color{blue!80!black!100},
   identifierstyle=,
   commentstyle=\color{green!50!black!100},
   stringstyle=\ttfamily,
   breaklines=true,
   numbers=left,
   numberstyle=\small,
   frame=single,
   backgroundcolor=\color{blue!3}
}
\begin{lstlisting}
	public class Fahrzeug {
	  protected String name;
	  protected int Plaetze;

	  public int getPlaetze()
	  {
	    return Plaetze;
	  }
	}
\end{lstlisting}
\end{document}

Verfasst: Mi 13. Jan 2010, 10:09
von nik
Ok, also bewirkt
\lstset{language=Java}
wirklich nur ein schwarz weiß Highlighting.

Gibt es evtl. irgendeine Sammlung verschiendern Styles für Java Code?

Und noch eine Frage. Wie kann ich einen Java Style anlegen, dass ich diesen nicht bei jedem Code-Block mit
\lstset{......}
neu definieren muss. Mit
\lstdefinelanguage
kann man ja eigene Sprachen definieren. Aber damit habe ich es nicht hinbekommen, da ja das language=Java dann fehlt.

Verfasst: Mi 13. Jan 2010, 10:21
von aronadaal
Gibt es evtl. irgendeine Sammlung verschiendern Styles für Java Code?
Keine Ahnung. Da musst du mal googeln.
Wie kann ich einen Java Style anlegen, dass ich diesen nicht bei jedem Code-Block mit \lstset{......} neu definieren muss.
Lies dir doch mal die Doku zu listings durch. Die ist gut: http://www.ctan.org/tex-archive/macros/ ... /listings/
Dann wüsstest du auch, was lstset genau macht, nämlich Parameter zu konfigurieren, die bis zu ihrer nächsten Umkonfiguration erhalten bleiben. Also einmal definieren, fertig.

Verfasst: Mi 13. Jan 2010, 10:23
von nik
@ aronadaal: Danke dir!