![环境末尾的菱形符号](https://linux22.com/image/462087/%E7%8E%AF%E5%A2%83%E6%9C%AB%E5%B0%BE%E7%9A%84%E8%8F%B1%E5%BD%A2%E7%AC%A6%E5%8F%B7.png)
我发现我可以使用 \hfill\mbox{$\diamond$}。但是我已经用 100 个示例、引理编写了文档……我不想手动设置它。所以我想我可以在 \theoremstyle 中设置它。我必须在哪里设置它?这是我的 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}
答案1
\AtEndEnvironment
每次您的defi
环境结束时,您都可以自动添加您的代码(或我稍微改编的版本)。
由于我不仅\diamond
在某些环境末尾使用 s ,而且还使用\triangle
,我个人希望它们具有(大约)相同的大小,因此我添加了一个defiBig
添加了重新缩放 的环境\diamond
。此调整大小涉及scalerel
包。
\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}
答案2
为了保持一致,这里是使用的解决方案ntheorem
。它在 10 年内没有改变,2017 年的安装应该不会有问题。请记住,标记需要多次编译才能稳定下来。
警告:ntheorem
带有标记的环境不喜欢\end{env}
部分之前的空行。
代码示例包括如何定义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}
答案3
一个更优雅的方式如下。顺便说一句,最好选择与 qed 符号相同的结束符号。正如我在书中关于定理格式所讲的,qed符号表示“一个证明的结束”。所以我们可以普遍地用这个符号来表示“某些文本的暂时结束”,并且把它的使用范围扩展到各种不需要证明的命题、定义、注释等等。
\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}
下图展示了我个人如何使用 qed 符号。
答案4
您可以创建一个包装器环境,它会在定义的环境末尾添加一个菱形amsthm
。类似以下代码:
\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}
编辑。基于标准的代码\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}