- Notifications
You must be signed in to change notification settings - Fork7
A LaTeX parser, a BibTeX parser, and utilities.
License
NotificationsYou must be signed in to change notification settings
tamuratak/latex-utensils
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
A LaTeX parser, a BibTeX parser, and utilities.
The LaTeX parser is based on the following libraries:
You can see LaTeX AST calling theluparse command. Without the option-i, you can obtain the output as JSON format.
$ cat sample/t.tex\documentclass{article}\usepackage{amsmath}\begin{document}ab cd $x + y$ e\begin{align} i + j\end{align}\end{document}$ luparse --color -i sample/t.tex{ kind: 'ast.root', content: [ { kind: 'command', name: 'documentclass', args: [ { kind: 'arg.group', content: [ { kind: 'text.string', content: 'article' } ] } ] }, { kind: 'softbreak' }, { kind: 'command', name: 'usepackage', args: [ { kind: 'arg.group', content: [ { kind: 'text.string', content: 'amsmath' } ] } ] }, { kind: 'env', name: 'document', args: [], content: [ { kind: 'text.string', content: 'ab' }, { kind: 'space' }, { kind: 'text.string', content: 'c' }, { kind: 'softbreak' }, { kind: 'text.string', content: 'd' }, { kind: 'space' }, { kind: 'inlineMath', content: [ { kind: 'math.character', content: 'x' }, { kind: 'math.character', content: '+' }, { kind: 'math.character', content: 'y' } ] }, { kind: 'space' }, { kind: 'text.string', content: 'e' }, { kind: 'env.math.align', name: 'align', args: [], content: [ { kind: 'math.character', content: 'i' }, { kind: 'math.character', content: '+' }, { kind: 'math.character', content: 'j' } ] } ] } ], comment: undefined}$ luparse --helpUsage: luparse [options]Options: -i, --inspect use util.inspect to output AST --color turn on the color option of util.inspect -l, --location enable location -c, --comment enable comment -s, --start-rule [rule] set start rule. default is "Root". -h, --help output usage informationA typical usage is callinglatexParser.parse to parse LaTeX documents.
import{latexParser}from'latex-utensils';consttexString='a $x+y$ b';constast=latexParser.parse(texString);console.log(JSON.stringify(ast,undefined,' '));
latexParser.parse returns anAstRoot object ifstartRule is'Root',
typeAstRoot={kind:'ast.root';content:Node[];comment?:Comment[];}
To lint changes, run
npm run lintTo build, run
npm run buildTo test, run
npm run testAbout
A LaTeX parser, a BibTeX parser, and utilities.
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Uh oh!
There was an error while loading.Please reload this page.
Contributors2
Uh oh!
There was an error while loading.Please reload this page.