讲稿和文章不是同一份东西

一份源文件渲染成文章和幻灯片,看起来省事,实际把对应关系搞错了。

2026-09-21 · 2 分钟阅读

崖顶上的讲台和摊着笔记本的小桌,面对同一片海湾

想把一个 idea 既写成文章又讲成演示,最容易想到的办法是写一份源文件,渲染出两种形态。Quarto 和 reveal.js 的 scroll view 都提供这个能力。用下来会觉得别扭,原因不在工具,在于它假设文章和幻灯片是同一份内容的两种样子。

工具把对应关系搞错了

演讲里承担论证的是你说出来的话,幻灯片只是视觉锚点。文章里承担论证的是正文。所以真正同构的两样东西是文章正文和讲稿,幻灯片在文章那边根本没有对应物。

左右对照:一份源文件两种渲染,和文章正文对应讲稿的正确关系
把幻灯片当成文章的另一种渲染,等于要求同一段文字既能读完又能当锚点。

这个错位在写的时候就能感觉到:为了让幻灯片能读,你会往页面上加字,讲的时候听众在读屏幕不听你说;为了让页面干净,你把字删到只剩关键词,导出成文章就什么都没说。

两边真正共用的只有证据

图表、截图、录屏、那几个关键数字——这些两边完全一样,而且是最费工的部分。叙述不一样,载体不一样,只有证据一样。

三层结构:载体和叙述各两份,证据共用一份
证据层横跨两边,上面两层各写各的。

叙述为什么不能共用,差别在这几行:

讲稿 文章
谁控制节奏 讲的人 读者
能不能回看 不能,过去就过去了 能,随时往回翻
论证放在哪 你说出来的话 正文
因此需要 重复、铺垫、明确的段落提示 标题和目录来导航
密度 低,一次只能进一个意思 高,读者自己调速

这两种需求没法用同一段文字满足。

落地:一个主题三样东西

topics/<主题>/
  assets/     图表和截图,两边共用
  talk.md     幻灯片放证据,论证写在 speaker notes 里
  post.md     文章,同一批图,配更完整的图注和上下文

assets/ 用相对路径引用,幻灯片和文章各自解析到同一批文件。改了图,两边同时更新;改了叙述,只影响一边。

talk.md 里一页长这样——页面上只有一句话和一张图,论证全在最后那个注释里:

---
layout: center
---

## 两边真正共用的只有证据

![三层结构](./assets/layers.svg)

<!--
图表、截图、录屏——这些两边完全一样,而且是最费工的部分。

上面两层各写各的。听众不能回看,所以讲稿要重复、要铺垫;
读者能跳着看,所以文章可以更密,但要靠标题导航。
-->

pnpm notes 把这些注释按页倒出来,就是文章的初稿。

先写散文,再抽幻灯片

先写文章或者长 speaker notes,把论证想清楚,再从里面抽幻灯片。抽的过程本身在逼你决定每页只留哪一个视觉锚点。

反过来先堆幻灯片,容易得到一批看着挺满、但拼不成文章的页面——因为那些页面从来没有承担过论证,它们只是关键词的排列。