Es gibt offensichtlich Inkompatibilitäten zwischen den Optionen (half)parskip und einigen anderen Paketen, darunter amsmath und ntheorem, was Abstände zwischen Absätzen betrifft.
Beispiel amsmath: amsmath redefiniert \[ und \] mit der Folge, daß der Abstand nach einer Formel, die als eigener Absatz steht, zu klein ist. Dies scheint mit der Verwendung von \ignorespacesafterend in \] zusammenzuhängen, d. h. es wird nicht erkannt, daß ein neuer Absatz beginnen sollte.
Allein für einen Hinweis auf einen zuverlässigen Workaround wäre ich sehr dankbar.
Von mir verwendete Versionen:
MikTeX 2.4
LaTeX2e
KOMA-Script: 2004/01/07
Beispiel für amsmath und ntheorem:
\documentclass[a4paper,halfparskip]{scrartcl}
\usepackage{amsmath}
\usepackage[amsmath]{ntheorem}
\newtheorem{Satz}{Satz}
% Zur Verdeutlichung:
%\setlength{\theorempreskipamount}{0pt}
%\setlength{\theorempostskipamount}{0pt}
\begin{document}
Absatz Absatz Absatz Absatz Absatz Absatz Absatz Absatz Absatz
Absatz Absatz Absatz Absatz Absatz Absatz Absatz Absatz Absatz
Absatz Absatz Absatz Absatz Absatz Absatz Absatz Absatz Absatz
Absatz Absatz Absatz Absatz Absatz Absatz Absatz Absatz Absatz
\[ XXX \]
Absatz Absatz Absatz Absatz Absatz Absatz Absatz Absatz Absatz
Absatz Absatz Absatz Absatz Absatz Absatz Absatz Absatz Absatz
\begin{Satz}
Absatz Absatz Absatz Absatz Absatz Absatz Absatz Absatz Absatz
Absatz Absatz Absatz Absatz Absatz Absatz Absatz Absatz Absatz
\end{Satz}
\begin{Satz}
Absatz Absatz Absatz Absatz Absatz Absatz Absatz Absatz Absatz
Absatz Absatz Absatz Absatz Absatz Absatz Absatz Absatz Absatz
\end{Satz}
Absatz Absatz Absatz Absatz Absatz Absatz Absatz Absatz Absatz
Absatz Absatz Absatz Absatz Absatz Absatz Absatz Absatz Absatz
\end{document}
Besten Dank,
Martin
Ansichtssache
Vorab: Dein KOMA-Script ist veraltet. Gerade im Bereich der parskip-Optionen gab es immer wieder Verbesserungen. Wenn du diese verwendest, solltest du also eine aktuelle KOMA-Script-Version installieren. Leider bietet MikTeX über den Update-Manager derzeit wohl noch immer keine aktuelle Version. Es gibt aber für MikTeX eine solche auf Stephan Hennigs Download Seite. Ich denke aber nicht, dass dein spezielles Problem sich durch ein Update verändert.
Es ist Ansichtssache, ob der Abstand vor und/oder nach Formeln vom Absatzabstand abhängen soll. Wobei ich bei
sowohl mit als auch ohne amsmath einen deutlichen Unterschied bei der ersten Formel und der zweiten erkenne. Grundsätzlich richtet amsmath Formeln etwas anders aus, so dass sich ein kleiner Unterschied zwischen der Variante mit amsmath und ohne amsmath ergibt. Das ist aber auch der Fall, wenn man ohne
halfparskip
oder mit der article-Klasse arbeitet. Hat also mit KOMA-Script schonmal nichts zu tun.Kommen wir zu ntheorem. Schauen wir uns da einmal ein ganz minimales Beispiel an:
Wie man hier sieht, wird nach Satz 2, Satz 3 und Satz 5 etwas vertikaler Abstand eingefügt - unabhängig davon, dass hier gar nicht mit Absatzabstand gearbeitet wird, und unabhängig davon, dass eigentlich nach Satz 4 überhaupt kein Absatz erfolgt. Auch ist der verikale Abstand zwischen Satz 1 und 2 unterschiedlich zum Abstand zwischen Satz 3 und 4. Da ohne Absatzabstand gearbeitet wird, verwundert das etwas.
Wechselt man nun in dem Beispiel zu scrartcl und setzt
halfparskip
, so hat man nach Satz 2 und 5 ziemlich genau den erwarteten Abstand. Bei Satz 4 wird jedoch von ntheorem nicht berücksichtigt, dass es nicht genügt, den Absatzeinzug zu verhindern. Das ist ein Problem von ntheorem, nicht von amsmath und nicht von KOMA-Script. Es tritt genauso auf, wenn man bei article bleibt und\parskip
erhöht.Auch bei diesem Beispiel werden von ntheorem Absatzabstände eingefügt, wo keine erwünscht sind. Man kann sich aber auch auf den Standpunkt stellen, dass grundsätzlich, vor und nach einer Theorem-Umgebung ein Absatzabstand einzufügen ist. Ohne ntheorem passiert genau das.
Wenn sich in der Anleitung zu ntheorem diesbezüglich nichts findet, würde ich mich an deiner Stelle mal an den Autor von ntheorem wenden.
Trotz Ansichtssache: Bei amsmath dennoch krumm
Hallo Markus,
danke für Deine Antwort.
Betreffend ntheorem war ich zu voreilig, sorry.
Mein KOMA-Script habe ich geupdated, danke für den Tip, hat aber, wie Du vermutetest, nichts geändert.
amsmath: Um es vorwegzunehmen, ich fand soeben einen Workaround, der den Eindruck macht, gerade zuverlässig genug zu sein.
Dennoch im Detail: Bitte mache doch einmal die Linie dicker (siehe unten). Geschmack hin oder her, der Abstand nach der Formel als extra Absatz ist einfach zu klein.
Ich fand voher heraus, daß dieses Phänomen auch auftritt bei Verwendung von parskip.sty plus amsmath, egal ob article oder scrartcl, es ist also kein spezifisches KOMA-Script-Problem. (Aber es wäre dennoch nett, wenn halfparskip + amsmath klappen würde... Bei AMS dürfte sich wohl niemand dafür interessieren, befürchte ich.)
Wie schon erwähnt, scheint es in meinen Augen etwas mit dem \ignorespacesafterend zu tun zu haben -- vielleicht. Erwähnenswert ist noch, daß die 4 Längen \abovedispayskip usw. mit und ohne amsmath gleich sind.
Workaround: Wie unten angeben. Allerdings: Würde man ein \vspace{-\parskip} verwenden, so würde sich bei \flushbottom der Platz nach der Formel nicht mit ausdehnen -- schließlich hat man ja auch allen plus-glue mit abgezogen. Wie man aus \parskip den nicht-plus-nicht-minus-Anteil automatisch extrahiert, weiß ich nun allerdings wirklich nicht. Geht das?
\documentclass[a4paper,halfparskip]{scrartcl}
%\documentclass[a4paper]{article}
\usepackage{amsmath}
%\usepackage{parskip}
%\flushbottom
\makeatletter\def\hrulefill{\leavevmode\leaders\hrule height1.6ex\hfill\kern\z@}\makeatother
\begin{document}
Test\hrulefill
\[y = x\]
Test\hrulefill
Test\hrulefill
\[y=x\]
Test\hrulefill
\[y=x\] \vspace*{0cm}
Test\hrulefill
\[y=x\] \vspace{-6.8pt} % eigentlich: -\parskip ohne plus- und minus-Anteil
Test\hrulefill
Absatz mit \[y=x\] kurzer Formel\hrulefill
Absatz mit mit mit mit mit mit mit mit mit mit mit mit \[y=x\] langer Formel\hrulefill
%\pagebreak
\the\parskip\\ \the\abovedisplayskip\\ \the\abovedisplayshortskip\\ \the\belowdisplayskip\\ \the\belowdisplayshortskip\\ \the\topsep
\end{document}
BTW: Ist dieses Problem eigentlich noch niemandem aufgefallen?! Wieviele LaTeX-Artikel wurden eigentlich schon mit so krummen Abständen gesetzt?
Martin
Tut mir leid, aber ich sehe kein Problem
Tut mir leid, aber auch mit deinem Minimalbeispiel sehe ich kein Problem. Wie ich bereits in meinem letzten Kommentar geschrieben habe, ist die vertikale Ausrichtung bei amsmath geringgügig anders als ohne. Das ist aber nicht falsch, eben nur anders und wohl auch beabsichtig. Das tritt auch auf, wenn
\parskip
auf 0 gesetzt wird.Der Kommentar ist übrigens nicht zutreffend. Setzt mal
\parskip
auf2em
. Dann wirst du sehen, dass das wenig mit\parskip
zu tun hat. Vermulich hat es eher etwas mit\ht\strutbox
zu tun. In dem Fall probier mal in der Präambel:Du kannst natürlich auch
\belowdisplayshortskip
wieder auf denselben Wert setzen wie\belowdisplayskip
, wenn dir das besser gefällt.Wie dem auch sei. Wenn dir etwas an amsmath nicht gefält, solltest du dich an die Leute wenden. Vielleicht wird es als Bugreport oder als Feature-Request akzeptiert und es gibt irgendwann eine Version, die bietet, was du haben willst. Du hast ja inzwischen selbst erkannt, dass das Problem nicht wirklich etwas mit KOMA-Script zu tun hat. Am besten machst du bei der Anfrage an die amsmath-Leute auch ein Beispiel ohne KOMA-Script, um genau dies zu verdeutlichen. In dem Fall ist es eventuell sogar sinnvoll, nicht das parskip-Paket zu bemühen, sondern
\parskip
und\parindent
direkt zu setzen. Dann ist das Beispiel so minimal, wie es nur sein kann.