katex

Fast math!

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

cp -a static/. build/ && cp -a contrib build/

check-dependencies && npm run lint && npm run flow && npm run jest

check-dependencies && node webpackDevServer.js

lessc --clean-css static/katex.less build/katex.css

Fast math typesetting for the web.

eslint katex.js server.js cli.js src test contrib dockers && stylelint static/fonts.less static/katex.less

Fast math typesetting for the web.

eslint katex.js server.js cli.js webpack.config.js webpackDevServer.js src test contrib dockers && stylelint static/fonts.less static/katex.less

Fast math typesetting for the web.

rimraf build && npm run build-css && npm run copy

Fast math typesetting for the web.

eslint katex.js katex.webpack.js cli.js webpack.common.js webpack.config.js webpack.dev.js src test contrib dockers && stylelint static/katex.less

check-dependencies && rimraf build/* && webpack

check-dependencies && webpack-dev-server --open --config webpack.dev.js

check-dependencies && dockers/Screenshotter/screenshotter.sh --verify

Fast math typesetting for the web.

npm test && npm run build && npm run dist:copy && npm run dist:zip && npm run dist:dist

npm run prestart && npm run test:lint && npm run test:flow && npm run test:jest

npm run prestart && rimraf build/* && webpack

webpack-dev-server --hot --config webpack.dev.js

cd build && tar czf katex.tar.gz katex/ && zip -rq katex.zip katex/

node check-node-version.js && check-dependencies && cd src && node unicodeMake.js >unicodeSymbols.js

cd build && mkdirp katex && cp -r katex.js katex.min.js katex.css katex.min.css contrib fonts ../README.md katex

rimraf dist/ && cp -r build/katex/ dist/

eslint katex.js katex.webpack.js cli.js webpack.common.js webpack.config.js webpack.dev.js src static test contrib dockers && stylelint src/katex.less

npm run prestart && NODE_ENV=test node test/perf-test.js

npm run test:screenshots:update -- --verify

npm run prestart && dockers/Screenshotter/screenshotter.sh

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

yarn test && yarn build && yarn dist:zip

yarn prestart && yarn test:lint && yarn test:flow && yarn test:jest

yarn prestart && rimraf dist/ && mkdirp dist && cp README.md dist && rollup -c && webpack

cd dist && tar czf ../katex.tar.gz * && zip -rq ../katex.zip *

node check-node-version.js && yarn check && node src/unicodeMake.js

yarn prestart && NODE_ENV=test node test/perf-test.js

eslint *.js src static test contrib dockers website

stylelint src/katex.less static/main.css contrib/**/*.css website/static/**/*.css

yarn prestart && dockers/screenshotter/screenshotter.sh

Fast math typesetting for the web.

Fast math typesetting for the web.

rimraf katex/ katex.tar.gz katex.zip && cp -R dist katex && tar czf katex.tar.gz katex && zip -rq katex.zip katex && rimraf katex/

Fast math typesetting for the web.

Fast math typesetting for the web.

The MIT License (MIT)

Copyright (c) 2013-2018 Khan Academy

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

The MIT License (MIT)

Copyright (c) 2013-2019 Khan Academy and other contributors

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

Fast math typesetting for the web.

yarn dist && node update-sri.js package README.md contrib/*/README.md docs/*.md website/pages/index.html

Fast math typesetting for the web.

rimraf dist/ && mkdirp dist && cp README.md dist && rollup -c && webpack && node update-sri.js package dist/README.md

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

rimraf dist/ && mkdirp dist && cp README.md dist && rollup -c --failAfterWarnings && webpack && node update-sri.js package dist/README.md

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

stylelint src/katex.less static/main.css website/static/**/*.css

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

stylelint src/styles/katex.scss static/main.css website/static/**/*.css

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

yarn test:lint && yarn test:ts && yarn test:jest

NODE_ENV=test node -e "require('@babel/register')({extensions:['.js','.ts']}); require('./test/perf-test.ts')"

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

pnpm test:lint && pnpm test:ts && pnpm test:jest

