在 chemmacros 中对方程式的一部分进行着色

在 chemmacros 中对方程式的一部分进行着色

对于化学讲座讲义,我想强调用chemmacros颜色书写的化学方程式的特定部分;但是,我无法使用 +、- 等常见符号作为代码彩色部分的分隔符。上标字符在很大程度上取决于颜色的指定方式。以下代码突出显示了我遇到的大多数问题:

\documentclass{minimal}
\usepackage{xcolor}
\usepackage{chemmacros}
    \chemsetup{modules=all}

\begin{document}
\begin{reactions*}
    H2O &-> H+ + OH-\\
    \color{green}H2O &-> H+ + OH-\\
    H2O &-> {\color{cyan}H+ + OH-}\\
    H2O &-> \color{blue}{H+ + OH-}\\
    H2O &-> \color{red}{H^{+} + OH^{-}}\\
    H2O &-> \textcolor{magenta}{H^{+} + OH^{-}}\\
\end{reactions*}
\end{document}

这样的代码,用(pdf)LaTeX 排版时,会产生以下结果: 使用 pdfLaTeX 排版

请注意,添加fontspec包并使用 LuaLaTeX 排版会产生略有不同的结果(使用仅有的LuaLaTeX 给出了如上所示的 pdf):

使用 LuaLaTeX 排版

命令也存在同样的问题\ch

[根据@clemens 的评论进行编辑:] 逐字指定颜色给出了正确的颜色,但没有给出所需的大小和高度;使用 的chemformula选项输入@{...}给出了所需的大小和高度,但没有给出正确的颜色:

    H2O &-> {\color{purple}H+} {\color{purple} + } {\color{purple} OH-}\\
    H2O &-> {\color{violet}H+} @{format=\color{violet}} + {\color{violet} OH-}\\

带选项输入

答案1

问题实际上不在于chemmacros如何为公式的一部分着色(针对反应chemformula默认加载的包)。chemmacros

您的示例不起作用,因为它将三个不同的化合物H++OH-合并为一个H++OH-

\documentclass{article}
\usepackage{chemformula}
\begin{document}

\ch{H2O -> {H+ + OH-}}\par
\ch{H2O -> H++OH-}

\end{document}

在此处输入图片描述

解决方案在一定程度上取决于您要着色的公式的量。在每种情况下,最简单的解决方案是使用 的chemformula转义机制:

\documentclass{article}
\usepackage{xcolor}
\usepackage{chemformula}
\begin{document}

\ch{ H2O -> \textcolor{red}{H^+} + OH- } \par % one formula
\ch{ H2O -> "\color{red}" H+ + OH- } \par % the rest of the expression
\ch{ H2O -> "\begingroup\color{red}" H+ + "\endgroup" OH- }% more than one part

\end{document}

在此处输入图片描述

这在环境中的工作方式相同reaction*(但您应该记住,它的工作方式类似于表格,因为和之间的单元格&形成\\组……):

\documentclass{article}
\usepackage{xcolor}
\usepackage{chemmacros}
\chemsetup{modules=reactions}

\begin{document}

\begin{reactions*}
  H2O &-> H+ + OH- \\
  \color{green}H2O &-> H+ + OH- \\
  H2O &-> "\color{cyan}" H+ + OH- \\
  H2O &-> "\color{blue}" H+ + OH- \\
  H2O &-> \color{red}H^{+} + OH^{-} \\
  H2O &-> "\begingroup\color{magenta}" H^{+} + "\endgroup" OH^{-} 
\end{reactions*}

\end{document}

在此处输入图片描述


mhchem顺便说一句:用 代替似乎更直观chemformula

\documentclass{article}
\usepackage{xcolor}
\usepackage{chemmacros}
\chemsetup{
  formula=mhchem ,
  modules=reactions
}

\begin{document}

\begin{reactions*}
  H2O &-> H+ + OH- \\
  \color{green}H2O &-> H+ + OH- \\
  H2O &-> {\color{red}H^{+}} + OH^{-} \\
  H2O &-> \textcolor{magenta}{H^{+} +} OH^{-} 
\end{reactions*}

\end{document}

在此处输入图片描述

相关内容