3.3 KiB
title | description | categories | keywords | action | aliases | toc | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
transform.ToMath | Renders a math expression using KaTeX. |
|
|
true |
{{< new-in "0.132.0" >}}
{{% note %}} This feature was introduced in Hugo 0.132.0 and is marked as experimental.
This does not mean that it's going to be removed, but this is our first use of WASI/Wasm in Hugo, and we need to see how it works in the wild before we can set it in stone. {{% /note %}}
Arguments
- EXPRESSION
- The math expression to render using KaTeX.
- OPTIONS
- A map of zero or more options.
Options
These are a subset of the KaTeX options.
- output
- (
string
). Determines the markup language of the output. One ofhtml
,mathml
, orhtmlAndMathml
. Default ismathml
.With
html
andhtmlAndMathml
you must include KaTeX CSS within thehead
element of your base template. For example:<head> ... <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/katex.min.css" integrity="sha384-nB0miv6/jRmo5UMMR1wu3Gz6NLsoTkbqJghGIsx//Rlm+ZU03BU6SQNC66uf4l5+" crossorigin="anonymous"> ... </head>
- displayMode
- (
bool
) Iftrue
render in display mode, else render in inline mode. Default isfalse
. - leqno
- (
bool
) Iftrue
render with the equation numbers on the left. Default isfalse
. - fleqn
- (
bool
) Iftrue
render flush left with a 2em left margin. Default isfalse
. - minRuleThickness
- (
float
) The minimum thickness of the fraction lines inem
. Default is0.04
. - macros
- (
map
) A map of macros to be used in the math expression. Default is{}
. - throwOnError
- (
bool
) Iftrue
throw aParseError
when KaTeX encounters an unsupported command or invalid LaTex. See error handling. Default istrue
. - errorColor
- (
string
) The color of the error messages expressed as an RGB hexadecimal color. Default is#cc0000
.
Examples
Basic
{{ transform.ToMath "c = \\pm\\sqrt{a^2 + b^2}" }}
Macros
{{ $macros := dict
"\\addBar" "\\bar{#1}"
"\\bold" "\\mathbf{#1}"
}}
{{ $opts := dict "macros" $macros }}
{{ transform.ToMath "\\addBar{y} + \\bold{H}" $opts }}
Error handling
There are 3 ways to handle errors from KaTeX:
- Let KaTeX throw an error and make the build fail. This is the default behavior.
- Handle the error in your template. See the render hook example below.
- Set the
throwOnError
option tofalse
to make KaTeX render the expression as an error instead of throwing an error. See [options].
{{< code file=layouts/_default/_markup/render-passthrough-inline.html copy=true >}} {{ with transform.ToMath .Inner }} {{ with .Err }} {{ errorf "Failed to render KaTeX: %q. See %s" . $.Position }} {{ else }} {{ . }} {{ end }} {{ end }} {{- /* chomp trailing newline */ -}} {{< /code >}}