Wechsel zwischen \leqno und \reqno, \fleqn, uvm.

Formelsatz für Mathematik, Naturwissenschaften und Technik


JustIce
Forum-Newbie
Forum-Newbie
Beiträge: 5
Registriert: Fr 27. Mär 2009, 17:01

Wechsel zwischen \leqno und \reqno, \fleqn, uvm.

Beitrag von JustIce »

Hallo zusammen,

ich nutze das AMS-LaTeX Mathematik-Paket und würde gerne bestimmte Gleichungen links nummerieren statt wie die restlichen standardmäßig rechts.
Es geht also um einen dynamischen Wechsel zwischen \leqno und \reqno.

Ist das überhaupt möglich? Falls ja, wie?

Falls nein, gibt es Ausweichmöglichkeiten (andere Pakete)?

Vielen Dank im Voraus für eure Hilfe,
Justus
Zuletzt geändert von JustIce am Sa 28. Mär 2009, 21:46, insgesamt 1-mal geändert.

Gast

Re: Wechsel zwischen \leqno und \reqno

Beitrag von Gast »

JustIce hat geschrieben:ich nutze das AMS-LaTeX Mathematik-Paket und würde gerne bestimmte Gleichungen links nummerieren statt wie die restlichen standardmäßig rechts.
Es geht also um einen dynamischen Wechsel zwischen \leqno und \reqno.

Ist das überhaupt möglich? Falls ja, wie?
\listfiles
\documentclass[a4paper]{article}
\usepackage{amsmath}
\makeatletter
\def\Links{\tagsleft@true}\def\Rechts{\tagsleft@false}
\makeatother
\begin{document}

\begin{align}
y=f(x) 
\end{align}

\Links
\begin{align}
y=f(x) 
\end{align}

\Rechts
\begin{align}
y=f(x) 
\end{align}

\end{document}
Herbert

JustIce
Forum-Newbie
Forum-Newbie
Beiträge: 5
Registriert: Fr 27. Mär 2009, 17:01

Beitrag von JustIce »

Super, das klappt einwandfrei! Vielen Dank.

Wenn ich das richtig verstehe, hast du einfach in der amsmath.sty nach dem entsprechenden Befehl geschaut und ihn dann angewendet.

Selbiges habe ich gerade mit fleqn versucht (also fleqn Ein- und Ausschalten):
\makeatletter
\def\leqno{\tagsleft@true}
\def\reqno{\tagsleft@false}
\def\fleqn{\@fleqntrue}
\def\cneqn{\@fleqnfalse}
\makeatother
Ausschalten gelingt mir damit ohne Probleme, allerdings klappt das Einschalten nicht so ohne Weiteres - die Gleichungen stehen dann nämlich ganz links am Rand, überhaupt nicht eingerückt.

Wenn ich auch die anderen Befehle aus der amsmath.sty verwende, kommt es jedoch zu einer Fehlermeldung (nach dem Motto "darf nur in der Präambel angewendet werden")...
    \@fleqntrue
    \@mathmargin = -1sp
    \let\mathindent=\@mathmargin
    \AtBeginDocument{%
        \ifdim\@mathmargin= -1sp
            \@mathmargin\leftmargini minus\leftmargini
        \fi
    }%
Wäre über einen zweiten Tipp sehr erfreut!
Grüßle

JustIce
Forum-Newbie
Forum-Newbie
Beiträge: 5
Registriert: Fr 27. Mär 2009, 17:01

Beitrag von JustIce »

Mir ist gerade noch aufgefallen, dass es unklug von mir war, die Befehle \leqn bzw. \reqn zu nennen, da dies bereits definiert ist.
Das beschriebene Problem ist davon allerdings unabhängig.

oliverinspace
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 72
Registriert: Do 1. Jan 2009, 14:05

Beitrag von oliverinspace »

du solltest und das scheint hier der Fall, noch den Status auf beantwortet setzen.
*stecke in meiner Diplomarbeit**

Gast

Beitrag von Gast »

JustIce hat geschrieben:Mir ist gerade noch aufgefallen, dass es unklug von mir war, die Befehle \leqn bzw. \reqn zu nennen, da dies bereits definiert ist.
Das beschriebene Problem ist davon allerdings unabhängig.
mache komplette Beispiele und gib nicht nur Fragmente an!

Herbert

JustIce
Forum-Newbie
Forum-Newbie
Beiträge: 5
Registriert: Fr 27. Mär 2009, 17:01

Beitrag von JustIce »

\documentclass[a4paper]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[intlimits]{amsmath}

\makeatletter
\def\leqn{\tagsleft@true}
\def\reqn{\tagsleft@false}
\def\fleq{\@fleqntrue}
\def\cneq{\@fleqnfalse}
\makeatother

