Überbreite Formeln zentrieren

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Überbreite Formeln zentrieren

von Stefan Knauf » Do 13. Okt 2011, 00:38

Hallo Marco!

Äh, ja, Du hast Recht. Das Paket babel lade ich für die Silbentrennung. Ich meinte eher, dass ich genau die Pakete einbinden möchte, von denen ich weiß, dass es einen Sinn macht, sie einzubinden. Weil Du schriebst, dass ich das Paket babel lade, dachte ich zuerst, ich hätte es beim Erstellen des Minimalbeispiels zu entfernen vergessen, aber Du musst wohl einfach geraten haben, dass ich dieses Paket benutze.

Danke für die Hilfe!

MfG
Stefan

von Mechanicus » Mi 12. Okt 2011, 21:59

Hi,

Du hast mathrlap richtig beschrieben, als Ergänzung: Die Breite der Box ist aber auch 0pt, so dass eben die erste Zeile Zentriert wird.

mathtools bereinigt einige Fehler von amsmath. Erläuterungen findest du in der Anleitung. (und stellt die Anweisung \mathrlap bereit).

Aber du lädst doch das Paket babel, ohne vermutlich nur ein Kommando des Paketes zu verwenden :D

Marco

von Stefan Knauf » Mi 12. Okt 2011, 21:33

Hallo Marco!

Danke für die ganzen Auskünfte! Bewirkt die Lösung mit \mathrlap und \mathllap, dass die align*-Umgebung an der oberen Formel ausgerichtet wird und alles, das in den Klammern vom \mathllap steht, rechtsbündig links und alles, das in den Klammern vom \mathrlap steht, linksbündig rechts von der mit & markierten Stelle positioniert wird?
Und warum sollte man das Paket mathtools sowieso laden? Ich würde sonst einfach immer genau die Pakete laden, die ich für die verwendeten Kommandos benötige.

MfG
Stefan

von Mechanicus » Mi 12. Okt 2011, 20:12

Hi,

der Trick mit makebox basiert darauf, dass die längste Gleichung bezogen auf den Textbereich zentriert wird. Somit wird die erste also nach der zweiten ausgerichtet.

Eine andere Möglichkeit unter Nutzung des Paketes mathtools (welches sowieso geladen werden sollte), ist der Verwendung von \mathrlap und \mathllap:
\documentclass[a4paper, 11pt]{article} % für das Papierformat

\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{showframe}
\usepackage{mathtools}
\begin{document} % Der Beginn des eigentlichen Dokuments

\noindent\makebox[\linewidth][c]{%
\parbox{\linewidth}{%
\begin{align*}
\forall 2k\in n &\forall t\in {}^{n-(2k+1)} 2:\ \varphi_{G_1} \circ g^l(t)=(\varphi_X\circ f^l(s_{2k} {}^\smallfrown 0 {}^\smallfrown t), \varphi_X \circ f^l(s_{2k} {}^\smallfrown 1 {}^\smallfrown t))\\
\forall 2k+1\in n &\forall t\in {}^{n-(2k+2)} 2:\ \varphi_{G_2} \circ g^l(t)=(\varphi_X\circ f^l(s_{2k+1} {}^\smallfrown 0 {}^\smallfrown t), \varphi_X \circ f^l(s_{2k+1} {}^\smallfrown 1 {}^\smallfrown t))
\end{align*}%
}}

\begin{align*}
\forall 2k\in n &\forall t\in {}^{n-(2k+1)} 2:\ \varphi_{G_1} \circ g^l(t)=(\varphi_X\circ f^l(s_{2k} {}^\smallfrown 0 {}^\smallfrown t), \varphi_X \circ f^l(s_{2k} {}^\smallfrown 1 {}^\smallfrown t))\\
\mathllap{\forall 2k+1\in n }&\mathrlap{\forall t\in {}^{n-(2k+2)} 2:\ \varphi_{G_2} \circ g^l(t)=(\varphi_X\circ f^l(s_{2k+1} {}^\smallfrown 0 {}^\smallfrown t), \varphi_X \circ f^l(s_{2k+1} {}^\smallfrown 1 {}^\smallfrown t))}
\end{align*}


\begin{align*}
\forall 2k\in n &\forall t\in {}^{n-(2k+1)} 2:\ \varphi_{G_1} \circ g^l(t)=(\varphi_X\circ f^l(s_{2k} {}^\smallfrown 0 {}^\smallfrown t), \varphi_X \circ f^l(s_{2k} {}^\smallfrown 1 {}^\smallfrown t))\\
\!\!\!\!\!\!\!\!\!\forall 2k+1\in n &\forall t\in {}^{n-(2k+2)} 2:\ \varphi_{G_2} \circ g^l(t)=(\varphi_X\circ f^l(s_{2k+1} {}^\smallfrown 0 {}^\smallfrown t), \varphi_X \circ f^l(s_{2k+1} {}^\smallfrown 1 {}^\smallfrown t))
\end{align*}

\end{document}
Marco

von Stefan Knauf » Mi 12. Okt 2011, 19:57

Mechanicus hat geschrieben:Hi,

