PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Equationnumbers ohne leqno auf links setzen?



krake
15-01-2008, 17:12
Hallo liebe Texperten,

ich muss einen Artikel mit dem birkmult.cls Classfile bearbeiten, dass leider meine "leqno" Anweisung in der documentclass-anweisung ignoriert. Ohne tiefes Verstaendnis der Sache liegt das m.E. nach an der Umdefinierung der equation und eqnarray Umgebung im birkmult class file (siehe unten).
Kann man dennoch 'lokal' durch einen Befehl eingreifen und die Nummer nach links werfen?
Wenn nein, weiss jemand wie man die equation/eqnarray Umgebung so aendern kann, dass die Nummer nach links kommt? Ich verstehe darin naemlich nur Bahnhof.

Danke, Bernhard



\renewenvironment{equation}{%
\@beginparpenalty\predisplaypenalty
\@endparpenalty\postdisplaypenalty
\refstepcounter{equation}%
\@topsep\abovedisplayskip \trivlist
\item[]\leavevmode
\hbox to\linewidth\bgroup\hskip\mathindent$\displaystyle
}{%
\m@th$\hfil \displaywidth\linewidth \hbox{\@eqnnum}\egroup
\endtrivlist
}%
\renewenvironment{eqnarray}{%
%---changed: \upshape..
\stepcounter{equation}\let\@currentlabel{{\rm\thee quation}}
\global\@eqnswtrue \global\@eqcnt\z@ \tabskip\mathindent
\let\\=\@eqncr \abovedisplayskip\topsep
\ifvmode \advance\abovedisplayskip\partopsep \fi
\belowdisplayskip\abovedisplayskip
\belowdisplayshortskip\abovedisplayskip
\abovedisplayshortskip\abovedisplayskip
$$\everycr{}\halign to\linewidth\bgroup
\hskip\@centering
$\displaystyle\tabskip\z@skip####\m@th$&%
\@eqnsel \global\@eqcnt\@ne
\hfil${}####{}\m@th$\hfil&%
\global\@eqcnt\tw@
$\displaystyle ####\m@th$\hfil\tabskip\@centering&%
\global\@eqcnt\thr@@
\hbox to \z@\bgroup\hss####\egroup\tabskip\z@skip\cr
}{%
\@@eqncr \egroup \global\advance\c@equation\m@ne$$%
\global\@ignoretrue
}%
\newdimen\mathindent \mathindent\leftmargini
}

rais
15-01-2008, 18:16
Hallo und Herzlich Willkommen :)
kannst Du nicht einfach


\usepackage[leqno,fleqn]{amsmath}

in Deiner Präambel ergänzen?

MfG,

krake
16-01-2008, 11:28
Hallo Rais,

\usepackage[leqno,fleqn]{amsmath}
fuehrt zu: Option Clash; amsmath already loaded with [reqno, centertags]

Ich rufe birkmult im Moment mit den Optionen jmfm (legt Journal fest) und leqno auf, aber das leqno ignoriert er. Wenn ich noch zusaetzlich fleqn setze, fliegen mir alle eqnarray um die Ohren (die ohne fleqn funktionieren) :

! Extra }, or forgotten \endgroup.
\eqnarray ... \@currentlabel {{\rm \theequation }}
\global \@eqnswtrue \glob...
l.352 \begin{eqnarray*}

kann ich denn nicht "lokal", also in jeder eqnarray und equation Umgebung die ausrichtung durch einen extrabefehl erzwingen? Dann waere das Problem mittels emacs-macro in 30 Sekunden geloest ....

vielen Dank, Bernhard

rais
16-01-2008, 15:51
Moin moin,


Wenn ich noch zusaetzlich fleqn setze, fliegen mir alle eqnarray um die Ohren (die ohne fleqn funktionieren) :

! Extra }, or forgotten \endgroup.
\eqnarray ... \@currentlabel {{\rm \theequation }}
\global \@eqnswtrue \glob...
l.352 \begin{eqnarray*}

um eqnarray hab ich mich nicht weiter gekümmert -- warum, steht quasi in l2tabu...


