在 chemfig 中,使用 \color 分组无效,与 \textcolor 不同

在 chemfig 中,使用 \color 分组无效,与 \textcolor 不同

使用 创建 5-咖啡酰奎尼酸的图形时,遇到了一些与文档相矛盾的奇怪行为chemfig。手册中指出

原子显示在 tikz 节点中,其行为类似于 TeX 的框,就好像这些原子被放在一个组中一样。因此,颜色变化仍然局限于原子。

举了一个例子,说明为什么书写O\color{red}H不起作用,为什么O{\color{red}H}应该用书写代替。有一句话说,

使用 \textcolor 可以获得相同的效果。

以下代码产生所需的输出(Win7 TeXLive 2013 带有 chemfig 1.0g,修订版 32270):

\chemfig{
    [:30]HO-*6(-=-(-=[::-60]-[::60](=[2]O)-[:-30]{\color{red}O}>
    *6(--(([6]<OH)-(-[:30]OH)=[6]
    \textcolor{red}{O}
    )--(<:OH)-(<HO)-)
    )=-(-HO)=)
    }

5-咖啡酰奎尼酸

然而,当我尝试用简单的调用等效着色时{\color{red}O},发生了一些奇怪的事情(第 4 行):

\chemfig{
    [:30]HO-*6(-=-(-=[::-60]-[::60](=[2]O)-[:-30]{\color{red}O}>
    *6(--(([6]<OH)-(-[:30]OH)=[6]
    {\color{red}O}
    )--(<:OH)-(<HO)-)
    )=-(-HO)=)
    }

5-咖啡酰奎尼酸错位O

它对中间的“O”起作用了,但对最后一个“O”却不起作用!为什么假定等效函数会像猿猴一样运行?

答案1

它与两组花括号(将颜色改为蓝色)一起使用:

\documentclass{article}
\usepackage{color}
\usepackage{chemfig}
\begin{document}
\chemfig{
    [:30]HO-*6(-=-(-=[::-60]-[::60](=[2]O)-[:-30]{\color{red}O}>
    *6(--(([6]<OH)-(-[:30]OH)=[6]
    {{\color{blue}O}}
    )--(<:OH)-(<HO)-)
    )=-(-HO)=)
    }
\end{document}

结果

当原子被读为参数时,可能会删除第一组花括号。然后 TeX 会自动删除一对括号。

相关内容