ConTeXt:枚举、注释导致未定义的控制序列startformula错误

ConTeXt:枚举、注释导致未定义的控制序列startformula错误

我是一名 LaTeX 用户,正在学习一些 ConTeXt 教程,但很早就遇到了瓶颈。这让我怀疑我的设置是否出了问题,或者我没有理解一些非常基本的东西,或者 ConTeXt 是否比我想象的要脆弱一些。我使用的是 MacTeX-2012。

使用带有选项的公式和枚举时出现错误letter。省略选项letter,效果很好:

\defineenumeration[guess][location=left]
\starttext
  \startformula
    x = no error
  \stopformula
  \guess This is just a guess.

\stoptext

但是,以下操作会导致和texexec失败:Undefined control sequence\startformula\stopformula

\defineenumeration[guess][location=left, letter=it]
\starttext
  \startformula
    x = error
  \stopformula
  \guess This is just a guess.

\stoptext

取出formula会消除错误,因此带有选项的枚举letter=it本身就可以正常工作。

在测试这个时,我发现(令我惊讶的是)注释掉该letter选项会出现同样的错误:

\defineenumeration[guess][location=left] %, letter=it]
\starttext
  \startformula
    x = error
  \stopformula
  \guess This is just a guess.

\stoptext

但去掉=标志就可以解决这个问题。运行时没有错误:

\defineenumeration[guess][location=left] %, letter it]
\starttext
  \startformula
    x = no error
  \stopformula
  \guess This is just a guess.

\stoptext

但是,这不仅仅是等号,因为它可以毫无错误地运行:

\defineenumeration[guess][location=left] %, bar=baz]
\starttext
  \startformula
    x = no error
  \stopformula
  \guess This is just a guess.

\stoptext

我很困惑。我做错了什么吗?

答案1

由于某种原因,您提供的代码使 ConTeXt 切换到荷兰语界面(我不知道为什么)。在荷兰语界面中,命令\startformula未定义,因此您会收到错误。您可以使用

texexec --interface=en file.tex

这会强制 ConTeXt 使用具有英语界面的 MkII 并处理文件。

但是,正如评论中指出的那样,您最好使用 ConTeXt MkIV,它使用命令context而不是texexec。您将获得完整的 Unicode 支持和更轻松的字体处理。

顺便说一句:我不知道该letter=it选项应该做什么。你在哪里找到它的文档?

相关内容