pnpm dist && node update-sri.js package README.md contrib/*/README.md docs/*.md website/pages/index.html

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

Fast math typesetting for the web.

  <picture>
    <source media="(prefers-color-scheme: dark)" srcset="https://katex.org/img/katex-logo.svg">

  </picture>

[![npm](https://img.shields.io/npm/v/katex.svg)](https://www.npmjs.com/package/katex)
[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)
[![CI](https://github.com/KaTeX/KaTeX/workflows/CI/badge.svg?branch=main&event=push)](https://github.com/KaTeX/KaTeX/actions?query=workflow%3ACI)
[![codecov](https://codecov.io/gh/KaTeX/KaTeX/branch/main/graph/badge.svg)](https://codecov.io/gh/KaTeX/KaTeX)
[![Discussions](https://img.shields.io/badge/Discussions-join-brightgreen)](https://github.com/KaTeX/KaTeX/discussions)
[![jsDelivr](https://data.jsdelivr.com/v1/package/npm/katex/badge?style=rounded)](https://www.jsdelivr.com/package/npm/katex)
![katex.min.js size](https://img.badgesize.io/https://unpkg.com/katex/dist/katex.min.js?compression=gzip)
[![Gitpod ready-to-code](https://img.shields.io/badge/Gitpod-ready--to--code-blue?logo=gitpod)](https://gitpod.io/#https://github.com/KaTeX/KaTeX)
[![Financial Contributors on Open Collective](https://opencollective.com/katex/all/badge.svg?label=financial+contributors)](https://opencollective.com/katex)

KaTeX is a fast, easy-to-use JavaScript library for TeX math rendering on the web.

 * **Fast:** KaTeX renders its math synchronously and doesn't need to reflow the page. See how it compares to a competitor in [this speed test](https://www.intmath.com/cg5/katex-mathjax-comparison.php).
 * **Print quality:** KaTeX's layout is based on Donald Knuth's TeX, the gold standard for math typesetting.
 * **Self contained:** KaTeX has no dependencies and can easily be bundled with your website resources.
 * **Server side rendering:** KaTeX produces the same output regardless of browser or environment, so you can pre-render expressions using Node.js and send them as plain HTML.

KaTeX is compatible with all major browsers, including Chrome, Safari, Firefox, Opera, and Edge.

KaTeX supports much (but not all) of LaTeX and many LaTeX packages. See the [list of supported functions](https://katex.org/docs/supported.html).

Try out KaTeX [on the demo page](https://katex.org/#demo)!

## Getting started

### Starter template

```html
<!DOCTYPE html>
<!-- KaTeX requires the use of the HTML5 doctype. Without it, KaTeX may not render properly -->
<html>
  <head>
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.18.2/dist/katex.min.css" integrity="sha384-qArEAQvOPs1o7K1iAybhs66g8nYTXVt4VLOQ3abu+OMLJyPNfaH4Wpko0X2epHJ+" crossorigin="anonymous">

    <!-- The loading of KaTeX is deferred to speed up page rendering -->
    <script defer src="https://cdn.jsdelivr.net/npm/katex@0.18.2/dist/katex.min.js" integrity="sha384-IHT6Yddb0KLCzZaxQ/so1j3xkJ8R6hOkCR06ma9NDHGn0Z4ClKcGtQ6qqsflRPxR" crossorigin="anonymous"></script>

    <!-- To automatically render math in text elements, include the auto-render extension: -->
    <script defer src="https://cdn.jsdelivr.net/npm/katex@0.18.2/dist/contrib/auto-render.min.js" integrity="sha384-bjyGPfbij8/NDKJhSGZNP/khQVgtHUE5exjm4Ydllo42FwIgYsdLO2lXGmRBf5Mz" crossorigin="anonymous"
        onload="renderMathInElement(document.body);"></script>
  </head>
  ...
</html>
```

You can also [download KaTeX](https://github.com/KaTeX/KaTeX/releases) and host it yourself.

For details on how to configure auto-render extension, refer to [the documentation](https://katex.org/docs/autorender.html).

### API

Call `katex.render` to render a TeX expression directly into a DOM element.
For example:

```js
katex.render("c = \\pm\\sqrt{a^2 + b^2}", element, {
    throwOnError: false
});
```

Call `katex.renderToString` to generate an HTML string of the rendered math,
e.g., for server-side rendering.  For example:

```js
var html = katex.renderToString("c = \\pm\\sqrt{a^2 + b^2}", {
    throwOnError: false
});
// '<span class="katex">...</span>'
```

Make sure to include the CSS and font files in both cases.
If you are doing all rendering on the server, there is no need to include the
JavaScript on the client.

The examples above use the `throwOnError: false` option, which renders invalid
inputs as the TeX source code in red (by default), with the error message as
hover text.  For other available options, see the
[API documentation](https://katex.org/docs/api.html),
[options documentation](https://katex.org/docs/options.html), and
[handling errors documentation](https://katex.org/docs/error.html).

## Demo and Documentation

Learn more about using KaTeX [on the website](https://katex.org)!

## Contributors

### Code Contributors

This project exists thanks to all the people who contribute code. If you'd like to help, see [our guide to contributing code](CONTRIBUTING.md).

### Financial Contributors

Become a financial contributor and help us sustain our community.

#### Individuals

#### Organizations

Support this project with your organization. Your logo will show up here with a link to your website.

## License

KaTeX is licensed under the [MIT License](https://opensource.org/licenses/MIT).