\ch{CaO$_{(s)} + H2O$_{(l)}->Ca$^{2+}_{(aq)} + 2 OH$^-_{(aq)}} 有什么问题

\ch{CaO$_{(s)} + H2O$_{(l)}->Ca$^{2+}_{(aq)} + 2 OH$^-_{(aq)}} 有什么问题

为了提供完整的问题,我有以下代码:

\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{chemmacros}
\begin{document}
    \ch{CaO$_{(s)} + H2O$_{(l)}->Ca$^{2+}_{(aq)} + 2 OH$^-_{(aq)}}
\end{document}

编译时会产生很多错误消息(但它仍然可以通过编译)我该如何解决这个问题?

答案1

您误解了 的用途$。在 TeX 中,$表示“在数学模式和文本模式之间切换”。因此,对于您的原始表达式,您有 文本CaO、数学表达式_{(s)} + H2O、文本表达式_{(l)}->Ca、数学^{2+}_{(aq)} + 2 OH和文本^-_{(aq)}。(您可以分辨出来,因为数学字符是斜体的。)这一切都令人困惑,因为^_通常在文本模式下是不允许的(这会导致错误并迫使您进入数学模式),但chemmacros会改变这一点。

因为我们使用chemmacros,所以我们可以在 其中使用^和 而不必担心,并且一切都正常运行(但我们需要 在 周围留出空格)。_\ch$->

chemmacros已经了解了阶段,并希望帮助我们(参见“模块phases文档)我们可以简单地

\documentclass{article}
\usepackage{chemmacros}
\chemsetup[phases]{pos=sub}
\begin{document}
    \ch{CaO\sld{} + H2O\lqd{} -> Ca^{2+}\aq{} + 2 OH^-\aq{}}
\end{document}

输出

答案2

我想你想要

\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{chemmacros}
\begin{document}

\ch{CaO_{(s)} + H2O_{(l)} -> Ca^{2+}_{(aq)} + 2 OH^-_{(aq)}}

\end{document}

在此处输入图片描述

相关内容