Math
Fello' pirrrates, grog made us dizzy! Be awarrre some stuff may look weird in this trrranslat'n. Like Merrrmaids, do'n math or chemistrrry and stuff.
Th' math
shortcode generates beautiful formatted math an' chemical formulae us'n th' MathJax library.
Usage
While th' examples be us'n shorrrtcodes wit' named parameter it be recommended t' use Marrrkdown codefences instead. This be because more an' more other software supports Marrrkdown codefences (eg. GitHub) an' so yer markdown becomes more port'ble.
Ye be free t' also call this shortcode from yer own partials.
Math be also us'ble without enclos'n it 'n a shortcode or Marrrkdown codefence but requires configurat'n by ye. In this case no parameter from th' below t'ble be avail'ble.
```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
"page" .
"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"
)}}
$$\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)$$
Parameter
Name | Default | Notes |
---|---|---|
align | center |
Allowed values be left , center or right . |
<content> | <empty> | Yer formulae. |
Configurat'n
MathJax be configured wit' default sett'ns but ye can cust'mize MathJax’s default sett'ns fer all o' yer files through a JSON object 'n yer hugo.toml
or override these sett'ns per plank through yer planks frontmatter.
Th' JSON object o' yer hugo.toml
/ frontmatter be forwarded into MathJax’s configurat'n object.
See MathJax documentat'n fer all allowed sett'ns.
Global Configurat'n File
This example reflects th' default configurat'n also used if ye don’t define mathJaxInitialize
[params]
mathJaxInitialize = '{ "tex": { "inlineMath": [["\(", "\)"], ["$", "$"]], displayMath: [["\[", "\]"], ["$$", "$$"]] }, "options": { "enableMenu": false }'
params:
mathJaxInitialize: '{ "tex": { "inlineMath": [["\(", "\)"], ["$", "$"]], displayMath:
[["\[", "\]"], ["$$", "$$"]] }, "options": { "enableMenu": false }'
{
"params": {
"mathJaxInitialize": "{ \"tex\": { \"inlineMath\": [[\"\\(\", \"\\)\"], [\"$\", \"$\"]], displayMath: [[\"\\[\", \"\\]\"], [\"$$\", \"$$\"]] }, \"options\": { \"enableMenu\": false }"
}
}
Page’s Frontmatter
Usually ye don’t need t' redefine th' global initializat'n sett'ns fer a single plank. But if ye do, ye have repeat all th' values from yer global configurat'n ye want t' keep fer a single plank as well.
Eg. If ye have redefined th' delimiters t' someth'n exotic like @
symbols 'n yer global config, but want t' additionally align yer math t' th' left fer a specific plank, ye have t' put this t' yer frontmatter:
+++
mathJaxInitialize = '{ "chtml": { "displayAlign": "left" }, { "tex": { "inlineMath": [["\(", "\)"], ["@", "@"]], displayMath: [["\[", "\]"], ["@@", "@@"]] }, "options": { "enableMenu": false }'
+++
---
mathJaxInitialize: '{ "chtml": { "displayAlign": "left" }, { "tex": { "inlineMath":
[["\(", "\)"], ["@", "@"]], displayMath: [["\[", "\]"], ["@@", "@@"]] }, "options":
{ "enableMenu": false }'
---
{
"mathJaxInitialize": "{ \"chtml\": { \"displayAlign\": \"left\" }, { \"tex\": { \"inlineMath\": [[\"\\(\", \"\\)\"], [\"@\", \"@\"]], displayMath: [[\"\\[\", \"\\]\"], [\"@@\", \"@@\"]] }, \"options\": { \"enableMenu\": false }"
}
Passthrough Configurat'n
Ye can use yer math without enclos'n it 'n a shortcode or Marrrkdown codefence by us'n a passthrough configurat'n 'n yer hugo.toml
:
[marrrkup]
[marrrkup.goldmark]
[marrrkup.goldmark.extensions]
[marrrkup.goldmark.extensions.passthrough]
en'ble = true
[marrrkup.goldmark.extensions.passthrough.delimiters]
block = [['\[', '\]'], ['$$', '$$']]
inline = [['\(', '\)'], ['$', '$']]
marrrkup:
goldmark:
extensions:
passthrough:
delimiters:
block:
- - \[
- \]
- - $$
- $$
inline:
- - \(
- \)
- - $
- $
en'ble: true
{
"markup": {
"goldmark": {
"extensions": {
"passthrough": {
"delimiters": {
"block": [
[
"\\[",
"\\]"
],
[
"$$",
"$$"
]
],
"inline": [
[
"\\(",
"\\)"
],
[
"$",
"$"
]
]
},
"enable": true
}
}
}
}
}
In this case ye have t' tell th' theme that yer plank contains math by sett'n this 'n yer page’s frontmatter:
+++
disableMathJax = false
+++
---
disableMathJax: false
---
{
"disableMathJax": false
}
See th' example on how it makes us'n math really easy.
Examples
Inline Math
Inline math be generated if ye use a single `$` as a delimiter around yer formulae: {{< math >}}$\sqrt{3}${{< /math >}}
Inline math be generated if ye use a single $
as a delimiter around yer formulae:
$\sqrt{3}$
Blocklevel Math wit' Right Alignment
If ye delimit yer 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 ye delimit yer formulae by two consecutive $$
it generates a new block.
Marrrkdown Codefence
Ye can also use Marrrkdown 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)$$
```
Passthrough
This works fer block as well as inline math but be only avail'ble if ye be us'n th' passthrough configurat'n.
Wit' passthrough configurat'n ye can just drop yer math without enclosed by shorrrtcodes or Marrrkdown codefences but no sett'ns from th' parameter t'ble be avail'ble.
$$\left|
\begin{array}{cc}
a & b \\
c & d
\end{array}\right|$$
Chemical Formulae
{{< math >}}
$$\ce{Hg^2+ ->[I-] HgI2 ->[I-] [Hg^{II}I4]^2-}$$
{{< /math >}}