使用 创建 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)=)
}
然而,当我尝试用简单的调用等效着色时{\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)=)
}
它对中间的“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 会自动删除一对括号。