PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : theoremstyle



Mr Z
07-06-2008, 14:11
Hallo,
ich bastele gerade daran in meiner Diplomarbeit Sätze, Definitionen usw. mit Hilfe von newtheorem darzustellen. Ich möchte folgendes Ergebnis erzielen: Der nachflogende Text soll nicht kursiv sein (wie das bei \theoremstyle{definition} der Fall ist) und nach der Überschrift soll ein linebreak stattfinden (wie das bei \theoremstyle{break} der Fall ist.
Das Problem ist nun, dass



\documentclass[a4paper,12pt]{report}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[german,ngerman]{babel}

\usepackage{amsthm}
\theoremstyle{definition}
\newtheorem{satz}{Satz}
\begin{document}
\begin{satz}
Dieser Satz ist nicht kursiv
\end{satz}
\end{document}


zwar den Text in nicht kursiv darstellt, aber kein linebreak macht,
wohingegen


\documentclass[a4paper,12pt]{report}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[german,ngerman]{babel}

\usepackage[amsthm]{ntheorem}
\theoremstyle{break}
\newtheorem{satz}{Satz}
\begin{document}
\begin{satz}
Dieser Satz ist leider wieder kursiv
\end{satz}
\end{document}
zwar den linebreak nach der Überschrift macht, aber den Text leider wieder kursiv ausgibt. Weiss jemand wie man beides zusammen(linebreak und nicht kursiv) hinbekommt?
Vielen Dank
Grüße Andre

Stefan_K
07-06-2008, 14:24
Hallo Andre,

als einfachste Variante fällt mir für den zweiten Quelltext ein:

\theorembodyfont{}
Voreingestellt ist \itshape.

Stefan

Mr Z
09-06-2008, 15:32
Hallo Stefan,
na das nenn ich mal wirklich eine einfache Lösung



\documentclass[a4paper,12pt]{report}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[german,ngerman]{babel}

\usepackage[amsthm]{ntheorem}
\theoremstyle{break}
\theorembodyfont{\upshape}
\newtheorem{satz}{Satz}
\begin{document}
\begin{satz}
Yippie ich bin nicht mehr kursiv!
\end{satz}
\end{document}


erzielt dan genau das Ergebnis, wie ichs gerne hätte. Vielen Dank!
Grüße Andre

Mr Z
09-06-2008, 17:09
Hallo nochmal,
ein kleines Problem hat sich doch noch eingeschlichen. Die Stern-Variante \newtheorem* akzeptiert tex jetzt auf einmal nicht mehr. Gibts die nur für \theoremstyle{remark}? Ich würde gerne folgendes benutzen:


\documentclass[a4paper,12pt]{report}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[german,ngerman]{babel}

\usepackage[amsthm]{ntheorem}
\theoremstyle{break}
\theorembodyfont{\upshape}
\newtheorem*{vor}{Vorraussetzung}
\begin{document}
\begin{vor}
Diese Voraussetzung hätte ich gerne wie bei break mit Zeilenumbruch nach der
\"Uberschrift (wie bei break) und mit aufrechter Schrift (wie bei upshift).
\end{vor}
\end{document}

Stefan_K
09-06-2008, 17:32
Hallo Andre,

dieses Minimalbeispiel funktioniert bei mir fehlerfrei mit TeXlive auf Ubuntu Linux 8.04.

Stefan

Mr Z
13-06-2008, 13:36
Hallo Stefan,
Du hast recht, das Minimalbeispiel kompiliert bei mir auch einwandfrei. Mein Fehler.
Binde ich jedoch alle packages ein bekomme ich die warnings:
.
/test.tex:33: Font shape `U/wasy/b/n' in size not available(Font) Font shape `U/wasy/m/n' tried instead on input line 33. Font shape `U/wasy/b/n' in size not available(Font) Font shape `U/wasy/m/n' tried instead

und

./test.tex:33: Font shape `U/stmry/b/n' undefined(Font) using `U/stmry/m/n' instead on input line 33. Font shape `U/stmry/b/n' undefined(Font) using `U/stmry/m/n' instead
./test.tex:0: Some font shapes were not available, defaults substituted.

Dokumentiere ich die packages
\usepackage{wasysym}
\usepackage{stmaryrd}
aus, so läuft alles einwandfrei.
Irgendwo scheint mir da ein Konflikt zu sein, den ich nicht verstehe.
Bei wasysym weiss ich schon gar nicht mehr wofür ich das eigentlich brauchte. stmaryd hatte ich für \lightning verwendet.
Nun habe ich versucht so einen Blitz irgendwie anders zu erzeugen, indem ich die Packete marvosym (wirft für \Lightning nur ein großes E aus), ifsym(erkennt \Lightning bei mir nicht mal) oder ulsy (gibt für \blitza einen griechischen Buchstaben aus) ausprobiert habe. Alles ohne Erfolg.
Es sieht so aus als bräuchte ich wasysym oder stmaryrd doch.
Hast Du vielleicht eine Idee wieso sich das mit dem theorem Packet nicht verträgt?
Hier nochmal der Code der zu den warnings führt:


\documentclass[a4paper,12pt]{report}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[german,ngerman]{babel}
\usepackage{float}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage[amsthm]{ntheorem}
\usepackage{mathrsfs}
\usepackage{wasysym}
\usepackage{ulem}
\usepackage[arrow, matrix, curve]{xy}
\usepackage[active]{srcltx}
\usepackage[a4paper, left=4.8cm, right=2.8cm, bottom = 3.8cm, top =
3cm]{geometry}
\usepackage{expdlist}
\usepackage{stmaryrd} %f\"ur \lightning
\setlength{\parindent}{0pt} %Erstzeileneinzug auf Null gesetzt
\theoremstyle{break}
\theorembodyfont{\upshape}
\newtheorem*{vor}{\underline{Vorrausetzung}}
\begin{document}
\begin{vor}
Diese Voraussetzung hätte ich gerne wie bei break mit Zeilenumbruch nach der
\"Uberschrift (wie bei break) und mit aufrechter Schrift (wie bei upshift).
\end{vor}
\end{document}


Grüße Andre

Mr Z
13-06-2008, 13:50
Habe grade noch gesehen, dass auch dieses Minimalbeispiel trotz der warnings funktioniert. Kompliliere ich jedoch mein eigentliches Dokument, so sieht die Vorraussetung ganz merkwürdig aus, als wäre irgendetwas doppelt aufeinander gedruckt und ausßerdem ist der Text meiner Sätze und Lemmas auf einma wieder kursiv. Ganz schön frustrierend :(

Stefan_K
13-06-2008, 14:46
Hallo,

die Warnungen für obiges Beispiel verschwinden, wenn man \underline durch \emph ersetzt:

\newtheorem*{vor}{\emph{Vorrausetzung}}
\emph hebt auch durch Unterstreichung hervor.

Stefan

Mr Z
14-06-2008, 17:05
Hi Stefan,
das war ein super Tipp. \emph statt \underline hat bei mir noch mehr bewirkt. Jetzt sind nicht nur die warnings weg, sondern \lightning funktioniert auch wieder und alles ist upright, wie es sein sollte.
Nur leider habe ich immer noch ein paar Kleinigkeiten, die nicht klappen. Im folgenden code fallen die Bezeichnungen der newtheorem übereinander, wenn ich sie ineinander verschachtele. Außerdem möchte ich eigentlich die Vorrausetzung-Umgebung ähnlich haben wie die proof-Umgebung (ohne Kästchen am Ende), d.h. das Wort Vorrausetzung sollte nach Möglichkeit nicht fett gedruckt sein und am Besten auch noch kursiv, sonst sieht die Vorraussetzung ja genau so wichtig aus wie das Lemma. Meinst Du das lässt sich irgendwie machen? Sonst muss ich das irgendwie manuel regeln ohne die theorem-Umgebungen. Hier nochmal ein Minimalbeispiel:



\documentclass[a4paper,12pt]{report}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[german,ngerman]{babel}
\usepackage{float}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage[amsthm]{ntheorem}
\usepackage{mathrsfs}
\usepackage{wasysym}
\usepackage{ulem}
\usepackage[arrow, matrix, curve]{xy}
\usepackage[active]{srcltx}
\usepackage[a4paper, left=4.8cm, right=2.8cm, bottom = 3.8cm, top =
3cm]{geometry}
\usepackage{expdlist}
\usepackage{stmaryrd} %f\"ur \lightning
\setlength{\parindent}{0pt} %Erstzeileneinzug auf Null gesetzt
\theoremstyle{break}
\theorembodyfont{\upshape}
\newtheorem{lem}[satz]{Lemma}
\newtheorem*{vor}{\emph{Vorrausetzung}}
\begin{document}
\begin{lem}
\begin{vor}
Bei dieser Vorrausetzung werden die Wörter "`Lemma"' und "`Voraussetzung
leider \"ubereinander gedruckt. Au"serdem ist das Wort "'Vorraussetzung"`
fett gedruckt.
\end{vor}
\end{lem}
\end{document}


Sorry wegen der vielen Fragen und nochmals vielen Dank.
Grüße Andre

Sabrina.Dankers
14-06-2008, 17:34
Außerdem möchte ich eigentlich die Vorrausetzung-Umgebung ähnlich haben wie die proof-Umgebung (ohne Kästchen am Ende), d.h. das Wort Vorrausetzung sollte nach Möglichkeit nicht fett gedruckt sein und am Besten auch noch kursiv, sonst sieht die Vorraussetzung ja genau so wichtig aus wie das Lemma. Meinst Du das lässt sich irgendwie machen? Sonst muss ich das irgendwie manuel regeln ohne die theorem-Umgebungen. Hier nochmal ein Minimalbeispiel:



\documentclass[a4paper,12pt]{report}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[german,ngerman]{babel}
\usepackage{float}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage[amsthm]{ntheorem}
\usepackage{mathrsfs}
\usepackage{wasysym}
\usepackage{ulem}
\usepackage[arrow, matrix, curve]{xy}
\usepackage[active]{srcltx}
\usepackage[a4paper, left=4.8cm, right=2.8cm, bottom = 3.8cm, top =
3cm]{geometry}
\usepackage{expdlist}
\usepackage{stmaryrd} %f\"ur \lightning
\setlength{\parindent}{0pt} %Erstzeileneinzug auf Null gesetzt
\theoremstyle{break}
\theorembodyfont{\upshape}
\newtheorem{lem}[satz]{Lemma}
{\theoremheaderfont{\itshape}\newtheorem*{vor}{\em ph{Vorrausetzung}}}
\begin{document}
\begin{lem}
\begin{vor}
Bei dieser Vorrausetzung werden die Wörter "`Lemma"' und "`Voraussetzung
leider \"ubereinander gedruckt. Au"serdem ist das Wort "'Vorraussetzung"`
fett gedruckt.
\end{vor}
\end{lem}
\end{document}


Sorry wegen der vielen Fragen und nochmals vielen Dank.
Grüße Andre

Hallo,

dafür musst du nur den theoremheaderfont für die Voraussetzung anpassen. Ich habe das mal in deinem Beispiel gemacht und rot markiert. Allerdings für das Problem mit dem Übereinanderschreiben hab ich spontan keine vernünftige Lösung, außer mit \rule{1mm}{0mm}\\[-0,5cm] hinter \begin{Lem} den Abstand anzupassen. Aber da gibt es sicherlich eine bessere Lösung.

Mr Z
15-06-2008, 12:15
Hallo Sabrina,
danke das klappt super. Habe es fast genau so gemacht, wie Du es vorgeschlagen hast (nur den Abstand habe ich noch ein bisschen verkleinert). Das hat mir sehr geholfen.
Grüße Andre

Sabrina.Dankers
15-06-2008, 12:44
Ja, der Abstand war auch nur so zum demonstrieren. Vielleicht fällt ja auch noch jemandem ne elegantere Lösung ein, bei der man auf das Geschummel ganz verzichten kann.