数学符号中的颜色无法与 overrightarrow 命令配合使用

数学符号中的颜色无法与 overrightarrow 命令配合使用

我正在使用此代码来改变所有数学字符的颜色,有时我想改变几个字符的颜色,我注意到有些数学字符不会像“ \overrightarrow”那样改变颜色。

\documentclass{article}

\usepackage{xcolor}
\usepackage{amsmath}

\definecolor{navy}{rgb}{0.0,0.0,0.5}
% Auto-color inline math material:
\everymath=\expandafter{\the\everymath\color{navy}} 
% Auto-color display math material:
\usepackage{etoolbox} %
\apptocmd{\[}{\color{navy}}{}{}
\AtBeginEnvironment{equation}{\color{navy}}
\AtBeginEnvironment{equation*}{\color{navy}}


\begin{document}
    
    
    
    $ \color{red} C^2 $
    
    
    
    ${ \color{orange} \overrightarrow{AB} A \quad \vec{B}} = \textcolor{blue}{B} \mathbin{\textcolor{red}{-}\overrightarrow{AB}} \textcolor{green}{C} \overrightarrow{AB} \vec{a}$
    
    
    ${ \color{red} {AB}} $
    
    
\end{document}

为什么除了使用 overrightarrow 之外,我可以改回所有字符的颜色?

色彩数学

答案1

许多数学结构在水平模式中使用数学模式,因此您希望它\color{navy}不应用于嵌套数学。

并非万无一失(例如,请注意脚注):

\documentclass{article}

\usepackage{xcolor}
\usepackage{amsmath}

\definecolor{navy}{rgb}{0.0,0.0,0.5}
% Auto-color inline math material:
\newif\ifinmath
\everymath=\expandafter{\the\everymath\ifinmath\else\color{navy}\inmathtrue\fi}
% Auto-color display math material:
\usepackage{etoolbox} %
\apptocmd{\[}{\color{navy}}{}{}
\AtBeginEnvironment{equation}{\color{navy}}
\AtBeginEnvironment{equation*}{\color{navy}}


\begin{document}

$ \color{red} C^2 $

${\color{orange} \overrightarrow{AB} A \quad \vec{B}} =
\mathcolor{blue}{B} \mathcolor{red}{-}\overrightarrow{AB} 
\mathcolor{green}{C} \overrightarrow{AB} \vec{a}$

$\mathcolor{red}{AB}$

\end{document}

使用\mathcolor而不是\textcolor(需要相当新的 LaTeX)。

在此处输入图片描述

条件\ifinmath最初为假,但是,在启动数学模式时,\everymath将其设置为真;然而嵌套启动数学模式不会设置颜色。

相关内容