关于 LaTeX
LaTeX 诞生背景
上世纪70年代, 印刷业正从传统向数字过渡.
1976年, Donald Knuth (1974年图灵奖得主) 希望再版《计算机程序设计艺术》.
当时的数字排版系统无法满足Knuth的要求, 他决定自己设计一套.
这项任务比预期复杂, 直到1989年才完成.
Knuth将此排版语言命名为TeX, 源自希腊词τέχνη (技艺) 的缩写.
LaTeX 的发展
Leslie Lamport (2013年图灵奖得主) 基于
创建了 . 是"Lamport's TeX"的缩写,他编写了一些简易指令集以简化了排版系统的使用. 更多的预定义宏指令集在开源社区发布, 使得可以轻松处理复杂文档结构(如目录、参考文献、公式、图表等).
成为学术出版、论文写作和技术文档的标准工具. 开源性质使全球开发者不断贡献新功能和扩展包, 不断拓宽着这一排版系统的应用领域.
每年这些发布到开源社区的扩展包与整个排版系统一起被打包成最新的发行版本(如TeXLive 2024)供全球用户免费使用.
云端编辑器(如Overleaf)凭借其免安装配置开箱即用的特性,推动了
的全球普及.
LaTeX 的优势
提供高度灵活的排版功能, 实现对文档布局、格式的精准控制.
大量现成模板和扩展包简化文档创建.
提供各种场景的自动化方案 (目录生成、索引生成、参考文献及图表引用及列表生成等).
纯文本格式, 版本控制友好, 使得协作编辑更简单.
LaTeX 的一些不足
学习曲线陡峭
的语法和概念对初学者来说较为复杂, 尤其是没有编程基础的用户需要时间适应. 排版复杂的文档如论文或书籍时, 用户可能需要查阅大量文档和解决遇到的各种编译错误. 实时预览和反馈不足
传统的
编辑器无法实现即时预览, 用户需要先编译文档才能看到效果. 而在编译过程中, 可能遇到编译错误或格式问题, 需要用户反复调试. 相比之下, 现代的富文本编辑器或所见即所得编辑器可以即时显示排版效果. 配置和依赖复杂
对于初学者或不熟悉技术细节的用户来说, 配置
发行版和各种包的安装有时会显得复杂, 尤其在跨平台使用时. 当然 Overleaf 这样的云端编辑器弥补了这一不足. 但对于有本地部署需求的用户来说,这依旧是一个不小的缺憾.
与 Markdown 的关系
随着互联网的发展, 在数字出版领域, Markdown 的诞生, 一定程度上继承并发扬了
实现了内容与样式的彻底分离
除了保留数学公式内的
命令与环境,摆脱了大量复杂的 \xxx[yy]{zzz}
语法,让内容更专注于结构和表达,而非排版细节.文档可读性更强,版本控制友好
采用轻量级语法让文档的可读性更高,特别是在使用 Git 进行版本控制时,协作和管理更加便捷。
同时弥补了
真正的实时预览
基于现代
JavaScript
实现的渲染技术使得, 可以轻松实现实时预览功能, 大大提升了用户体验, 具有更高的容错率和响应速度, 有效提高了文档编写和调试效率.配置简单
通过插件, 可以在任何流行编辑器实现适配. 确保用户能够快速上手, 减少了学习曲线, 使得开发者可以专注于内容创作而非环境设置.
当然, 对比
灵活性不足
由于
.md
的渲染依赖的是 某个Javascript
库 (如 MMarked), 并不能直接调用Javascript
代码. 这意味着你只能在.md
编辑结构化文本, 而不能执行自动化指令. 虽然这完满实现了内容与排版分离,但也丧失了灵活性. 相对比,.tex
文件的编译是基于排版系统, 可以在文档中自由调用 指令实现你的排版需求.