Diamant-Symbol am Ende einer Umgebung

Diamant-Symbol am Ende einer Umgebung

Ich möchte, dass Theoreme, Lemmata, Beispiele... mit einem Diamanten enden. So:Bildbeschreibung hier eingeben

Ich habe herausgefunden, dass ich \hfill\mbox{$\diamond$} verwenden kann. Aber ich habe mein Dokument bereits mit Hunderten von Beispielen und Lemmata geschrieben ... Ich möchte es nicht manuell festlegen. Also dachte ich, ich könnte es in \theoremstyle festlegen. Wo muss ich das festlegen? Hier ist mein MWE:

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

\newtheoremstyle{definition}{}{}{}{}{\bfseries}{:}{5 pt}{}

\theoremstyle{definition}
\newtheorem{defi}[]{Definition}

\begin{document}
      Here's the example.

\begin{defi}
       Does the diamond appear?
\end{defi}
\end{document}

Antwort1

Sie könnten \AtEndEnvironmentIhren Code (oder meine leicht angepasste Version) jedes Mal automatisch hinzufügen, wenn Ihre defiUmgebung endet.

\diamondDa ich am Ende einiger Umgebungen nicht nur s, sondern auch verwende \triangle, möchte ich persönlich, dass sie (ungefähr) dieselbe Größe haben. Daher habe ich eine Umgebung hinzugefügt, defiBigdie ein neu skaliertes hinzufügt \diamond. Diese Größenanpassung betrifft das scalerelPaket. Ergebnis

\documentclass[ngerman, fontsize=11pt, DIV=15, BCOR = 10mm,parskip=half-, twoside]{scrartcl}
\usepackage{babel}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{amssymb}
\usepackage{scalerel} % only necessary for the version with big \diamond

\newtheoremstyle{definition}{}{}{}{}{\bfseries}{:}{5 pt}{}

\theoremstyle{definition}
\newtheorem{defi}[]{Definition}
\AtEndEnvironment{defi}{\null\hfill\ensuremath{\diamond}}
% For a bigger \diamond you can use the following:
\newtheorem{defiBig}[defi]{DefinitionBig}
\newlength\myheight  \settoheight\myheight{$\triangle$}
\AtEndEnvironment{defiBig}{\null\hfill\ensuremath{\scaleto{\diamond}{\myheight}}}

\begin{document}
      Here's the example.
      \begin{defi}
             Does the diamond appear?
      \end{defi}
      \begin{defiBig}
             Does the big diamond appear?
      \end{defiBig}
\end{document}

Antwort2

Nur um konsequent zu sein, hier ist eine Lösung mit ntheorem. Es hat sich seit etwa 10 Jahren nicht geändert und sollte mit einer 2017-Installation keine Probleme haben. Denken Sie nur daran, dass mehrere Kompilierungen erforderlich sind, damit die Markierungen festgelegt werden.

Vorbehalt: Die ntheoremUmgebungen mit Markierungen mögen keine Leerzeilen vor dem \end{env}Teil.

Codebeispiel einschließlich der Definition proof:

\documentclass[ngerman, fontsize=11pt, DIV=15, BCOR = 10mm,parskip=half-, twoside]{scrartcl}
\usepackage{babel}
\usepackage{amsmath}
%\usepackage{amsthm}
\usepackage{amssymb}
\usepackage[amsmath,thmmarks]{ntheorem}

\theorembodyfont{\normalfont}
\theoremseparator{.}
\theoremsymbol{\enskip\ensuremath{\diamond}}
\newtheorem{defi}{Definition}

% body font is shared from above
\theoremstyle{nonumberplain}
\theoremheaderfont{\itshape}
\theoremsymbol{\enskip\ensuremath{\Box}}
\newtheorem{proof}{Proof}


\begin{document}
Here's the example.

\begin{defi}
  Does the diamond appear?
\end{defi}

\begin{proof}
  Test
\end{proof}
     
\end{document}

Bildbeschreibung hier eingeben

Antwort3

Eleganter geht es wie folgt.Übrigens ist es besser, das Endsymbol gleich dem qed-Symbol zu wählen.Genau wie ich es in meinem Buch über Theoremformate gesagt habe, zeigt das Symbol qed „das Ende eines Beweises“ an. Wir können das Symbol also allgemein verwenden, um „das vorübergehende Ende einiger Texte“ anzuzeigen und seine Verwendung auf alle Arten von Aussagen, Definitionen, Bemerkungen usw. ohne Beweise auszudehnen.

\documentclass{article}

\usepackage{amsthm}
\usepackage{latexsym}%for \Diamond
\renewcommand{\qedsymbol}{$\Diamond$}

\theoremstyle{theorem}
\newtheorem{theorem}{Theorem}
\newenvironment{thm}{\pushQED{\qed}\theorem}{\popQED\endtheorem}

\theoremstyle{definition}
\newtheorem{definition}{Definition}
\newenvironment{defi}{\pushQED{\qed}\definition}{\popQED\enddefinition}

\begin{document}

Here are the examples.

\begin{theorem}
Does the diamond appear? No!
\end{theorem}

\begin{thm}
Does the diamond appear? Yes!
\end{thm}

\begin{definition}
Does the diamond appear? No!
\end{definition}

\begin{defi}
Does the diamond appear? Yes!
\end{defi}

\end{document}

Bildbeschreibung hier eingeben

Das folgende Bild zeigt, wie ich das QED-Symbol persönlich verwende.

Bildbeschreibung hier eingeben

Antwort4

Sie könnten eine Wrapper-Umgebung erstellen, die am Ende der durch definierten Umgebung eine Raute hinzufügt amsthm. Etwa so:

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

\newtheoremstyle{definition}{}{}{}{}{\bfseries}{:}{5 pt}{}
\theoremstyle{definition}
\newtheorem{ddefi}[]{Definition}
\NewDocumentEnvironment{defi}{s +b}{%
  \begin{ddefi}
    #2\nolinebreak\IfBooleanT{#1}{\hfill}\enspace$\diamond$
  \end{ddefi}}{}


\begin{document}
Here's the example.
\begin{defi}
  Does the diamond appear
\end{defi}

\begin{defi}*
  Does the diamond appear
\end{defi}
\end{document}

Bildbeschreibung hier eingeben


BEARBEITEN. Der Code basiert auf dem Standard \newenvironment:

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

\newtheoremstyle{definition}{}{}{}{}{\bfseries}{:}{5 pt}{}
\theoremstyle{definition}
\newtheorem{ddefi}[]{Definition}
\newenvironment{defi}{\begin{ddefi}}{\nolinebreak\hfill\enspace$\diamond$\end{ddefi}}


\begin{document}
Here's the example.
\begin{defi}
  Does the diamond appear
\end{defi}
\end{document}

verwandte Informationen