das liegt an dem Paket showframe. Es zeichnet u.a. den Textbereich. Ich habe es eingebunden, um zu verdeutlichen, dass die Formel zentriert ist.

Die Installation von MikTeX 2.9 bedeutet nicht, dass die Paket aktuell sind. Ab und zu muss ein Paket aktualisiert bzw. nachinstalliert werden.

Marco

Hallo Marco!

Ah, das wusste ich nicht. Ich habe nun alle Pakete aktualisiert. Danke für den Hinweis! Was man nicht alles lernt, wenn man mal in einem Forum fragt... Nun funktioniert auch Dein Beispielcode bei mir.

Ich vermute, dass Deine Lösung zum Zentrieren die untere Formel perfekt zentriert. Die obere Formel soll und wird natürlich so darüber gesetzt werden, dass die beiden Stellen, die im Quelltext mit dem & markiert sind, übereinander stehen. Allerdings gibt es da ein Detail, das mich stört. Bei meiner Lösung mit den neun negativen Ein-Sechstel-Leerzeichen sieht es so aus, als ob es perfekt zentriert wäre, weil die obere Formel praktisch so gut wie zentriert ist. Bei Deiner Lösung ist die obere Formel offensichtlich nicht zentriert (ob die untere Formel zentriert ist, sieht man mit bloßem Auge eh nicht so genau).
Gibt es eine Möglichkeit, die obere Formel perfekt zu zentrieren und dass dann die untere Formel so darunter gesetzt wird, dass die beiden mit & markierten Stellen übereinander stehen? Das wäre echt perfekt (denke ich, aber sicher bin ich mir immer frühestens dann, wenn ich es sehe :)).

MfG
Stefan

von Mechanicus » Mi 12. Okt 2011, 18:44

Hi,

das liegt an dem Paket showframe. Es zeichnet u.a. den Textbereich. Ich habe es eingebunden, um zu verdeutlichen, dass die Formel zentriert ist.

Die Installation von MikTeX 2.9 bedeutet nicht, dass die Paket aktuell sind. Ab und zu muss ein Paket aktualisiert bzw. nachinstalliert werden.

Marco

von Stefan Knauf » Mi 12. Okt 2011, 18:34

Mechanicus hat geschrieben:Hi,

nehme das Paket adjustbox raus. Das brauchst du nicht. Ich habe es unverhofft eingefügt. Allerdings solltest du dann auch mal ein Update deines Systems machen.

Marco
Hallo Marco!

Wenn ich das Paket adjustbox rausnehme, wird zwar ein PDF-Dokument erstellt, aber es enthält lauter komische Rahmen (siehe Anhang). Wenn ich Deine Lösung in meinen Text einbaue, erscheinen diese komischen Rahmen sogar auf jeder Seite.
Ich nutze TeXnicCenter 1.0 mit MiKTeX 2.9, das sind meines Wissens die aktuellen Versionen. Ich arbeite unter Windows 7.

MfG
Stefan
Dateianhänge
LaTeX2.pdf
Beispieldokument mit komischen Rahmen
(67.64 KiB) 474-mal heruntergeladen

von Mechanicus » Mi 12. Okt 2011, 16:18

Hi,

nehme das Paket adjustbox raus. Das brauchst du nicht. Ich habe es unverhofft eingefügt. Allerdings solltest du dann auch mal ein Update deines Systems machen.

Marco

von Stefan Knauf » Mi 12. Okt 2011, 15:56

Hallo Marco!

Danke, ein automatisch zentrierendes Ding fände ich auch besser, als das immer von Hand mit negativen Leerzeichen zu machen. Aber Dein Ansatz funktioniert bei mir nicht. Wenn ich es genau so, wie Du es aufgeschrieben hast, in ein PDF-Dokument umwandeln zu versuchen lasse, gibt es drei Fehlermeldungen und kein PDF-Dokument. Die erste der Fehlermeldungen ist "LaTeX Error: File `collectbox.sty' not found.".

MfG
Stefan

von Mechanicus » Mi 12. Okt 2011, 15:21

Hi,

hier ein automatisiert Ansatz:

\documentclass[a4paper, 11pt]{article} % für das Papierformat

\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{showframe}
\usepackage{adjustbox}
\begin{document} % Der Beginn des eigentlichen Dokuments

\noindent\makebox[\linewidth][c]{%
\parbox{\linewidth}{%
\begin{align*}
\forall 2k\in n &\forall t\in {}^{n-(2k+1)} 2:\ \varphi_{G_1} \circ g^l(t)=(\varphi_X\circ f^l(s_{2k} {}^\smallfrown 0 {}^\smallfrown t), \varphi_X \circ f^l(s_{2k} {}^\smallfrown 1 {}^\smallfrown t))\\
\forall 2k+1\in n &\forall t\in {}^{n-(2k+2)} 2:\ \varphi_{G_2} \circ g^l(t)=(\varphi_X\circ f^l(s_{2k+1} {}^\smallfrown 0 {}^\smallfrown t), \varphi_X \circ f^l(s_{2k+1} {}^\smallfrown 1 {}^\smallfrown t))
\end{align*}%
}}

\end{document}
Marco

Nach oben