2  基础设定

上一章你已经能做出一份幻灯片了。这一章我们来让它”看起来更像一份正式的 Slides”。

所有的基础设定,都写在 YAML 头里——也就是文件最开头两个 --- 之间的区域。

2.1 选择主题:theme

Marp 内置了三个主题,你可以直接用:

主题名 风格
default 白底黑字,简洁干净
gaia 深色背景,现代感
uncover 浅色系,学术感

最小写法:

---
marp: true
theme: default
---

default 换成 gaiauncover 就能切换主题。建议先用 default,简单稳妥。

推荐从 default 开始

初学阶段不用纠结主题,default 已经很好看了。等熟悉之后,再试试其他两个。

2.2 设置尺寸:size

默认尺寸是 16:9(宽屏)。如果你需要别的比例,可以这样设置:

---
marp: true
size: 16:9
---

常用的选项:

用途
16:9 默认,适合投影和屏幕展示
4:3 传统比例,部分旧投影仪适用
A4 适合打印成讲义

大多数情况下不用改,用默认的 16:9 就好。

2.3 开启页码:paginate

加一行就能显示页码:

---
marp: true
paginate: true
---

页码默认显示在右下角。

2.3.1 跳过某一页的页码

如果想让某一张(比如封面)不显示页码,在那一页的最开头加上:

<!-- _paginate: false -->

下划线 _ 表示”只对这一页生效”。

2.3.2 自定义页码格式

想显示”当前页 / 总页数”格式?在 YAML 头里加:

---
marp: true
paginate: true
---

然后在某张幻灯片里用:

<!-- _paginate: "### %page / %total" -->

这会在那一页显示如”3 / 12”的格式。如果想全局生效,可以写一个简单的 CSS(第三章会讲)。

2.5 分页方式:--- 与标题分页

目前你已经知道用 --- 手动分页。除此之外,Marp 还可以让你用标题自动分页。

2.5.1 手动分页(---

最直接的方式:

# 第一页

内容

---

# 第二页

内容

2.5.2 自动分页:headingDivider

如果你的幻灯片每页都以一个标题开头,可以用 headingDivider 省掉手动写 ---

---
marp: true
headingDivider: 2
---

## 第一页

内容

## 第二页

内容

设置 headingDivider: 2 后,每遇到 ## 就会自动开始新的一页,不用手动加 ---

效果
1 每个 # 都自动分页
2 每个 ## 自动分页
3 每个 ### 自动分页
[1,2] ### 都自动分页
哪种更好?
  • 内容不多、结构灵活 → 手动 ---
  • 内容多、每页都有标题 → 用 headingDivider: 2

两种方式可以混用:设置了 headingDivider 之后,仍然可以在任意位置手动插入 ---

2.6 一份适合课程讲义的基础模板

把上面学到的东西组合起来,这是一份可以直接复制使用的基础模板:

---
marp: true
theme: default
size: 16:9
paginate: true
header: "课程名称"
footer: "姓名  |  日期"
headingDivider: 2
---

<!-- _paginate: false -->
<!-- _header: "" -->
<!-- _footer: "" -->

# 课程标题

## 副标题或教师姓名

---

## 第一节:主题一

- 要点 1
- 要点 2
- 要点 3

## 第二节:主题二

正文内容写在这里。

可以是段落,也可以是列表。

## 小结

- 总结要点 1
- 总结要点 2
直接复制使用

这个模板你可以直接复制,然后:

  1. 课程名称姓名日期 替换成你的信息
  2. 课程标题 和正文内容替换掉
  3. 保存,预览,搞定

之后所有的幻灯片都可以基于这个模板修改。


本章小结

这一章你学会了:

  • theme 选择主题
  • size 设置幻灯片比例
  • paginate 开启页码
  • header / footer 设置页眉页脚
  • --- 手动分页,或用 headingDivider 自动分页
  • 获得了一份可以直接用的基础模板

下一章,我们来解决”如何在幻灯片里展示各种内容”——图片、公式、代码、双栏排版。