92 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			92 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|  | # [<img src="https://katex.org/img/katex-logo-black.svg" width="130" alt="KaTeX">](https://katex.org/)
 | ||
|  | [](https://www.npmjs.com/package/katex) | ||
|  | [](https://circleci.com/gh/KaTeX/KaTeX) | ||
|  | [](https://codecov.io/gh/KaTeX/KaTeX) | ||
|  | [](https://gitter.im/KaTeX/KaTeX?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) | ||
|  | [](https://dependabot.com) | ||
|  | [](https://www.jsdelivr.com/package/npm/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](http://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, Edge, and IE 11. | ||
|  | 
 | ||
|  | 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.12.0/dist/katex.min.css" integrity="sha384-AfEj0r4/OFrOo5t7NnNe46zW/tFgW6x/bCJG8FqQCEo3+Aro6EYUG4+cU+KJWu/X" crossorigin="anonymous"> | ||
|  | 
 | ||
|  |     <!-- The loading of KaTeX is deferred to speed up page rendering --> | ||
|  |     <script defer src="https://cdn.jsdelivr.net/npm/katex@0.12.0/dist/katex.min.js" integrity="sha384-g7c+Jr9ZivxKLnZTDUhnkOnsh30B4H0rpLUpJ4jAIKs4fnJI+sEnkvrMWph2EDg4" 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.12.0/dist/contrib/auto-render.min.js" integrity="sha384-mll67QQFJfxn0IYznZYonOWZ644AWYC+Pt2cHqMaRhXVrursRwvLnLaebdGIlYNa" 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)! | ||
|  | 
 | ||
|  | ## Contributing
 | ||
|  | 
 | ||
|  | See [CONTRIBUTING.md](CONTRIBUTING.md) | ||
|  | 
 | ||
|  | ## License
 | ||
|  | 
 | ||
|  | KaTeX is licensed under the [MIT License](http://opensource.org/licenses/MIT). |