Skip to main content
Docusaurus

Search documentation

Type to search this documentation.

On this pageOverview

Math Equations

Mathematical equations can be rendered using KaTeX.

See below how to activate them.

Please read the KaTeX documentation for more details.

Write inline math equations by wrapping LaTeX equations between $:

latex
Let $f\colon[a,b]\to\R$ be Riemann integrable. Let $F\colon[a,b]\to\R$ be
$F(x)=\int_{a}^{x} f(t)\,dt$. Then $F$ is continuous, and at all $x$ such that
$f$ is continuous at $x$, $F$ is differentiable at $x$ with $F'(x)=f(x)$.

Let $f\colon[a,b] \to \R$ be Riemann integrable. Let $F\colon[a,b]\to\R$ be $F(x)= \int_^ f(t),dt$. Then $F$ is continuous, and at all $x$ such that $f$ is continuous at $x$, $F$ is differentiable at $x$ with $F'(x)=f(x)$.

For equation block or display mode, use ```math fenced code blocks.

latex
```math
I = \int_0^{2\pi} \sin(x)\,dx
```

You can also use line breaks and $$, although this syntax relies on a Markdown syntax extension and is less portable:

latex
$$
I = \int_0^{2\pi} \sin(x)\,dx
$$
math
I = \int_0^{2\pi} \sin(x)\,dx

Enable KaTeX:

  1. Install the remark-math and rehype-katex plugins:

    npm2yarn
    npm install --save remark-math@6 rehype-katex@7
  2. These 2 plugins are only available as ES Modules. We recommended to use an ES Modules config file:

    ES module docusaurus.config.js
    import remarkMath from 'remark-math';import rehypeKatex from 'rehype-katex';export default {  presets: [    [      '@docusaurus/preset-classic',      {        docs: {          path: 'docs',          remarkPlugins: [remarkMath],          rehypePlugins: [rehypeKatex],        },      },    ],  ],};
Using a CommonJS config file?

CommonJS

    If you decide to use a CommonJS config file, it is possible to load those ES module plugins thanks to dynamic imports and an async config creator function:
CommonJS module docusaurus.config.js
module.exports = async function createConfigAsync() {  return {    presets: [      [        '@docusaurus/preset-classic',        {          docs: {            path: 'docs',            remarkPlugins: [(await import('remark-math')).default],            rehypePlugins: [(await import('rehype-katex')).default],          },        },      ],    ],  };};
  1. Include the KaTeX CSS in your config under stylesheets:

    JavaScript
    export default {
      //...
      stylesheets: [
        {
          href: 'https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css',
          type: 'text/css',
          integrity:
            'sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM',
          crossorigin: 'anonymous',
        },
      ],
    };
See a config file example
docusaurus.config.js
import remarkMath from 'remark-math';import rehypeKatex from 'rehype-katex';export default {  title: 'Docusaurus',  tagline: 'Build optimized websites quickly, focus on your content',  presets: [    [      '@docusaurus/preset-classic',      {        docs: {          path: 'docs',          remarkPlugins: [remarkMath],          rehypePlugins: [rehypeKatex],        },      },    ],  ],  stylesheets: [    {      href: 'https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css',      type: 'text/css',      integrity:        'sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM',      crossorigin: 'anonymous',    },  ],};

Loading stylesheets, fonts, and JavaScript libraries from CDN sources is a good practice for popular libraries and assets, since it reduces the amount of assets you have to host. In case you prefer to self-host the katex.min.css (along with required KaTeX fonts), you can download the latest version from KaTeX GitHub releases, extract and copy katex.min.css and fonts directory (only .woff2 font types should be enough) to your site's static directory, and in docusaurus.config.js, replace the stylesheet's href from the CDN URL to your local path (say, /katex/katex.min.css).

docusaurus.config.js
export default {
  stylesheets: [
    {
      href: '/katex/katex.min.css',
      type: 'text/css',
    },
  ],
};
Suggest an edit

Propose a replacement for this page. The site team reviews it before applying any changes.

Export
Documentation menu