Quiero que los teoremas, lemas, ejemplos... terminen en un diamante. Como esto:
Descubrí que puedo usar \hfill\mbox{$\diamond$}. Pero ya escribí mi documento con cientos de ejemplos, lemas... No quiero configurarlo manualmente. Entonces pensé que podría configurarlo en \theoremstyle. ¿Dónde tengo que configurar esto? Aquí está mi 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}
Respuesta1
Podría utilizar \AtEndEnvironment
para agregar automáticamente su código (o mi versión ligeramente adaptada) cada vez que defi
finalice su entorno.
Como no solo uso \diamond
s al final de algunos entornos, sino que también \triangle
quiero que tengan (aproximadamente) el mismo tamaño, así que agregué un entorno defiBig
que agrega un \diamond
. Este cambio de tamaño involucra al scalerel
paquete.
\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}
Respuesta2
Para ser coherente, aquí hay una solución que usa ntheorem
. No ha cambiado en 10 años, no debería tener problemas con una instalación de 2017. Sólo recuerde que se necesitan varias compilaciones para que los marcadores se asienten.
Advertencia: a los ntheorem
envs con marcadores no les gustan las líneas en blanco antes de la \end{env}
parte.
Ejemplo de código que incluye cómo definir 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}
Respuesta3
Una forma más elegante es la siguiente.Por cierto, es mejor seleccionar el símbolo final igual que el símbolo qed.Tal como dije sobre los formatos de teoremas en mi libro, el símbolo qed indica "el final de una demostración". Así, generalmente podemos utilizar el símbolo para indicar “el final transitorio de algunos textos” y extender su uso a todo tipo de proposiciones, definiciones, observaciones, etc., sin pruebas.
\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}
La siguiente imagen muestra cómo uso el símbolo qed personalmente.
Respuesta4
Podría crear un entorno contenedor que agregaría un diamante al final del entorno definido por amsthm
. Algo alrededor de estas líneas:
\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}
EDITAR. El código basado en el estándar \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}