PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : amsthm neuer Stil?



ZeroKnowledge
25-01-2006, 21:02
Hallo Leute,

wie kann ich meine Definitionen, Sätze usw so umgestalten dass sie so aussehen:

1.2 Definition (Reele Zahlen)


1.3 Satz (Gauss)

....

Vielen Dank!

rais
26-01-2006, 01:03
Moin moin,
erstmal Herzlich Willkommen hier im Forum :)

wie kann ich meine Definitionen, Sätze usw so umgestalten dass sie so aussehen:

1.2 Definition (Reele Zahlen)


1.3 Satz (Gauss)
Um die Frage richtig beantworten zu können, müßtest Du erst einmal ein Minimalbeispiel erstellen, damit man sieht, wie es denn bisher bei Dir aussieht; es gibt ja keinen Grund, das Rad doppelt zu erfinden.;)
Außerdem ist's ohne recht schwer zu erraten, was Du denn umgestalten müsstest :rolleyes:

Ich geh' einfach mal davon aus, Du benutzt scrreprt...


\documentclass{scrreprt}
\usepackage{amsmath,amssymb,amsthm}
\swapnumbers
\newtheorem{Defi}{Definition}[chapter]
\newtheorem{satz}[Defi]{Satz}
\begin{document}
\chapter{Test}
\begin{Defi}[Reelle Zahlen]
Bla blubb
\end{Defi}
\begin{satz}[Gauss]
Bla blubb
\end{satz}
\end{document}
dabei vertauscht \swapnumbers die Nummerierung mit dem Namen des Theorems, bei \newtheorem{Defi}{Definition}[chapter] sorgt das [chapter] dafür, daß der Zähler 'Defi' an den Kapitelzähler gebunden wird (und auch der Kapitelzähler entsprechend mit ausgegeben wird),
bei \newtheorem{satz}[Defi]{Satz} sorgt [Defi] dafür, daß "Satz" denselben Zähler wie "Definition" verwendet...

Wenn es Dir aber darum geht, daß "1.2 Definition" (hier natürlich 1.1)alleine in einer Zeile steht, dann versuch's stattdessen mal so:


\documentclass{scrreprt}
\usepackage{amsmath,amssymb,theorem}
\theoremstyle{changebreak}
\newtheorem{Defi}{Definition}[chapter]
\newtheorem{satz}[Defi]{Satz}
\begin{document}
\chapter{Test}
\begin{Defi}[Reelle Zahlen]
Bla blubb
\end{Defi}
\begin{satz}[Gauss]
Bla blubb
\end{satz}
\end{document}

dann verschwindet auch der Punkt hinter der schließenden Klammer.
MfG,

ZeroKnowledge
27-01-2006, 21:53
Hallo Rainer,

vielen Dank für Deine Antwort. Das Beispiel sieht so aus wie bei mir. Jedoch versuche ich einen "tab" zwischen der Nummerierung und der Definition zu bekommen. Also

1.2_____Definition
1.2_____Satz

Ich benutze {scrbook}, also das KOMA Package.

Vielen Dank,

Dominique

rais
28-01-2006, 20:54
Hallo Dominique,
siehst Du, mit einem Minimalbeispiel von Dir wär' das nicht passiert...
Der Haken an der ganzen Sache ist, daß sich ein definierter Abstand zwischen Nummer und Namen nicht so ohne weiteres realisieren läßt, da besagter Abstand bei amsthm durch "~", bei theorem durch "\ " vorgegeben ist.
Hier mal ein extrem gebastelter Lösungsansatz:

\documentclass{scrreprt}
\usepackage{amsmath,amssymb,theorem}
\newlength{\thmnumberseparator}
\newlength{\thmnumberwidth}
\newlength{\thmnumberspace}
\setlength{\thmnumberspace}{3EM}
\theoremstyle{changebreak}
\makeatletter
\newcommand{\thmnumbersep}[1]{%
\settowidth{\thmnumberwidth}{\theorem@headerfont #1}
\setlength{\thmnumberseparator}{\thmnumberspace}
\addtolength{\thmnumberseparator}{-\thmnumberwidth}
\hspace{\thmnumberseparator}%
}
\gdef\th@changebreak{\normalfont\slshape
\def\@begintheorem##1##2{\item
[\rlap{\vbox{\hbox{\hskip\labelsep \theorem@headerfont ##2\thmnumbersep{##2} ##1}%
\hbox{\strut}}}]}%
\def\@opargbegintheorem##1##2##3{%
\item[\rlap{\vbox{\hbox{\hskip\labelsep \theorem@headerfont
##2\thmnumbersep{##2} ##1\ (##3)}%
\hbox{\strut}}}]}}
\makeatother
\newtheorem{Defi}{Definition}[chapter]
\newtheorem{satz}[Defi]{Satz}
\begin{document}
\chapter{Test}
\begin{Defi}[Reelle Zahlen]
Bla blubb
\end{Defi}
\begin{satz}[Gauss]
Bla blubb
\end{satz}
\end{document}
Hierbei stelle ich zunächst drei Längen zur Verfügung, die später ihre reelle Bedeutung bekommen: \thmnumberwidth wird zur Breite der aktuellen Theorem-Nummer (unter Berücksichtigung des verwendeten Fonts bzw. dessen Attribute), \thmnumberseparator wird zum Abstand zwischen Theorem-Nummer und Theorem-Namen, und \thmnumberspace ist die Vorgabe, wieviel Platz für Theorem-Nummer und darauf folgendem Abstand insgesamt eingeräumt werden soll, d.h. Du brauchst nur die Zeile mit
\setlength{\thmnumberspace}{3EM}
an Deine gewünschte Breite anzupassen.
Über \theoremstyle{changebreak} wird dem theorem-Paket mitgeteilt, daß sowohl Nummer nach links gestellt werden soll, als auch ein Zeilenumbruch nach dem Theorem-Titel erfolgen soll. Paket-intern wird dies realisiert, indem die Datei ...texmf/tex/latex/tools/thcb.sty nachgeladen wird: aus dieser Datei stammt der Anweisungsblock ab \gdef - mit der Ausnahme, daß im Original ein einfaches Leerzeichen ("\ ") steht, wo hier "\thmnumbersep{##2}" steht...
Dieser Block müsste für jeden vorkommenden \theoremstyle entsprechend erzeugt werden - und das entsprechend der verwendeten \theoremstyle - Anweiungen, ist also nicht so einfach übertragbar auf andere Stile.

Eine wesentlich einfachere (nichtsdestotrotz gebastelte) Variante wäre, einen entsprechenden Abstand mit in den Zählerstring direkt aufzunehmen


\renewcommand{\theDefi}{\thechapter.\arabic{Defi}\ hspace{_Abstand_}} damit könnte man zumindest die Makro-Definitionen in Ruhe lassen - hat aber den Haken, daß man auf "\theDefi" dann eben nur noch mit diesem Abstand zugreifen kann...
MfG,