PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kein Einzug nach \bigskip, Listen (u.a.)



frankfridolin
23-09-2008, 22:27
Hi,

ich suche nach einer Lösung, wie man an bestimmten Stellen den automatischen Einzug bei Absätzen ausschalten kann. Ich möchte also zum Beispiel nach Listen oder \bigskip keinen Absatzeinzug haben, also dort, wo die Trennung vom oberen Teil schon durch einen Abstand geklärt ist. Bis jetzt hab ich das immer mit \noindent an jeder einzelnen Stelle gemacht, aber da muss es doch was besseres geben? Wie wird das denn bei den Überschriften geregelt?

Vielen Dank für die Mühe!
Thomas

PS: Hab jetzt schon eine ganze Weile gesucht, aber nichts gefunden. Das Problem scheint sonst keiner zu haben. Warum eigentlich?

voss
23-09-2008, 22:39
ich suche nach einer Lösung, wie man an bestimmten Stellen den automatischen Einzug bei Absätzen ausschalten kann. Ich möchte also zum Beispiel nach Listen oder \bigskip keinen Absatzeinzug haben, also dort, wo die Trennung vom oberen Teil schon durch einen Abstand geklärt ist. Bis jetzt hab ich das immer mit \noindent an jeder einzelnen Stelle gemacht, aber da muss es doch was besseres geben? Wie wird das denn bei den Überschriften geregelt?


warum sollte es dafür was geben, ist schließlich der Standard, wenn man mit
einem Absatzeinzug arbeitet.

Bei abgesetzten Gleichungen hilft man sich mit


foo
%
\[
...
\]
%
weiter geht es

Dann gibt es für "weiter" keinen EInzug, was hier korrekt sein kann.

Herbert

frankfridolin
24-09-2008, 11:00
warum sollte es dafür was geben, ist schließlich der Standard, wenn man mit
einem Absatzeinzug arbeitet.


Naja, es ist ja durchaus üblich, etwa nach Überschriften keinen Einzug zu setzen. Es sei denn, man benutzt das identfirst-Paket, aber das ist mir bis jetzt noch nicht oft aufgefallen. Ich hab trotzdem deinen Vorschlag ausprobiert, aber nach \] wird die erste Zeile wieder eingerückt. Trotzdem danke für die Mühe.

Es geht mir auch nicht um Gleichungen, ein abgesetztes Zitat o.ä. kann man auch mit der addmargin-Umgebung von KOMA-Script machen, das für eben dieses Zitat genau das tut, was ich will: Die erste Zeile des ersten Absatzes wird nicht eingerückt, die von folgenden Absätzen schon. Funktioniert eben nicht für den normalen Text, weil es als list-Umgebung umgesetzt wird.

Jemand anders eine Idee?
Vielen Dank schonmal!

voss
24-09-2008, 11:20
Naja, es ist ja durchaus üblich, etwa nach Überschriften keinen Einzug zu setzen. Es sei denn, man benutzt das identfirst-Paket, aber das ist mir bis jetzt noch nicht oft aufgefallen. Ich hab trotzdem deinen Vorschlag ausprobiert, aber nach \] wird die erste Zeile wieder eingerückt.


wo wird hier eingerückt?

\documentclass[a4paper,12pt]{scrreprt}

\begin{document}

foo
%
\[
...
\]
%
weiter geht es

\end{document}


Wenn du das bei Listen nicht willst, dann schreibst du diese halt neu.

Herbert

frankfridolin
25-09-2008, 08:40
wo wird hier eingerückt?

\documentclass[a4paper,12pt]{scrreprt}

\begin{document}

foo
%
\[
...
\]
%
weiter geht es

\end{document}



Stimmt, mit dem Kommentarzeichen in der Leerzeile dürfte nicht eingerückt werden. Ich habe es vermutlich falsch übertragen, weil ich nach einer anderen Lösung gesucht habe.



Wenn du das bei Listen nicht willst, dann schreibst du diese halt neu.
Herbert

Listen sind nicht mein Problem. Es tut mir leid, wenn ich mich hier so unklar ausdrücke, ich versuche es nochmal. Sorry. Also mal ein ganz konkretes Problem, vielleicht wird es dann klarer:

Neuformulierung des Problems:
Ich möchte gerne, dass ganz automatisch die erste Zeile des Absatzes, der nach einem \bigskip kommt, nicht eingerückt wird, egal, ob danach im Quelltext eine Leerzeile steht.

Vielen Dank nochmal.

frankfridolin
29-09-2008, 15:35
Hi,

mir ist da etwas eingefallen, vielleicht hilft das ja weiter. In der Beschreibung für das schon angesprochene Paket identfirst heißt es:


LATEX uses the switch \if@afterindent to decide whether to indent after a section heading. We just need to make sure that this is always true.

\let\@afterindentfalse\@afterindenttrue
\@afterindenttrue


Ich hab halt leider keine Ahnung von TeX. Kann man denn auch aus LaTeX heraus den Schalter afterindent auf false legen? Wäre großartig, wenn sich noch jemand melden würde. Würde mir einen Haufen Arbeit ersparen.

Vielen Dank.
Thomas

alexraasch
27-12-2008, 15:48
Es würde so funktionieren, dass Du \bigskip umdefinierst:


\let\oldbigskip\bigskip
\renewcommand{\bigskip}{\oldbigskip\noindent}

Mit \noindent wird der Einzug unterdrückt.

Stefan_K
27-12-2008, 19:14
Hallo,

obiges geht übrigens auch in einer Zeile und ohne Deklaration eines weiteren Makros \oldbigskip:

\expandafter\def\expandafter\bigskip\expandafter{\ bigskip\noindent}
Siehe evtll auch Using \expandafter for macro redefinitions (http://texblog.net/latex-archive/plaintex/expandafter/).

Viele Grüße,

Stefan

voss
27-12-2008, 22:17
obiges geht übrigens auch in einer Zeile und ohne Deklaration eines weiteren Makros \oldbigskip:

\expandafter\def\expandafter\bigskip\expandafter{\ bigskip\noindent}
Siehe evtll auch Using \expandafter for macro redefinitions (http://texblog.net/latex-archive/plaintex/expandafter/).



\def\bigskip{\vspace{\bigskipamount}\noindent}

Herbert

frankfridolin
28-12-2008, 11:26
Hallo und vielen Dank für die Antworten.

Bin leider immer noch nicht ganz zufriedengestellt -- bei diesen Lösungen darf zwischen \bigskip und dem nachfolgenden Text keine Leerzeile stehen. Ich hab mir das eben angewöhnt und finde es auch übersichtlicher im Quelltext. \bigskip ist bei mir sowieso schon umdefiniert, oft benutze ich ein Sternchen oder anderes Zeichen in der Mitte der Zeile.

Kann man vielleicht \bigskip so erweitern, dass danach \@afterindentfalse gilt (oder so, siehe Beitrag vom 29-09-2008)? Ich hab leider, wie gesagt, keine Ahnung von reinem TeX.

Vielen Dank trotzdem für eure Mühen, notfalls tun es auch die obigen Lösungen. Wär halt nicht so schön.

Thomas