Math
The math
shortcode generates beautiful formatted math and chemical formulae using the MathJax library.
This only works in modern browsers.
Usage
While the examples are using shortcodes with named parameter it is recommended to use codefences instead. This is because more and more other software supports Math codefences (eg. GitHub) and so your markdown becomes more portable.
You are free to also call this shortcode from your own partials.
To use codefence syntax you have to turn off guessSyntax
for the markup.highlight
setting (see the configuration section).
```math { align="center" }
$$\left( \sum_{k=1}^n a_k b_k \right)^2 \leq \left( \sum_{k=1}^n a_k^2 \right) \left( \sum_{k=1}^n b_k^2 \right)$$
```
{{< math align="center" >}}
$$\left( \sum_{k=1}^n a_k b_k \right)^2 \leq \left( \sum_{k=1}^n a_k^2 \right) \left( \sum_{k=1}^n b_k^2 \right)$$
{{< /math >}}
{{ partial "shortcodes/math.html" (dict
"context" .
"content" "$$left( \sum_{k=1}^n a_k b_k \right)^2 \leq \left( \sum_{k=1}^n a_k^2 \right) \left( \sum_{k=1}^n b_k^2 \right)$$"
"align" "center"
)}}
Parameter
Name | Default | Notes |
---|---|---|
align | center |
Allowed values are left , center or right . |
<content> | <empty> | Your formuale. |
Configuration
MathJax is configured with default settings. You can customize MathJax’s default settings for all of your files thru a JSON object in your config.toml
or override these settings per page thru your pages frontmatter.
The JSON object of your config.toml
/ frontmatter is forwarded into MathJax’s configuration object.
See MathJax documentation for all allowed settings.
To use codefence syntax you have to turn off guessSyntax
for the markup.highlight
setting.
Global Configuration File
[params]
mathJaxInitialize = "{ \"chtml\": { \"displayAlign\": \"left\" } }"
[markup]
[markup.highlight]
# if `guessSyntax = true`, there will be no unstyled code even if no language
# was given BUT Mermaid and Math codefences will not work anymore! So this is a
# mandatory setting for your site if you want to use Math codefences
guessSyntax = false
Page’s Frontmatter
+++
mathJaxInitialize = "{ \"chtml\": { \"displayAlign\": \"left\" } }"
+++
Examples
Inline Math
Inline math is generated if you use a single `$` as a delimiter around your formulae: {{< math >}}$\sqrt{3}${{< /math >}}
Inline math is generated if you use a single $
as a delimiter around your formulae:
$\sqrt{3}$
Blocklevel Math with Right Alignment
If you delimit your formulae by two consecutive `$$` it generates a new block.
{{< math align="right" >}}
$$\left( \sum_{k=1}^n a_k b_k \right)^2 \leq \left( \sum_{k=1}^n a_k^2 \right) \left( \sum_{k=1}^n b_k^2 \right)$$
{{< /math >}}
If you delimit your formulae by two consecutive $$
it generates a new block.
Codefence
You can also use codefences.
```math
$$\left( \sum_{k=1}^n a_k b_k \right)^2 \leq \left( \sum_{k=1}^n a_k^2 \right) \left( \sum_{k=1}^n b_k^2 \right)$$
```
Chemical Formulae
{{< math >}}
$$\ce{Hg^2+ ->[I-] HgI2 ->[I-] [Hg^{II}I4]^2-}$$
{{< /math >}}