ntheorem und \qedsymbol nach align* umgebung / Nummerierung

Formelsatz für Mathematik, Naturwissenschaften und Technik


iceman01
Forum-Anfänger
Forum-Anfänger
Beiträge: 10
Registriert: Mo 23. Aug 2010, 17:59

ntheorem und \qedsymbol nach align* umgebung / Nummerierung

Beitrag von iceman01 »

Hallo,
ich habe schon einige Stunden damit verbracht das Problem zu lösen und diverse Foren zu durchstöbern, aber ich finde keine Lösung.
Ich habe mit dem ntheorem Package die Proof Umgebung verändert, so dass sie folgendermaßen aussieht:

PROOF:
Hier steht der Beweis.
QED-Kästchen

Nun stellt sich das Problem, dass ich einige Beweise habe, die mit einer align* Umgebung enden und in diesem Falle wird kein QED Kästchen gezeichnet. Füge ich als letzte Zeile Text oder eine Formel via $...$ ein ist alles ok.

Problemlos funktioniert es nur unter Benutzung von
\usepackage[amsthm,thmmarks]{ntheorem}
lasse ich das thmmarks weg und entferne die Anpassungen, so bekommt kein Beweis ein Kästchen.

Als zusätzliches Problem stellt sich noch, dass ich gerne eine durchlaufende Nummerierung hätte, füge ich aber beispielsweise
\newtheorem{thm}{Theorem}[section]
\newtheorem{lem}[thm]{Lemma}[section]
ein, so dass die Lemmata die Zählung von thm übernehmen sollen, so bekomme ich den Fehler
"Missing \begin{document}. \newtheorem{cor}[thm]{Corollary}["

Anbei mein Minimalbeispiel
\documentclass[a4paper,12pt]{book}
%***********************************************
%  Packages                                    *
%***********************************************
\usepackage[ngerman,english]{babel} %priority of languages in reverse order
\usepackage[ansinew]{inputenc}
\usepackage{amsmath}
\usepackage{amssymb,amsfonts,amstext,amsbsy}
%\usepackage[amsthm,thmmarks]{ntheorem}
\usepackage[thmmarks]{ntheorem}
\usepackage{mathabx} %for \bigboxvoid qed symbol
%***********************************************
%  Theorem Umgebungen                          *
%***********************************************
\theoremstyle{break} %changebreak removes the italic from body
\theoremseparator{}
\newtheorem{thm}{Theorem}[chapter] 
\newtheorem{prop}{Proposition}[chapter]
\newtheorem{cor}[thm]{Corollary}[chapter]
\newtheorem{lem}{Lemma}[chapter]
\newtheorem{defi}{Definition}[chapter]
\newtheorem{exa}{Example}[chapter]
\newtheorem{rem}{Remark}
\newtheorem{case}{Case}

\newtheorem*{IA}{Inertia Assumption}
\newtheorem*{MA}{Maximality Assumption}
\newtheorem*{SepA}{Separation Assumption}
\newtheorem*{lIA}{Loose Inertia Assumption}
\newtheorem*{IndA}{Independence Assumption}
\newtheorem{axiom}{A}[section]
\renewcommand{\theaxiom}{\arabic{axiom}} %counter for environment axiom
\newtheorem*{as}{Assumption}
\newtheorem{ass}{Assumption}[chapter]
\renewcommand{\theass}{\arabic{ass}}
\newtheorem{assa}{Assumption}[chapter]
\renewcommand{\theassa}{\arabic{assa}a}
\newtheorem{SA}{Structural Assumption}[chapter]
\renewcommand{\theSA}{\arabic{SA}}

%Proof environment
\theoremstyle{nonumberbreak}
\theoremseparator{:}
\theoremindent0.5cm
\theoremheaderfont{\scshape}
\theorembodyfont{\normalfont}
\theoremsymbol{\ensuremath{_\bigboxvoid}}
\RequirePackage{amssymb}
\newtheorem{proof}{Proof}
\qedsymbol{\ensuremath{_\bigboxvoid}}


%***********************************************
%  Dokument                                               *
%***********************************************

\begin{document}
	\begin{thm}
		Inhalt...
	\end{thm}
	\begin{proof}
	     \begin{align*}
		  a+b&=c\\
			&=d\\
			&=d
	    \end{align*}
	  Test  %lässt man diese Zeile weg, so kommt kein Kästchen
       \end{proof}
   \begin{cor}
	Inhalt...
    \end{cor}
\end{document}

guy.brush™
Forum-Century
Forum-Century
Beiträge: 185
Registriert: So 8. Aug 2010, 19:43
Wohnort: Earth

Beitrag von guy.brush™ »

Hallo,

