Ich möchte im Mathematikmodus einige der Symbole einfärben, aber nicht deren Indizes. Wenn ich dies jedoch mache, werden die Indizes unterbrochen und verschwinden aus dem Text.
Ich habe ein Minimalbeispiel vorbereitet, um mein Problem zu demonstrieren:
\documentclass{article}
\usepackage{xcolor}
\begin{document}
$T_i$
${\color{red}T}_i$
$\textcolor[rgb]{1,0,0}{T}_{i}$
\end{document}
Das Ergebnis ist:
Beachten Sie, dass T und i getrennt sind, wenn T eingefärbt wird. Gibt es eine Möglichkeit, richtig einzufärben, ohne zusätzlichen Platz im Index hinzuzufügen?
Antwort1
Antwort2
Sie können sich die aktuelle Farbe merken und xparse
zum Erfassen der möglichen Tief- und Hochstellungen verwenden, die in der aktuellen Farbe gesetzt sind.
\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}