latex-ast-parser v1.1.0
latex-ast-parser
Generate an AST and beautify LaTeX code
Note: You should use unified-latex and the unifiedjs
infrastructure if you want to do serious AST manipulations.
This library is a legacy wrapper around some basic functions in unified-latex.
latex-parser parses a typical LaTeX document and then pretty-prints it. Though parsing LaTeX isn't possible since it effectively has no grammar, latex-parser makes some practical assumptions.
How it works
latex-parser uses PEG.js to define a PEG grammar for LaTeX.
LaTeX source is first parsed with this grammar. Then it is post-processed
based on knowledge of special macros. (e.g., some macros are known to take
an argument, like \mathbb. Such arguments are not detected in the PEG
processing stage).
Development
node.js and npm are used to package and bundle latex-parser.
npm install
npm run buildfor development, you can run
webpack --watchto automatically rebuild files as they change.
Playground
You use the Playground to view
how latex is parsed/pretty-printed. To run your own version, visit the playground repository,
and make a local clone. After running npm install, run npm link in your local latex-parser repository. Then, run npm link latex-ast-parser
in the local playground repository. This will mirror your development version of latex-parser in the playground.
Related Projects
unified-latexthe backend for this project.- Some code was borrowed from Michael Brade's
LaTeX.jsproject https://github.com/michael-brade/LaTeX.js - Prettier is a code-formatting library https://prettier.io/