因此,我最近在工作项目中深入研究了 LaTeX。但我来自 XML+XSL 世界,LaTeX 的一些设计对我来说有点难以理解。
(我对争论将语义与表示分离的设计决策不感兴趣。我只是说我的大脑习惯于以一种非常不同的方式思考,而且我很难形成一个心理模型来解释 LaTeX 和朋友们如何协同完成他们的任务。)
我是一个视觉思考者。有没有图表可以描述典型的 LaTeX 处理流程?
例如,假设有一篇用 LaTeX 编写的文章,其中使用了 BibTeX 参考文献。我知道.sty
在某个地方也有一些文件正在处理中。我还发现了一些.aux
文件。在浏览由TeX 直播我记得读到过,有些软件包甚至可以定义自己的文件类型以实现自定义功能。在这些文件类型中,最流行的格式是什么?
因此,当我在 GUI 编辑器中打开 LaTeX 文档并点击排版,然后弹出一个 PDF — 刚刚发生了什么?(更重要的是,处理链中每个组件的职责是什么?)
答案1
基于texample.net 上的这个例子 我创建了这个图表:
此信息图试图直观地展示 LaTeX 工作流程中“用户级别”和“软件/文件级别”之间的交互。可用来源这里。
这不完全是答案。为了说明编译过程中涉及的文件,应进一步阐述名为“.tex 文件”的节点。在“软件/文件级别”应该有更多节点——例如“.sty 文件”、“.aux 文件”、“.tex 文件”等——每个节点都连接到主 .tex 源节点。这使得信息图更加复杂。此外,图表确实取决于具体情况。同样,如果使用链 latex|dvips|ps2pdf,其他节点(例如“.ps 文件”)也应显示它们对 TeX 系统中其他文件(.pro 文件等)的依赖性。
答案2
不涉及 LaTeX 处理流程,而是 LaTeX、TeX 和相关软件的依赖关系,仍然符合你的问题标题和你的视觉思维:
TEX、其子项及其朋友的概述由 Arno Trautmann 撰写的概述,包含许多图表。
- 它涉及引擎、格式和分布之间的差异
- 给出 TeX 程序及其后代的简短而全面的图表
- 提供各种格式的图表(纯 TeX、LaTeX、相关)
- 展示 ConTeXt 的发展
- 列出其他格式
- 概述当前和历史的 TeX 发行版
- 以可视化的方式处理 MetaPost、BiBTeX、字体等
源代码可在https://github.com/alt/tex-overview。
一个示例树形图,显示具有代码依赖关系的 TeX 引擎,并尝试按时间顺序排列: