# @unified-latex/unified-latex-util-environments

> Tools for manipulating unified-latex ASTs

Latest version **1.8.4** (published 2026-04-03) · MIT license · 0 weekly downloads

## Install

```sh
npm install @unified-latex/unified-latex-util-environments
pnpm add @unified-latex/unified-latex-util-environments
yarn add @unified-latex/unified-latex-util-environments
bun add @unified-latex/unified-latex-util-environments
```

## Health

**Score 60/100 (C)** — status: active.

Positive: has types; esm support; no vulnerabilities; high maintenance score.

Warnings: low downloads.

## Facts

| | |
|---|---|
| Version | 1.8.4 |
| Published | 2026-04-03 |
| First published | 2022-05-14 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 7 |
| Unpacked size | 22.6 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 127 |
| Author | Jason Siefken |
| Maintainers | siefkenj |
| Keywords | pegjs, latex, parser, prettier, unified-latex, unified |

## Links

- npm: https://www.npmjs.com/package/@unified-latex/unified-latex-util-environments
- Repository: https://github.com/siefkenj/unified-latex
- Homepage: https://github.com/siefkenj/unified-latex#readme
- Issues: https://github.com/siefkenj/unified-latex/issues
- npm.io page: https://npm.io/package/@unified-latex/unified-latex-util-environments

## Dependencies (7)

- [unified](https://npm.io/package/unified.md) ^10.1.2
- [@unified-latex/unified-latex-types](https://npm.io/package/@unified-latex/unified-latex-types.md) ^1.8.4
- [@unified-latex/unified-latex-util-match](https://npm.io/package/@unified-latex/unified-latex-util-match.md) ^1.8.4
- [@unified-latex/unified-latex-util-visit](https://npm.io/package/@unified-latex/unified-latex-util-visit.md) ^1.8.4
- [@unified-latex/unified-latex-util-arguments](https://npm.io/package/@unified-latex/unified-latex-util-arguments.md) ^1.8.4
- [@unified-latex/unified-latex-util-print-raw](https://npm.io/package/@unified-latex/unified-latex-util-print-raw.md) ^1.8.4
- [@unified-latex/unified-latex-util-render-info](https://npm.io/package/@unified-latex/unified-latex-util-render-info.md) ^1.8.4

## Alternatives

- [babylon](https://npm.io/package/babylon.md) — 5.1M weekly downloads
- [csscolorparser](https://npm.io/package/csscolorparser.md) — 3.7M weekly downloads
- [expr-eval-fork](https://npm.io/package/expr-eval-fork.md) — 1.5M weekly downloads
- [@leeoniya/ufuzzy](https://npm.io/package/@leeoniya/ufuzzy.md) — 247.7K weekly downloads
- [xml-parser](https://npm.io/package/xml-parser.md) — 78.4K weekly downloads

## Recent versions

- 1.8.4 (latest) — 2026-04-03
- 1.8.3 — 2025-06-16
- 1.8.2 — 2025-02-09
- 1.8.1 — 2024-10-21
- 1.8.0 — 2024-08-22
- 1.7.1 — 2024-03-19
- 1.7.0 — 2024-02-25
- 1.6.1 — 2024-02-18
- 1.6.0 — 2024-01-17
- 1.4.2 — 2023-09-30
- 1.4.0 — 2023-06-20
- 1.3.2 — 2023-04-26
- 1.3.1 — 2023-03-05
- 1.3.0 — 2023-02-06
- 1.2.2 — 2022-12-15
- … 11 more at https://npm.io/package/@unified-latex/unified-latex-util-environments/versions

## README

<!-- DO NOT MODIFY -->
<!-- This file was autogenerated by build-docs.ts -->
<!-- Edit the docstring in index.ts and regenerate -->
<!-- rather than editing this file directly. -->
# unified-latex-util-environments

## What is this?

Functions to report on/manipulate environments in a `unified-latex` Abstract Syntax Tree (AST).

## When should I use this?

If you are working on the internals of `unified-latex-util-parse` or need to make a custom parser
that treats environments differently.

## Install

```bash
npm install @unified-latex/unified-latex-util-environments
```

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.

# Plugins

## `unifiedLatexProcessEnvironments`

Unified plugin to process environment content and attach arguments.

### Usage

`unified().use(unifiedLatexProcessEnvironments[, options])`

#### options

```typescript
{ environments: EnvInfoRecord; }
```

### Type

`Plugin<{ environments: EnvInfoRecord; }[], Ast.Root, Ast.Root>`

```typescript
function unifiedLatexProcessEnvironments(options: {
  environments: EnvInfoRecord;
}): (tree: Ast.Root) => void;
```

# Functions

## `processEnvironment(envNode, envInfo)`

Performs any needed processing on the environment (as specified by `envInfo`)
including attaching arguments and possibly manipulating the environment's body.

```typescript
function processEnvironment(
  envNode: Ast.Environment,
  envInfo: Ast.EnvInfo
): void;
```

**Parameters**

| Param   | Type              |
| :------ | :---------------- |
| envNode | `Ast.Environment` |
| envInfo | `Ast.EnvInfo`     |

## `processEnvironments(tree, environments)`

Recursively search for and process the specified environments. Arguments are
consumed according to the `signature` specified. The body is processed
with the specified `processContent` function (if given). Any specified `renderInfo`
is attached to the environment node.

```typescript
function processEnvironments(
  tree: Ast.Ast,
  environments: Ast.EnvInfoRecord
): void;
```

**Parameters**

| Param        | Type                |
| :----------- | :------------------ |
| tree         | `Ast.Ast`           |
| environments | `Ast.EnvInfoRecord` |

---
_Source: https://npm.io/package/@unified-latex/unified-latex-util-environments · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
