如何只改变 \underbrace 制成的花括号的颜色,但保持内容颜色保持不变?

如何只改变 \underbrace 制成的花括号的颜色,但保持内容颜色保持不变?

我必须将每个数学符号的颜色全局设置为蓝色。但是,如果我需要使用 注释表达式\underbrace,则花括号必须是黑色(例如)。

以下是我的 MWE 及其相应的输出,其中我未能完成我的目标。

在此处输入图片描述

\documentclass[preview,border=12pt]{standalone}
\usepackage{amsmath}
\usepackage{xcolor}
\everymath{\color{blue}}
\newcommand\HighlightedTerm[2]{%
        \color{black}%
        \underbrace{#1}_{\color{red}\text{#2 term}}%
}
\begin{document}
Consider an expression $2a^3b^2cd^7e-ab^2cde^3$. It has 2 terms as shown in the following,
\[
\HighlightedTerm{2a^3b^2cd^7e}{1st}\HighlightedTerm{-ab^2cde^3}{2nd}
\]
Do you understand?
\end{document}

您能帮助我实现我的目标吗?请不要建议我使用 TikZ 或 PSTricks。:-)

答案1

的定义\underbrace使用 的定义\upbracefill。这两个命令均在文件中定义fontmath.ltx

该命令\upbracefill定义如下,您可以看到它打开了一个新的数学环境。

\def\upbracefill{$\m@th \setbox\z@\hbox{$\braceld$}%
  \bracelu\leaders\vrule \@height\ht\z@ \@depth\z@\hfill\bracerd
  \braceld\leaders\vrule \@height\ht\z@ \@depth\z@\hfill\braceru$}

\color{black}因此,最简单的方法就是在默认定义中添加一个简单的方法:

\def\upbracefill{$\color{black}\m@th \setbox\z@\hbox{$\braceld$}%
  \bracelu\leaders\vrule \@height\ht\z@ \@depth\z@\hfill\bracerd
  \braceld\leaders\vrule \@height\ht\z@ \@depth\z@\hfill\braceru$}

这里您的 MWE 使用\makeatletter\makeatother

\documentclass[preview,border=12pt]{standalone}
\usepackage{amsmath}
\usepackage{xcolor}
\everymath{\color{blue}}
\newcommand\HighlightedTerm[2]{%
        \color{black}%
        \underbrace{#1}_{\color{red}\text{#2 term}}%
}

\makeatletter
\def\upbracefill{$\color{black}\m@th \setbox\z@\hbox{$\braceld$}%
  \bracelu\leaders\vrule \@height\ht\z@ \@depth\z@\hfill\bracerd
  \braceld\leaders\vrule \@height\ht\z@ \@depth\z@\hfill\braceru$}
\makeatother
\begin{document}   
Consider an expression $2a^3b^2cd^7e-ab^2cde^3$. It has 2 terms as shown in the following,
\[
\HighlightedTerm{2a^3b^2cd^7e}{1st}\HighlightedTerm{-ab^2cde^3}{2nd}
\]
Do you understand?
\end{document}

在此处输入图片描述

相关内容