我重新定义了两个环境
\newtheorem{exmp}{Example}
\newenvironment{examp}{\begin{exmp}}{\renewcommand{\proofname}{Sol.}\end{exmp}}
\newenvironment{pf}{\begin{proof}}{\renewcommand{\proofname}{Proof}\end{proof}}
以确保当证明名称就在examp
环境之后应改为解决方案,同时保持证明用于其他环境(定理,引理等等)。
但似乎它并没有像我预期的那样发挥作用。为什么?
答案1
(我认为proof
是 提供的环境amsthm
。)
这是行不通的,因为每个环境都形成一个群体,因此\renewcommand{\proofname}{Sol.}
一旦\end{exmp}
执行就会被遗忘。
你可能想要使用全局重新定义:
\newtheorem{exmp}{Example}
\newenvironment{examp}
{\begin{exmp}}
{\gdef\proofname{Sol.}\end{exmp}}
\newenvironment{pf}[1][\proofname]
{\begin{proof}[#1]}
{\gdef\proofname{Proof}\end{proof}}
但是,当然,你并不安全,因为pf
环境是强制性的,examp
或者定理之后的下一个证明将被称为“Sol”。
我更喜欢使用
\begin{exmp}
Something
\end{exmp}
\begin{proof}[Sol.]
The solution
\end{proof}
或者定义一个sol
环境
\newenvironment{sol}
{\begin{proof}[Sol.]}
{\end{proof}}
由于这是一个不同于证明的逻辑单元,因此它值得有自己的名称。