Quero que teoremas, lemas, exemplos... terminem com um losango. Assim:
Descobri que posso usar \hfill\mbox{$\diamond$}. Mas já escrevi meu documento com centenas de exemplos, lemas... Não quero configurá-lo manualmente. Então pensei que poderia configurá-lo em \theoremstyle. Onde devo definir isso? Aqui está meu 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}
Responder1
Você pode \AtEndEnvironment
adicionar automaticamente seu código (ou minha versão ligeiramente adaptada) sempre que seu defi
ambiente terminar.
Como utilizo não apenas \diamond
s no final de alguns ambientes mas também \triangle
, pessoalmente quero que eles tenham (aproximadamente) o mesmo tamanho, então adicionei um ambiente defiBig
que adiciona um \diamond
. Esse redimensionamento envolve o scalerel
pacote.
\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}
Responder2
Apenas para ser consistente, aqui está uma solução usando ntheorem
. Não mudou em cerca de 10 anos, não deveria haver problemas com uma instalação de 2017. Lembre-se de que são necessárias várias compilações para que os marcadores se estabeleçam.
Advertência: os ntheorem
ambientes com marcadores não gostam de linhas em branco antes da \end{env}
peça.
Exemplo de código incluindo como 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}
Responder3
Uma maneira mais elegante é a seguinte.A propósito, é melhor selecionar o símbolo final igual ao símbolo qed.Assim como falei sobre formatos de teoremas em meu livro, o símbolo qed indica “o final de uma prova”. Portanto, podemos geralmente usar o símbolo para indicar “o final transitório de alguns textos” e estender seu uso a todos os tipos de proposições, definições, observações e assim por diante, sem provas.
\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}
A imagem a seguir mostra como uso o símbolo qed pessoalmente.
Responder4
Você poderia criar um ambiente wrapper que adicionaria um diamante no final do ambiente definido por amsthm
. Algo em torno destas linhas:
\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. O código baseado no padrão \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}