懶人投影片
只管內容、不管呈現
上週我實驗了一個新的做法來做投影片,是用 marp CLI 這支程式對應的 Markdown 格式來撰寫。
一直以來我做投影片都有一個困擾:如果用一般的 Google Slides 或投影片軟體,我常常要一邊寫內容、一邊想配圖,還要處理排版、字體大小,以及整個投影片的 Look and Feel。
我本來就知道有一種方式可以用 Markdown 格式來做投影片,比方說用兩個 heading(##)表示一張投影片的標題,並利用三個橫線(---)來表示投影片之間的跳頁,這就是 marp 的 Markdown 格式。
marp 的 Markdown 格式範例如下:
## Agenda
- 什麼是 Lisp ?
- Lisp 的起源
- Lisp 的現在
- Lisp 的未來
---
## 什麼是 Lisp ?
(+ 1 2)
;; => 3
我之前的實驗是,用這樣一個 Markdown 檔放了例如 30 張投影片的內容,再用 marp CLI 程式去轉換。但當時出現的問題是轉出來的投影片會「破圖」,原因在於如果我沒有特別去調整每張圖片的長寬,它並不會自動縮放。雖然 marp 格式裡有一些控制語法可以自動調整圖的大小,但我覺得那些語法對我來說有點困難。
LLM + marp CLI
總之,上週我實驗的結果是:
我把投影片的內容全部放在一個 Markdown 檔裡。
在每張投影片中,透過 Markdown 嵌入圖片的功能,去 reference 其他資料夾裡的圖片。
我把圖片資料夾和這個 Markdown 檔,放到一個 Claude Cowork 可以存取的資料夾。
接著我請 Claude Cowork 幫我把這些內容做成投影片。結果很順利地做出了一份 Slide,而且它的 Look and Feel 還有圖片的位置都非常正確。
我試過的兩種 prompts
1. 根據 slides.md 這個檔案,幫我生成 slides ,並且做適度的美化。注意圖的大小。
2. 用 marp 將 slides.md(含 images/ 圖檔)轉出為 slides.pdf。
需求:在轉出前,修正所有圖片的 Marp 語法,使其不超出投影片邊界——圖片佔滿版的用 ![bg contain],圖文混排的用 ![h:Npx] 限高。
我問 Claude Cowork 是怎麼做到的,它說它之所以可以做得這麼好,是因為它直接寫了 Python 程式去量測每一張圖片的長寬,並設計合理的方法排入圖片,所以就不會有破圖的問題。
經過這個實驗,我有幾點心得:
我很喜歡 CLI 程式和 Markdown 的格式,這些東西最沒有雜訊只有訊號。很幸運的是,CLI 程式和 Markdown 格式也非常適合 LLM 使用,所以我的工作流程本來就很適合讓 AI 來協助。
關於人跟 AI 之間的協作,人應該還是要專注在最重要、最核心的內容;至於那些比較花心力的排版細節,不妨就交給 AI 吧。


