需求

平时在做讲解视频时,总是希望用PPT做一个大纲,不仅讲解起来思路更清晰,也更方便他人接收信息。但对于一个懒人来说,每次都做一个PPT太麻烦了,而且还需要频繁调格式,不方便。

之前在「少数派」看过「王树义老师」的一篇文章,叫如何把 Markdown 免费在线转换成 RevealJS 便携幻灯? - 少数派,其中给出了王老师开发的WEB应用,另外还有另一个付费教程:6.3 如何用 Markdown 做幻灯? - 少数派,由于是付费课程,我就打算先自行研究一下。

我在「少数派」检索了一下Revealjs,发现王老师在另一篇文章中提到过:

你可以直接用 Quarto 来转换这个大纲,形成 Revealjs 幻灯。Revealjs 幻灯是我最常使用的幻灯形式,平时上课、做视频,用的都是它。

于是打算自己用Quarto+Revealjs来试试。

安装Quarto+Revealjs

  1. 首先到Quarto 官网 下载安装包

  1. 运行安装

  1. 在VS Code安装Quarto插件

  1. 选择喜欢的扩展

Quarto - Quarto Extensions,选择自己喜欢的扩展,我发现onyxia-revealjs的样式很好看,就安装了这个扩展,对应的GitHub库在这里,效果如下:

onyxia 创建新的演示文稿只需要运行

在test文件夹下打开terminal,输入以下命令:

quarto use template InseeFrLab/onyxia-quarto

执行 即创建了以onyxia为模板的项目,其yml文件中有较全面的设置,自己可以根据需要在模板的基础上进行调整,这也是加载模板的原因之一。

预览的方法是:选中qmd文件,按⌘+Shift+K

对演示文稿内容的调整,只需要在qmd文件中,以Markdown格式进行内容修改即可,非常方便!

定制样式

通过对CSS文件和yml文件的个性化设置,我得到的样式如下 定制

输出为PDF

虽说标题是生成PPT,但由Revealjs生成的是可以进行演示的HTML文件,如果要在其他地方演示,只需要将文件夹打包到其他电脑,打开生成的HTML文件即可!

在使用的过程中,我发现HTML还是不能满足很多的使用场景,比如,我只想将演示文稿以不可改动的方式发给其他同学,那么,将HTML转换为PDF就自然成了下一个要解决的问题。

我尝试了RStudio下配合Renderthis的library,renderthis setup — 渲染此设置,但生成的PDF效果不好,样式会与Quarto生成的HTML文件存在偏差。

经过不断查找,终于发现了decktape

其安装非常简单:

npm install -g decktape

使用:

decktape 你的路径/index.html test.pdf

用decktape转换得到的PDF样式偏差最小。