使用颜色时子索引的位置很奇怪

使用颜色时子索引的位置很奇怪

有人能解释为什么使用颜色时子索引没有放在正确的位置吗?在此处输入图片描述

经过进一步的实验,我发现可以通过在子索引周围添加更多 {} 来解决该问题,但是为什么如果没有额外的 {} 代码就不会产生正确的输出?

\documentclass[11pt]{article}
\usepackage{xcolor}
\newcommand{\dint}{\displaystyle \int}
\begin{document}
\[
\dint_1^e \frac{\ln x}{x} dx =
\dint^{\color{red} \ln e}_{\color{red} \ln 1} u ~du       %buggy  
=\dint_{\color{cyan}{\ln 1}}^{\color{cyan}{\ln e}} u ~du  %buggy
= \dint^{\ln e}_{\ln 1} u ~du           %without using color, it works fine 
\]
\end{document}

答案1

\color它的工作原理是设置一个节点,该节点使用后端特定的代码插入颜色。然后它通过\aftergroup一个恢复颜色的节点插入。如果你有

X^{\color{red} abc} _x

那么最终结果就是

X^{\special{red} abc}\special{restore color} _x

并且下标最终以颜色还原节点为下标,而不是预期的基数。

相反,如果有额外的组

X^{{\color{red} abc}} _x

颜色还原停留在上标

    X^{{\special{red} abc}\special{restore color}} _x

因此下标作用于预期的基数。

相关内容