PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Drei Formeln horizontal positionieren und mit eigenen formelnummern versehen



W2K2011
30-01-2014, 19:39
Hallo,

ich habe ein wahrscheinlich triviales Problem, aber ich finde derzeit keine gute Lösung im Internet.

Folgendes möchte ich gerne umsetzen: Ich habe eine Formel, die etwas länger ist. Aus diesem Grund, muss sie auf mehrere Zeilen aufgeteilt werden. In der ersten Zeile steht also (mittig) ausgerichtet:


f(x) = exp(x) * sin(x) + A + B

und in der zweiten Zeile soll dann folgen:


A & = xxxxx & B & = yyyy

Die Formeln in der zweiten Zeile sollen ebenfalls mittig ausgerichtet werden. Zudem wäre es schön, wenn ich den Definitionen für "A" und "B" jeweils separat eine Formelnummer zuweisen könnte.

Lässt sich das in einer Formelumgebung umsetzen? Wenn ich zweimal eine ALIGN-Umgebung nacheinander aufrufe, entsteht mir immer zuviel Freiraum in vertikaler Richtung.

Vielen Dank vorab.

W2K2011
30-01-2014, 20:21
Ich habe versucht mir so weiterzuhelfen. Aber das ist hinsichtlich der Formelnummerierung unzulässig. Außerdem wird das Dreifachintegral unschön zusammengestaucht....???


\begin{gather}
\iiint\limits_{(V)} xxx dV = A + B \label{eqn:Formel1}\\
\begin{array}{cc}
A = 1234 \label{eqn:Formel2} &
B = 3456 \label{eqn:Formel6}
\end{array}
\end{gather}

W2K2011
30-01-2014, 20:58
Wieder ein wenig weiter, allerdings sieht die mtabular Umgebung ganz merkwürdig bei mir aus.


\begin{align}
\iiint\limits_{(V)} xxx dV = A + B \label{eqn:Formel1}\\
\end{align}
\begin{mtabular}{*{2}{m{0.35\linewidth}m{0.22\line width}}}
\begin{align*} A = \nabla.... \end{align*} & \eqnCnt[\label{eqn:Definition-Epro-Rev}] & %
\begin{align*} \B = \colorbox{black!10!white}{$\cfrac{X}{Y}$} \end{align*} & \eqnCnt[\label{eqn:Definition-Epro-Irr}].
\end{mtabular}

Die Formelnummer unterhalb der Formeln und der anschließende Fließtext beginnt noch in der Zeile der Gleichungen???? (Es wird also nicht die komplette Zeilenbreite ausgenutzt....) Ich sehe eigentlich keinen Unterschied zu dem Beispiel aus dem mathmode.pdf..???

Bitte um Hilfe

W2K2011
31-01-2014, 08:55
Um meine noch bestehenden Probleme zu verdeutlichen:

1) Die Teilformeln stehen in der mtabular-Umgebung zu dicht zusammen
2) Wie bekomme ich die erste Formel (erste Zeile) und die beiden folgenden (zweite Zeile) zusammen in eine Umgebung?

