Seite 1 von 2

Float und parindent

Verfasst: Di 4. Aug 2009, 17:04
von bloodworks
Hallo ich suche eine Möglichkeit um nach Floats das Auftreten eines parindents zu vermeiden. D.h. es soll auf keinen Fall nach einer Float eine Einrückung geben. Gibts da ne elegente Möglichkeit?

Verfasst: Do 6. Aug 2009, 13:17
von DonCube
\setlength{\parindent}{0pt}

würde wahrscheinlich funktionieren.

Verfasst: Do 6. Aug 2009, 14:48
von bloodworks
Na ja dass will ich ja grad net. Es soll im Prinzip nur nach den Floats kein Einzug geschehen. Im normalen Text darf das schon.

Die manuelle Lösung wäre ein \noindent brauch aber was globales, weil bei ca. 200 Floats ist das etwas umständlich.

Ich verstehe sowieso nicht, warum LaTeX das nicht per Default macht, weil das ja zu einer "Übergliederng" führt. Insbesondere vor kleinen Absätzen ist das etwas unschön...

Float Einzug parindent Absatz Latex

Verfasst: Do 6. Aug 2009, 15:21
von DonCube
Also eigentlich sollte man bei der Verwendung eines Einzugs eh keine Absätze verwenden. Und wenn ein float in einen Fließtext eingefügt wird, sieht LaTeX doch auch von einem Einzug ab.

Daher erschließt sich mir das Problem noch nicht ganz. Hättest du ein kleines Minimalbeispiel.

Gruß
DonCube

Verfasst: Fr 7. Aug 2009, 09:09
von bloodworks
\documentclass{scrbook}
%.... 
\usepackage{float}
\usepackage{caption}

%...
\floatstyle{boxed}
\newfloat{Beispiel}{H}{lox}[chapter]
\floatname{Beispiel}{\sffamily Beispiel}
\floatplacement{beispiel}{H}
\restylefloat{beispiel}
%....
\begin{document}
%.....

\begin{table}[htbf] 
\caption{bla}
\begin{tabular}{>{\ttfamily}lp{12cm}}
&\\
\end{tabular}
\end{table} 


Blablablablabal balbl blab bnlabalbbö.... 
\end{document}
So das Problem ist, dass nach den Floats meist Leerzeilen drinn sind,also Absätze. Und wenn ich se dann in here zwinge, was ich auf jeden Fall tun möchte, habe ich eben Einrückungen nach den Floats... Und das würde ich gern unterdrücken.

Das mit \setlength{\parindent}{0pt} Gefällt mir wie gesagt auch net so ganz, weil irgendwie will ich ja ne Absatzkenntlichmachung haben. Zumal das l2tabu das verbietet. Ein halfparskip kommat aber auch net wirklich in Frage.

Ich denke mal dass die \newfloat nicht mit dem Verhalten zu tun haben seollte bezieht sich das H ja nur auf "Beispiel" Float.

Verfasst: Fr 7. Aug 2009, 21:55
von Gast
Naja, eine Leerzeile (oder mehrere aufeinander folgende Leerzeilen) werden von LaTeX als Absatz interpretiert.

Schau Dir Deinen Code nochmal genau an ...

Das sollte uebrigens in jeder ordentlichen LaTeX-Einfuehrung beschrieben sein.

Cheers
Markus

Verfasst: Fr 7. Aug 2009, 22:01
von bloodworks
Ja genau das ist das Problem. Wie ich geschrieben habe. Und das gilts zu Unterdrücken.

Verfasst: Fr 7. Aug 2009, 23:17
von phi
Einfach keine Leerzeilen einfügen.

Verfasst: Fr 7. Aug 2009, 23:36
von bloodworks
jaaa
Aber das ist ein Projekt mit 5 oder so beteiligten Schreibern und Teilen von früher. Dashalb suche ich eben was dass mir das automatisiert unterdrückt.Es geht nicht darum das sich nicht weiß wie man das händisch macht (siehe mein Post 2), sondern eben um ein Marco oder whatever um das Nachträglich automatisiert zu machen...


Da ich leider net so der große LaTeX Macro schreiber Held bin und die Zeot eigendlich auch net habe na ja ...

Ich dachte ja daran das float Paket abzuänder und dann das mir \restylefloat auf alle anderen floats anzuwenden. Aber das ist eher so ein Gedanke.

Verfasst: Sa 8. Aug 2009, 09:51
von phi
Zuerst mal zum Sprachgebrauch: Was du hier hast, sind keine Floats (Gleitumgebungen), denn deren definierende Eigenschaft ist es ja gerade, von der Stelle, an der sie definiert wurden, wegzugleiten. Deswegen kann man bei Gleitumgebungen auch nicht wirklich vom "Absatz nach der Gleitumgebung" sprechen, denn der kann irgendwo sein. Ich weiß auf die Schnelle auch keine Methode, wie man den Absatz verhindern könnte, außer durch Umdefinieren der ganzen Gleitumgebung:
\renewenvironment{table}[1][]{%
  \captionsetup{type=table}%
  \ignorespaces
}{%
  \aftergroup\setnoindent
  \ignorespacesafterend
}
\newcommand*{\setnoindent}{%
  \edef\par{%
    \endgraf
    \parindent=0pt
    \def\par{%
      \endgraf
      \def\par{%
        \endgraf
        \parindent=\the\parindent
        \let\par\endgraf
      }%
    }%
  }%
}
Das ist aber ein höchst unsauberer Hack, der wahrscheinlich nicht einmal an allen Stellen funktioniert (je nachdem, wie viele Absätze nach der Umgebung eingefügt wurden).
Wesentlich sinnvoller wäre es, mit einem Editor die \noindent-Befehle automatisiert einzufügen und für die Zukunft allen Autoren mitzuteilen, dies manuell zu machen.
Dein Minimalbeispiel kompiliert übrigens nicht, weil es drei Fehler enthält.