kann ich denn nicht "lokal", also in jeder eqnarray und equation Umgebung die ausrichtung durch einen extrabefehl erzwingen? Dann waere das Problem mittels emacs-macro in 30 Sekunden geloest ....

na ja, wie wär's mit ner eigenen Umgebung? Da ich Deine Klasse nicht habe, bin ich einfach von article ausgegangen und hab das Problem mal mit equation durchgespielt...


\documentclass{article}
\usepackage[reqno,centertags]{amsmath}

%-->
\newlength\mathindent
\setlength\mathindent{3em}
%<-- sollte in Deiner Klasse -- wie auch immer -- bereits definiert sein

\makeatletter
%-->
\renewenvironment{equation}{%
\@beginparpenalty\predisplaypenalty
\@endparpenalty\postdisplaypenalty
\refstepcounter{equation}%
\@topsep\abovedisplayskip \trivlist
\item[]\leavevmode
\hbox to\linewidth\bgroup\hskip\mathindent$\displaystyle
}{%
\m@th$\hfil \displaywidth\linewidth \hbox{\@eqnnum}\egroup
\endtrivlist
}%
%<--das hast Du schon gezeigt

\newenvironment{lequation}{%left numbered equation
\@beginparpenalty\predisplaypenalty
\@endparpenalty\postdisplaypenalty
\refstepcounter{equation}%
\@topsep\abovedisplayskip \trivlist
\item[]\leavevmode
\hbox to\linewidth\bgroup\makebox[0pt][r]{\@eqnnum}\hskip\mathindent$\displaystyle
}{%
\m@th$\hfil \displaywidth\linewidth \egroup
\endtrivlist
}%
\makeatother
\begin{document}
\begin{equation}
(a+b)^2 = a^2 + 2ab + b^2
\end{equation}
\begin{lequation}
(a-b)^2 = a^2 - 2ab + b^2
\end{lequation}
\end{document}

MfG,

krake
16-01-2008, 17:50
funktioniert aber leider (noch) nicht perfekt ... also, was habe ich gemacht? Ich habe den Block



\makeatletter
\newenvironment{lequation}{%left numbered equation
\@beginparpenalty\predisplaypenalty
\@endparpenalty\postdisplaypenalty
\refstepcounter{equation}%
\@topsep\abovedisplayskip \trivlist
\item[]\leavevmode
\hbox to\linewidth\bgroup\makebox[0pt][r]{\@eqnnum}\hfil\mathindent$\displaystyle
}{%
\m@th$\hfil \displaywidth\linewidth \egroup
\endtrivlist
}%
\makeatother


eingefuegt. Ich begreife bestenfalls ansatzweise, was da eigentlich passiert,
daher bin ich hilflos wie ein kleines Kind. Eins habe ich mir erlaubt: ein hskip ist ein hfil geworden, weil ich das zentrierte Layout eigentlich ganz schoen finde. Meine
Beobachtungen:

- leider frisst die neue Umgebungt lequation (noch) keine \tag{} s
- irgendwie ist die Numerierung komisch nach aussen versetzt. Das liegt vielleicht an
\mathindent, den ich nicht angefasst habe, weil er irgendwo im classfile auftaucht (ich hoffe
das ist die richtige stelle): \newdimen\mathindent \mathindent\leftmargini

Bernhard

P.S: birkmult.cls in google und Du hast 100 kopien, wenn Du magst.

rais
16-01-2008, 19:09
P.S: birkmult.cls in google und Du hast 100 kopien, wenn Du magst.
danke, eine reicht -- aber es sollte schon die Version sein, die Du auch einsetzt.;-)
Wenn ich aber die erstbeste nehme, die google ausspuckt (v1.0 2004/01/01), dann ist noch nicht einmal \mathindent bekannt, wer weiß, was sich noch alles geändert haben mag -- wo genau hast Du Deine Version her bzw. welche wäre das?

BTW: wenn Du \hfil statt \hskip nimmst, sollte \mathindent hier überflüssig sein (es soll ja schon gefüllt werden, da braucht's nicht noch ein Maß).

MfG,