newtheorem mit Symbol versehen

Layout von Seiten, Rändern, Fusszeilen, usw, modifizieren


ichbinneu

newtheorem mit Symbol versehen

Beitrag von ichbinneu »

Hallo mal wieder,

ich möchte, dass Definitionen, Beispiele und ähnliches mit einem \bullet (oder anderem Symbol) beendet werden.
Wie binde ich das ein?
Hier mein MWE:

\documentclass[ngerman, fontsize=11pt, DIV=15, BCOR = 10mm, parskip=half-, twoside]{scrartcl}

\newtheorem{defi}{Definition}

\begin{document}
	\begin{defi}
		Hier wird etwas definiert.
		Falls die Definition sehr lang wird weiß man danach nicht, wo sie genau aufhört und der nächste Abschnitt anfängt. 
		Daher wäre es schön, wenn ein Symbol das Ende dieser Definition markieren würde.
	\end{defi}
Hier wird nichts mehr definiert.

\end{document}

MoeWe
Forum-Meister
Forum-Meister
Beiträge: 524
Registriert: Fr 30. Aug 2019, 15:35
Kontaktdaten:

Re: newtheorem mit Symbol versehen

Beitrag von MoeWe »

Ein paar Möglichkeiten sind in https://tex.stackexchange.com/q/34014/35864 aufgeführt.

Wenn wir die Idee aus dem in barbara beetons Antwort verlinkten Beispieldokument nehmen, kämen wir hier in etwa bei

\documentclass[ngerman, fontsize=11pt, DIV=15, BCOR = 10mm, parskip=half-, twoside]{scrartcl}

\usepackage{amsthm}

\theoremstyle{definition}
\newtheorem{XdefiX}{Definition}
\newenvironment{defi}
  {\renewcommand{\qedsymbol}{$\bullet$}%
   \pushQED{\qed}\begin{XdefiX}}
  {\popQED\end{XdefiX}}

\begin{document}
\begin{defi}
  Hier wird etwas definiert.
  Falls die Definition sehr lang wird weiß man danach nicht,
  wo sie genau aufhört und der nächste Abschnitt anfängt.
  Daher wäre es schön, wenn ein Symbol das Ende
  dieser Definition markieren würde.

  Und ein Absatz innerhalb der Definition.
\end{defi}
Hier wird nichts mehr definiert.

Hier wird nichts mehr definiert.

\end{document}

heraus.

Wenn Du das \theoremstyle{definition} wie in Deinem Beispiel weglässt, ist die Definition kursiv. Dann ist das Ende ja auch ohne Bullet recht gut erkennbar. Auch ohne das ist der Abstand nach der Definition etwas größer als zwischen zwei Absätzen, man kann also erkennen, wo die Definition vorbei ist, es kostet aber einiges an Aufmerksamkeit und Mühe.

Nach meiner Erfahrung ist es recht ungewöhnlich, Definitionen durch ein Symbol abzuschließen, da oftmals aus dem Inhalt recht deutlich wird, was zur Definition gehört und was nicht. (Was jetzt nicht heißen muss, dass es per se eine schlechte Idee ist. Nur ist der Mensch ein Gewohnheitstier, wenn alle Deine Lerser*innen das so nicht kennen, stolpern sie vielleicht kurz drüber oder merken es an.)


ichbinneu

Re: newtheorem mit Symbol versehen

Beitrag von ichbinneu »

Ok, danke schonmal dafür.
Aber wie kriege ich es hin, dass die Zähler erhalten bleiben?
Wenn ich so mache wie jetzt bekomme ich

Satz 2.1.3
Beispiel 2.1.4
Definition 1


MoeWe
Forum-Meister
Forum-Meister
Beiträge: 524
Registriert: Fr 30. Aug 2019, 15:35
Kontaktdaten:

Re: newtheorem mit Symbol versehen

Beitrag von MoeWe »

Ganz genau so wie in viewtopic.php?p=116644#p116644: mit dem optionalen Argument von \newtheorem.

Im Grunde haben wir ja nur mit XdefiX ein ganz normales \newtheorem definiert wie wir das schon kennen. Das echte defi tut dann nur ein ganz klein bisschen extra, indem es das abschließende Zeichen setzt.

Hier eine Kombination der verlinkten Antwort und der Antwort oben.

\documentclass[ngerman, fontsize=11pt, DIV=15, BCOR = 10mm, parskip=half-, twoside]{scrartcl}
\usepackage{babel}
\usepackage{amsthm}
\usepackage[boxruled]{algorithm2e}

\usepackage{hyperref}
\usepackage{cleveref}


\counterwithin{algocf}{subsection}
\newtheorem{satz}[algocf]{Satz}
\newtheorem{lemma}[algocf]{Lemma}

\theoremstyle{definition}
\newtheorem{XdefiX}[algocf]{Definition}
\newenvironment{defi}
  {\renewcommand{\qedsymbol}{$\bullet$}%
   \pushQED{\qed}\begin{XdefiX}}
  {\popQED\end{XdefiX}}

\crefname{satz}{Satz}{Sätze}
\crefname{XdefiX}{Definition}{Definitionen}

\begin{document}
\section{Erste Section}
\subsection{erste Subsection}
\begin{satz}\label{satz}
  Die ist der erste Satz.
\end{satz}

\begin{lemma}\label{lemma}
  Das lemma
\end{lemma}

