盒式方程的新环境

盒式方程的新环境

我想定义新的环境来以某种方式突出显示某些方程式。例如,我希望突出显示的方程式以红色文本显示或在其周围带有方框。我可以使用红色文本版本,但带方框的版本会给出两个相关错误:

缺少}插入。\begin{boxedeq*}

额外的 },或者忘记了 $。\end{boxedeq*}

由于新环境的前后部分存在不匹配的括号,因此我的理解是我需要使用\bgroupand\egroup代替{and}。这适用于红色文本的情况,但错误表明它不适用于方框情况(}在前部分插入“缺失”并}在后部分发现“额外”)。

以下是 MWE:

\documentclass{article}

\usepackage{amsmath}
\usepackage{graphicx}
\usepackage{color}

% equation/equation* environments highlighted in red
\newenvironment{higheq}{\textcolor{red}\bgroup\begin{equation}}{\end{equation}\egroup}
\newenvironment{higheq*}{\textcolor{red}\bgroup\begin{equation*}}{\end{equation*}\egroup}

% equation/equation* environments highlighted with box
\newenvironment{boxedeq}{\begin{equation}\boxed\bgroup}{\egroup\end{equation}}
\newenvironment{boxedeq*}{\begin{equation*}\boxed\bgroup}{\egroup\end{equation*}}

\begin{document}
\begin{higheq}
\sin^2(x) + \cos^2(x) = 1
\end{higheq}

\begin{equation}
\boxed{\sin^2(x) + \cos^2(x) = 1}
\end{equation}

\begin{boxedeq*}
\sin^2(x) + \cos^2(x) = 1
\end{boxedeq*}

\end{document}

输出如下: 在此处输入图片描述

我该如何避免这个错误?

答案1

如果你对更精美的盒子感兴趣,tcolorbox可以使用,并且它与 很好地交互empheq。下面是一个展示一些可能性的小例子:

\documentclass[dvipsnames]{article}
\usepackage{empheq}
\usepackage[many]{tcolorbox}

\tcbset{
  highlight math style={
    enhanced,
    colframe=NavyBlue!70!black,
    colback=NavyBlue!10,
    boxrule=1pt,
  }
}

\newenvironment{boxedeq}
  {\empheq[box=\tcbhighmath]{equation}}
  {\endempheq}
\newenvironment{boxedeq*}
  {\empheq[box=\tcbhighmath]{equation*}}
  {\endempheq}

\begin{document}

\begin{boxedeq}
\sin^2(x) + \cos^2(x) = 1
\end{boxedeq}

\begin{boxedeq*}
\sin^2(x) + \cos^2(x) = 1
\end{boxedeq*}

\tcbset{
  highlight math style={
    enhanced,
    colframe=Maroon,
    colback=Peach!10,
    arc=4pt,
    boxrule=1pt,
  drop fuzzy shadow
  }
}

\begin{boxedeq}
\sin^2(x) + \cos^2(x) = 1
\end{boxedeq}

\begin{boxedeq*}
\sin^2(x) + \cos^2(x) = 1
\end{boxedeq*}

\tcbset{
  highlight math style={
    enhanced,
    colframe=black,
    colback=white,
    arc=0pt,
    boxrule=1pt,
  }
}

\begin{boxedeq}
\sin^2(x) + \cos^2(x) = 1
\end{boxedeq}

\begin{boxedeq*}
\sin^2(x) + \cos^2(x) = 1
\end{boxedeq*}

\end{document}

在此处输入图片描述

答案2

\boxed\bgroup<tokens>\egroup和 不一样\boxed{<tokens>}。您不能使用\bgroup它来替代参数分隔符。

您可以使用这个empheq包来满足您的需求。

\documentclass{article}
\usepackage{empheq}

\newenvironment{boxedeq}
  {\empheq[box=\fbox]{equation}}
  {\endempheq}
\newenvironment{boxedeq*}
  {\empheq[box=\fbox]{equation*}}
  {\endempheq}

\begin{document}

\begin{boxedeq}
\sin^2(x) + \cos^2(x) = 1
\end{boxedeq}

\begin{boxedeq*}
\sin^2(x) + \cos^2(x) = 1
\end{boxedeq*}

\end{document}

在此处输入图片描述

相关内容