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
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:
[code]\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}[/code]
Hoffe mir kann da jemand sagen, wie man die automatische Formatierung temporär deaktivieren kann.
Danke und schöne Grüße