\begin{algorithm}
  \caption{der Erste Algorithmus}\label{algo}
  Der Algorithmus stimmt auch
\end{algorithm}


\begin{defi}\label{def:mydef}
  Hier wird etwas definiert.
  Falls die Definition sehr lang wird weiß man danach nicht,
  wo sie genau aufhört und der nächste Abschnitt anfängt.
  Daher wäre es schön, wenn ein Symbol das Ende
  dieser Definition markieren würde.

  Und ein Absatz innerhalb der Definition.
\end{defi}
Hier wird nichts mehr definiert.

Hier wird nichts mehr definiert.

Nach \cref{satz} kommt \cref{lemma},
dann kommt \cref{algo} und schließlich \cref{def:mydef}.
\end{document}

ichbinneu

Re: newtheorem mit Symbol versehen

Beitrag von ichbinneu »

Perfekt, genau das sollte es machen!

Vielen Dank :)


ichbinneu

Re: newtheorem mit Symbol versehen

Beitrag von ichbinneu »

Hallo ihr Lieben,

ich muss mich nochmal zu dieser Sache melden.
Mir ist gerade aufgefallen, dass das Symbol manchmal in einer neuen Zeile gesetzt wird, obwohl in der letzten Zeile noch Platz ist. Vor allem, wenn die letzte Zeile in \[ ... \] gesetzt ist.

Hier ein Ausschnitt:

diamond.png

Wie bekomme ich das hin, dass der diamond in der Zeile mit der Formel anschließt?

Mein Code:

\begin{lemma}\label{lemma: llfolge}
	Seien $\alpha$ und $\aquer$ wie oben.
Man berechnet das Folgenglied $s_{n-2}$ der Lucas-Lehmer-Folge durch 
%\begin{mathex}
	\[	s_{n-2} = \ahoch{n-2} + \aqhoch{n-2} = \aqhoch{n-2}\cdot\rk{1+\ahoch{n-1}}.\]
%	\end{mathex}
\end{lemma}

gast.

Re: newtheorem mit Symbol versehen

Beitrag von gast. »

! LaTeX Error: Environment lemma undefined.

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.
 ...                                              
                                                  
l.8 \begin{lemma}
                 \label{lemma: llfolge}

No further comment needed.


ichbinneu

Re: newtheorem mit Symbol versehen

Beitrag von ichbinneu »

Hier ein MWE:

\documentclass[ngerman, fontsize=11pt, DIV=15, BCOR = 10mm, parskip=half-, twoside]{scrartcl}

\usepackage{amsthm}

\theoremstyle{definition}
\newtheorem{XdefiX}{Definition}
\newenvironment{defi}
  {\renewcommand{\qedsymbol}{$\bullet$}%
   \pushQED{\qed}\begin{XdefiX}}
  {\popQED\end{XdefiX}}

\begin{document}
	\section{1. Kapitel}
	\subsection{1. Unterkapitel}
\begin{defi}
  Hier wird etwas definiert.
Selbst mit einem Absatz in der Definition sieht alles top aus.

Hier der Absatz.
\end{defi}
Hier wird nichts mehr definiert.

Jetzt kommt die nächste Definition.

\begin{defi}
Jetzt kommt Mathe.
\[
1+2 = 3
\]
\end{defi}

\end{document}

gast.

Re: newtheorem mit Symbol versehen

Beitrag von gast. »

Nun, abgesetzte Mathematik wird immer mit Abstand davor und danach gesetzt. Das gilt natürlich auch hier. Prinzipiell kann man den Abstand natürlich durch einen negativen Abstand wieder ausgleichen:

\documentclass[ngerman, fontsize=11pt, DIV=15, BCOR = 10mm, parskip=half-, twoside]{scrartcl}
\usepackage{babel}% sonst ist Option ngerman bei \documentclass sinnlos
\usepackage{amsthm}

\theoremstyle{definition}
\newtheorem{XdefiX}{Definition}
\newenvironment{defi}
  {\renewcommand{\qedsymbol}{$\bullet$}%
   \pushQED{\qed}\begin{XdefiX}}
  {\popQED\end{XdefiX}}

\begin{document}
	\section{1. Kapitel}
	\subsection{1. Unterkapitel}
\begin{defi}
  Hier wird etwas definiert.
Selbst mit einem Absatz in der Definition sieht alles top aus.

Hier der Absatz.
\end{defi}
Hier wird nichts mehr definiert.

Jetzt kommt die nächste Definition.

\begin{defi}
Jetzt kommt Mathe.
\[
1+2 = 3
\]
\vskip-\dimexpr \belowdisplayskip+\baselineskip\relax
\end{defi}
Und hier kommt wieder Text.

\end{document}

Wichtig: \vspace funktioniert hier nicht bzw. nur in Verbindung mit \par.

Übrigens fontsize=11pt ist die Voreinstellung und kann deshalb guten Gewissens weggelassen werden. Außerdem sei darauf hingewiesen, dass es auch \textbullet gibt → usrguide, Abschnitt 3.14.


ichbinneu

Re: newtheorem mit Symbol versehen

Beitrag von ichbinneu »

Danke schonmal.
Nun habe ich aber in einer Arbeit 843 solcher Umgebungen. Wie kann ich das denn jetzt automatisieren? Gibt es da eine Möglichkeit, dass in dieses newtheorem einzubinden?


Antworten