\begin{document}


\begin{equation}
x = y
\end{equation}

\leqn
\fleq

\begin{subequations} \label{eqn:test} \renewcommand{\theequation}{\roman{equation}} \begin{align}
F & = \sum_{i=1}^n x_n \, , \label{eqn:testa} \\
\tilde{F} & = \sum_{i=n+1}^m \tilde{x}_n \, . \label{eqn:testb}
\end{align} \end{subequations}

\addtocounter{equation}{-1}

\cneq
\reqn

\begin{equation}
x = y
\end{equation}


\end{document}
Kompiliert zwar ohne Probleme, aber das Einrücken stimmt nicht.

Gast

Beitrag von Gast »

JustIce hat geschrieben: Kompiliert zwar ohne Probleme, aber das Einrücken stimmt nicht.
\documentclass[a4paper]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[intlimits]{amsmath}

\makeatletter
\def\leqn{\tagsleft@true}
\def\reqn{\tagsleft@false}
\def\fleq{\@fleqntrue\let\mathindent\@mathmargin \@mathmargin=\leftmargini}
\def\cneq{\@fleqnfalse}
\g@addto@macro{\endsubequations}{\addtocounter{equation}{-1}}
\makeatother

\begin{document}


\begin{equation}
x = y
\end{equation}

\leqn
\fleq

\begin{subequations} \label{eqn:test} \renewcommand{\theequation}{\roman{equation}} \begin{align}
F & = \sum_{i=1}^n x_n \, , \label{eqn:testa} \\
\tilde{F} & = \sum_{i=n+1}^m \tilde{x}_n \, . \label{eqn:testb}
\end{align} 
\end{subequations}

\cneq
\reqn

\begin{equation}
x = y
\end{equation}

\end{document}
Herbert

JustIce
Forum-Newbie
Forum-Newbie
Beiträge: 5
Registriert: Fr 27. Mär 2009, 17:01

Beitrag von JustIce »

Danke erneut für deine Hilfe!
% some tests
\documentclass[a4paper]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[intlimits]{amsmath}
\usepackage{amssymb,amsthm}
\usepackage[pdftex]{hyperref}

\makeatletter
\def\leqn{\tagsleft@true}
\def\reqn{\tagsleft@false}
\def\fleq{\@fleqntrue \let\mathindent\@mathmargin \@mathmargin=\leftmargini}
\def\cneq{\@fleqnfalse}
%\g@addto@macro{\endsubequations}{\addtocounter{equation}{-1}}
\makeatother

\begin{document}


\begin{equation} \label{eqn:1}
x = y
\end{equation}

\leqn
\fleq

\begin{subequations} \label{eqn:test1} \renewcommand{\theequation}{\roman{equation}} \begin{align}
F & = \sum_{i=1}^n x_n \, , \label{eqn:test1a} \\
\tilde{F} & = \sum_{i=n+1}^m \tilde{x}_n \, . \label{eqn:test1b}
\end{align} \end{subequations}

\addtocounter{equation}{-1}

\cneq
\reqn

\begin{equation} \label{eqn:2}
x = y
\end{equation}

\begin{equation} \label{eqn:3}
x = y
\end{equation}

\leqn
\fleq

\begin{subequations} \label{eqn:test2} \renewcommand{\theequation}{\roman{equation}} \begin{align}
F & = \sum_{i=1}^n x_n \, , \label{eqn:test2a} \\
\tilde{F} & = \sum_{i=n+1}^m \tilde{x}_n \, . \label{eqn:test2b}
\end{align} \end{subequations}

\addtocounter{equation}{-1}

\cneq
\reqn

\begin{equation} \label{eqn:4}
x = y
\end{equation}

\eqref{eqn:1} \eqref{eqn:2} \eqref{eqn:3} \eqref{eqn:4}
\eqref{eqn:test1} \eqref{eqn:test1a} \eqref{eqn:test1b}
\eqref{eqn:test2} \eqref{eqn:test2a} \eqref{eqn:test2b}


\end{document}
Compiler sagt:
pdfTeX warning (ext4): destination with the same identifier (name{equation.0.2}) has been already used, duplicate ignored
Das Problem ist das Dekrementieren des Zählers...
(Deine Makro-Erweiterung habe ich erstmal auskommentiert, weil ich den Code nicht so gut verstehe. Kannst du mir eine gute Seite mit TeX-LowLevel-Dokumentation empfehlen? Außerdem braucht man die subequation-Umgebung ja evtl. auch noch einmal in unmodifizierter Form...)
Am besten wäre wohl, eine eigene Umgebung mit den gewünschten Eigenschaften zu definieren mit einem eigenen Zähler und so weiter. Sehe ich das richtig?
Grüßle!

Antworten