当乳胶箭头添加颜色时,删除它们之间的空间

当乳胶箭头添加颜色时,删除它们之间的空间

我希望这两条线正确对齐, \textcolor arrow 会增加额外的空间

\begin{align}
    \ket{\rm P}_t =& 
    \ket{\uparrow\textcolor{red}{\uparrow}\uparrow} \\ \nonumber &
    \ket{\uparrow\uparrow\uparrow}
\end{align}

结果

答案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 年了。

答案3

一个非常简单的解决方案是将相应的黑色箭头包裹在花括号内。箭头正确对齐,但不一定是您想要的对齐方式。我删除了它,\ket因为我不知道它来自哪个包。

\documentclass{article}
\usepackage{amsmath,xcolor}
\begin{document}
\begin{align}
  a & = \uparrow\textcolor{red}{\uparrow}\uparrow \\
  b & = \uparrow{\uparrow}\uparrow
\end{align}
\end{document}

在此处输入图片描述

相关内容