Seite 1 von 1
Wechsel zwischen \leqno und \reqno, \fleqn, uvm.
Verfasst: Fr 27. Mär 2009, 17:08
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
Re: Wechsel zwischen \leqno und \reqno
Verfasst: Fr 27. Mär 2009, 19:26
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
Verfasst: Fr 27. Mär 2009, 20:43
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
Verfasst: Fr 27. Mär 2009, 20:50
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.
Verfasst: Fr 27. Mär 2009, 22:02
von oliverinspace
du solltest und das scheint hier der Fall, noch den Status auf beantwortet setzen.
Verfasst: Sa 28. Mär 2009, 09:45
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
Verfasst: Sa 28. Mär 2009, 10:45
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.
Verfasst: Sa 28. Mär 2009, 11:32
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
Verfasst: Sa 28. Mär 2009, 21:44
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!