一位博士生最近在网上分享了自己使用Typst(而非传统的LaTeX)撰写博士论文的经历,在技术社区引发了激烈讨论。这个选择看似小众,却触及了学术界一个由来已久的痛点:LaTeX虽然功能强大,但学习曲线陡峭、编译速度缓慢、错误信息晦涩难懂。
从90秒到10秒:速度是第一生产力
作者选择Typst的直接原因很简单——一位朋友的LaTeX论文编译时间竟然长达90秒。「我太容易分心了,根本无法忍受在做小改动时要等90秒的编译时间。」相比之下,Typst的编译速度快得惊人:即使是150页以上的论文,完整编译只需15秒,内容修改几乎是即时更新的。
HackerNews用户WhyNotHugo深有同感:「我最后一篇论文用的是makefile,通常能工作。但不工作时,运行两次就能修复。最罕见的情况下,我必须运行git clean -xdf
,然后下一次运行就能工作了。」另一位用户shusaku则幽默地评论道:「疯狂的定义就是做同样的事情两次却期待不同的结果。巧合的是,这正是编译LaTeX的基本方式。」
Typst的语言设计:现代化的力量
Typst最大的亮点在于其精心设计的语言。作者将其描述为「Markdown和动态类型Rust的混合体」,这种组合听起来很奇怪,但实际使用起来却非常舒适。
#let numbers = (1,2,5,8)
This is *bold text*. The sum of [#numbers.map(it => str(it)).join(", ")] is *#numbers.sum()*
这段代码会生成:「This is bold text. The sum of [1, 2, 5, 8] is 16」
相比LaTeX中到处都是反斜杠的语法,Typst的设计更加直观。更重要的是,Typst拥有一个设计良好的脚本语言。正如作者所说:「我对LaTeX最大的抱怨是没有任何东西是一致的。每个包都定义自己的小工具,甚至连基本的if语句都不统一。感觉你不是在学LaTeX,而是在分别学习每个包。」
实际应用:不只是纸上谈兵
作者展示了一个实际案例:他收集了各种硬件描述语言的元数据,存储在TOML文件中。由于Typst可以直接解析TOML,他能够轻松地用这些数据生成论文中的分类图表。这种程度的编程集成在LaTeX中几乎是不可想象的。
HackerNews用户lizimo分享了更有趣的应用场景:「我们已经在生产环境中使用Typst生成PDF文档几个月了,比如发票和标签。每天生成数千份文档,我很高兴其中一些被打印出来,供仓库里做实际工作的人使用。」
痛点仍在:生态系统的挑战
然而,Typst并非完美无缺。最大的问题来自于参考文献管理。Typst每个文档只能有一个参考文献部分和文件,这对于需要为引言和每篇包含的论文分别设置参考文献的博士论文来说是个致命缺陷。虽然Alexandria包提供了解决方案,但仍需要额外的工作。
更大的挑战在于生态系统。正如HackerNews用户gumbojuice指出:「我坚持使用LaTeX,不是因为偏好,而是因为期刊/会议仍然不接受比如typst。他们会接受吗?我不知道,这取决于他们是否愿意将其整合到工具链中。」
导师的不同视角
有趣的是,作者的导师对此有完全不同的看法。导师认为:「问题是你必须调整它才能让事情看起来符合要求。这不一定是优势。作为导师,我会建议在所有手稿都用LaTeX编写的领域中使用Typst吗?不会。」
导师特别指出,从监督者的角度来看,他几乎没有在源代码中编辑任何文本,而是让作者自己编辑文本和格式,这相当低效。
社区的两极化反应
HackerNews的讨论呈现出明显的两极分化。支持者认为Typst代表了未来。用户commandersaki列出了Typst的诸多优势:「编译时不会生成5个该死的文件」、「编译是即时的」、「诊断信息更容易理解(有点像Rust编译器的建议风格)」。
反对者则担心Typst的持续性。用户dleslie警告说:「三十年后LaTeX仍将是开源的,可能还会被维护。Typst看起来是开源和闭源的混合体;这种模式往往会忽视开源部分,在闭源部分实现关键功能。」
用户the-wumpus则反驳道:「网页应用编辑器是闭源的,但它提供的大部分功能都是开源的,所以本地编辑体验类似(在我看来更好)。typst编译器、LSP和你需要使用的所有东西都是开源的。」
写在最后
正如作者在结论中所说:「如果你像我一样,喜欢玩编程语言,容易被工具困扰,更喜欢可以调整到完全符合自己要求的工具,而不是开箱即用但难以调整的工具,那么Typst绝对值得一试。」
对于学术界来说,Typst的出现提供了一个思考的契机:我们是否应该继续忍受LaTeX的种种不便,仅仅因为「大家都在用」?还是应该拥抱新技术带来的效率提升?
用户rcpt的评论或许代表了一种新的可能:「自从我写LaTeX以来已经有十年了,我同意它的所有痛点。但似乎LaTeX正是LLM会完美处理的东西。我觉得今天使用它不会太糟糕。」
无论选择哪种工具,重要的是它能帮助研究者更好地表达思想。正如用户noelwelsh所说:「在一天结束时,我不是在试图迁移任何人。使用你认为最好的。对于我的使用场景,我确信Typst是比LaTeX更好的选择。」