我必须将每个数学符号的颜色全局设置为蓝色。但是,如果我需要使用 注释表达式\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}