PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : amsmath Formelumgebungen ohne Zeilenumbruch



twohead
20-04-2009, 11:05
Hi,

ich setze häufig Formeln in Aufzählungen. Dazu benutze ich Formelumgebungen aus dem amsmath Packet wie flalign und align. Leider wird bei diesen Umgebungen immer erst ein Zeilenumbruch eingefügt, das würde ich gerne vermeiden. Der einzige Weg den ich bisher gefunden habe ist der folgende:



\begin{itemize}
\item \ensuremath{
\begin{aligned}[t]
z_{a}^{i} \geq x_a - 3 T ( 1 - y_{a}^{i} )
\end{aligned} }
\end{itemize}


D.h. mit der aligned Umgebung, die nicht die ganze Breite der Zeile benutzt, sondern nur so groß ist, wie der Inhalt. Leider funktioniert bei dieser Umgebung die Formelnummerierung nicht mehr. D.h. eigentlich ist die Umgebung für meine Zwecke auch gar nicht geeignet, denn um eine Formelnummer an den rechten Rand zu schreiben, muss die Umgebung ja den ganzen zur Verfügung stehenden Platz nutzen und nicht nur so groß sein wie der Inhalt. D.h. eigentlich will ich eine Mischung aus flalign und aligned, nämlich flalign ohne linebreak. Man sieht ja worauf es hinaus läuft, man muss sich eben nur die erste Zeile in jeder Aufzählungspunkt wegdenken:



\begin{itemize}
\item \begin{flalign}
\min \sum\limits_{i \in I}{\sum\limits_{a \in A}{ z_{a}^{i} \; \psi_i } }
\end{flalign}
\end{itemize}


Ich hab auch schon probiert \textbullet in die flalign Umgebung zu integrieren (geht mit \intertext{}), aber das Ergebnis ist nur Gefrickel und nicht wirklich was ich will. Ich hab kein Problem mit Gefrickeln, dann aber so dass es schick aussieht. Um so etwas geht es mir im Endeffekt an folgenden ausführlichen Minimalbeispiel:



\documentclass{article}
\usepackage{amsmath}
\usepackage{amsthm}
\newtheorem{definition}{Definition}
\begin{document}
\begin{definition}{Beispielprogramm}
\begin{subequations}
\begin{itemize}
\item \begin{flalign}
\min \sum\limits_{i \in I}{\sum\limits_{a \in A}{ z_{a}^{i} \; \psi_i } } && \label{eq:Eins}
\end{flalign}
\item \textnormal{unter}
\begin{align}
z_{a}^{i} - x_a + T y_{a}^{i} & \geq - T && \forall a \in A, \forall i \in I \label{eq:Zwei} \\
\sum\limits_{a \in A}{ y_{a}^i } & = 1 && \forall i \in I
\end{align}
\end{itemize}
\end{subequations}
\end{definition}
Wie man an der Zielfunktion \eqref{eq:Eins} sieht, ist die Nummerierung von der Definition selbst abgeleitet und durchgehend zu Formel \eqref{eq:Zwei}!
\end{document}


Hat jemand eine Idee wie man das machen kann? Kann man flalign so umdefinieren, dass nicht erst eine Zeile umgebrochen wird? Könnte man negativen vertikalen Platz so perfekt einfügen, dass die Zeile exakt wieder hochrutscht? Gibts vielleicht eine Umgebung/Packet die das bereits von sich aus berücksichtigt?

Ich hab das Minimalbeispiel als minimal.tex.txt und das Ergebnis als minimal.pdf angehängt!

voss
20-04-2009, 11:32
ich setze häufig Formeln in Aufzählungen. Dazu benutze ich Formelumgebungen aus dem amsmath Packet wie flalign und align. Leider wird bei diesen Umgebungen immer erst ein Zeilenumbruch eingefügt, das würde ich gerne vermeiden. Der einzige Weg den ich bisher gefunden habe ist der folgende:



\begin{itemize}
\item \ensuremath{
\begin{aligned}[t]
z_{a}^{i} \geq x_a - 3 T ( 1 - y_{a}^{i} )
\end{aligned} }
\end{itemize}



wieso nimmst du bei einzeiligen Gleichungen dann nicht einfach $...$??
Wozu soll eigentlich dein \ensuremath gut sein?

Herbert

twohead
20-04-2009, 11:42
wieso nimmst du bei einzeiligen Gleichungen dann nicht einfach $...$??
Wozu soll eigentlich dein \ensuremath gut sein?

Herbert

Das siehst du wenn du dir mal das angehängte minimal.pdf anguckst. \ensuremath setzt die $ selbst korrekt, so dass ich mich darum nicht kümmern muss. Kannst du gerne auch im angehängten minimal.tex.txt damit ersetzen, macht keinen Unterschied!

Zur Erklärung: Die normale Matheformelumgebung $$ setzt die Zeilenabstände teilweise nicht so schön und nummerieren tut sei die Formel auch nicht. Für einzeilige Formeln nutze ich die amsmath Umgebung equation, die auch nummeriert. Die Formeln sind dann aber zentriert, was ich in meinem Fall nicht will (siehe minimal.pdf). Man kann aber auch flalign nur für eine Zeile benutzen (so wie ich es eben auch im Minimalbeispiel mache). Bleibt schlussendlich das Problem des Zeilenumbruches von flalign!

voss
20-04-2009, 12:55
Das siehst du wenn du dir mal das angehängte minimal.pdf anguckst. \ensuremath setzt die $ selbst korrekt, so dass ich mich darum nicht kümmern muss. Kannst du gerne auch im angehängten minimal.tex.txt damit ersetzen, macht keinen Unterschied!

ich meinte eher die Logik ... :D
Wieso jemand statt des kurzen $...$ lieber mehr tippt.


\documentclass{article}
\usepackage{amsmath}
\usepackage{amsthm}
\newtheorem{definition}{Definition}
\begin{document}
\begin{definition}{Beispielprogramm}
\begin{subequations}
\begin{flalign}\label{eq:Eins}
\bullet \quad
\min \sum\limits_{i \in I}{\sum\limits_{a \in A}{ z_{a}^{i} \; \psi_i } } &&
\end{flalign}
\text{unter}
\begin{flalign}
\bullet \quad
z_{a}^{i} - x_a + T y_{a}^{i} & \geq - T & \forall a \in A, \forall i \in I &&\label{eq:Zwei}\\
\phantom{\bullet}\quad
\sum\limits_{a \in A}{ y_{a}^i } & = 1 & \forall i \in I
\end{flalign}
\begin{flalign}
\bullet \quad
z_{a}^{i} \geq x_a - 3 T ( 1 - y_{a}^{i} ) &&
\end{flalign}
\end{subequations}
\end{definition}

Wie man an der Zielfunktion \eqref{eq:Eins} sieht, ist die Nummerierung von der Definition selbst abgeleitet und durchgehend zu Formel \eqref{eq:Zwei}!
\end{document}


Herbert

twohead
22-04-2009, 10:46
Keiner? Ich find das Problem komischerweise irgendwie sehr grundlegend. Es muss doch möglich sein diese Umgebungen ohne Zeilenumbruch zu benutzen?! :confused: