Formatierung für lstlisting temporär ausschalten?

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Formatierung für lstlisting temporär ausschalten?

von Gast » Fr 10. Feb 2017, 14:53

Doch, als Gast geht das, während man einen Kommentar schreibt. Wenn Du also einen Danke-Kommentar schreibst, kannst Du auch gleich den Status anpassen.

von Felrpi » Fr 10. Feb 2017, 13:22

Das müsste dann wohl ein Moderator übernehmen, als Gast geht das leider nicht.

Danke nochmal und schönes Wochenende ;)

von Gast » Fr 10. Feb 2017, 13:17

von Felrpi » Fr 10. Feb 2017, 10:41

Danke, mit den zwei Formaten klappts nun gut :)

von Gast » Fr 10. Feb 2017, 08:01

Das Format neu zu definieren genügt nicht. Man muss es auch neu anwenden:
\documentclass{scrbook}

\usepackage[formats]{listings}
\usepackage{color}

\lstdefineformat{Java}{%
   \{=\string\newline\indent,%
   \}=[;]\newline\noindent\string,%
   \};=\newline\noindent\string\newline,%
   ;=[\ ]\string\space}

\definecolor{dkgreen}{rgb}{0,0.6,0}
\definecolor{gray}{rgb}{0.5,0.5,0.5}
\definecolor{mauve}{rgb}{0.58,0,0.82}

\lstset{frame=tb,
   language=Java,
   format=Java,
   aboveskip=3mm,
   belowskip=3mm,
   showstringspaces=false,
   columns=flexible,
   basicstyle={\small\ttfamily},
   numbers=none,
   numberstyle=\tiny\color{gray},
   keywordstyle=\color{blue},
   commentstyle=\color{dkgreen},
   stringstyle=\color{mauve},
   breaklines=true,
   breakatwhitespace=true,
   tabsize=3,
}


\begin{document}

%Hier soll automatisch formatiert werden
\begin{lstlisting}[frame=single]  
for(int i = 0; i < 10; i++){System.out.println(Math.pow(i, i))}
\end{lstlisting}

\lstdefineformat{Java}{%
   \{=,%
   \}=[;],%
   \};=,%
   ;=[\ ]}
%Hier soll die bei dem int-Array kein Zeilenumbruch stattfinden (Formatierung ganz ausschalten???)
\begin{lstlisting}[frame=single,format=Java]
   int[] array = new int[]{1, 2, 3, 4, 5};
\end{lstlisting}

\end{document}
Ich würde da schlicht in der Dokumentpräambel zwei verschiedene Formate definieren. Dann kann man einfach im Dokument per format-Option zwischen den beiden umschalten.

von Felrpi » Do 9. Feb 2017, 19:20

Hey, mit der Option habe ich es mal probiert:
\begin{lstlisting}[frame=single]   
for(int i = 0; i < 10; i++){System.out.println(Math.pow(i, i))} 
\end{lstlisting} 

\begin{lstlisting}[breaklines=false, frame=single] 
   int[] array = new int[]{1, 2, 3, 4, 5}; 
\end{lstlisting}  
Leider ist der Umbruch immer noch da:
Bild

Die zweite Sache mit der eigenen Umgebung werde ich mir auch nochmal angucken.

von Gast » Do 9. Feb 2017, 17:52

Um den Umbruch los zu werden, musst du doch nur breaklines=false bei den Optionen von lstlisting angeben. Genauso kannst Du auch andere Einstellungen lokal ändern.

Schöner finde ich übrigens, gleich für Java eine neue Umgebung zu definieren (siehe [d]listings[/d]-Anleitung) und nur in dieser die dafür gewünschten Einstellungen vorzunehmen. Dann kann man auch gleich unterschiedliche Umgebungen für unterschiedliche Zwecke definieren.

Formatierung für lstlisting temporär ausschalten?

von Felrpi » Do 9. Feb 2017, 16:53

Hey, da ich einige Quellcodeausschnitte in meinem Dokument habe, habe ich eine automatische Formatierung für lstlistings eingerichtet.

Dabei wird unter anderem bei einer öffnenden geschweiften Klammer ein Zeilenumbruch gemacht.
Bei Methoden und Schleifen etc. ist das auch gut, allerdings möchte ich das bei Array-Initialisierungen vermeiden.
Deshalb habe ich versucht die automatische Formatierung auszuschalten durch das 'Überschreiben' der Settings mittels \lstdefineformat, allerdings hat das keine Wirkung.

Hier ein Minimalbeispiel:
\documentclass{scrbook}

\usepackage[formats]{listings}
\usepackage{color}

\lstdefineformat{Java}{%
	\{=\string\newline\indent,%
	\}=[;]\newline\noindent\string,%
	\};=\newline\noindent\string\newline,%
	;=[\ ]\string\space}

\definecolor{dkgreen}{rgb}{0,0.6,0}
\definecolor{gray}{rgb}{0.5,0.5,0.5}
\definecolor{mauve}{rgb}{0.58,0,0.82}

\lstset{frame=tb,
	language=Java,
	format=Java,
	aboveskip=3mm,
	belowskip=3mm,
	showstringspaces=false,
	columns=flexible,
	basicstyle={\small\ttfamily},
	numbers=none,
	numberstyle=\tiny\color{gray},
	keywordstyle=\color{blue},
	commentstyle=\color{dkgreen},
	stringstyle=\color{mauve},
	breaklines=true,
	breakatwhitespace=true,
	tabsize=3
}


\begin{document}

%Hier soll automatisch formatiert werden
\begin{lstlisting}[frame=single]  
for(int i = 0; i < 10; i++){System.out.println(Math.pow(i, i))}
\end{lstlisting}

\lstdefineformat{Java}{%
	\{=,%
	\}=[;],%
	\};=,%
	;=[\ ]}
%Hier soll die bei dem int-Array kein Zeilenumbruch stattfinden (Formatierung ganz ausschalten???)
\begin{lstlisting}[frame=single]
	int[] array = new int[]{1, 2, 3, 4, 5};
\end{lstlisting}

\end{document}
Hoffe mir kann da jemand sagen, wie man die automatische Formatierung temporär deaktivieren kann.

Danke und schöne Grüße

Nach oben