Kein Einrücken des Absatzes nach Abbildungen
Kein Einrücken des Absatzes nach Abbildungen
Hallo,
ich benutz die KOMA-Skriptklasse scrreprt. Im Fließtext gefällt mir, dass in einem neuen Absatz das erste Wort eingerückt wird, ich will also an der globalen \parindent-Einstellung nichts ändern.
Unter bestimmten Elementen - konkret Abbildungen und Tabellen - sieht es aber m.M.n. unschön aus einzurücken, da das Layout ja eh einen senkrechten Abstand einbaut. Da ich diese aber als floating-Umgebungen einbaue, weiß ich beim schreiben ja nicht, wo genau das sein wird und die Stelle kann sich ja auch nochmal ändern, daher ist ein manuelles einfügen von \noindent an den einzelnen Stellen auch nicht zielführend
Gibt es einen Befehl oder globale Einstellung mit der ich \noindent mit den floating-Umgebungen verknüpfen kann?
PS: Habe mein Minimalbeispiel gemacht, da die Frage ja globalgalaktisch gilt, ich wüsste nicht, wie das helfen könnte.
Danke und Grüße,
ArrY
ich benutz die KOMA-Skriptklasse scrreprt. Im Fließtext gefällt mir, dass in einem neuen Absatz das erste Wort eingerückt wird, ich will also an der globalen \parindent-Einstellung nichts ändern.
Unter bestimmten Elementen - konkret Abbildungen und Tabellen - sieht es aber m.M.n. unschön aus einzurücken, da das Layout ja eh einen senkrechten Abstand einbaut. Da ich diese aber als floating-Umgebungen einbaue, weiß ich beim schreiben ja nicht, wo genau das sein wird und die Stelle kann sich ja auch nochmal ändern, daher ist ein manuelles einfügen von \noindent an den einzelnen Stellen auch nicht zielführend
Gibt es einen Befehl oder globale Einstellung mit der ich \noindent mit den floating-Umgebungen verknüpfen kann?
PS: Habe mein Minimalbeispiel gemacht, da die Frage ja globalgalaktisch gilt, ich wüsste nicht, wie das helfen könnte.
Danke und Grüße,
ArrY
Ideen
Wenn man nicht unbedingt Platz sparen muss (z.B. Anzahl der Seiten), bevorzuge ich statt Einrückung von Absätzen einen gewissen vertikalen Abstand zwischen ihnen. Den erhält man durch die Option parskip für die Dokumentklasse. Das ist aber grundsätzlich eine globale Einstellung und nicht an Umgebungen wie figure oder table verknüpft. Vielleicht findest Du auch Gefallen daran.
Eine Alternative wäre eine entsprechende Modifikation dieser Gleitumgebungen, die in einem Anhängen des Befehls \noindent bestehen könnte.
Eine Alternative wäre eine entsprechende Modifikation dieser Gleitumgebungen, die in einem Anhängen des Befehls \noindent bestehen könnte.
Wie soll man dann wissen, dass die Abbildung zwischen zwei Absätzen und nicht in einem Absatz eingefügt wird?
Das wäre außerdem ein Widerspruch zu: Gleitumgebungen (aka Konsultationsobjekte) sollten möglichst wenig Einfluss auf den Text selbst haben.
Dir ist bekannt, dass man Gleitumgebungen ohnehin am besten am Seitenfang oder Seitenende oder auf Extraseiten unterbringt? Mitten im Text stören sie den Lesefluss und die Orientierung deutlich mehr und sollten deshalb nur notfalls erlaubt werden.
Es gibt jedenfalls AFAIK keine Möglichkeit, am Absatzanfang zuverlässig festzustellen, dass eine Gleitumgebung davor steht. Schon gar nicht sehe ich eine Möglichkeit, zuverlässig, vollautomatisch darauf zu reagieren.
Das wäre außerdem ein Widerspruch zu: Gleitumgebungen (aka Konsultationsobjekte) sollten möglichst wenig Einfluss auf den Text selbst haben.
Dir ist bekannt, dass man Gleitumgebungen ohnehin am besten am Seitenfang oder Seitenende oder auf Extraseiten unterbringt? Mitten im Text stören sie den Lesefluss und die Orientierung deutlich mehr und sollten deshalb nur notfalls erlaubt werden.
Es gibt jedenfalls AFAIK keine Möglichkeit, am Absatzanfang zuverlässig festzustellen, dass eine Gleitumgebung davor steht. Schon gar nicht sehe ich eine Möglichkeit, zuverlässig, vollautomatisch darauf zu reagieren.
Danke für die AW'en.
Leider muss ich tatsächlich Platz sparen, daher kommt ein parskip nicht in Frage. Was leider nicht funktioniert ist, dass der Befehl \noindent einfach letzter Befehl der Gleitumgebung ist und sich dann auf den danach folgenden Absatz auswirkt..
Ich lasse bisher bei meinen Floating-Umgebungen [htbp] zu und fand es vom Layout her immer gut. Es hat mir gefallen, dass flachere Abbildungen auch mal mitten im Text stehen. Vielleicht probiere ich aber mal aus es auf [tb] zu reduzieren, dann dürfte er es häufiger "echt" in den Text einbauen und weniger auf die von mir im Code gemachten Absätze Rücksicht zu nehmen, vllt entschärft es sich dadurch.
Meine Hoffnug war tatsächlich, dass es einen Befehl gibt. Denn "man" (Autor) kann es nicht wissen, wo die floatings stehen. Das Tool beim Ausführen weiß es aber schon un könnte theoretisch darauf durch Anpassung des Absatzbeginns darauf reagieren..
Leider muss ich tatsächlich Platz sparen, daher kommt ein parskip nicht in Frage. Was leider nicht funktioniert ist, dass der Befehl \noindent einfach letzter Befehl der Gleitumgebung ist und sich dann auf den danach folgenden Absatz auswirkt..
Ich lasse bisher bei meinen Floating-Umgebungen [htbp] zu und fand es vom Layout her immer gut. Es hat mir gefallen, dass flachere Abbildungen auch mal mitten im Text stehen. Vielleicht probiere ich aber mal aus es auf [tb] zu reduzieren, dann dürfte er es häufiger "echt" in den Text einbauen und weniger auf die von mir im Code gemachten Absätze Rücksicht zu nehmen, vllt entschärft es sich dadurch.
Meine Hoffnug war tatsächlich, dass es einen Befehl gibt. Denn "man" (Autor) kann es nicht wissen, wo die floatings stehen. Das Tool beim Ausführen weiß es aber schon un könnte theoretisch darauf durch Anpassung des Absatzbeginns darauf reagieren..
Nun, LaTeX weiß schon, wann ein Float ein "here"-Float ist, es fügt dann z.B. den Abstand \intextsep ein. Und Listen erkennen, ob Text danach mit oder ohne Leerzeile eingefügt wurde und passen den Einzug an. Aber ohne Testdokument kann man natürlich nicht ausprobieren, ob man das irgendwie kombinieren kann.
Nun, jetzt schadet es dir, dass du die paar Minuten für die 5-6 Zeilen Minimalbeispiel nicht investiert hast.PS: Habe mein Minimalbeispiel gemacht, da die Frage ja globalgalaktisch gilt, ich wüsste nicht, wie das helfen könnte.
Also *in* einem Absatz sollte man figure sowieso nicht verwenden, der Float wird ja sowieso in jedem Fall danach eingefügt. Aber dass Intextfloats anders als top- und bottom-Floats behandelt werden, ist ja nicht grundsätzlich falsch.Besserwisser hat geschrieben:Wie soll man dann wissen, dass die Abbildung zwischen zwei Absätzen und nicht in einem Absatz eingefügt wird?
Ulrike Fischer
www.troubleshooting-tex.de
www.troubleshooting-tex.de
Ich lasse mich ja gerne eines besseren belehren, dachte nur, dass man das ja an jedem vorhandenen Dok. schnell überprüfen könnte. Aber hier wäre so ein Minimalbeispiel mit 3 Absätzen, wobei der letzte nach dem Bild im Ideal (für mich) dann nicht eingerückt wäre.u_fischer hat geschrieben:Nun, jetzt schadet es dir, dass du die paar Minuten für die 5-6 Zeilen Minimalbeispiel nicht investiert hast.
\documentclass[ a4paper, 12pt, headsepline, headings=normal, numbers=noenddot, DIV12, ]{scrreprt} \usepackage{blindtext} \begin{document} \section{Beispiel-Ueberschrift} \blindtext %ein Paragraph, der korrekterweise nicht eingerückt wird, weil unter einer section \blindtext %noch ein Paragraph, der richtigerweise eingerückt wird \begin{figure}[htbp] \centering \rule{2cm}{2cm} \caption{Beispielbild} \end{figure} \blindtext % noch ein Paragraph, der nicht eingerückt werden sollte. \end{document}
Wenn man gerade ein passendes zur Verfügung hat, sonst muss man es erstellen oder eines suchen.Ich lasse mich ja gerne eines besseren belehren, dachte nur, dass man das ja an jedem vorhandenen Dok. schnell überprüfen könnte.
Ich habe derzeit einen schweren Anfall von "ich-will-nicht-dauernd-nach-Minimalbeispielen-fragen-und-erklären-wieso-man-die-braucht"-Fieber und werde daher die Frage erstmal auf Eis legen. Vielleicht geht es mir ja nächste Woche besser.Aber hier wäre so ein Minimalbeispiel mit 3 Absätzen,
Ulrike Fischer
www.troubleshooting-tex.de
www.troubleshooting-tex.de
Nö:u_fischer hat geschrieben:Also *in* einem Absatz sollte man figure sowieso nicht verwenden, der Float wird ja sowieso in jedem Fall danach eingefügt.
\documentclass{article} \usepackage{blindtext} \begin{document} \blindtext \begin{figure}[htbp] \caption{Testfloat} \end{figure} \blindtext \blindtext \end{document}
\intextsep wird in der output-Routine eingefügt. Deshalb ist am entsprechenden Absatzanfang dann beispielsweise \lastskip trotzdem 0pt und ein Einpatchen von \noindent funktioniert an der Stelle, an der der zweite \vskip\intextsep eingefügt wird, auch nicht.
Was funktionieren könnte, ist das Einpatchen eines globalen Schalters:
Es stattdessen per \everypar in \@addtocurcol quasi automatisch zu lösen, ist mir nicht gelungen. Das kann aber auch an der vorgerückten Stunde liegen.
Was funktionieren könnte, ist das Einpatchen eines globalen Schalters:
\documentclass{article} \usepackage{xpatch} \newif\iffloatbefore \renewcommand*{\floatbeforetrue}{\global\let\iffloatbefore\iftrue} \renewcommand*{\floatbeforefalse}{\global\let\iffloatbefore\iffalse} \makeatletter \xpatchcmd{\@addtocurcol}{\vskip\intextsep}{\vskip\intextsep\floatbeforetrue}{}{\FAIlure} \makeatother \newcommand*{\noindentiffloatbefore}{% \iffloatbefore\expandafter\expandafter\expandafter\floatbeforefalse\noindent\fi } \usepackage{mwe} \begin{document} \noindentiffloatbefore\blindtext \begin{figure}[htbp] \caption{Testfloat} \end{figure} \noindentiffloatbefore\blindtext \noindentiffloatbefore\blindtext \noindentiffloatbefore\blindtext \begin{figure} \caption{Testfloat} \end{figure} \noindentiffloatbefore\blindtext \noindentiffloatbefore\blindtext \noindentiffloatbefore\blindtext \noindentiffloatbefore\blindtext \end{document}
Achso: Das funktioniert natürlich nur, solange man alle Floats wirklich zwischen Absätzen einfügt. Sonst wird ein späteres \noindentiffloatbefore ggf. den Einzug verhindern, obwohl der Absatz nicht unmittelbar auf eine Gleitumgebung folgt. Und ob das mit LaTeX 2015/01/01 noch funktioniert, weiß ich auch nicht. Da ist angeblich auch in der output-Routine einiges geändert. Und ob es überhaupt immer wie gewünscht funktioniert, ist mir auch nicht ganz klar.