# unified-latex-util-align ## What is this? Functions to parse an analyze "align" environments like `\begin{align}...\end{align}` or `\begin{bmatrix}...\end{bmatrix}`. ## When should I use this? If you need to process the contents of an align environment for, e.g., pretty-printing. ## Install ```bash npm install @unified-latex/unified-latex-util-align ``` This package contains both esm and commonjs exports. To explicitly access the esm export, import the `.js` file. To explicitly access the commonjs export, import the `.cjs` file. # Functions ## `createMatchers(rowSepMacros, colSep)` ```typescript function createMatchers( rowSepMacros: string[], colSep: string[] ): { isRowSep: Ast.TypeGuard; isColSep: (node: Ast.Node) => boolean; isWhitespace: (node: Ast.Node) => node is Ast.Whitespace; isSameLineComment: (node: Ast.Node) => boolean; isOwnLineComment: (node: Ast.Node) => boolean; }; ``` **Parameters** | Param | Type | | :----------- | :--------- | | rowSepMacros | `string[]` | | colSep | `string[]` | ## `parseAlignEnvironment(ast, colSep, rowSepMacros)` Parse the content of an align environment into an array of row objects. Each row object looks like { cells: [...], colSeps: [...], rowSep: ..., trailingComment: ... } `...` may be an ast node or `null`. ```typescript function parseAlignEnvironment( ast: Ast.Node[], colSep: string[], rowSepMacros: string[] ): Row[]; ``` **Parameters** | Param | Type | | :----------- | :----------- | | ast | `Ast.Node[]` | | colSep | `string[]` | | rowSepMacros | `string[]` |