我想知道是否存在一种类似于 SAXON 的用于 XML 和 XSLT 文档的 LaTeX 处理器。我需要它从源代码中提取一些信息并定义其语义。
答案1
LaTeX 是完全开源的,用 TeX 编写,您可以texdoc source2e
在大多数发行版中找到源的文档版本作为文件 source2e。
TeX 也是开源的,用 WEB 编写,这是一种文学编程语言,既可以生成程序源代码(最初是 pascal,但现在是 C),也可以生成详细描述源代码的(TeX)文档。tex.web 在所有 TeX 发行版中也可用,或者你可以获得完整排版和索引版本作为出版的书TeX:程序。
鉴于您在评论中澄清了您的目的,我认为 LaTeX 或 TeX 的来源都不会有太大帮助。
我认为更有效的方法是使用latexml
或转换为 XHTML tex4ht
,然后分析生成的 XML。在从 latex 文档中导出树结构时,您需要做出许多或多或少任意的选择,现有的转换器已经做出了这些选择。例如,您可能希望扩展一些宏,这样如果用户已经
\renewcommand\mysec[1]{\section{#1}}
然后您会看到\mysec
一个章节标记,但您不想展开所有的宏,因为 LaTeX 只是通过宏定义的,所以例如您想看到\section
树结构的一部分,您不想将其全部展开,只看到一个奇怪的间距和字体设置命令集合。关于要扩展哪些宏以及将哪些宏视为标记文档树结构,永远不会有任何硬性规定,除非您知道文档作者,否则这都是启发式和猜测。
答案2
与此同时,我发现了这个可以将 LaTeX 元素转换为 HTML+MathML 的项目,并且还实现了一个 LaTeX 解析器。