我为家庭作业创建了一个自定义课程,并定义了如下解决方案环境:
\def\qed{\ensuremath{\square}} % <-QED Symbol
\newenvironment{solution}{% <-Solution
\par\addvspace{1em}
\itshape{Solution:}}
{\par\normalfont\hfill\qed\par\addvspace{\medskipamount}}%
这旨在成为一个通用环境,但我正在制作一个专门用于数学排版的包,当我在该类中加载该包时,我想稍微修改我的解决方案环境......但我尝试了以下操作并收到错误:
\let\solution\relax
\newenvironment{solution}{% <-Solution
\par\addvspace{1em}
\itshape{Solution:}\par\addvspace{\medskipamount}}
{\par\normalfont\hfill\qed\par\addvspace{\medskipamount}}%
我在尝试编译文档时遇到的错误是
命令 \solution 已定义。
答案1
该宏\renewenvironment
用于覆盖先前定义的环境(类似于\renewcommand
和\newcommand
)。
否则您还需要\let\endsolution\relax
。
代码
\documentclass{article}
% \newenvironment{<name>} defines \<name> and \end<name>
% and it checks if both are undefined (= \relax)
\newenvironment{solution}{stuff}{end stuff}
% Solution 1
% \renewenvironment{<name>} checks if both are defined (!= \relax)
\renewenvironment{solution}{other stuff}{end other stuff}
% Solution 2 (just for completeness)
%\let\solution\relax
%\let\endsolution\relax
%\newenvironment{solution}{other stuff}{end other stuff}
\begin{document}
\begin{solution}
content
\end{solution}
\end{document}