答案1
三个 Rel 原子的行为类似于三个 Ord 原子:它们之间没有空格。这是第二行的情况。但是构造 \textcolor{red}{\uparrow}
创建了 Ord 原子,因此您有一个三重 Rel Ord Rel,并且 TeX 在它们之间插入空格。但是您可以通过将它们封装为 来将 Rel 原子重新输入为 Ord {...}
,因此您可以通过以下方式实现所需的行为:
\ket{{\uparrow}\textcolor{red}{\uparrow}{\uparrow}} \\ \nonumber &
答案2
在“全黑”的情况下你很幸运,因为\uparrow
被定义为关系符号,并且 TeX 添加了
- 起始分隔符和关系符号之间没有空格;
- 关系符号之间没有空格;
- 关系符号和结束分隔符之间没有空格。
在彩色的情况下,中间的箭头被视为普通符号,并且 TeX 在关系符号和普通符号之间添加一个粗空格,无论顺序如何。
解决方案。定义一个命令,使向上箭头被视为普通符号:只需用括号括起来即可\uparrow
。您还可以为颜色添加可选参数。
这需要最新的 TeX 发行版:
\documentclass{article}
\usepackage{amsmath}
\usepackage{braket}
\usepackage{xcolor}
\NewDocumentCommand{\xuparrow}{o}{{%
\IfNoValueTF{#1}{\uparrow}{\mathcolor{#1}{\uparrow}}%
}}
\begin{document}
\[
\ket{\mathrm{P}_t} =
\ket{\xuparrow\xuparrow[red]\xuparrow}
\]
\end{document}
对于较旧的 LaTeX 版本,你可以采用
\documentclass{article}
\usepackage{amsmath}
\usepackage{braket}
\usepackage{xcolor}
\newcommand{\xuparrow}[1][]{{%
\if\relax\detokenize{#1}\relax
\uparrow
\else
\textcolor{#1}{\uparrow}%
\fi
}
\begin{document}
\[
\ket{\mathrm{P}_t} =
\ket{\xuparrow\xuparrow[red]\xuparrow}
\]
\end{document}
根据命令的含义,为其选择一个更具描述性的名称。
还请注意,它\rm
已被弃用近 30 年了。