#katex #latex #pandoc #math

app pandoc-katex

Pandoc filter to render math equations using KaTeX

9 releases

0.1.11 Feb 5, 2023
0.1.10 Nov 22, 2022
0.1.9 Jan 13, 2022
0.1.8 Sep 6, 2021
0.1.1 Feb 7, 2020

#965 in Command line utilities

42 downloads per month

MIT/Apache

16KB
222 lines

pandoc-katex

Build Status Latest Version

A pandoc filter to render math equations using KaTeX. It is powered by the katex Rust crate.

Install

cargo install pandoc-katex

When building from the source, the following dependencies are required:

  • gcc and patch for Linux, macOS, and MinGW/MSYS2.
  • msvc for Windows.

Alternatively, you can download the pre-built binaries from releases.

Usage

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.

Configuration File

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

License

Licensed under either of Apache License, Version 2.0 or MIT license at your option.
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.

Dependencies

~7.5MB
~165K SLoC