PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Eigene Umgebung für Sätze, Dfinitionen, ...



ruh31
02-10-2004, 11:41
Hallo!

Da mir die standardmäßigen Umgebungen für Sätze, Def., etc., die man mit dem Befehl \newtheorem{}{} erhält, nicht gefallen, wollte ich mir eigene Umgebungen schaffen. Das habe ich mit dem Befehl \newenvironment gemacht, jedoch habe ich nun ein weiteres Problem. Ich will, dass vor der Umgebung und nach der Umgebung 12pt Abstand zum vorherigen bzw. nächsten Abschnitt ist. Allerdings kann ich dies nicht fest eingeben, da z.b. ein normales "\\" am Ende nicht immer funktioniert, da ich unter Umständen die Umgebung mit einer Aufzählung beende und es somit kein Zeilenende gibt. Auch will ich nicht, dass wenn zwei Umgebungen aufeinander folgen, dass dann automatisch 24pt Abstand zwischen ihnen ist, sondern es sollen weiterhin nur 12pt sein. Wie kann ich dies erreichen?????
Eine andere Frage noch: wie kann ich z.B. die vordefinierten Umgebungen mit \newtheorem so umändern, dass der eigentliche Inhalt nicht kursiv, sondern in normaler Schrift gedruckt wird?

Ich hoffe, dass mir hier jemand helfen kann. Auf jeden Fall schon einmal vielen Dank!

ruh31

ruh31
02-10-2004, 18:20
Eine kurze zusätzliche Frage noch: Kann ich die Umgebungen auch so einrichten, dass die Sätze, Definitionen, ... auch eine fortlaufende Nummer enthalten wie die per \newtheorem erzeugten Befehle?

Christoph
02-10-2004, 18:59
Vielleicht hilft Dir folgende selbstdefinierte Umgebung, die ich verwende:


\usepackage{fancybox} % für Sbox-Umgebung
\usepackage{ifthen} % bedingte Abfragen

{\theorembodyfont{\upshape}
\theoremstyle{break}
\newtheorem{Def}{Definition}[section]
}
\newenvironment{Defbox}[1][]%
{\vspace*{0.5ex}\ifthenelse{\equal{#1}{}}% optionales Argument leer?
{\begin{Sbox}\begin{minipage}{\textwidth}\begin{De f}}%
{\begin{Sbox}\begin{minipage}{\textwidth}\begin{De f}[#1]}%
}%
{\end{Def}\end{minipage}\end{Sbox}\fbox{\TheSbox}\ vspace*{0.5ex}}

Achtung: Funktioniert nur, wenn vor und nach begin/end{Defbox} eine Leerzeile (Paragraphenwechsel) ist.

ruh31
03-10-2004, 09:52
Hallo Christoph!

Danke für die ausführliche Antwort. Allerdings bin ich zwischenzeitlich auf ein kleines Paket gestoßen, das mit komplett die Arbeit abgenommen hat: "ntheorem" (erhältlich zB. bei ftp.tug.org). Dabei handelt es sich um ein Paket, welches ein paar Befehle zur Verfügung stellt, mit denen man sehr leicht die \newtheorem Umgebungen manipulieren kann. Also nachdem ich es mir angeschaut und bereits benutzt habe, kann ich es nur empfehlen!!!

ruh31