数学模式着色

数学模式着色

我想在数学模式下为某些符号着色,但不为其下标着色。但是,当我这样做时,下标被破坏并从文本中消失。

我准备了一个最小的例子来说明我的问题:

\documentclass{article}
\usepackage{xcolor}
\begin{document}

$T_i$

${\color{red}T}_i$

$\textcolor[rgb]{1,0,0}{T}_{i}$

\end{document}

结果是:

图像

注意,着色 T 时,T 和 i 是分开的。有没有办法在不在下标上添加额外空格的情况下正确着色?

答案1

不要在下标之前立即更改颜色或关闭组,而是在输入下标后更改颜色。

\documentclass{article}
\usepackage{xcolor}
\begin{document}
$T_i$

${\color{red}T_{\color{black}i}}$
\end{document}

在此处输入图片描述

答案2

您可以记住当前颜色并用于xparse抓取以当前颜色排版的可能的下标和上标。

\documentclass{article}
\usepackage{xcolor}
\usepackage{xparse}

\NewDocumentCommand{\colornucleus}{omme{_^}}{%
  \begingroup\colorlet{currcolor}{.}%
  \IfValueTF{#1}
   {\textcolor[#1]{#2}}
   {\textcolor{#2}}
    {%
     #3% the nucleus
     \IfValueT{#4}{_{\textcolor{currcolor}{#4}}}% subscript
     \IfValueT{#5}{^{\textcolor{currcolor}{#5}}}% superscript
    }%
  \endgroup
}
\begin{document}

$T_i$ $T^j$ $T_i^j$

$\colornucleus{red}{T}_i$
$\colornucleus{red}{T}^j$
$\colornucleus{red}{T}_i^j$

$\colornucleus[rgb]{1,0,0}{T}_{i}$
$\colornucleus[rgb]{0,1,0}{T}^j$
$\colornucleus[rgb]{0,0,1}{T}_{i}^j$

\textcolor{blue!30!red}{Text $\colornucleus{black}{T}_i$ text}

\end{document}

在此处输入图片描述

相关内容