數學模式著色

數學模式著色

我想在數學模式下為一些符號著色,但不為它們的下標著色。然而,當我這樣做時,下標被破壞並從文本中轉義。

我準備了一個最小的例子來示範我的問題:

\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}

在此輸入影像描述

相關內容