在 mhchem 的 \ce{} 命令中使用西里尔字母的问题

在 mhchem 的 \ce{} 命令中使用西里尔字母的问题

在命令中输入西里尔字母\ce{}会导致错误:

包 mhchem 错误:断言失败:意外的输入字符。

通过在命令中输入西里尔文可以解决此错误\text{}。但是,如果我写

$$
\ce{A + B -> Продукты}
$$

在化学 StackExchange 论坛中,这给出了我想要的结果(没有产生错误):

在此处输入图片描述

所以,我的问题是,为什么它在 MathJax 中可以工作,而在我的桌面或 overleaf 上却不行? 有没有什么方法可以更改 mhchem 的配置或做其他事情让它在桌面上运行?

如果需要的话,这里是完整的代码。

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T2A]{fontenc}

\usepackage[version=4]{mhchem}

\author{Azamat}
\date{January, 2023}
\title{Cyrillic letters do not work in \texttt{mhchem}}

\begin{document}

\maketitle

\begin{equation*}
    \ce{A + B -> Products}
\end{equation*}

\begin{equation*}
    \ce{A + B -> Продукты}
\end{equation*}

\end{document}

期望的输出是:

在此处输入图片描述

答案1

MathJax 不是 LaTeX。

mhchem软件包仅“知道”它期望在化学公式中找到的一些字符。即使使用 XeLaTeX 或 LuaLaTeX(以及支持西里尔文的合适字体),代码也会中断

! Package mhchem Error: Assertion failed: Unexpected input character. In case
(mhchem)                you think this is a bug, please contact the package
(mhchem)                author.

使用\text(在 MathJax 中也应该有效)。

另一方面,chemformulaXeLaTeX 或 LuaLaTeX 支持内部的西里尔文\ch(但babel定义\ch为双曲余弦)。

\documentclass{article}
%\usepackage[utf8]{inputenc}
\usepackage[T2A]{fontenc}
\usepackage[ukrainian]{babel}

\usepackage{chemformula}

\NewCommandCopy{\CH}{\ch}
\let\ch\relax

\author{Azamat}
\date{January, 2023}
\title{Cyrillic letters do not work in \texttt{mhchem}}

\begin{document}

\maketitle

\CH{A + B -> Products}

\CH{A + B -> Продукты}

\end{document}

在此处输入图片描述

相关内容