我想为示例创建一个环境,其结构与\begin{proof}...\end{proof}
环境完全相同,即以斜体“示例”开头,继续在同一行,并以最右边的特定符号结尾,例如\clubsuit
。
编辑:我正在使用amsthm
包。
我该怎么做呢,即在开头要插入什么代码?
答案1
这个例子说明了我所说的“克隆”环境。当环境以列表或显示数学结束时,它保留了“将结束符号向上移动”的amsthm
proof
能力。\qedhere
\documentclass{article}
\usepackage{amsthm}
\makeatletter
\providecommand{\examplesymbol}{\ensuremath\clubsuit}
\newenvironment{example}[1][\examplename]{\par
\pushQED{\qed}%
\normalfont \topsep6\p@\@plus6\p@\relax
\begingroup
\let\qedsymbol\examplesymbol
\trivlist
\item[\hskip\labelsep
\itshape
#1\@addpunct{.}]\ignorespaces
}{%
\popQED\endtrivlist\@endpefalse
\endgroup
}
\providecommand{\examplename}{Example}
\makeatother
\begin{document}
\begin{proof}
This is a proof.
\end{proof}
\begin{example}
This is an example. It looks like a proof.
\end{example}
\begin{example}
This example ends with a list.
\begin{itemize}
\item item 1;
\item item 2. \qedhere
\end{itemize}
\end{example}
\begin{example}
This example ends with display math.
\[
x + y = z
\qedhere
\]
\end{example}
\begin{proof}
Another proof
\end{proof}
\end{document}
还有其他方法可以做到这一点,但它们是手动的。其中一种方法是使用proof
环境的“可选标题”功能,并在使用之前重置结束符号。
\begin{proof}[Example]
[...]
\let\qedsymbol\examplesymbol
\end{proof}
如果\qedhere
需要,则直接在\let\qedsymbol
替换之前进行。