In folgendem Minimalbeispiel wird der von align gesetzte Text in der ersten addmargin
-Umgebung horizontal falsch gesetzt.
Liegt die Ursache in der Umgebung, oder in \intertext
von amsmath?
\documentclass{article} \usepackage{blindtext} \usepackage{scrextend} \usepackage{mathtools} \usepackage{showframe} \begin{document} \begin{addmargin}[3cm]{-3cm} \begin{align} \intertext{Dies ist Text} \end{align} \rule{\linewidth}{1pt} \end{addmargin} \begin{addmargin}[-2cm]{-3cm} \begin{align} \intertext{Dies ist Text} \end{align} \rule{\linewidth}{1pt} \end{addmargin} \begin{addmargin}{3cm} \begin{align} \intertext{Dies ist Text} \end{align} \rule{\linewidth}{1pt} \end{addmargin} \begin{addmargin}{-3cm} \begin{align} \intertext{Dies ist Text} \end{align} \rule{\linewidth}{1pt} \end{addmargin} \end{document} scrextend.sty 2015/05/19 v3.18.2106 KOMA-Script package (extend other classe s with features of KOMA-Script classes)
Gute Frage
Wobei die noch bessere Frage ist, warum
funktioniert, während
nicht funktioniert. Und
wieder funktioniert. Es scheint genau dann schief zu gehen, wenn die Umgebung im Endeffekt die Textbreite nicht ändert.
Interessant auch, dass echte Formeln entsprechend der
addmargin-
Umgebung platziert werden. Es betrifft nur\intertext
. Wenn wir uns nun dessen Definition anschauen:dann finden wir in der Tat, dass da geprüft wird, ob die aktuelle Zeilenbreite der Spaltenbreite entspricht. In genau diesem Fall wird nicht mit
\parshape
gearbeitet, wohl weil davon ausgegangen wird, dass in dem Fall die Ränder unverändert sind. Entfernt man diese Optimierung:scheint alles zu funktionieren.
Allerdings heißt es in den Quellen von amsmath:
Daher könnte es sein, dass obige Lösung in manchen Situationen nicht ideal ist. Es erklärt aber auch, wie das Problem entsteht: amsmath nimmt tatsächlich an, dass in Listenumgebungen
\linewidth
immer von\columnwidth
abweicht, was aber keineswegs zwingend ist. Es liegt also an der Implementierung von\intertext
bzw. der unzureichenden Erkennung von Listen-Umgebungen darin.Danke
Wow, da hängt ja ein ganzer Rattenschwanz dran. Ein Bug in KOMA-script wäre mir lieber gewesen, den könnte man leichter fixen.
Vielen Dank, dass du dir das angeschaut hast. Ich werde einen Fehlerbericht mit deiner Analyse and Barabara Beeton und das Team von
mathtools
weiterleiten. Vielleicht haben Joseph oder Lars eine bahnbrechende Idee.Wenn die Änderung aus meinem
Wenn die Änderung aus meinem Beispiel tatsächlich keine Lösung sein sollte, könnte man eventuell auch wirklich auf
\@totalleftmargin>0
und\linewidth!=\columnwidth
testen und eine Liste daran erkennen, dass min. eines von beiden zutrifft.Wobei ich inzwischen stark davon ausgehe, dass mein Patch auch außerhalb von Listen funktioniert, weil die
\parshape-
Anweisung dann quasi keine Wirkung hat.Chatty
Lars Madsen und David Carlisle haben im TeX-Chat bei Stackexchange über die Lösung des Problems diskutiert (Transkript-Link).
Ein Update mit dem Fix zu obigem Problem ist ab demnächst auf CTAN verfügbar.