大多数写作工具让你选定一种格式,然后接受它的输出。Folio Writer 把这两个决定分开:你只用纯文本写一次,每次编译时再选择渲染引擎——因为论文答辩委员会、期刊和预印本服务器想要的东西很少相同。
Folio Writer 项目中每篇普通文稿都是一个纯 .md 文件——pandoc 风格的 Markdown,带有学术写作真正需要的扩展:[@citations]、$math$、脚注、管道表格与网格表格、@fig:/@tbl:/@eq: 交叉引用、任务列表、Wiki 链接。编辑器会实时渲染它——带样式的标题、排版好的公式、解析后的引用——但文件始终是文本,你可以 grep、diff,到 2040 年也照样能打开。下面的一切都不会改变这一点:引擎是输出的选择,而不是文件格式。
默认流水线。编译把活页夹缝合成一篇文档,交给 pandoc,由它生成 Word (.docx)、OpenDocument (.odt)、LaTeX (.tex)、HTML、EPUB——若装有 TeX 发行版,还可通过 xelatex、pdflatex、lualatex 或 tectonic 生成经典期刊风格的 PDF。引用由 citeproc 按任意 CSL 样式格式化;pandoc-crossref 为你的图、表和公式编号。Folio Writer 还能导出缝合好的、自成一体的 .md——pandoc manuscript.md -o out.pdf --citeproc 可以在任何地方重现你的构建,这正是纯文本的意义所在。
把渲染器切换到 Quarto,就打开了两扇门。其一是与出版商要求完全一致的输出(见期刊投稿指南):添加期刊扩展(AGU、Elsevier、Copernicus…),写一行元数据(quarto-to: agu-pdf),然后编译——Folio Writer 会把结构化的作者和单位信息传给期刊模板使用,并去掉会与期刊文档类冲突的通用版式键。其二是可执行的手稿:{python} 和 {r} 代码单元在编译时运行,因此每次构建时插图都会根据你的数据重新生成(见动态绘图)。处处都写 @fig:xrd 即可——Folio Writer 会自动转换为 Quarto 原生的连字符语法,两种渲染器共用一种语法。
Typst 就是 LaTeX 若在今天设计会有的样子:不到一秒就能生成 LaTeX 品质的 PDF,而且不需要 TeX 发行版——Typst 只是一个小小的二进制文件(brew install typst),是迄今为止通往排版 PDF 最轻便的路。Folio Writer 会把你的 Markdown 手稿转换为 Typst 源码(包括引用、交叉引用、编号和目录)并编译;你也可以直接导出 .typ,用 typst watch 手工微调。除了转换之外,Typst 还是一等的文稿类型:在活页夹中创建原生 .typ 文稿——自定义表格、精确的插图定位、#show 规则——并在同一个项目里与 Markdown 章节混用,一起编译。
| 你需要 | 使用 |
|---|---|
| 给答辩委员会或合著者的 Word 文件 | pandoc → .docx(支持修订) |
| 用于 LibreOffice / OpenOffice 的 OpenDocument | pandoc → .odt(公式为原生 ODF 公式) |
| 配置最少的精美 PDF | Typst 渲染器(brew install typst——无需 TeX) |
| 与期刊要求完全一致的投稿(AGU、Elsevier…) | Quarto + 期刊扩展 |
| 编译时根据数据生成的插图 | Quarto + {python}/{r} 代码单元 |
| 用于投稿系统的 LaTeX 源码 | pandoc 或 Quarto → .tex |
| 手工精确控制排版 | 原生 .typ 文稿 / .typ 导出 |
四种引擎,一条原则:手稿永远不属于渲染器。同一个装满纯文本文件的文件夹,可以在周一生成给答辩委员会的 Word 文档,周三生成给期刊的 LaTeX,周五生成用 Typst 排版的预印本——即使有一天你离开了 Folio Writer,这些文件依然能打开、能阅读、能编译。