我正在写一本关于结构化写作的书,我正在努力通过强调用于进行各种结构化写作的许多其他标记语言来打破人们在结构化写作和 XML 之间的关联。
我试图从支持某些结构化写作辅助工具(如可扩展性和约束)的能力来描述这些语言。可扩展性是指向语言添加新结构的能力。约束是指限制什么可以放在哪里以及指定受限制的层次结构的能力。在 XML 中,这些操作都是由模式语言以声明方式执行的。
很明显,Tex 和 LaTeX 可以通过宏以编程方式进行扩展。我找不到任何关于声明式方法的提及。
我一直无法弄清楚的是宏是否提供了任何类型的约束机制。所以我的问题是,TeX 或 LaTeX 中是否存在约束机制,可以提供类似于在 XML 架构中施加的约束的功能?
答案1
这取决于你如何看待它,\alpha
有一个约束,它必须在数学模式下使用,如果不是,则会产生错误。\\
必须在中线使用,如果在开始时使用,则会产生错误。图形不能嵌套在其他框中使用,如果它们是,则会产生错误.....
但这些都是运行时错误,没有语法验证阶段或声明性语法,就像您在 xml 中发现的那样。
寻求更具声明性的语法约束的人们通常最终使用 XML 管道进行创作和验证,并仅转换为 tex 进行打印生成。