数式

数式プラグインを使用すると、スライドに美しく組版された数式を含めることができます。開始するには、mathプラグインが有効になっている状態でreveal.jsが初期化されていることを確認してください。

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

この例ではKaTeX組版エンジンを使用していますが、MathJax 2または3も選択できます。

プラグインが登録されたので、スライドに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

Markdownで記述されたプレゼンテーションの中に数式を含めたい場合は、数式をバッククォートで囲む必要があります。これにより、LaTeXとMarkdownの構文の競合を防ぎます。例えば

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

組版ライブラリ

数式プラグインでは、数式をレンダリングするために使用できる3つの組版ライブラリを選択できます。各バリアントは、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/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/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/npm/mathjax@2.7.8/MathJax.jsに設定します。

MathJaxをオフラインで使用するには、ライブラリの複製をダウンロードする(npmなどを使用)必要があり、mathjaxをローカルコピーに設定します。

MathJax 3 4.2.0

mathjax3設定オブジェクトを使用してオプションを調整します。以下は、プラグインのデフォルト設定です。これらの値を変更する予定がない場合は、mathjax3設定オプションを全く含める必要はありません。

Reveal.initialize({
  mathjax3: {
    mathjax: 'https://cdn.jsdelivr.net/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/npm/mathjax@3.2.2/es5/tex-mml-chtml.jsに設定します。さらに、設定はURLの一部になり、デフォルトではTeXとMathMLの両方の表記の数式を認識し、CSSを使用したHTML(CommonHTML出力形式)を使用して出力を生成するtex-mml-chtmlがロードされます。これは最も一般的な設定の1つですが、最も大きな設定の1つでもあるため、ニーズに合わせてより小さな設定(例:tex-svg)を検討することをお勧めします。

MathJaxをオフラインで使用するには、ライブラリの複製をダウンロードする(npmなどを使用)必要があり、mathjaxを適切に調整します。