社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Quarto 极简幻灯片:支持 R/Python 代码集成

连享会 • 3 天前 • 13 次点击  


👇 连享会 · 推文导航 | www.lianxh.cn

🍓 课程推荐:连享会:2025 文本分析专题
嘉宾:陈婷,香港浸会大学
时间:2025 年 11.22, 11.29, 12.6 日
咨询:王老师 18903405450(微信)


温馨提示: 文中链接在微信中无法生效。请点击底部「阅读原文」。或直接长按/扫描如下二维码,直达原文:

作者:李铭(暨南大学)
邮箱:liminglcz@163.com


  • Title: Quarto 极简幻灯片:支持 R/Python 代码集成
  • Keywords: VSCode,Python,R,精简幻灯片,学术演示, B827


本文提供的幻灯片模板:

  • 查看:B827-quarto-template.qmd → 点击右上方「向下的箭头」图标可以下载到本地。

本文方案适用于

  • 制作极简风格的学术幻灯片;
  • 集成 R 和 Python 代码,支持代码执行和结果展示;
  • 支持 Markdown 语法和 LaTeX 数学公式;
  • 基于 VS Code 编辑器,适合跨平台使用(Windows、Mac、Linux)
  • 生成 HTML 格式幻灯片,便于在线分享和展示。


0. 导言

在学术研究和教学中,幻灯片(Slides)是不可或缺的工具。传统的幻灯片制作软件如 PowerPoint、Keynote 等,虽然功能强大,但在集成代码和数据分析方面存在局限性。近年来,Quarto 作为一种新兴的文档编写和渲染工具,因其对 R 和 Python 代码的良好支持,逐渐受到学术界的关注。

本文将介绍如何在 VScode 编辑器中使用 Quarto 制作精简版幻灯片,重点展示其在集成 R 和 Python 代码方面的优势,并提供具体的安装和使用指南,帮助读者高效创建学术演示材料。

后文看起来很长,主要是因为包含了很多细节的介绍。其实,核心步骤只有三步:

  1. 安装 Quarto 及其附加组件 TinyTex 和 Chromium (通常不需要);
  2. 在 VS Code 中安装 Quarto 扩展,并配置 Jupyter 环境以支持 Python 代码;
  3. 使用 Quarto 模板创建 .qmd 文件,并编写包含 R 和 Python 代码的幻灯片内容。
  4. 在 VScode 中执行 quarto render 命令生成最终的幻灯片文件(HTML 格式),或  quarto preview 进行预览。

1. 何谓 Quarto ?

Quarto 是 Posit 公司推出的一款开源软件,主要用来将 Markdown 文件转换为各种格式,可以一键渲染(render)生成网站 (html) 、写书 (epub) 、报告 (pdf) 、幻灯片 (pptx 、 beamer) 等格式。

Quarto 在某种程度上可以视为 rmarkdown 的升级版,可以支持 R 和 Python 代码的嵌入、执行,是制作精简版幻灯片制作的优良工具。有关 Quarto 的详细使用教程可参照 Quarto 官网链接。

Quarto 工作原理:新建 Quarto 文档时,会生成以.qmd 为后缀的文档。当渲染(render)qmd 文档时, knitr 会首先执行所有代码块并创建一个新的 Markdown (.md) 文档,其中包括代码及其输出。生成的 Markdown 文件然后由 pandoc 处理,创建最终的格式。渲染(render)按钮封装了这些操作并以合适的顺序执行,这一过程可通过 Rstudio、VS Code、Positron、Jupyter 等编辑器工具予以实现。

2. Quarto 安装与配置

Quarto 官方下载链接:https://quarto.org/docs/get-started/

下载、安装完毕后,可以在命令行中执行 quarto --version,若显示版本号,则表明安装成功。

C:\Users\liming> quarto --version
1.6.39

Note:进入命令行模式的方法为

  • Windows 系统:按下 Win + R 键,输入 cmd,然后按回车键即可打开命令行窗口。
  • Mac 系统:按下 Command + Space 键,输入 Terminal,然后按回车键即可打开终端窗口。

Quarto 有两个附加组件:TinyTexChromium,分别用于 PDF 渲染和 HTML 预览。

可以在命令行中执行  quarto list tools 命令来查看两个附加组件的安装情况:

C:\Users\liming> quarto list tools

[>] Inspecting tools

Tool         Status            Installed     Latest
chromium     Not installed     ---           869685
tinytex      Not installed     ---           v2025.11

