PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Global nummerierung an-/abschalten



cgogolin
01-10-2007, 15:14
Hallo,

Ich brauche von einem Dokument zwei Versionen. In der einen sollen Alle Gleichungen die mit der "equation"-Umgebung gesetzt würden nummeriert werden und alle die mit der "equation*"-Umgebung gesetzt werden nicht nummeriert werden, in der anderen sollen alle Gleichungen nicht nummeriert werden.

Wie kann ich durch das setzen einer Option in der Präambel die Nummerierung auch für die "equation"-Umgebung abschalten?

Ich habe bereits

\renewcommand{\theequation}{}
versucht, aber dann bleiben die Klammen bei der Nummerierung noch übrig.

Danke für die Hilfe!

rais
02-10-2007, 14:24
Moin moin,
vielleicht mit amsmath und


\let\eqorg\equation
\renewcommand\equation{\eqorg\notag}
in Deiner Präambel?
MfG,

cgogolin
02-10-2007, 15:01
Das klappt super!

Leider verstehe ich nicht so ganz wie es funktioniert. Wäre super wenn du mich da kurz erleuchten könntest.

Außerdem brauche ich das selbe auch noch für die "align"-Umgebung. WIe sieht die entsprechende Zeile dafür aus?

Mit

\let\alorg\align
\renewcommand\align{\alorg\notag}

wird nur die Nummerierung der ersten Zeile unterdrückt.

rais
02-10-2007, 16:33
Moin moin,


Leider verstehe ich nicht so ganz wie es funktioniert. Wäre super wenn du mich da kurz erleuchten könntest.


\let <token1> <token2>legt quasi eine Kopie von token2 unter dem Namen token1 an, in diesem Fall wird \eqorg als Kopie von \equation angelegt. In der darauffolgenden Zeile wird dann der \equation-Befehl entsprechend um einen \notag ergänzt, was mit \renewcommand\equation{\equation\notag} nicht machbar wäre...


Außerdem brauche ich das selbe auch noch für die "align"-Umgebung. WIe sieht die entsprechende Zeile dafür aus?

Versuche es mal mit


\makeatletter
\renewcommand\print@eqnum{}
\makeatother
das Teil ist eigentlich mit {\tagform@\theequation} vorbelegt -- und der Name klingt verdächtig nach ``gib Gleichungsnummer aus´´;-)

MfG,

cgogolin
03-10-2007, 13:52
Vielen Dank für die Erklärung!

Leider funktioniert dein Vorschlag nicht. LaTeX sagt:

ERROR: LaTeX Error: \print undefined.

Wenn ich stattdessen

\makeatletter
\renewcommand{\print@eqnum}{}
\makeatother
in die Präambel schreibe dann kommt als Fehler

ERROR: LaTeX Error: Missing \begin{document}.
Setze ich einen der beiden Code-Blöcke hinter \begin{document} so kann ich zwar kompilieren, es gibt aber keinen sichtbaren Effekt.

Vielleicht sollte ich noch erwähnen, dass ich LaTeX Beamer verwende und die Nummerierung für die Präsentation Abschalten will. Während dem Vortrag kann sich sowieso niemand die Gleichungsnummern merken...

rais
03-10-2007, 15:17
Moin moin,

Vielen Dank für die Erklärung!

Da doch nich' für.;-)


Leider funktioniert dein Vorschlag nicht. LaTeX sagt:

ERROR: LaTeX Error: \print undefined.

Klingt so, als hätte der \makeatletter-Befehl nicht gegriffen (der umzudefinierende Befehl aus dem amsmath-Paket lautet \print@eqnum, nicht \print)...:confused:


Vielleicht sollte ich noch erwähnen, dass ich LaTeX Beamer verwende und die Nummerierung für die Präsentation Abschalten will.
Auch mit beamer eigentlich kein Problem...


\documentclass[ngerman]{beamer}
\usepackage{babel}
\usepackage[T1]{fontenc}
\usetheme{Warsaw}
\mode<presentation>
\makeatletter
% nur mit amsmath (wird von der beamer-Klasse bereits geladen)
\renewcommand\print@eqnum{}
\makeatother
\begin{document}
\begin{frame}
\frametitle{Test}
\begin{align}
c^2 &= a^2+b^2\\\intertext{Wenn}
a &= b,\\\intertext{dann}
c &= \sqrt{2\cdot a^2}
\end{align}
\end{frame}
\end{document}

MfG,

cgogolin
03-10-2007, 16:41
Klingt so, als hätte der \makeatletter-Befehl nicht gegriffen
Stimmt!

Wenn der Befehl innerhalb von \mode<...>{} steht, dann funktioniert er scheinbar nicht. Aber mit


\makeatletter
% nur mit amsmath (wird von der beamer-Klasse bereits geladen)
\only<beamer>{\renewcommand\print@eqnum{}}
\makeatother

klappt es.

Nochmals vielen Dank!

cgogolin
22-02-2008, 22:59
Ich habe heute eine für mich zufriedenstellend funktionierende Lösung gefunden.

Mit dem Paket "mathtools" kann man mittels "\mathtoolsset{showonlyrefs}" die Nummerierung auf diejenigen Gleichungen begrenzen, die auch wirklich referenziert werden.