| Summary | Discourse Math uses MathJax (default) or KaTeX to render maths in your Discourse forum. | |
| Install Guide | This plugin is bundled with Discourse core. There is no need to install the plugin separately. |
Enabling Math
The Math plugin can be enabled from its settings, accessed from your admin/plugins page:
![]()
Features
Once enabled, you can render inline math by wrapping with a single $ like so: $E=mc^2$.
You can render blocks of math by wrapping with $$
$$
\sqrt{(-1)} \; 2^3 \; \sum \; \pi
$$
Discourse Math uses a heuristic to ensure that sentences such as: βI spent 20$ and another 100$β do not get converted.
LaTeX Delimiters
When enabled via site settings, you can also use standard LaTeX delimiters:
-
Inline:
\(...\)- Example:\(E=mc^2\) -
Block:
\[...\]- Example:\[ \frac{1}{2} \]
AsciiMath (MathJax only)
When using MathJax, you can enable asciimath processing which uses % as a delimiter: %E=mc^2%
Composer Integration
The composer includes an Insert Math button in the toolbar with keyboard shortcut Shift+M. This opens a modal where you can:
- Toggle between inline and block mode
- Write your LaTeX expression
- Preview and insert into your post
In the rich text editor, math expressions appear as editable nodes with an edit button to modify the expression.
Chat Support
Math expressions are also rendered in Discourse Chat messages using the same settings and rendering engine.
Rendering Engines
MathJax (Default)
- Version: 4.1
- Output formats: HTML (default) or SVG
-
Features:
- Contextual menu (right-click on math)
- Accessibility enrichment for screen readers
- Zoom on alt-click (175% zoom)
- AsciiMath support
KaTeX (Alternative)
-
Features:
- Fast rendering
- Mhchem extension for chemical equations
- CopyTex extension - click math to copy LaTeX source to clipboard
- Cross-reference support with
\label,\ref, and\eqrefmacros
Site Settings
See all relevant site settings by searching your admin settings for βmathβ.
| Name | Description |
|---|---|
| discourse math enabled | Enable Discourse Math plugin (adds special processing to $ and $$ blocks) |
| discourse math provider | Math rendering provider: mathjax (default) or katex
|
| discourse math enable latex delimiters | Enable LaTeX-style delimiters: \(...\) for inline and \[...\] for block math |
| discourse math mathjax output | MathJax output format: html (default) or svg (MathJax only) |
| discourse math enable menu | Enable contextual menu for math expressions (MathJax only) |
| discourse math enable accessibility | Enable accessibility features like text enrichment (MathJax with menu only) |
| discourse math zoom on click | Zoom 175% on alt-click interaction (MathJax with menu only) |
| discourse math enable asciimath | Enable asciimath processing with % delimiter (MathJax only) |
Hosted by us? This plugin is available on all of our hosting tiers Math | Discourse - Civilized Discussion
Last edited by @sam 2026-01-16T05:05:47Z
Check document
Perform check on document:
