使用 \tcbhighmath 设置自定义方程环境时出错

使用 \tcbhighmath 设置自定义方程环境时出错

目前,我正在编写一个宏包来存储我的自定义环境和家庭作业表的宏。我正在尝试创建一个可以在包(.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}

上述代码在上下文中产生以下内容, x^2 + y^2 = z^2

然而,当我添加我的偏好设置后尝试使用 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}

相关内容