上下文无关的 LaTex

上下文无关的 LaTex

显然,解析 TeX 是图灵完备的。但是,我写的不是 TeX,而是 LaTeX。在此过程中,我从 Auctex 等编辑器插件的帮助中获益匪浅。这些插件依赖于我写作的句法模型(因此,它们需要对其进行解析)。我猜想它们可能会因直接运行某些 TeX 命令而感到困惑。

因此,我想知道,如果可以创建一个上下文无关语法,

  1. 是有效的 LaTeX,并且支持(如果不是全部,至少是大部分)
  2. 保证不包含任何改变语法的命令

用该语法编写的文档被认为是“安全的”。我猜 1. 相对简单(不是吗?)。为了满足 2.,我建议按以下方式构建每个文档:

  1. (TeX 或不安全的 LaTeX)前言
  2. 一个或多个安全文档

可以使用以下方法检查文档:1. 从序言中创建自定义格式 2. 检查对语法的影响 3. 如果存在任何此类修改,则拒绝编译

这是一个合理的方法吗?

  1. 从技术上来说,它是否合理(即,给定 tex 解释器的状态作为格式文件,是否可以检测到接受的语法已更改?)
  2. LaTeX 的标准形式是否与上下文无关?
  3. 这种方法有多完整(即哪些广泛使用的功能不起作用)?

编辑:一个简单的例子是 TeX 数学分隔符。 追踪缺失的结束符比追踪一对和$困难得多。 但是,只要没有设置其他字符来代替,简单的扫描仪就可以检测到它的任何使用并报告错误。$\(\)$

相关内容