PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : \abovedisplayshortskip bei fleqn



Tobis
07-10-2008, 08:52
Vielleicht weiß jemand rat:

Ich würde gerne bei mathematischen Formeln, bei denen der linke Rand nach dem Ende des vorangegangenen Text steht, den Abstand verkleinern. Formeln, deren linker Rand unter dem Ende des vorangegangenen Textes steht sollen nicht beeinflusst werden. Dies geht ja normalerweise mit dem Befehl \abovedisplayshortskip.

Da ich aber den Parameter fleqn benutze fällt das leider flach...

Bei Voss und Niedermair habe ich jetzt was von \topsep gelesen, ich werd aber leider nicht schlau daraus ob und wenn ja wie mir das bei meinem Problem weiterhelfen soll.

Stefan_K
07-10-2008, 13:15
Hallo Tobis,

Du könntest \abovedisplayskip verwenden.

Stefan

Tobis
07-10-2008, 14:50
Ja, aber damit wird ja der Rand geändert, wenn der linke Rand der Formel vor dem Ende der vorherigen Textzeile liegt und nicht wenn der linke Rand der Formel nach dem Ende der Textzeile ist.

Außerdem kann ich auch diesen Befehl bei fleqn nicht verwenden.

voss
07-10-2008, 15:00
Ja, aber damit wird ja der Rand geändert, wenn der linke Rand der Formel vor dem Ende der vorherigen Textzeile liegt und nicht wenn der linke Rand der Formel nach dem Ende der Textzeile ist.

Außerdem kann ich auch diesen Befehl bei fleqn nicht verwenden.


\documentclass[a4paper,12pt,fleqn]{article}
\topsep=0pt
\begin{document}

Etwas TExt

\begin{equation}
f(z)=x^2+y^2+\cos(x)+\sin(x)
\end{equation}

noch mehr

Etwas TExt
%
\begin{equation}
f(z)=x^2+y^2+\cos(x)+\sin(x)
\end{equation}
%
noch mehr

\end{document}



Herbert

Tobis
08-10-2008, 15:44
Erst einmal vielen Dank für die bisher gegebenen Antworten!

Mein Problem habe ich aber leider immer noch nicht in den Griff bekommen.
Hier ist nochmal ein leicht abgewandelte Beispiel von Herbert mit dem mein Problem deutlicher wird (hoffe ich:))


\documentclass[a4paper,12pt,fleqn]{article}
\setlength{\mathindent}{4.0cm}
\begin{document}

Etwas TExt

\begin{equation}
f(z)=x^2+y^2+\cos(x)+\sin(x)
\end{equation}

noch mehr

Viel mehr Text Viel mehr Text Viel mehr Text Viel mehr Text
%
\begin{equation}
f(z)=x^2+y^2+\cos(x)+\sin(x)
\end{equation}
%


\end{document}


Dieser Code gibt mir eine Ausgabe die in etwa so aussieht:


Etwas TExt

...............................f(z)=............

noch mehr
Viel mehr Text Viel mehr Text Viel mehr Text Viel mehr Text

...............................f(z)=............


Wenn ich jetzt so wie bei Herbert angegeben \topsep verwende, dann erhalte ich eine solche Ausgabe:



Etwas TExt
...............................f(z)=............

noch mehr
Viel mehr Text Viel mehr Text Viel mehr Text Viel mehr Text
...............................f(z)=............

Ich hätte aber gerne folgendes (aufgepasst, nur für Leute mit scharfen Augen):


Etwas TExt
...............................f(z)=............

noch mehr
Viel mehr Text Viel mehr Text Viel mehr Text Viel mehr Text

...............................f(z)=............

D.h. nur die erste Zeile soll nach oben verschoben werden weil da der Beginn der Formel vom linken Seitenrand aus gesehen erst nach dem Ende der letzten Textzeile steht.
Wie gesagt, mit \abovedisplayshortskip müsste das (laut Literatur) ja kein Problem darstellen, diesen Befehl kann ich aber wegen fleqn nicht verwenden.

