我想要一个根据定理编号的示例环境(例如定理 1、示例 2、定理 3、示例 4,...)并以梅花结结尾。我已经看过这个了解决方案但我宁愿有一个不使用该ntheorem
包的环境;要么创建一个新环境,要么重写现有环境(例如证明环境)。我对 LaTex 不是特别熟悉,所以我问这个。
这是我拥有的代码,因此我可以开始使用。我现在可以忍受错误。
\documentclass{amsart}
% \usepackage[utf8]{inputenc}
\usepackage{amsthm}
\newtheorem{theorem}{Theorem}[section]
\newtheorem{example}[theorem]{Example}
\newenvironment{example}{\paragraph{Example:}}{\hfill$\clubsuit$\vspace{10pt}}
% produces Error: Command \example already defined.
它基本上是有效的。它根据定理进行编号,并以梅花结束:
\begin{example}
First example.
\end{example}
但是,也存在一些问题,如下所示:
\begin{example}
Second example.
\end{example}
Line after second example breaks it.
\begin{example}
Third example.
\end{example}
A line after a newline after the third example is okay.
但我宁愿一开始就不必进行此修复。此外,该环境不适用于方程式。
\begin{example}
Example ending on an equation (qedhere does not work)
\begin{equation*}
a = b.
\end{equation*}
\end{example}
与环境不同proof
,\qedhere
不起作用。 itemize/enumerate 也存在类似的问题。总之,我想要一个最小的、非ntheorem
基于的example
环境,它本质上是证明环境的副本,但 QED 符号被替换为一个俱乐部套装(这样命令\qedhere
或等效命令可以将俱乐部套装带入结束方程)。我相信有比我拥有的更简单的解决方案。
更新。以下解决方案改编自这里非常接近我想要的:
\newcommand{\newmarkedtheorem}[1]{%
\newenvironment{#1}
{\pushQED{\hfill$\clubsuit$}\csname inner@#1\endcsname}
{\popQED\csname endinner@#1\endcsname}%
\newtheorem{inner@#1}%
}
\newmarkedtheorem{example}[theorem]{Example}
equation
但是,和环境仍然存在问题align
。
\begin{example}
Example ending in align environment:
\begin{align*}
1 + 1 + 1 &= 1 + 2\\
&= 3.\qedhere
\end{align*}
\end{example}
答案1
问题在于\pushQED{\hfill$\clubsuit$}
。您确实需要\pushQED{\qed}
或定义类似于的其他内容\qed
。
最简单的方法是为要使用的符号添加一个可选参数。
\documentclass{article}
\usepackage{amsmath}
\usepackage{amsthm}
\newcommand{\newmarkedtheorem}[2][\openbox]{%
\newenvironment{#2}
{\renewcommand{\qedsymbol}{#1}\pushQED{\qed}\csname inner@#2\endcsname}
{\popQED\csname endinner@#2\endcsname}%
\newtheorem{inner@#2}%
}
\newtheorem{theorem}{Theorem}
\newmarkedtheorem[$\clubsuit$]{example}[theorem]{Example}
\newmarkedtheorem[$\diamondsuit$]{exercise}{Exercise}
\begin{document}
\begin{example}
An example.
\end{example}
\begin{exercise}
An exercise.
\end{exercise}
\begin{example}
Example ending in align environment:
\begin{align*}
1 + 1 + 1 &= 1 + 2\\
&= 3.\qedhere
\end{align*}
\end{example}
\end{document}
不使用可选参数将默认为标准\openbox
。