我需要在对齐环境内的等式中突出显示“-”号及其旁边的项。
原则上,我需要这样的东西:
但减号的突出显示方式与“b”项相同。
问题是,当我尝试在变色命令中包含减号时,间距就被搞乱了:
使用IEEEtrantools
LaTeX 的 plainalign
也无济于事。有人知道有什么干净的解决方案吗?
这是MWE:
\documentclass{article}
\usepackage{amsmath}
\usepackage{xcolor}
\usepackage[retainorgcmds]{IEEEtrantools}
\definecolor{ocre}{RGB}{243,102,25}
\begin{document}
Test:
\begin{align*}
a-b&=a-b\\
a+b&=a+b
\end{align*}
Test with color 1:
\begin{align*}
a{\color{ocre}-b}&=a-b\\
a+b&=a+b
\end{align*}
Test with color 2:
\begin{align*}
a-{\color{ocre}b}&=a-b\\
a+b&=a+b
\end{align*}
Test with IEEE:
\begin{IEEEeqnarray*}{rCl}
a{\color{ocre}-b}&=&a-b\\
a+b&=&a+b
\end{IEEEeqnarray*}
\end{document}
答案1
当-b
放在括号内时,减号会被解释为一元减号而不是二元减号,因为其左侧没有任何内容(tex 可以检测到)。为了解决这个问题,只需在其左侧插入一个空组即可{}
:
\documentclass{article}
\usepackage{amsmath}
\usepackage{xcolor}
\usepackage[retainorgcmds]{IEEEtrantools}
\definecolor{ocre}{RGB}{243,102,25}
\begin{document}
Test:
\begin{align*}
a-b&=a-b\\
a+b&=a+b
\end{align*}
Test with color 1:
\begin{align*}
a{\color{ocre}{}-b}&=a-b\\
a+b&=a+b
\end{align*}
Test with IEEE:
\begin{IEEEeqnarray*}{rCl}
a{\color{ocre}{}-b}&=&a-b\\
a+b&=&a+b
\end{IEEEeqnarray*}
\end{document}
编辑:另一个更简单的解决方法是简单地调整组的范围:
{a\color{ocre}-b}&=&a-b
这适用于这种情况,其中彩色部分在单元格末尾(在 之前&
)结束。 如果随后出现非彩色材料,则需要考虑到这一点。 感谢@Manuel 在他的回答评论中提出的建议。
答案2
对于这种事情,你需要\begingroup .. \endgroup
。如果你使用{..}
LaTeX 将其视为\mathord{..}
。所以这应该可以
\begingroup\color{ocre}-b\endgroup
也许您更喜欢宏;但我不知道这是否有什么大的缺点。
\newcommand\mathcolor[2]{\begingroup\color{#1}#2\endgroup}
..
a \mathcolor{ocre}{- b}