对于化学讲座讲义,我想强调用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 排版时,会产生以下结果:
请注意,添加fontspec
包并使用 LuaLaTeX 排版会产生略有不同的结果(使用仅有的LuaLaTeX 给出了如上所示的 pdf):
命令也存在同样的问题\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}