PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : subequations nebeneinander mit richtigem abstand zum text



chiefrosi
18-12-2008, 10:38
Hallo,

ich möchte gern 2 subequations nebeneinander setzen und das funktioniert auch prima (nach Herbert Voss: Mathmode: ftp://tug.ctan.org/pub/tex-archive/info/math/voss/mathmode/Mathmode.pdf).

nämlich so:

\newcounter{mySubCounter}
\newcommand{\twocoleqn}[2]{
\setcounter{mySubCounter}{0}%
\let\OldTheEquation\theequation%
\renewcommand{\theequation}{\OldTheEquation\alph{m ySubCounter}}%
\noindent%
\begin{minipage}{.49\textwidth}
\begin{equation}\refstepcounter{mySubCounter} #1
\end{equation}
\end{minipage}\hfill%
\addtocounter{equation}{-1}%
\begin{minipage}{.49\textwidth}
\begin{equation}\refstepcounter{mySubCounter} #2
\end{equation}
\end{minipage}%
\let\theequation\OldTheEquation
}

jetzt kann man mit

\twocoleqn{x=y}{x=y}

2 Gleichungen nebeneinander setzen.

Mein Problem:
Über und unter der Formel sind die Abstände nun anders als bei normalen Formeln. Zwar kann man natürlich den Abstand manuell einstellen, aber das ist erstens nicht sehr elegant und 2. sollte sich der Abstand ja auch anpassen, je nachdem, ob die Zeile darüber kurz oder lang ist. Hat jmd eine Ahnung, wie ich die normalen Abstände auch hier bekomme?

mfg, Tobias

mechanicus
18-12-2008, 11:09
Hallo,

also bei mir sind sie gleich. Mache bitte beim nächsten mal ein Minimalbeispiel und nutze das Codefenster:

\documentclass[a4paper,12pt,ngerman]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{amsmath}
\usepackage{blindtext}
\newcounter{mySubCounter}
\newcommand{\twocoleqn}[2]{
\setcounter{mySubCounter}{0}%
\let\OldTheEquation\theequation%
\renewcommand{\theequation}{\OldTheEquation\alph{m ySubCounter}}%
\noindent%
\begin{minipage}{.49\textwidth}
\begin{equation}\refstepcounter{mySubCounter} #1
\end{equation}
\end{minipage}\hfill%
\addtocounter{equation}{-1}%
\begin{minipage}{.49\textwidth}
\begin{equation}\refstepcounter{mySubCounter} #2
\end{equation}
\end{minipage}%
\let\theequation\OldTheEquation
}

\begin{document}
\chapter{foo}
\blindtext
\begin{align}
\twocoleqn{y=f(x)}{g=f(z)}
\end{align}
\blindtext
\begin{align}
y=f(x)
\end{align}
\blindtext
\end{document}


Gruß
Marco

chiefrosi
18-12-2008, 12:27
Hi,

danke für die Antwort. Du machst noch ein \align außen rum. Das funktioniert nicht ganz. Erstens ist der Abstand über der Formel größer und zweitens sind nun die Nummern am linken Rand nicht mehr bündig. Bei der 2-spaltigen Variante sitzt sie zu weit links.

Macht man das ganze so:



\documentclass[a4paper,12pt,ngerman]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{amsmath}
\usepackage{blindtext}
\newcounter{mySubCounter}
\newcommand{\twocoleqn}[2]{
\setcounter{mySubCounter}{0}%
\let\OldTheEquation\theequation%
\renewcommand{\theequation}{\OldTheEquation\alph{m ySubCounter}}%
\noindent%
\begin{minipage}{.49\textwidth}
\begin{equation}\refstepcounter{mySubCounter} #1
\end{equation}
\end{minipage}\hfill%
\addtocounter{equation}{-1}%
\begin{minipage}{.49\textwidth}
\begin{equation}\refstepcounter{mySubCounter} #2
\end{equation}
\end{minipage}%
\let\theequation\OldTheEquation
}

\begin{document}
\chapter{foo}
\blindtext
\twocoleqn{y=f(x)}{g=f(z)}
\blindtext
\begin{align}
y=f(x)
\end{align}
\blindtext
\end{document}


dann stimmt die Nummer, aber eben die Abstände nicht mehr.

mechanicus
19-12-2008, 10:55
Hallo,


\documentclass[a4paper,12pt,ngerman]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{amsmath}
\usepackage{blindtext}
\newcounter{mySubCounter}
\newcommand{\twocoleqn}[2]{%
\vspace*{12pt plus 3pt minus 9pt}
\setcounter{mySubCounter}{0}%
\let\OldTheEquation\theequation%
\renewcommand{\theequation}{\OldTheEquation\alph{m ySubCounter}}%
\noindent%
\begin{minipage}[b]{.49\textwidth}
\begin{equation}\refstepcounter{mySubCounter} #1
\end{equation}
\end{minipage}\hfill%
\addtocounter{equation}{-1}%
\begin{minipage}[b]{.49\textwidth}
\begin{equation}\refstepcounter{mySubCounter} #2
\end{equation}
\end{minipage}%
\vspace*{12pt plus 3pt minus 9pt}%
\let\theequation\OldTheEquation
}

\begin{document}
\chapter{foo}
\blindtext
\twocoleqn{y=f(x)}{g=f(z)}
\blindtext
\begin{align}
y=f(x)
\end{align}
\blindtext
\end{document}

chiefrosi
07-01-2009, 09:40
Danke, jetzt gehts!

chiefrosi
19-01-2011, 13:08
Hi,

nach etwas längerer Zeit habe ich noch eine Frage dazu. Hoffentlich liest es noch jemand.

Wie kann ich denn diese Subequations labeln? Ein \label{eq} innerhalb der geschweiften Klammern verweist immer auf Gleichung 1 oder 2!

Am liebsten wäre es mir, wenn ich die Gleichungen analog zu normalen subequations labeln könnte, also wenn es z.b. Gl. 10a und 10b gibt, dann möchte ich auf Gl. 10 verweisen können. Zur Not würde mir aber auch reichen wenn ich nur auf 10a und 10b verweisen kann.

Weiß jemand Rat?

Viele Grüße,
Tobias

mechanicus
19-01-2011, 13:17
Hi,

man lernt im Laufe der Zeit zu:


\documentclass[a4paper,12pt,ngerman]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{amsmath}
\usepackage{blindtext}

\newcommand{\twocoleqn}[2]{%
%\vspace*{12pt plus 3pt minus 9pt}
\noindent%
\begin{minipage}[b]{.49\textwidth}
\begin{subequations}
\begin{equation}
#1
\end{equation}
\end{subequations}
\end{minipage}\hfill%
\begin{minipage}[b]{.49\textwidth}
\begin{subequations}
\begin{equation}
#2
\end{equation}
\end{subequations}
\end{minipage}%
%\vspace*{12pt plus 3pt minus 9pt}%
}

\begin{document}
\chapter{foo}
\blindtext
\twocoleqn{y=f(x)\label{eqa}}{g=f(z)\label{eqb}}
\blindtext
\begin{align}
y=f(x)
\end{align}
\blindtext

\ref{eqa} und \ref{eqb}
\end{document}

chiefrosi
19-01-2011, 13:29
Wow das ging schnell. Funktioniert bestens! Vielen Dank!

chiefrosi
11-04-2011, 16:17
Hi mechanicus,

mir ist gerade aufgefallen, dass dein Vorschlag doch nicht funktioniert. Die Gleichungen werden jetzt mit, z.B., 1a und 2a nummeriert anstatt mit 1a und 1b wie es sein sollte. Hast du eine Lösung dafür?

Danke
Tobias


Hi,

man lernt im Laufe der Zeit zu:


\documentclass[a4paper,12pt,ngerman]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{amsmath}
\usepackage{blindtext}

\newcommand{\twocoleqn}[2]{%
%\vspace*{12pt plus 3pt minus 9pt}
\noindent%
\begin{minipage}[b]{.49\textwidth}
\begin{subequations}
\begin{equation}
#1
\end{equation}
\end{subequations}
\end{minipage}\hfill%
\begin{minipage}[b]{.49\textwidth}
\begin{subequations}
\begin{equation}
#2
\end{equation}
\end{subequations}
\end{minipage}%
%\vspace*{12pt plus 3pt minus 9pt}%
}

\begin{document}
\chapter{foo}
\blindtext
\twocoleqn{y=f(x)\label{eqa}}{g=f(z)\label{eqb}}
\blindtext
\begin{align}
y=f(x)
\end{align}
\blindtext

\ref{eqa} und \ref{eqb}
\end{document}

mechanicus
11-04-2011, 17:20
\documentclass[a4paper,12pt,ngerman]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{amsmath}
\usepackage{blindtext}
\newcounter{myeqcount}

\newcommand{\twocoleqn}[2]{%
%\vspace*{12pt plus 3pt minus 9pt}
\noindent%
\refstepcounter{equation}
\setcounter{myeqcount}{0}
\def\themyeqcount{\theequation\alph{myeqcount}}
\refstepcounter{myeqcount}
\begin{minipage}[b]{.49\textwidth}
\begin{equation}
#1\tag{\themyeqcount}
\end{equation}
\end{minipage}\hfill%
\begin{minipage}[b]{.49\textwidth}
\refstepcounter{myeqcount}
\begin{equation}
#2\tag{\themyeqcount}
\end{equation}
\end{minipage}%
\vspace*{12pt plus 3pt minus 9pt}%
}

\begin{document}
\chapter{foo}
\blindtext
\twocoleqn{y=f(x)\label{eqa}}{g=f(z)\label{eqb}}
\blindtext
\begin{align}
y=f(x)
\end{align}
\blindtext

\twocoleqn{y=f(x)\label{eqc}}{g=f(z)\label{eqd}}

\blindtext

\ref{eqa} und \ref{eqb} und \ref{eqc} und \ref{eqd}


\end{document}

Marco

chiefrosi
12-04-2011, 09:43
Vielen Dank! Jetzt passt alles!