Ich möchte, dass Theoreme, Lemmata, Beispiele... mit einem Diamanten enden. So:
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 \AtEndEnvironment
Ihren Code (oder meine leicht angepasste Version) jedes Mal automatisch hinzufügen, wenn Ihre defi
Umgebung endet.
\diamond
Da 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, defiBig
die ein neu skaliertes hinzufügt \diamond
. Diese Größenanpassung betrifft das scalerel
Paket.
\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 ntheorem
Umgebungen 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}
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}
Das folgende Bild zeigt, wie ich das QED-Symbol persönlich verwende.
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}
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}