是否可以\cee
在包中定义一个简单的宏替换{mhchem}
(因为包会导致错误)?谢谢。
答案1
您可以使用该选项[version=1]
加载软件包的早期版本。这样可以修复错误,并且您无需定义命令。
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[version=1]{mhchem}
\begin{document}
\cee{CO2 + C -> 2 CO}
\end{document}
另一种方法是使用\ce
以下命令version 4
:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[version=4]{mhchem}
\begin{document}
\ce{CO2 + C -> 2 CO}
\end{document}
使用版本 1 的输出图片:
如果你真的想要定义自己的宏:
这是它在包中的遗留选项中的定义方式mhchem
:
\DeclareRobustCommand\cee[1]{\mhchem@cee{#1}}
我猜\mhchem@cee{#1}
是这么定义的:
\ExplSyntaxOn
\cs_new_protected:Npn \mhchem@cee #1 % \__mhchem_cee:n
\ExplSyntaxOff
使用该expl3
包。
然后,\cs_new_protected:Npn
定义为
\ExplSyntaxOn
\cs_new_protected:Npn \__mhchem_regex_peek_compile:Nn #1#2
{
\regex_const:Nn #1 { \A the\ (character|letter)\ (#2) \Z }
}
\cs_new_protected:Npn \__mhchem_regex_peek:NTF #1#2#3
{
\peek_catcode:NTF ##
{#3}
{
\regex_match:NoTF
#1
{ \token_to_meaning:N \l_peek_token } {#2} {#3}
}
}
\ExplSyntaxOff
然后你需要找出这些的定义等等。
我从包中包含了很多内容mhchem
,但仍然无法重现该命令。如果你真的想这样做,你可以看看包装文档在 ctan,特别是.sty 文件。