模仿未定义控制序列上的 mathjax 行为

模仿未定义控制序列上的 mathjax 行为

我最近发布了一些内容math.stackexchange.com,并对自动渲染器对未定义序列的行为感到惊讶。它不会立即停止编译,而是在渲染的文本中以红色显示序列的名称,然后继续处理文档的其余部分。

毋庸置疑,这样的功能对于 *TeX 的某些用法非常有用。一个简单的例子就是实时翻译讲座笔记,其中可能出现很多拼写错误,但人们更喜欢成功编译但渲染效果很差的文档,而不是完美但编译了一半的文档。

选项--nonstopmode已经pdflatex提供了某种这样的行为,但随之而来的是相反的问题:文档编译得太好了,找到错误的唯一方法是仔细校对文档,或者搜索日志文件。

因此问题是:有没有办法让 latex 用简单的警告替换“未定义的控制序列”错误,在这种情况下,用红色逐字打印错误宏的名称(带有其参数,无论是否扩展)(例如)?

或者它是否太深埋在*TeX 或 mathjax 的核心功能中,需要构建一个全新的引擎?

例子

答案1

基本上,最后一个问题的答案是“是”(除非 luatex 提供了一个钩子来捕获该原始错误消息)。为了捕获此消息,您必须在 TeX 中重新实现 TeX 的宏扩展语言,但这实际上并不可行,

相关内容