Gibt es dann überhaupt eine Lösung dafür, weil der \topsep-Befehl, der bei Voss und Niedermair als Alternative zu den Befehlen \abovedisplayshortskip und \abovedisplayskip angegeben wird verändert mir ja beide Abstände gleichzeitig.

Tobis
10-10-2008, 10:27
Sorry dass ich das Thema nochmal nach oben holen muss, aber ich hab leider immer noch keine Lösung finden können.

Kann mir jemand dabei helfen?

voss
10-10-2008, 11:19
Sorry dass ich das Thema nochmal nach oben holen muss, aber ich hab leider immer noch keine Lösung finden können.

Kann mir jemand dabei helfen?

Grundsätzlich erstmal _keine_ Leerzeilen vor und nach mathematischen Umgebungen,
TeX hat da eine kleine Macke ...


\documentclass[a4paper,12pt]{article}
\let\Equation\equation
\let\endEquation\endequation
\input{fleqn.clo}
\begin{document}

Etwas TExt
%
\begin{Equation}
f(z)=x^2+y^2+\cos(x)+\sin(x)
\end{Equation}
%
noch mehr

Viel mehr Text Viel mehr Text Viel mehr Text Viel mehr Text
%
\begin{Equation}
f(z)=x^2+y^2+\cos(x)+\sin(x)
\end{Equation}

\end{document}


Herbert

Tobis
10-10-2008, 12:02
Vielen Dank, das ist genau das das ich gesucht habe :) Vielen Dank Herbert!!!

Aber leider werden wir jetzt die Formeln zentriert dargestellt. Kann ich da an der fleqn.clo-Datei die eingebunden wird etwas verändern dass ich den Abstand vom Rand wieder mit \mathindent regeln kann?


Grundsätzlich erstmal _keine_ Leerzeilen vor und nach mathematischen Umgebungen,
TeX hat da eine kleine Macke ...
Wenn ich arbeite lasse ich eigentlich keine Leerzeilen vor den Gleichungen stehen. Nach den Gleichungen sind bei mir schon oft welche zu finden wenn ich eine Leerzeile nach der Formel haben will.
Wäre da


Text
%
\begin{equation}
1+1=2
\end{equation}
%

Text....
besser?


P.S.: Ich dachte eigentlich wie ich das "Problem" zum ersten mal gesehen habe nicht dass ich der erste bin dem das nicht gefällt. Habe ich da wirklich meine eigenen Ansichten was das betrifft und es hat bis jetzt noch niemanden gestört?

voss
10-10-2008, 12:20
Aber leider werden wir jetzt die Formeln zentriert dargestellt. Kann ich da an der fleqn.clo-Datei die eingebunden wird etwas verändern dass ich den Abstand vom Rand wieder mit \mathindent regeln kann?


ah, ja klar, Equation hat ja die alte Bedeutung. Da war ich zu schlau ...
Das ist dann doch nicht einfach. Muss mal sehen.

Herbert

voss
10-10-2008, 13:06
ah, ja klar, Equation hat ja die alte Bedeutung. Da war ich zu schlau ...
Das ist dann doch nicht einfach. Muss mal sehen.


was einfacheres fällt mir nicht ein ...
Einzug kannst du über \setlength\mathindent{..} ändern

\documentclass[a4paper,12pt,fleqn]{article}
\usepackage{amsmath}
\def\Align{\begingroup%
\abovedisplayskip=\smallskipamount%
\flalign}
\def\endAlign{\endflalign\endgroup}

\parindent=0pt
\begin{document}

Etwas TExt
%
\begin{Align}
f(z) &= x^2+y^2+\cos(x)+\sin(x)
\end{Align}
%
noch mehr


Viel mehr Text Viel mehr Text Viel mehr Text Viel mehr Text
%
\begin{flalign}
f(z) &= x^2+y^2+\cos(x)+\sin(x)
\end{flalign}

\end{document}



Herbert

Tobis
10-10-2008, 14:20
Alles klar. Solange es funktioniert bin ich glücklich :)

Vielen Dank für deine Bemühungen, sowas bekomme ich leider selbst nicht hin!