Seite 1 von 1

listings: Anzahl der Tab-Einrückungen verringern ?

Verfasst: Mo 26. Nov 2012, 14:22
von Einfachkrank
Hallo zusammen,

ich würde gerne wissen, ob es irgendwie möglich ist, die Anzahl der Tab-Einrückungen innerhalb eines listings-Blockes zu verringern. Bisher sieht das bei mir im tex-Dokument immer ungefähr so aus:
\paragraph{c)} Was sehen Sie wenn man das Spektrum in der letzten Teilaufgabe durch 
\begin{lstlisting}
plot(abs(X)/N);
\end{lstlisting}
Wenn ich stattdessen das tex-Dokument so gestalten könnte und in der Zeile mit dem plot(...)-Befehl zwei Tabs abziehen könnte, wäre ich in der Lage mein tex-Dokument viel schöner zu strukturieren und den Quellcode im listings-Block gleich aussehen zu lassen...
\paragraph{c)} Was sehen Sie wenn man das Spektrum in der letzten Teilaufgabe durch 
	\begin{lstlisting}
		plot(abs(X)/N);
	\end{lstlisting}
Ich hoffe, es wurde verständlich, was ich meine...

Viele Grüße,
Michael

Verfasst: Di 27. Nov 2012, 09:00
von esdd
Hallo,

du könntest die Option xleftmargin dafür verwenden:
\documentclass{scrartcl}
\usepackage{listings}

\begin{document}

\paragraph{c)} Was sehen Sie wenn man das Spektrum in der letzten Teilaufgabe durch
% mit den Standardeinstellungen
% basewidth={0.6em,0.45em},columns=fixed bzw. flexiblecolumns=false und tabsize=8
% beträgt die Einrückung durch zwei Tabulatoren 2x8x0.6em=9.6em
	\begin{lstlisting}[xleftmargin=-9.6em]
		plot(abs(X)/N); 
	\end{lstlisting}

\paragraph{c)} Was sehen Sie wenn man das Spektrum in der letzten Teilaufgabe durch
\begin{lstlisting}
plot(abs(X)/N); 
\end{lstlisting}

\end{document}
Gruß
Elke

Verfasst: Di 27. Nov 2012, 11:55
von Einfachkrank
esdd hat geschrieben: du könntest die Option xleftmargin dafür verwenden
Das Problem hier ist, dass dann der Bereich sichtbar über den Rand hinaussteht, da ich eine Hintergrundfarbe definiert habe.
Hier meine Standard-Konfiguration:
\lstset{
	basicstyle=\ttfamily\scriptsize\mdseries,
	keywordstyle=\bfseries\color[rgb]{0,0,1},
	identifierstyle=,
	commentstyle=\color[rgb]{0,0.58,0},	
	stringstyle=\itshape\color[rgb]{0.65,0.16,0},
	numbers=left,
	numberstyle=\tiny,
	stepnumber=0,
	breaklines=true,
	frame=none,
	showstringspaces=false,
	tabsize=4,
	backgroundcolor=\color[rgb]{0.9,0.9,0.9},
	captionpos=b,
	float=htbp,
	language=Matlab,
	xleftmargin=15pt,
	xrightmargin=15pt
}

Verfasst: Di 27. Nov 2012, 12:43
von u_fischer
Das Problem hier ist, dass dann der Bereich sichtbar über den Rand hinaussteht, da ich eine Hintergrundfarbe definiert habe.
Woran man wieder sieht, wie praktisch ein vollständiges Minimalbeispiel wäre.

Ich würde übrigens gobble benutzen (und auf keinen Fall tab-Einrückungen sondern normale Leerzeichen).

Verfasst: Fr 30. Nov 2012, 15:52
von Einfachkrank
u_fischer hat geschrieben:Ich würde übrigens gobble benutzen (und auf keinen Fall tab-Einrückungen sondern normale Leerzeichen).
Kannst du das genauer erklären? Meinst du das aktive Löschen von Zeichen? Das habe ich versucht, aber irgendwie nicht hinbekommen...
Ob ich jetzt Leerzeichen oder Tabs benutze zum Einrücken des TeX-Codes, macht ja kein Unterschied. Im Listings-Block ist dann der Quellcode genau so weit eingerückt und das Problem bleibt bestehen...

Verfasst: Fr 30. Nov 2012, 15:59
von u_fischer
Kannst du das genauer erklären?
Suche in der Dokumentation nach "gobble".
Ob ich jetzt Leerzeichen oder Tabs benutze zum Einrücken des TeX-Codes, ...
Die "Breite" eines Tabs ist undefiniert. Er kann je nach Editoreinstellung 1 bis X Leerzeichen entsprechen. Das sieht dann bei dir toll aus, und wenn du die Datei mit einem anderen Editor öffnest, sind alle Einrückungen falsch. Du kannst Tabulatoren während des Schreibens benutzen, aber beim Speichern sollte dein Editor daraus besser Leerzeichen machen.

Verfasst: Mo 3. Dez 2012, 10:21
von Einfachkrank
Ah, jetzt hab ich es gefunden! Hab die ganze Zeit allgemein bei LaTeX nach gobble gesucht, aber in der listings-Docu ist das natürlich was anderes ;-)

Funktioniert prima, vielen Dank!!!