A pandoc filter to render math equations using KaTeX.
It is powered by the katex
Rust crate.
cargo install pandoc-katex
When building from the source, the following dependencies are required:
gcc
andpatch
for Linux, macOS, and MinGW/MSYS2.msvc
for Windows.
Alternatively, you can download the pre-built binaries from releases.
pandoc -t html --filter pandoc-katex \
--css "https://cdn.jsdelivr.net/npm/katex@$(pandoc-katex --katex-version)/dist/katex.min.css" \
--css "https://pandoc.org/demo/pandoc.css" \
--standalone -o output.html /path/to/input.md
You can also pass additional flags to custom KaTeX rendering. For example, to use custom LaTeX macros:
pandoc -t json /path/to/input.md | \
pandoc-katex --macro '\RR:\mathbb{R}' | \
pandoc -f json -t html \
--css "https://cdn.jsdelivr.net/npm/katex@$(pandoc-katex --katex-version)/dist/katex.min.css" \
--css "https://pandoc.org/demo/pandoc.css" \
--standalone -o output.html
For more flags, see pandoc-katex --help
.
Options can also be read from an external configuration file. The configuration file should be in .toml
format. For example:
fleqn = true
[macros]
"\\RR" = "\\mathbb{R}"
The configuration file path can either be passed as a command line argument --config-file /path/to/config.toml
or set by environment variable PANDOC_KATEX_CONFIG_FILE
.
The configuration file accepts the following options. Please refer to https://katex.org/docs/options.html for more information.
Option | Meaning | Accepted values |
---|---|---|
output_type |
Set KaTeX output type. | "html" , "mathml" , "htmlAndMathml" |
leqno |
Whether to have \tags rendered on the left instead of the right. |
Boolean |
fleqn |
Whether to make display math flush left. | Boolean |
throw_on_error |
Whether to let KaTeX throw a ParseError for invalid LaTeX. |
Boolean |
error_color |
Color used for invalid LaTeX. | String |
min_rule_thickness |
Minimum thickness, in ems. | Float |
max_size |
Max size for user-specified sizes. | Float |
max_expand |
Limit for the number of macro expansions. | Int |
trust |
Whether to trust users' input. | Boolean |
macros |
Custom macros. | Dictionary |
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.