上述结果表明,系统中尚未安装 TinyTex 和 Chromium。下面介绍何种情况下需要安装这两个组件,以及如何安装。

2.1 安装 TinyTex

TinyTex 是 TexLive 的一个发行版,Quarto-Pandoc 依赖它,将 .qmd 文件编译为 .pdf 文件。如果系统的环境变量中已经有了 Tex Live,则 Quarto 会自动使用,无需下载 TinyTex。

如需安装 TinyTex,可在命令行中执行 quarto install tinytex命令:

2.2 安装 Chromium

Quarto 需要借助 Chromium 组件来预览 HTML 文件。如果系统中已经有了 Chromium 系浏览器如 Chrome, Edge, 360 极速浏览器, VScode 等则无需下载。因此,对于大部分用户来说,并不需要安装 Chromium。

如需安装,可以在命令行中执行 quarto install Chromium

若用 Rstudio 进行安装和使用,可参考往期推文Quarto 助力论文和讲义撰写.

2.3 安装 VS Code 插件

接下来,我们将在 VS Code 中使用 Quarto 模板来制作精简版幻灯片。

首先,需要安装 Quarto、Python、Jupyter、R、Julia 的官方扩展(Extensions)。安装 Quarto 扩展成功后,重新打开 VSCode ,新建一个 Quarto Docu 在 .qmd 文件界面右上角会出现一个 Preview 按钮。

在 VScode 中使用 Python 要通过 Jupyter 作为中介,检查系统中的 Jupyter 是否被 Quarto 使用,需要在终端(Terminal)中输入如下的命令 quarto check jupyter。若运行正常,则显示如下:

特别注意:安装目录中不要有中文字符。例如电脑用户名为中文,则会产生如下报错,解决办法是将电脑的中文用户名设定为英文用户名。

2. 用 Quarto 制作简易幻灯片

2.1 Quarto-Clean-Typst 模板

Quarto 提供了丰富且多样的模板(template),兼具观赏性与实用性。本文使用的模板来自 quarto-clean-typst.

需要在终端输入quarto use template kazuyanagimoto/quarto-clean-typst使用模板,首次运行模板命令时,终端可能会提示是否信任该模板的作者?(Do you trust the authors of this template? (Y/n))。输入 Y 并回车表示信任。接着指定项目文件夹名称,例如 practice_quarto_1。系统会自动帮忙创建一系列文件。

同名的 .qmd文件中可以看到模板自带的示例内容,点击 preview 或者 Ctrl+Shift+K 可以进行渲染,实现在 VSCode 中预览相应网页,并直接在同一目录下生成方便演示的 PDF 格式文件。例如,此处生成的文件为 practice_quarto_1.pdf。

2.2 Quarto 实现 R 语言和 Python 内嵌与执行

.qmd文档中输入:

```{r}
#输入需要插入的R语言代码即可
```

……

```{Python}
#输入需要插入的Python代码即可
```

在渲染导出时,quarto 会自动执行 R 语言代码块,并输出全部代码和对应执行结果到幻灯片中。

例如,我们以一朵玫瑰花为例展示程序效果。在 .qmd 文件中输入如下代码:

```{r echo=TRUE, message=TRUE, warning=TRUE}
#install.packages("plot3D")
library(plot3D)
x
t
grid
x_mat $x, ncol = 25, byrow = TRUE)
t_mat $t, ncol = 25, byrow = TRUE)

p
change
u
y
r

persp3D(
  x = r * cos(t_mat),
  y = r * sin(t_mat),
  z = u * (x_mat * cos(p) - y * sin(p)),
  main = "To my lover",
  xlab = "Lucky",
  ylab = "Happy",
  zlab = "Richness",
  col = colorRampPalette(c("#E64B3599""#F39B7F99"))(500),
  border = "gray90",
  lwd = 0.1,
  colkey = FALSE,
  ticktype = "simple",
  nticks = 5,
  cex.axis = 0.7,
  cex.lab = 0.9,
  las = 1,
  theta = -50,
  phi = 40,
  bty = "b2",
  mar = c(5, 5, 4, 2)
)
```

上述代码和图片都将会出现在生成的 practice_quarto_1.pdf 文件中。

