


























这篇文章讲的是如何把 Pandoc(跨格式文档转换工具)和 Typst(较新的排版/标记语言)拼成一条技术写作流水线,用 Markdown 作为输入,最终生成 PDF。作者提到自己在不同版本的 Typst 和 Pandoc 之间反复调整模板,评论则补充了命令参数 `--pdf-engine=typst` 和 `-V template=article.typ` 的作用。围绕 `$body$` 这类 Pandoc 模板变量的讨论,说明正文其实是被注入到 `.typ` 模板里,再由 Typst 完成版面排版。讨论还延伸到 Jupyter notebook、EPUB、Quarto 和电子墨水阅读器等实际场景,因为这些工具链往往是为了书籍、课程材料或可打印文档服务的。
不少评论觉得文章最缺的是可直接参考的样例。没有展示 Markdown 输入长什么样、Typst 样式怎么写、以及最终 PDF 的实际效果,读者很难判断这个模板的价值。后面补出的 Typst 文档链接和模板源码,恰好说明可运行示例比抽象描述更有说服力。
有人把整条链路拆开解释:Pandoc 先读取 Markdown,再用 `--pdf-engine=typst` 调 Typst 排版,并通过 `-V template=article.typ` 指定模板。模板里的 `$body$` 是正文插入点,Pandoc 的变量替换和条件语句是标准机制,所以并没有什么神秘魔法。评论里还举了把 Jupyter notebook 先转 Markdown、再转 Typst 生成 PDF/EPUB 的例子,甚至提到 Typst 里的 Callisto package 可以直接渲染 notebook。
另一个焦点是维护成本。评论直接列出 Typst 从 v0.11 到 v0.13 再到 v0.14.2、Pandoc 从 3.6.4 到 3.9.0.2 的升级节奏,说明模板很容易因版本变化而失效。也就是说,这种工作流的可复用性是有条件的,往往要跟着工具链持续修补。
评论还落到了具体使用场景和替代工具上。有人用这套链路写 Python、software engineering 和 data science 书籍,因为需要把代码和正文一起排成可打印的 PDF;也有人说 Quarto 对课程材料已经很好用。最后提到 Sony DPT-RP1 这类电子墨水阅读器,进一步说明这里追求的是适合阅读和打印的成品输出。
Typst: 一个较新的排版/标记语言,可直接生成 PDF,也能通过模板控制版式。
Pandoc: 跨格式文档转换工具,常用来把 Markdown、Notebook 等内容转换成其他格式。
Pandoc 模板变量: Pandoc 模板里的 `$...$` 占位与条件语法,`$body$` 等变量会被正文或元数据替换。
Jupyter notebook: 包含代码、输出和说明文字的交互式文档,常被转换成书稿或课程材料。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。