ich muss jetzt ein bisschen raten, weil ich amsthm nutze, aber irgendwie kommen mir die Fehler bekannt vor, daher 2 Ideen (mehr weiß ich dann aber auch nicht ;)):

Wegen der Nummerierung: Ich habe nur beim obersten Zähler angegeben, auf was er sich beziehen. Gemeint ist:
\newtheorem{thm}{Theorem}[section]
\newtheorem{lem}[thm]{Lemma}
Du nimmst dann thm als Counter, welcher sich aber an section bei der Nummerierung orentiert. Da hier z.B. Lemmata aber auch von thm abhängen, sollte es so funktionieren. Glaube ich zumindest...;)


Bei dem anderen kann ich nur raten: Ich habe mal gehört, dass es angeblich bei ntheorem einen Bug gibt, dass man manchmal 2 LaTeX-Läufe benötigt, damit alles am richtigen Platz sitzt. Hilft das vielleicht?


Viele Grüße,

\\ guy.brush™
Arch Linux - KDE - TeXLive - Kile - \me = Advanced Newbie

Interessensschwerpunkte: Mathematik- und Formelsatz sowie mathematische (Mikro-)Typographie
Offenes Problem: negierte \xarrow-Pfeile beliebiger Länge

iceman01
Forum-Anfänger
Forum-Anfänger
Beiträge: 10
Registriert: Mo 23. Aug 2010, 17:59

Beitrag von iceman01 »

Die erste Idee klingt verdammt gut, da bin ich noch gar nicht drauf gekommen.

Zur zweiten Idee: ich hab auch schon mehrfach kompiliert, es hat immer nur geklappt, wenn die letzte Zeile Text oder eine Formel enthält und nicht mit einer align* Umgebung endet.

Samson

Beitrag von Samson »

Moin,

ich konnte Deinen Fehler reproduzieren, allerdings meckert er bei mir die Definitionszeile des Korollars an, wegen der letzten eckigen Klammer. Laut Doku kannst Du nur ein Paar eckige Klammern verwenden.

Um Dein align-Problem zu lösen benötigst Du noch die option amsmath, dann geht es.

Noch ein Tipp: Beweise mit eingerückten Formeln zu beenden ist für Mathematiker "schlechter Stil" und sollte vermieden werden. Daher liest man so oft "... that concludes the proof" ;-)

iceman01
Forum-Anfänger
Forum-Anfänger
Beiträge: 10
Registriert: Mo 23. Aug 2010, 17:59

Beitrag von iceman01 »

Wunderbar, allen vielen Dank für die Hilfe.

Ich rufe ntheorem jetzt so auf
\usepackage[amsmath,thmmarks]{ntheorem}
und es funktioniert alles.

Zu "that/which completes/concludes the proof":
Ich kenne die Thematik, aber es sind 2 ganz simple Lemmata zu Laplacetransformierten, wo ich eigentlich nur was nachrechne, da neigte ich stark dazu, diese Floskel nicht zu verwenden.

Was die Nummerierung angeht werde ich den Entwicklern des ntheorem Packages eine Mail schicken und sie bitten diesen Fakt in die Dokumentation aufzunehmen.

guy.brush™
Forum-Century
Forum-Century
Beiträge: 185
Registriert: So 8. Aug 2010, 19:43
Wohnort: Earth

Beitrag von guy.brush™ »

Hat meine Idee zum Counter denn auch geklappt?
Arch Linux - KDE - TeXLive - Kile - \me = Advanced Newbie

Interessensschwerpunkte: Mathematik- und Formelsatz sowie mathematische (Mikro-)Typographie
Offenes Problem: negierte \xarrow-Pfeile beliebiger Länge

iceman01
Forum-Anfänger
Forum-Anfänger
Beiträge: 10
Registriert: Mo 23. Aug 2010, 17:59

Beitrag von iceman01 »

Ja sorry, die hat auch funktioniert. Wenn man drüber nachdenkt macht es auch Sinn, dass der Counter nur von einer Variable abhängen darf, sonst könnte es ja Probleme geben wenn Theorem nach section nummeriert und Definition nach chapter.

Ich denke ich werde den Entwicklern mal eine Mail schreiben und sie bitten das explizit in die Dokumentation aufzunehmen.

guy.brush™
Forum-Century
Forum-Century
Beiträge: 185
Registriert: So 8. Aug 2010, 19:43
Wohnort: Earth

Beitrag von guy.brush™ »

Ah, ok danke :) - und macht nicht's, wollte es nur wissen, ob ich Recht hatte :).
Arch Linux - KDE - TeXLive - Kile - \me = Advanced Newbie

Interessensschwerpunkte: Mathematik- und Formelsatz sowie mathematische (Mikro-)Typographie
Offenes Problem: negierte \xarrow-Pfeile beliebiger Länge

Antworten