FelixT
31-01-2014, 09:30
Wundere Dich nicht, wenn keine Antworten kommen, nicht jeder bastelt sich aus den Bruchstücken und mathmode ein Dokument zusammen, um testen zu können, was Du meinst. Wenn Du es den Antwortern einfach machst, nämlich ein Minimalbeispiel (http://texwelt.de/wissen/fragen/569/was-ist-ein-vollstandiges-minimalbeispiel-oder-kurz-vm-und-wie-erstelle-ich-dieses) postest, wird es sicher flugs getestet und verbessert. Falls Dir das zuviel Arbeit ist, überleg mal, ob es für x Leser jeweils auch Arbeit wäre... na, je nachdem, ob es für einen wichtig ist. ;-)

Wir helfen gern auch ohne vollständige Angaben, dann gehen eben nur unkonkrete Tipps ohne Ansicht Deiner Ausgabe und ohne Testen. Hier z.B. hast Du eine zu breite Zeile:


\begin{mtabular}{*{2}{m{0.35\linewidth}m{0.22\line width}}}

Das ergibt mehr als \linewidth, und damit Überbreite.

Felix

W2K2011
31-01-2014, 09:56
Hallo,

an einem Minimalbeispiel soll es nicht scheitern. Das nachfolgende Beispiel beinhaltet sicherlich auch noch überflüssigen Code, habe es jetzt aber auf die Schnelle nicht weiter verschlanken können:


\documentclass[a4paper, % DINA4-Papier
%draft, % Bilder ausblenden, um schneller zu kompilieren
11.5pt, % Schriftgroesse
parskip=half, % Absatzabstand 1.5
listof=totoc, % Listen --> Inhaltsverzeichnis
bibliography=totoc, % Literaturverz. -> Inhaltsverzeichnis
headinclude,
headsepline,
twoside] % Doppelseitig
{scrbook} % Dokumentenklasse
% ************************************************** ******************************
\usepackage[headsep = 1.20\baselineskip, % Abstand - Trennline und dem Text
headheight = 1.50\baselineskip, % Abstand -
footskip = 1.25\baselineskip, % Abstand - Text (u.) zur Fusszeile
footnotesep = 1.20\baselineskip, % Abstand - Text zur 1. Trennlinie (unten)
top = 25mm, % Rand, oben
bottom = 20mm, % Rand, unten
left = 20mm, % Rand, links
right = 20mm, % Rand, rechts
bindingoffset= 05mm, % Offset für Bindung (links)
includefoot %
]{geometry} %
% ************************************************** ******************************
% Zusätzliche Pakete einbinden
% ************************************************** ******************************


\usepackage{blindtext}
\usepackage{ifthen} % Fallunterscheidungen
\usepackage{soul} % Text farbig hinterlegen
\usepackage[ngerman]{babel} % Neue dt. Rechtschreibung
\usepackage[T1]{fontenc} %
\usepackage[latin1]{inputenc} % Dateicodierung
\usepackage{fancyhdr} % Kopf- und Fußzeile
\usepackage{xcolor} % Farben
\usepackage[intoc]{nomencl} % Nomenklatur
% ************************************************** *****************************
%\usepackage[scaled]{helvet} % sehr ähnlich zu Arial, aber mit Mathe-Unterstützung
%\usepackage[EULERGREEK]{sansmath} %
\usepackage{lmodern} % Latin Modern Schriften verwenden
% ************************************************** ******************************

% ************************************************** ***************************
\usepackage{mathtools} %
\usepackage{import} %
\usepackage{array} %
\usepackage{amsthm} % Erweiterungen mathematischer Umgebungen, Theoreme
\usepackage{amsmath} % Erweiterungen mathematischer Umgebungen
\usepackage{amsfonts} %
\usepackage{amssymb} %
\usepackage{esint} %
% ************************************************** ***************************
\usepackage{natbib} % Paket, um BibTex einzubinden
\usepackage{setspace} %
% ************************************************** **************************
\usepackage{multicol} % mehrspaltige Textabschnitte im Dokument
\usepackage{paralist} % Kompakte Listen
% ************************************************** **************************
\usepackage{colortbl} % Tabellen einfärben
\usepackage{supertabular} %
\usepackage{tabularx} %
\usepackage{multirow} %

% ************************************************** **************************

% ************************************************** ***************************

\newcommand{\Vint}{\iiint}
\newcommand{\Oint}{\iint}
\newcommand{\EPro}[1][\empty]{
\ifthenelse{\equal{#1}{\empty}}
{\dot{\mathcal{S}}_{\text{P}}}
{\dot{\mathcal{S}}_{\text{P,#1}}}
}
\newcommand{\DissF}{\Phi}
\newcommand{\dA}{\text{dA}}
\newcommand{\dV}{\text{dV}}
\newcommand{\pd}[2]{\cfrac{\partial #1 }{\partial #2 }}

\newcommand{\nvec}{\vec{n}}
\newcommand{\xv}{\vec{x}}
\newcommand{\cv}{\vec{c}}
\newcommand{\qv}{\dot{\vec{q}}}


% ************************************************** ***************************


\newcounter{subequation}
\newlength\mtabskip\mtabskip=-1.25cm
\newcommand\eqnCnt[1][]{%
\refstepcounter{subequation}%
\begin{align}#1\end{align}%
\addtocounter{equation}{-1}}
\def\mtabLong{long}
\makeatletter
\newenvironment{mtabular}[2][\empty]{%
\def\@xarraycr{%
\stepcounter{equation}%
\setcounter{subequation}{0}%
\@ifnextchar[\@argarraycr{\@argarraycr[\mtabskip]}}
\let\theoldequation\theequation%
\renewcommand\theequation{\theoldequation.\alph{su bequation}}
\edef\mtabOption{#1}
\setcounter{subequation}{0}%
\tabcolsep=0pt
\ifx\mtabOption\mtabLong\longtable{#2}\else\tabula r{#2}\fi%
}{%
\ifx\mtabOption\mtabLong\endlongtable\else\endtabu lar\fi%
\let\theequation\theoldequation%
\stepcounter{equation}}
\makeatother

% ************************************************** ***************************

\begin{document}
\blindtext\blindtext
\begin{align}
\Vint\limits_{(V)} \rho \pd{s}{t}\,\dV = -\Oint\limits_{(A)}s\,(\rho \cv\cdot \nvec)\,\dA + \EPro[rev] + \EPro[irr]\, ,
\label{eqn:Gibbs-4}
\end{align}
\begin{mtabular}{*{2}{m{0.25\linewidth}m{0.15\line width}}}
\begin{align*} \EPro[rev] = - \Vint\limits_{(V)} \nabla\cdot\left(\cfrac{\qv}{T}\right)\,\dV \end{align*} & \eqnCnt[\label{eqn:Definition-Epro-Rev}] &%
\begin{align*} \EPro[irr] = \Vint\limits_{(V)}\fcolorbox{black}{black!10!white }{$\cfrac{\DissF}{T}$}\,\dV - \Vint\limits_{(V)}\fcolorbox{black}{black!10!white }{$\cfrac{\qv}{T^2}\,\Bigl(\,\nabla T\,\Bigr)$}\,\dV\, \end{align*} & \eqnCnt[\label{eqn:Definition-Epro-Irr}] %
\end{mtabular}\blindtext
\end{document}

Meine Fragen sind:
1) Wie bekomme ich die beiden Zeilen enger zusammen
2) Wieso ist der Abstand zwischen der Formelnummer (0.2a) und der darauf folgenden Formel so gering?

W2K2011
31-01-2014, 14:06
Vielleicht nicht die beste Lösung, aber sie funktioniert. Mit mtabular habe ich immer zuviel vertikalen Abstand zwischen den Formelumgebungen:



\documentclass[a4paper, % DINA4-Papier
%draft, % Bilder ausblenden, um schneller zu kompilieren
11.5pt, % Schriftgroesse
parskip=half, % Absatzabstand 1.5
listof=totoc, % Listen --> Inhaltsverzeichnis
bibliography=totoc, % Literaturverz. -> Inhaltsverzeichnis
headinclude,
headsepline,
twoside] % Doppelseitig
{scrbook} % Dokumentenklasse
% ************************************************** ******************************
\usepackage[headsep = 1.20\baselineskip, % Abstand - Trennline und dem Text
headheight = 1.50\baselineskip, % Abstand -
footskip = 1.25\baselineskip, % Abstand - Text (u.) zur Fusszeile
footnotesep = 1.20\baselineskip, % Abstand - Text zur 1. Trennlinie (unten)
top = 25mm, % Rand, oben
bottom = 20mm, % Rand, unten
left = 20mm, % Rand, links
right = 20mm, % Rand, rechts
bindingoffset= 05mm, % Offset für Bindung (links)
includefoot %
]{geometry} %
% ************************************************** ******************************
% Zusätzliche Pakete einbinden
% ************************************************** ******************************


\usepackage{blindtext}
\usepackage{ifthen} % Fallunterscheidungen
\usepackage{soul} % Text farbig hinterlegen
\usepackage[ngerman]{babel} % Neue dt. Rechtschreibung
\usepackage[T1]{fontenc} %
\usepackage[latin1]{inputenc} % Dateicodierung
\usepackage{fancyhdr} % Kopf- und Fußzeile
\usepackage{xcolor} % Farben
\usepackage[intoc]{nomencl} % Nomenklatur
% ************************************************** *****************************
%\usepackage[scaled]{helvet} % sehr ähnlich zu Arial, aber mit Mathe-Unterstützung
%\usepackage[EULERGREEK]{sansmath} %
\usepackage{lmodern} % Latin Modern Schriften verwenden
% ************************************************** ******************************

% ************************************************** ***************************
\usepackage{mathtools} %
\usepackage{import} %
\usepackage{array} %
\usepackage{amsthm} % Erweiterungen mathematischer Umgebungen, Theoreme
\usepackage{amsmath} % Erweiterungen mathematischer Umgebungen
\usepackage{amsfonts} %
\usepackage{amssymb} %
\usepackage{esint} %
% ************************************************** ***************************
\usepackage{natbib} % Paket, um BibTex einzubinden
\usepackage{setspace} %
% ************************************************** **************************
\usepackage{multicol} % mehrspaltige Textabschnitte im Dokument
\usepackage{paralist} % Kompakte Listen
% ************************************************** **************************
\usepackage{colortbl} % Tabellen einfärben
\usepackage{supertabular} %
\usepackage{tabularx} %
\usepackage{multirow} %

% ************************************************** **************************

% ************************************************** ***************************

\newcommand{\Vint}{\iiint}
\newcommand{\Oint}{\iint}
\newcommand{\EPro}[1][\empty]{
\ifthenelse{\equal{#1}{\empty}}
{\dot{\mathcal{S}}_{\text{P}}}
{\dot{\mathcal{S}}_{\text{P,#1}}}
}
\newcommand{\DissF}{\Phi}
\newcommand{\dA}{\text{dA}}
\newcommand{\dV}{\text{dV}}
\newcommand{\pd}[2]{\cfrac{\partial #1 }{\partial #2 }}

\newcommand{\nvec}{\vec{n}}
\newcommand{\xv}{\vec{x}}
\newcommand{\cv}{\vec{c}}
\newcommand{\qv}{\dot{\vec{q}}}


% ************************************************** ***************************


\onehalfspacing

\setlength{\columnsep}{20pt}

\clubpenalty = 10000
\widowpenalty = 10000
\displaywidowpenalty = 10000
% ************************************************** ***************************
%\numberwithin{equation}{subsection}
\setcounter{secnumdepth}{4}
% ************************************************** ***************************
\renewcommand{\arraystretch}{1.2}
\setlength{\extrarowheight}{1.5pt}
\setlength{\tabcolsep}{10pt}
% ************************************************** ***************************
\newcounter{subequation}
\newlength\mtabskip\mtabskip=-1.25cm
\newcommand\eqnCnt[1][]{%
\refstepcounter{subequation}%
\begin{align}#1\end{align}%
\addtocounter{equation}{-1}}
\def\mtabLong{long}

% ************************************************** ***************************
% ************************************************** ***************************
\makeatletter

\renewcommand*\footnoterule{%
\kern-3\p@
\ifx\@textbottom\relax\else\vskip \z@ \@plus.05fil\fi
\hrule\@width\textwidth
\kern 2.6\p@}
% ************************************************** ***************************
\newenvironment{mtabular}[2][\empty]{%
\def\@xarraycr{%
\stepcounter{equation}%
\setcounter{subequation}{0}%
\@ifnextchar[\@argarraycr{\@argarraycr[\mtabskip]}}
\let\theoldequation\theequation%
\renewcommand\theequation{\theoldequation.\alph{su bequation}}
\edef\mtabOption{#1}
\setcounter{subequation}{0}%
\tabcolsep=0pt
\ifx\mtabOption\mtabLong\longtable{#2}\else\tabula r{#2}\fi%
}{%
\ifx\mtabOption\mtabLong\endlongtable\else\endtabu lar\fi%
\let\theequation\theoldequation%
\stepcounter{equation}}

\makeatother
% ************************************************** ***************************

% ************************************************** ***************************

\begin{document}
\blindtext\blindtext
\begin{align}
\Vint\limits_{(V)} \rho \pd{s}{t}\,\dV = -\Oint\limits_{(A)}s\,(\rho \cv\cdot \nvec)\,\dA + \EPro[rev] + \EPro[irr]\, ,
\label{eqn:Gibbs-4}
\end{align}
\begin{mtabular}{*{2}{m{0.25\linewidth}m{0.15\line width}}}
\begin{align*} \EPro[rev] = - \Vint\limits_{(V)} \nabla\cdot\left(\cfrac{\qv}{T}\right)\,\dV \end{align*} & \eqnCnt[\label{eqn:Definition-Epro-Rev}] &%
\begin{align*} \EPro[irr] = \Vint\limits_{(V)}\fcolorbox{black}{black!10!white }{$\cfrac{\DissF}{T}$}\,\dV - \Vint\limits_{(V)}\fcolorbox{black}{black!10!white }{$\cfrac{\qv}{T^2}\,\Bigl(\,\nabla T\,\Bigr)$}\,\dV\, \end{align*} & \eqnCnt[\label{eqn:Definition-Epro-Irr}] %
\end{mtabular}
Alternative Loesung mit lauter Minipages:\\
\begin{minipage}[t]{1\linewidth}
\begin{align} \Vint\limits_{(V)} \rho \pd{s}{t}\,\dV = -\Oint\limits_{(A)}s\,(\rho \cv\cdot \nvec)\,\dA + \EPro[rev] + \EPro[irr]\, ,\end{align}
\end{minipage}
\begin{minipage}[t]{0.4\linewidth}
\begin{align} \EPro[rev] = - \Vint\limits_{(V)} \nabla\cdot\left(\cfrac{\qv}{T}\right)\,\dV \end{align}
\end{minipage}
\begin{minipage}[t]{0.6\linewidth}
\begin{align} \EPro[irr] = \Vint\limits_{(V)}\fcolorbox{black}{black!10!white }{$\cfrac{\DissF}{T}$}\,\dV - \Vint\limits_{(V)}\fcolorbox{black}{black!10!white }{$\cfrac{\qv}{T^2}\,\Bigl(\,\nabla T\,\Bigr)$}\,\dV\, \end{align}
\end{minipage}
\end{document}

Studi
31-01-2014, 14:12
1) Wie bekomme ich die beiden Zeilen enger zusammen

Siehe: Wie stelle ich die Abstände vor und nach abgesetzten Gleichungen bzw. Formeln ein? (http://texwelt.de/wissen/fragen/1353/wie-stelle-ich-die-abstande-vor-und-nach-abgesetzten-gleichungen-bzw-formeln-ein)



2) Wieso ist der Abstand zwischen der Formelnummer (0.2a) und der darauf folgenden Formel so gering?

Die Formel auf der rechten Seite ist so breit, dass sie die Tabellenspalte sehr füllt, damit näher an der linken Spalte mit der Nummer ist. Die Breiten sind ja fest vorgegeben. Mache halt die linke Spalte schmaler und die rechte breiter. Mit *2{...} hast Du zweimal identisch. Schreibe die 4 Spalten mit passenden breiten nacheinander auf.

Studi

W2K2011
04-02-2014, 12:07
Wie gewährleistest Du denn, dass die Längenänderungen


\abovedisplayskip % 10pt plus 2pt minus 5pt
\abovedisplayshortskip % 0pt plus 3pt
\belowdisplayskip % 10pt plus 2pt minus 5pt
\belowdisplayshortskip % 6pt plus 3pt minus 3pt

nur lokal auf eine Formel wirken?

Könntest Du das Beispiel bitte mal angepasst zurückposten.

Danke

Magger
04-02-2014, 15:59
Wenn ich mich als Außenstehender mal einmischen darf:

Das Minimalbeispiel ist alles andere als minimal. Es werden eine Menge Paket geladen, die mit dem eigentlichen Problem nicht das geringste zu tun haben.
Zwei Gleichungsnummern auf eine Zeile zu schreiben, ist einfach murks. Jeder Leser erwartet die Gleichungsnummer am (rechten) Rand. Angenommen Gleichung (1) steht auf einer Zeile und die Gleichung (2) und (3) stehen auf der nächsten Zeile. Gerade wenn man Gleichung (2) sucht, wird man sich wundern, das auf Gleichung (1) direkt Gleichung (3) folgt, wenn man entsprechend der Konvention nur am (rechten) Rand sucht.

Also: Entweder beide Gleichungen in eine Zeile schreiben, aber nur einmal nummerieren, oder beide Gleichungen in aufeinanderfolgende Zeile schreiben. Dann kann bei Bedarf auch prima die subequations-Umgebung benutzen.

Studi
04-02-2014, 19:27
Wie gewährleistest Du denn, dass die Längenänderungen nur lokal auf eine Formel wirken?


Das geht mit Einklammern { ... } oder \begingroup ... \endgroup (oder \bgroup ... \egroup) - Unterschiede siehe Vergleich Gruppieren (http://texwelt.de/wissen/fragen/484/was-sind-die-unterschiede-zwischen-und-begingroup-endgroup-und-bgroup-egroup). Die Änderung gilt innerhalb einer solchen Gruppierung. Den gleichen lokal begrenzenden Effekt hat auch eine Umgebung. Du siehst vmtl. oft \centering in einer figure-Umgebung - das wirkt dann eben nur innen, nicht außen. Oder man schreibt {\large ...} und nur der Text bis zum Ende der Klammern wird größer.

Na, um beim praktischen zu bleiben: wenn ich an genau einer Stelle ein Abstandsproblem habe, würde ich es vielleicht einfach mit \vspace{-\baselineskip} oder ähnlich, halt mit negativem Abstand, lösen. Konsistenz und Globale Einstellungen sind sinnvoll, aber wenn man es eh nur an einer Stelle braucht zur Korrektur ... solches Feintuning würde ich mir aber fürs Ende aufheben. Kann ja immer noch Änderungen geben.

Studi