另一种嵌入方式更加方便,可以提前编辑好 .ipynb 文件,利用#| label贴好 quarto 标签,并将其放到同一目录 practice_quarto_1 下。接着,在qmd文件中便可以进行嵌入,例如{{< embed "python_R_files\Pythonexamples.ipynb#code-plot-scatter" >}}(路径#标签名称)将 Python 代码嵌入到演示文件中。若是嵌入 figure,则需使用fig标签,例如 {{< embed "python_R_files\Pythonexamples.ipynb#fig-scatter" >}} 将 Python 程序运行生成的 figure 嵌入其中。

这样嵌入的好处是,可以直接在ipynb文件修改 Python 代码,无需在qmd文件中,点击 preview 渲染可以即时执行代码并生成修改后的演示文件。极大地提升了工作、汇报效率。

Quarto 同样支持 Latex 公式输入,利用$$ $$可以直接键入公式。

3. 全部 quarto 文档代码

查看:B827-quarto-template.qmd
→ 点击右上方「向下的箭头」图标可以下载到本地。

---
title: Quarto with python and R
subtitle: How to make a clean slides
format: clean-typst
author:
  - name: Li Ming
    orcid: 0000-0000-0000-0000
    email: liming@lcz.com
    affiliations: Jinan University
date: today
date-format: long
brand:
  typography:
    fonts:
      - family: Roboto
        weight: [100, 200, 300, 400, 500, 600, 700]
        style: [normal, italic]
        source: google
    base: Roboto
    headings: Roboto
---


# Quarto 实现R语言与Python内嵌

## 如何展示R语言代码及运行结果

### 一朵玫瑰花示例

You can see my R code right here.

```{r echo=TRUE, message=TRUE, warning=TRUE}
#install.packages("plot3D")
library(plot3D)
<- seq(024) / 24
t <- seq(0575by = 0.5) / 575 * 20 * pi + 4 * pi
grid <- expand.grid(x = x, t = t)
x_mat <- matrix(grid$xncol = 25, byrow = TRUE)
t_mat <- matrix(grid$tncol = 25, byrow = TRUE)

p <- (pi / 2) * exp(-t_mat / (8 * pi))
change <- sin(15 * t_mat) / 150
u <- 1  - (1 - (3.6 * t_mat) %% (2 * pi) / pi)^4 / 2 + change
y <- 2 * (x_mat^2 - x_mat)^2 * sin(p)
r <- u * (x_mat * sin(p) + y * cos(p))

persp3D(
  x = r * cos(t_mat),
  y = r * sin(t_mat),
  z = u * (x_mat * cos(p- y * sin(p)),
  main = "To my lover",
  xlab = "Lucky",
  ylab = "Happy",
  zlab = "Richness",
  col = colorRampPalette(c("#E64B3599", "#F39B7F99"))(500),
  border = "gray90",
  lwd = 0.1,
  colkey = FALSE,
  ticktype = "simple",
  nticks = 5,
  cex.axis = 0.7,
  cex.lab = 0.9,
  las = 1,
  theta = -50,
  phi = 40,
  bty = "b2",
  mar = c(5, 542)
)
```

也可以直接插入同一目录下图片

![Rose](rose.png){fig-alt="A rose for you."}

### 列表应用
- 无序列表
    - A sub item
1. 有序列表
    1. A sub item


### 公式应用
 **公式**
$$
\begin{gather*}
a_1=b_1+c_1 \\
a_2=b_2+c_2+d_2+e_2 \\
E = mc^2
\end{gather*}
$$

### 图片交叉引用
@fig-airquality further explores the impact of temperature on ozone level.可以直接运行R语言代码并生成运行结果图片。Figure2可点击跳转

```{r}
#| label: fig-airquality
#| fig-cap: "Temperature and ozone level."
#| warning: false

library(ggplot2)
ggplot(airqualityaes(TempOzone)) +
  geom_point() +
  geom_smooth(method = "loess")
```

## 如何展示Python代码及运行结果

### Quarto 实现Python内嵌
::::{.columns}
:::{.column width=70%}
{{embed "python_R_files\Pythonexamples.ipynb#code-plot-scatter" >
}}

:::{.column width=30%}
{{embed "python_R_files\Pythonexamples.ipynb#fig-scatter" >}}


## Summary {#sec-summary}

### quarto学习平台

可以在quarto官网[官方Guide](https://quarto.org/docs/guide/)学习更多编辑操作、交叉引用等知识

```{.bash}
quarto use template kazuyanagimoto/quarto-clean-typst
```
Cross-references

- `.quarto制作简易版幻灯片`
[[Summary]{.button}](#sec-summary)

4.参考资料

  • 博客园:Quarto 不完全指北 · 第一节 下载
  • 博客园:Quarto 不完全指北 · 第二节 内容的写作
  • 哔哩哔哩:[Quarto] 介绍使用 Quarto 科学制作 ppt

5. 相关推文

Note:产生如下推文列表的 Stata 命令为:
lianxh Quarto 幻灯片, md nocat
安装最新版 lianxh 命令:
ssc install lianxh, replace

  • 初虹, 2022, Markdown-LaTeX:经管人的 VSCode 配置大全, 连享会 No.1004.
  • 初虹, 2024, 让「记录」变得简单:Markdown 使用详解, 连享会 No.1456.
  • 宋森安, 2021, 用 Markdown 制作幻灯片-五分钟学会 Marp(上篇), 连享会 No.656.
  • 宋森安, 2021, 用 Markdown 制作幻灯片-五分钟学会 Marp(下篇), 连享会 No.657.
  • 李原, 2024, 使用 Quarto 打造你的个人主页, 连享会 No.1338.
  • 王胜文, 2022, Latex 系列 2:Beamer 入门-学术范儿的幻灯片, 连享会 No.971.
  • 王胜文, 2023, VScode 编辑器:安装、使用与常用快捷键, 连享会 No.1174.
  • 胡丽条, 2021, 连享会工具:Beamer 幻灯片制作, 连享会 No.700.
  • 连享会, 2020, 在 Visual Studio (vsCode) 中使用正则表达式, 连享会 No.10.
  • 连小白, 2025, 50 分钟搞定个人主页:Fork 模板 + GitHub Pages + Quarto 完整教程, 连享会 No.1644.
  • 连小白, 2025, vscode.dev:在线版 VScode 使用指南, 连享会 No.1620.
  • 连玉君, 2022, Marp 幻灯片模板:用 Markdown 快速写幻灯片, 连享会 No.1059.
  • 连玉君, 2024, VScode 插件:安装、配置和使用, 连享会 No.1490.
  • 连玉君, 2024, VScode:实用 Markdown 插件推荐, 连享会 No.1390.
  • 连玉君, 2024, 从基础到 AI 助手:Python 用户最爱的 VScode 插件清单, 连享会 No.1489.
  • 连玉君, 2021, 用 VScode 正则表达式转换 Markdown 和 LaTeX 链接, 连享会 No.839.
  • 郝亮, 2025, Quarto 助力论文和讲义撰写, 连享会 No.1592.
  • 郭皑馨, 2020, vsCode+Stata:在 VScode 中编辑和运行 Stata 命令, 连享会 No.151.
  • 陈楚, 2022, Stata+Markdown:输出幻灯片+PDF+Word-markstat, 连享会 No.1137.
  • 陈波, 2021, 学术范儿的幻灯片制作:Beamer in Rmarkdown, 连享会 No.764.
  • 黄晨晨, 2023, Stata:利用 Stata 生成动态文档-Quarto, 连享会 No.1304.

🍓 课程推荐:连享会-CGE专题:理论与实操
嘉宾:贾智杰,西安交通大学
时间:2025 年 11.23, 11.30, 12.7 日
咨询:王老师 18903405450(微信)


连享会微信小店上线啦!

Note:扫一扫进入“连享会微信小店”,你想学的课程在这里······

尊敬的老师 / 亲爱的同学们:

连享会致力于不断优化和丰富课程内容,为了更精准地满足您的学习需求,我们诚挚地邀请您参与到我们的课程规划中来。请您在下面的问卷中,分享您感兴趣的学习主题或您希望深入了解的知识领域 。感谢您抽出宝贵时间,与我们共同塑造更加精彩的学习旅程!https://www.wjx.cn/vm/YgPfdsJ.aspx# 再次感谢大家宝贵的意见!

New! Stata 搜索神器:lianxh 和 songblGIF 动图介绍
搜: 推文、数据分享、期刊论文、重现代码 ……
👉 安装:
. ssc install lianxh
. ssc install songbl
👉  使用:
. lianxh DID 倍分法
. songbl all

🍏 关于我们

  • 连享会 ( www.lianxh.cn,推文列表) 由中山大学连玉君老师团队创办,定期分享实证分析经验。
  • 直通车: 👉【百度一下:连享会】即可直达连享会主页。亦可进一步添加 「知乎」,「b 站」,「面板数据」,「公开课」 等关键词细化搜索。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/189631