数学

math 插件可帮助你在幻灯片中包含优美的数学公式。要开始使用,请确保 reveal.js 已初始化并启用了 math 插件。

<script src="plugin/math/math.js"></script>
<script>
  Reveal.initialize({ plugins: [RevealMath.KaTeX] });
</script>

我们在本示例中使用了 KaTeX 排版程序,但你也可以从 MathJax 23 中进行选择。

由于该插件已注册,我们现在可以在幻灯片中添加 LaTeX 公式。

<section>
  <h2>The Lorenz Equations</h2>
  \[\begin{aligned} \dot{x} &amp; = \sigma(y-x) \\ \dot{y} &amp; = \rho x - y -
  xz \\ \dot{z} &amp; = -\beta z + xy \end{aligned} \]
</section>

洛伦兹方程

\[\begin{aligned} \dot{x} & = \sigma(y-x) \\ \dot{y} & = \rho x - y - xz \\ \dot{z} & = -\beta z + xy \end{aligned} \]

标注

如果你想在用 Markdown 编写的文稿中包含数学公式,则需要用反引号将公式包装起来。这将防止 LaTeX 和 Markdown 之间发生语法冲突。例如:

<section data-markdown>`$$ J(\theta_0,\theta_1) = \sum_{i=0} $$`</section>

排版库

math 插件提供了三个供您用来呈现数学内容的数学排版库选项。每个变体都有自己的插件,可通过 RevealMath.<Variant> 进行访问。如果您没有偏好,我们建议使用 KaTeX。

插件名称配置属性
KaTeXRevealMath.KaTeXkatex
MathJax 2RevealMath.MathJax2mathjax2
MathJax 3RevealMath.MathJax3mathjax3

KaTeX 4.2.0

通过 katex 配置对象调整选项。以下是插件的默认配置方式。如果您无意更改这些值,则根本不需要包含 katex 配置选项。

Reveal.initialize({
  katex: {
    version: 'latest',
    delimiters: [
      { left: '$$', right: '$$', display: true },
      { left: '$', right: '$', display: false },
      { left: '\\(', right: '\\)', display: false },
      { left: '\\[', right: '\\]', display: true },
    ],
    ignoredTags: ['script', 'noscript', 'style', 'textarea', 'pre'],
  },
  plugins: [RevealMath.KaTeX],
});

请注意,默认情况下,最新的 KaTeX 是从远程服务器加载的 (https://cdn.jsdelivr.net.cn/npm/katex)。要使用固定版本,请将 version 设置为,例如,0.13.18

如果您想离线使用 KaTeX,则需要下载一份库副本(例如使用 npm)并使用 local 配置选项(届时 version 选项将被忽略),例如

Reveal.initialize({
  katex: {
    local: 'node_modules/katex',
  },
  plugins: [RevealMath.KaTeX],
});

MathJax 2

通过 mathjax2 配置对象调整选项。以下是插件的默认配置方式。如果您无意更改这些值,则根本不需要包含 mathjax2 配置选项。

Reveal.initialize({
  mathjax2: {
    mathjax: 'https://cdn.jsdelivr.net.cn/npm/mathjax@2/MathJax.js',
    config: 'TeX-AMS_HTML-full',
    // pass other options into `MathJax.Hub.Config()`
    tex2jax: {
      inlineMath: [
        ['$', '$'],
        ['\\(', '\\)'],
      ],
      skipTags: ['script', 'noscript', 'style', 'textarea', 'pre'],
    },
  },
  plugins: [RevealMath.MathJax2],
});

请注意,最新的 MathJax 2 是从远程服务器加载的。要使用固定版本,请将 mathjax 设置为,例如,https://cdn.jsdelivr.net.cn/npm/[email protected]/MathJax.js

如果您想离线使用 MathJax,则需要下载一份库副本(例如使用 npm)并将 mathjax 指向本地副本。

MathJax 3 4.2.0

通过 mathjax3 配置对象调整选项。以下是插件的默认配置方式。如果您无意更改这些值,则根本不需要包含 mathjax3 配置选项。

Reveal.initialize({
  mathjax3: {
    mathjax: 'https://cdn.jsdelivr.net.cn/npm/mathjax@3/es5/tex-mml-chtml.js',
    tex: {
      inlineMath: [
        ['$', '$'],
        ['\\(', '\\)'],
      ],
    },
    options: {
      skipHtmlTags: ['script', 'noscript', 'style', 'textarea', 'pre'],
    },
  },
  plugins: [RevealMath.MathJax3],
});

请注意,最新的 MathJax 3 是从远程服务器加载的。要使用固定版本,请将 mathjax 设置为,例如,https://cdn.jsdelivr.net.cn/npm/[email protected]/es5/tex-mml-chtml.js。此外,该配置现在是 url 的一部分,默认情况下,加载的是 tex-mml-chtml,它可以识别 TeX 和 MathML 表示法中的数学内容,并使用 HTML 和 CSS(CommonHTML 输出格式)生成输出。这是最常用的配置之一,但也是其中较大的配置,因此您可能需要考虑更小的配置,配置应量身定制地满足您的需求,例如 tex-svg

如果您想离线使用 MathJax,则需要下载一份库副本(例如使用 npm)并相应地调整 mathjax