这是一篇非常长的文章,详细介绍了 Typst 的功能。
Typst 是以 App + 语法形式推出的,官方教程中简单提到了使用场景——
Typst 是撰写任何长篇文本(例如散文、文章、科学论文、书籍、报告和家庭作业)的不错选择。此外,Typst 非常适合任何包含数学符号的文档,例如数学、物理和工程领域的论文。最后,由于其强大的样式和自动化功能,它对于任何具有共同样式的文档集(例如书籍系列)来说都是绝佳的选择。
官网有这样一段视频,展示了应用的大致功能和效果。
简单地说,Typst 是一种功能类似 LaTeX,写法类似 Markdown 的排版工具。可以一定程度上替代两者,
它与 LaTeX 一样,旨在为学术和科学环境提供强大的排版支持,但其语法更为简洁,更接近于 Markdown,使得学习和使用门槛大幅降低。
Typst 支持多种文档类型,从论文、文章到科学报告等,尤其在处理包含数学符号的文档以及需要统一风格的文档集时表现出色。其语法的简化,如用 “=” 表示标题,用 “#link” 创建链接等,减少了 LaTeX 中大量反斜杠前缀宏的使用,让文档编写更加直观。
Typst 不仅在语法上有所创新,其功能也相当强大。
它能够创建各种复杂的文档元素,如方程式、代码块、歌曲歌词和和弦、数据流图等,甚至还能生成甘特图、棋盘图、位级数据包图等专业图表。
这些功能的实现,得益于 Typst 的脚本语言支持,它允许用户在文档中直接编写逻辑表达式、进行值操作,并与文档内容模式交替使用,从而实现动态内容的生成。例如,通过循环和条件语句,用户可以轻松生成可变长度的项目符号列表或填充表格。
在文档样式方面,Typst 采用了独特的 “设置规则和显示规则” 方法,类似于 CSS 但又有所区别。设置规则可以控制特定类型元素的参数,如颜色、大小等,而显示规则则能更精细地匹配具有特定参数或元素的函数调用,并可完全覆盖元素的呈现。这种灵活的样式控制方式,让 Typst 在文档外观定制上具有极大的优势,能够满足不同用户对于文档风格的多样化需求。
Typst 的插件功能也是其一大亮点。
它支持 WebAssembly 插件,这些插件完全隔离,只能进行纯计算,不能进行文件读写等环境交互操作,从而保证了使用的安全性。
通过插件,用户可以扩展 Typst 的功能,实现更多高级特性,如模板、可视化、逻辑处理等。此外,Typst 还提供了 Universe 仓库,方便用户发现和安装插件,进一步丰富了 Typst 的生态系统。
对于动态文档生成的需求,Typst 同样表现出色。
它可以用于生成具有固定结构但内容可变的文档,如发票、证书、报告等。通过读取 JSON 文件或使用 sys.inputs
字典,Typst 能够接收外部数据并将其插入到模板中。
同时,它支持条件语句和循环,可以根据输入数据条件性地显示或隐藏内容,以及重复生成内容。虽然 Typst 不直接支持从 URL 下载图像,但通过预处理步骤或使用特定的插件,用户依然可以实现动态图像的插入。
Typst 的出现,不仅继承了 LaTeX 的强大功能,还吸收了 Markdown 的简洁语法,同时提供了丰富的脚本和插件支持,使其在学术写作和自动化文档生成方面提供了一个新选择。
当然,每当我们介绍这类工具的时候,难免拿来与现有的 Word 之类的成熟工具做比较,文中也做了一些与 Word 的对比,介绍了一些 Typst 的好处。作为一款新兴工具,至少从演示效果上来看已经是相当不错了。