Anzeige:
Ergebnis 1 bis 8 von 8

Thema: figure-Umgebung erzeugt ungewollten Leerraum

  1. #1
    Registrierter Benutzer
    Registriert seit
    31.03.2011
    Beiträge
    12

    figure-Umgebung erzeugt ungewollten Leerraum

    Guten Tag.

    Ist es tatsächlich so, dass eine figure-Umgebung zusätzlichen vertikalen Abstand an der Stelle erzeugen kann, an der sie im Quellcode auftritt? Also auch dann, wenn das Bild selbst (beispielsweise über [p]) an einer ganz anderen Stelle ausgegeben wird.

    Mein Minimalbeispiel erzeugt zweimal die Struktur Theorem/Subsection/Text. Der Abstand vor den beiden Subsections ist aber NICHT identisch, weil vor der ersten Subsection im Quellcode eine figure-Umgebung steht.

    Das ist natürlich ärgerlich. Ich würde mich daher sehr freuen, wenn eine oder einer unter Euch Rat weiß.

    Herzlich grüßt
    Simon

    Code:
    \documentclass{article}
    \RequirePackage{amsthm}[2004/08/06]
    \newtheorem{satz}{Satz}
    
    \begin{document}
    \section{Section 1}
    Text.\begin{satz}Satz\end{satz}
    \begin{figure}[p]Abbildung\end{figure}
    
    \subsection{Subsection 1.1}
    Text.\begin{satz}Satz\end{satz}
    
    \subsection{Subsection 1.2}
    Text.
    \end{document}

  2. #2
    Registrierter Benutzer Avatar von bobmalaria
    Registriert seit
    28.11.2006
    Ort
    Düsseldorf
    Beiträge
    4.174
    hi,

    eine figure umgebung fuegt schon etwas vertiaklen abstand ein, aber nur da wo sie auftaucht. wenn der abstand nicht identisch ist, dann kann das daran liegen, dass die abstaende nicht fix definiert sind

    Code:
    \newcommand\section{\@startsection {section}{1}{\z@}%
                                       {-3.5ex \@plus -1ex \@minus -.2ex}%
                                       {2.3ex \@plus.2ex}%
                                       {\normalfont\Large\bfseries}}
    \newcommand\subsection{\@startsection{subsection}{2}{\z@}%
                                         {-3.25ex\@plus -1ex \@minus -.2ex}%
                                         {1.5ex \@plus .2ex}%
                                         {\normalfont\large\bfseries}}
    ist die definition aus article.cls. an den konstrukten mit `plus` und `minus` kannst du sehen, dass es erlaubt wird den abstand zu stauchen odr zu strecken. das ist abhaengig von der textmenge auf der seite,

    mit einem paket wie titlesec koenntest du die abstaende zementieren, oder entsprechend obigen befehl umdefinieren. ein gewisses mass an flexibilitaet ist normal wuenschenswert um die ueberschriften und den text auf einer seite gut zu verteilen.

    gruss
    Mein Ball ist umgefallen

  3. #3
    Registrierter Benutzer
    Registriert seit
    06.03.2010
    Ort
    St. Petersburg, Russland
    Beiträge
    2.468
    Also ich stelle anhand des MB eindeutig fest, dass der zusätzliche Abstand GENAU dann auftritt, wenn direkt vor der neuen \subsection die figure-Umgebung im Quelltext steht. Es sollte wohl nicht so sein, aber es ist so.

  4. #4
    Registrierter Benutzer
    Registriert seit
    17.05.2008
    Ort
    Bremen
    Beiträge
    479
    Zitat Zitat von rstuby Beitrag anzeigen
    Also ich stelle anhand des MB eindeutig fest, dass der zusätzliche Abstand GENAU dann auftritt, wenn direkt vor der neuen \subsection die figure-Umgebung im Quelltext steht. Es sollte wohl nicht so sein, aber es ist so.
    Ja, bei mir auch. Es liegt auch nicht an der Limitierung auf page bei der Positionierung, sondern tritt immer auf, wenn man zumindest dafür sorgt, dass das Bild nicht genau an der Stelle auftritt, wo es eingefügt ist. Bei den KOMA-Klassen genau so, und auch microtype hilft nicht. Verhindern lässt es sich nur dadurch, dass die figure-Umgebung nicht direkt nach der Satz-Umgebung kommt, sondern wenn noch Text dazwischen eingefügt wird.

    Vergleiche:

    Code:
    \documentclass{article}
    \RequirePackage{amsthm}[2004/08/06]
    \newtheorem{satz}{Satz}
    
    \begin{document}
    \section{Section 1}
    Text.\begin{satz}Satz\end{satz}
    %Text.
    \begin{figure}[p]Abbildung\end{figure}
    
    \subsection{Subsection 1.1}
    Text.\begin{satz}Satz\end{satz}
    
    \subsection{Subsection 1.2}
    Text.
    \end{document}
    mit

    Code:
    \documentclass{article}
    \RequirePackage{amsthm}[2004/08/06]
    \newtheorem{satz}{Satz}
    
    \begin{document}
    \section{Section 1}
    Text.\begin{satz}Satz\end{satz}
    Text.
    \begin{figure}[p]Abbildung\end{figure}
    
    \subsection{Subsection 1.1}
    Text.\begin{satz}Satz\end{satz}
    
    \subsection{Subsection 1.2}
    Text.
    \end{document}
    Sehr seltsam

  5. #5
    Registrierter Benutzer
    Registriert seit
    31.03.2011
    Beiträge
    12
    Dass das Problem nicht auftritt, wenn die figure-Umgebung an anderer Stelle steht, ist mir auch schon aufgefallen. Liegt also vielleicht am Zusammentreffen von theroem-Umgebung und \subsection.

    Aber genau hier ist das Problem. Ich möchte beim Arbeiten nicht ständig aufpassen müssen, WO ich die figure-Umgebung platzieren darf und wo nicht.

    Die Idee mit den Definitionen fester und flexiber Abstände hilft mir leider (trotzdem vielen Dank) auch nicht recht weiter. Es ist ja beide Male (bis auf die figure-Umgebung) die gleiche Definiton. Da erwartet man dann doch auch gleiche Abstände. Flexibler Abstand hin oder her.

    Ich bin gespannt auf den Fortgang der Diskussion.

    Simon

  6. #6
    Registrierter Benutzer
    Registriert seit
    17.05.2008
    Ort
    Bremen
    Beiträge
    479
    Zitat Zitat von simon Beitrag anzeigen
    Dass das Problem nicht auftritt, wenn die figure-Umgebung an anderer Stelle steht, ist mir auch schon aufgefallen. Liegt also vielleicht am Zusammentreffen von theroem-Umgebung und \subsection.
    Wenn es das wäre würde ja auch im zweiten Teil des Dokuments der Abstand nicht stimmen. Es scheint definitiv am Zusammentreffen von figure und theorem zu liegen. Laut Doku von amsthm sind die Abstände vor und hinter der theorem-Umgebung fixiert, der zusätzliche Leerraum kann also nur aus der figure-Umgebung stammen.

  7. #7
    Registrierter Benutzer
    Registriert seit
    19.05.2009
    Beiträge
    4.045
    Das Problem gibt es nicht nur mit theorem sondern allgemein mit Listen: Diese fügen am Ende zusätzlichen Abstand ein. Damit sich dieser Abstand nicht zu dem Abstand vor der \subsection addiert, wird \addvspace benutzt. Aber wenn sich irgendwas dazwischen befindet (auch wenn dieses etwas nichts druckbares ergibt), dann können die \addvspace/\vspace-Befehle nicht mehr zusammenkommen und sich neutralisieren.

    Meines Wissens gibt es keine allgemeine Möglichkeit, das Problem zu umgehen. Man sollte einfach nichts direkt vor oder nach einem \addvspace schreiben.

    http://tex.stackexchange.com/questio...ex-doesnt-work

  8. #8
    Registrierter Benutzer
    Registriert seit
    31.03.2011
    Beiträge
    12
    Liebe Ulrike Fischer.

    Vielen Dank für die Antwort. Ich werde mir also abgewöhnen, figure-Umgebungen (und ähnliches) hinter \addvspace-Konstruktionen zu setzen.

    Gruß, Simon

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •