You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Quarto RevealJS演示文稿中添加MathJax宏?

在Quarto RevealJS中正确定义LaTeX宏的方案

核心问题拆解

  • .content-hidden容器:内部LaTeX宏(如\N)无法被MathJax/KaTeX解析,直接显示原符号,因为该容器的内容不会触发公式渲染逻辑。
  • .hidden容器:宏能正常生效,但会被RevealJS识别为独立幻灯片,导致生成空白页。

可行解决方法

方法1:用演讲者注释区定义宏

利用RevealJS的data-notes属性,把宏定义放在演讲者注释里——内容仅在演讲者视图可见,MathJax会自动解析其中的LaTeX代码:

---
title: "测试LaTeX宏"
format: revealjs
---

<div data-notes>
$$
\newcommand{\N}{\mathbb{N}}
$$
</div>

## 幻灯片1
自然数集示例:$\N$

方法2:通过YAML全局注入宏

先创建一个HTML片段文件(比如latex-macros.html),内容如下:

<script type="text/x-mathjax-config">
MathJax.Hub.Config({
  TeX: {
    Macros: {
      N: "\\mathbb{N}"
    }
  }
});
</script>

然后在Quarto文档的YAML头部引用这个文件,实现全局宏定义:

---
title: "测试LaTeX宏"
format: revealjs
include-after-body: "latex-macros.html"
---

## 幻灯片1
自然数集示例:$\N$

方法3:用CSS隐藏宏定义块

在幻灯片开头添加一个绝对定位的LaTeX定义块,通过CSS把它移出可视区域——MathJax仍会解析宏,同时不会在页面显示内容或生成空白页:

---
title: "测试LaTeX宏"
format: revealjs
---

<style>
.macro-hide { position: absolute; left: -9999px; }
</style>

<div class="macro-hide">
$$
\newcommand{\N}{\mathbb{N}}
$$
</div>

## 幻灯片1
自然数集示例:$\N$

效果验证

以上三种方法都能实现:

  • \N正常渲染为$\mathbb{N}$
  • 无空白幻灯片生成
  • 宏定义内容不会出现在主演示页面

内容的提问来源于stack exchange,提问作者mistral

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 20:18:09