目前,我正在编写一个宏包来存储我的自定义环境和家庭作业表的宏。我正在尝试创建一个可以在包(.sty 文件)中定义的自定义环境,它基本上会执行以下操作,
\begin{equation*}
\tcbhighmath{x^2 + y^2 = z^2} % For the sake of example
\end{equation*}
根据我在完整文档中设置的偏好,
\documentclass{article}
\usepackage{Macros} % My macros file.
\usepackage[skins, theorems]{tcolorbox}
\tcbset{highlight math style={enhanced,
colframe=white, colback=blue!10!white, arc=0pt, boxrule=1pt}}
\begin{document}
\begin{equation*}
\tcbhighmath{x^2 + y^2 = z^2}
\end{equation*}
\end{document}
然而,当我添加我的偏好设置后尝试使用 environ 包来定义我的环境时\tcbset
,遇到了许多错误。
我在 .sty 文件中使用的代码如下,
\RequirePackage{environ}
\RequirePackage[skins, theorems, most]{tcolorbox}
\tcbset{highlight math style={enhanced,
colframe=white, colback=blue!10!white, arc=0pt, boxrule=1pt}
}
\NewEnviron{boxed}{
\begin{equation*}
\tcbhighmath{\BODY}
\end{equation*}
}
如果您能告诉我我的错误是什么,我将不胜感激,并且可能找到一种方法,让我仍然可以在自定义包中为这个环境实现代码(为了将来家庭作业的自主性)。
答案1
您不能使用它boxed
作为环境的名称,因为它已经被使用,并且您得到
! LaTeX Error: Command \boxed already defined.
Or name \end... illegal, see p.192 of the manual.
使用不同的名称并且不要使用environ
,请参阅下面的代码。
\documentclass{article}
\usepackage{amsmath}
\usepackage[skins, theorems]{tcolorbox}
\tcbset{
highlight math style={
enhanced,
colframe=white,
colback=blue!10!white,
arc=0pt,
boxrule=1pt
},
}
\NewDocumentEnvironment{boxedeq}{b}{%
\begin{equation*}\tcbhighmath{#1}\end{equation*}%
}{\ignorespacesafterend}
\begin{document}
\begin{boxedeq}
x^2 + y^2 = z^2
\end{boxedeq}
\end{document}