在 ConTeXt 中使用 chemfig 时出现“未定义的控制序列”错误

在 ConTeXt 中使用 chemfig 时出现“未定义的控制序列”错误

chemfig我在 ConTeXt 中使用时遇到一个错误:

\usemodule[chemfig]

\starttext

\chemfig{A-B}

\stoptext

没有pdf输出,但是有错误信息:

%%%%

tex error       > tex error on line 4 in file d:/context/chem/li02.tex: ! Undefined control sequence

<argument> \CF@end@tikzpicture 

\CF@exp@macroarg ...expandafter #1\expandafter {#2
                                                  }
\CF@exp@second ...F@exp@macroarg \CF@swap@arg {#2}
                                                  {#1}
<to be read again> 
{
l.4     \chemfig{
               A-B}

1     \usemodule[chemfig]
2     
3     \starttext
4 >>      \chemfig{A-B}
5     \stoptext


? 

%%%%

chemfig这样的代码在 LaTeX 中可以运行。有人知道为什么吗?

答案1

当我查看 LaTeX 实现时,chemfig.sty我发现(省略了一些不相关的内容)

\input chemfig.tex
\def\printatom#1{\ensuremath{\mathrm{#1}}}% \printatom pour LaTeX.
\def\CF@begin@tikzpicture{\begin{tikzpicture}}%
\def\CF@end@tikzpicture{\end{tikzpicture}}%

但是 ConTeXt 模块缺少所有这些定义。因此您必须自己模仿它们。这应该在 chemfig 包本身中修复。如果我有时间,我会在问题追踪器

\usemodule[chemfig]

\def\printatom#1{\mathematics{\mathrm#1}}
\setvalue{CF@begin@tikzpicture}{\tikzpicture}
\setvalue{CF@end@tikzpicture}{\endtikzpicture}

\starttext

\chemfig{A-B}

\stoptext

相关内容