喜欢用Markdown写作的朋友们都知道,在Markdown中可以很方便地编辑各种数学公式,但是,如果我们想将Markdown中的公式搬运到PPT中,就会比较麻烦,因为Markdown虽然适合写作及编辑公式,但是不太适合PPT式的教学演示。
我们可以将Markdown中的内容分成两部分:一部分是文字及图片为主的内容,这部分内容往PPT搬运是比较好实现的,复制粘贴即可;另一部分是以公式为主的内容,这部分内容考复制粘贴就不行了,最直接的方法就是截图,然后粘贴到PPT中,但是当公式比较多的时候,PPT中就跟打了补丁一样,影响PPT的颜值。
所以,接下来需要解决的问题是,如何将Markdown中以公式为主的内容搬运到PPT中。
下面说下大致操作步骤。
1、VS Code中,安装两个插件:Markdown All in One、Marp for VS Code
插件Markdown All in One可以使我们在VS Code中编辑Markdown文件。
关于Markdown的语法,请移步这里:Markdown语法全集
插件Marp for VS Code可以将Markdown中的内容排布为PPT的形式,当然只是形式像,并不是PPT格式。
2、在VS Code编辑好Markdown内容,或者用VS Code打开已经编辑好的Markdown文件
3、利用插件Marp for VS Code,将Markdown中的内容分割成类似于PPT中一页一页的形式
我们可以根据Marp的语法,去设置每一页的背景、字体等样式,还可以插入图片。
下面说说具体如何操作。
1、准备好一张PPT背景图片
打开常用的PPT,新建一页,另存为图片(png、jpg均可),导出选择“仅当前幻灯片”
2、VS Code中,新建一个文件,保存为md格式文件。
准备工作,输入以下代码,同时打开侧边预览:
---
marp: true
backgroundImage: url(ppt背景.png)
style: |
section{
color:white;
}
这里为所有PPT统一设置背景图片,style中的color:white;表示将字体设置为白色,因为这里使用的是一个黑色背景。
3、新建一页:输入三个减号
输入三个减号后,会看到侧边预览出现一页空白PPT,背景是前面设置的图片。
然后,将Markdown中的公式及文字复制过来,例如Markdown中有如下内容:
对于多元线性回归,假设函数为
h_\theta(x_1,x_2,...,x_n)=\theta_0+\theta_1x_1+...+\theta_nx_n
为了使表示简化,增加一个特征x_0=1,于是
h_\theta(x_1,x_2,...,x_n)=\theta_0x_0+\theta_1x_1+...+\theta_nx_n=\sum_{i=0}^n\theta_ix_i
假设有m个样本,(x_1^{(0)}, x_2^{(0)}, ...x_n^{(0)}, y_0), (x_1^{(1)}, x_2^{(1)}, ...x_n^{(1)},y_1), ... (x_1^{(m)}, x_2^{(m)}, ...x_n^{(m)}, y_m)
对于上方的假设函数,损失函数为:
J(\theta_0,\theta_1,...,\theta_n)=\frac{1}{2m}\sum_{j=1}^m(h_\theta(x_0^{(j)},x_1^{(j)},...,x_n^{(j)})-y_i)^2
接下来要求这个损失函数的最小值。
将这部分内容复制到VS Code中,便可得到如下图所示的效果。
4、继续添加下一页,空一行,输入三个减号
侧边预览可以看到出现了一页新的PPT。
将如下Markdown中的内容复制过来。
**梯度下降算法过程**:
初始化\theta_0,\theta_1,...,\theta_n,步长\alpha。
1. 求损失函数的梯度,对于参数\theta_i,其梯度表达式为:
\frac{\partial}{\partial\theta_i} J(\theta_0,\theta_1,...,\theta_n)=\frac{1}{m}\sum_{j=0}^m(h_\theta(x_0^{(j)},x_1^{(j)},...,x_n^{(j)})-y_i)x_i^{(j)}
2. 用步长乘以损失函数的梯度,得到当前位置下降的距离
\alpha\frac{\partial}{\partial\theta_i}J(\theta_0,\theta_1,...,\theta_n)
3. 更新参数,对于参数\theta_i,其更新表达式为:
\theta_i=\theta_i-\alpha\frac{\partial}{\partial\theta_i}J(\theta_0,\theta_1,...,\theta_n)=\theta_i-\alpha \frac{1}{m}\sum_{j=0}^m(h_\theta(x_0^{(j)},x_1^{(j)},...,x_n^{(j)})-y_i)x_i^{(j)}
**说明**:因为是梯度下降,所以这里是减号,如果是梯度上升,那就是加号了!
4. 确定是否所有的参数\theta_i梯度下降的距离都小于\epsilon,如果小于\epsilon则算法终止,否则进入步骤3
得到如下效果。
对于公式比较多的,可以多分几页。
最后将侧边预览窗口放大,截图每一页,粘贴到自己的PPT中即可。
这就是我能想到的将Markdown中的公式内容搬运到PPT中的方法。
关于Marp的语法具体可以参考:https://marpit.marp.app/theme-css