有没有针对 LaTeX 的 WEB/NOWEB 实现?

有没有针对 LaTeX 的 WEB/NOWEB 实现?

WEB系统很棒,但有时有点麻烦,设计非常死板。是否有用于 WEB 样式文档的 LaTeX 文档类?

我想使用 Pascal 和 C 以外的其他语言进行编程——甚至可能泛化为“纯”算法。

答案1

一个没有答案的老问题;也许你已经解决了这个问题。但由于它还没有结束,我想分享我的想法。

问题不太清楚。正如评论 (1) 中所述,答案可能着眼于输出,即,您希望在编织过程的结果中使用 LaTeX 代码而不是 TeX 代码,或者您希望 (2) 在 WEB 中编写 LaTeX 代码而不是 Pascal 代码,或者,正如您提到的 Lyx,您希望 (3) 您的 WEB 编码状态,即编织的输出,显示为 DVI 或 PDF 输出。(我假设您不想谈论 Lyx noweb 类。)

(1)可以用 noweb 实现;(2)可以用 noweb 或 spider 完成;(3)很困难,因为 weave 不仅有一个输入文件,而是有两个输入文件,并且不需要开放端;但你可以做到。

关于 (1):正如评论中提到的,noweb 有不同的后端,您可以制作一个来输出 LaTeX 而不是 TeX。但根据您对评论的回答,这似乎不是您的问题。此外,这没有意义,因为没有人会查看 weave 的输出。

关于 (2):WEB 是 TeX/Pascal 的组合,而 CWEB 是 TeX/C 的组合。语言很重要,因为相应的编织过程必须格式代码。对于文学编程的倡导者来说,这是一个重要的观点;请参阅 文章Bart Childs 的。但另一方面,这种方法导致了许多不同的系统来支持不同编程语言的文学编程范式。请参阅 CACM 文章关于文学编程。

因此,如果您想将 LaTeX 用作编程语言,则首先必须定义 LaTeX 的格式。TeX 代码通常以打字机字体输出,无需特殊标记。这对于 noweb 来说是理想的,但不符合上述 Childs 文章中对有用工具的标准。(这 文章展示如何处理 plain.tex。

您可以使用 noweb 作者早期开发的系统 spider(参见 Childs 引用的文章)来实现您的格式规则。

我使用类似 noweb 的样式,但编写了自己的后端并输出如上所述的代码;请参阅此 例子.noweb 减少了 WEB 命令的数量但是这需要以对输出的精细控制为代价。

关于 (3):这有点困难。weave 处理器需要两个输入文件(.web 和 .ch),并且必须找到所有章节标题。因此,如果您在代码中使用尚未编码的块的名称,weave 就会失败。这意味着,您需要一个不同的程序来输出写为 .web 的内容而不检查其完整性;并且它必须处理尚未引用的未完成部分。这是可能的(我第一次替换 noweb 的 weave 只给出警告),但我认为这样的工具尚未公开。

如果你开始在类似 WEB 的系统中编写代码,你可能觉得不需要不完整的输出。我认为,编辑器的功能更为重要。

相关内容