# base/enspace-drop

Drop enspace in math mode and collapse each text-mode enspace run to one ordinary space.

https://texform.dev/rules/base/enspace-drop

## Metadata

| Field | Value |
| --- | --- |
| Key | base/enspace-drop |
| Level | equiv |
| Fidelity | reading |
| Enabled by packages | base |
| Profiles | Equiv |

## Rewrite patterns

### math-enspace

From:

```latex
\enspace
```

To:

```latex

```

### text-enspace-run

From:

```latex
\enspace\enspace
```

To:

```latex
 
```

## Examples

Examples show the rule in isolation, not a complete normalization profile.

### Math enspace

Before:

```latex
A\enspace B
```

After this rule:

```latex
AB
```

Packages: base.

The rendered result has pixel differences from the input.

### Text enspace run

Before:

```latex
\text{A\enspace\enspace B}
```

After this rule:

```latex
\text{A B}
```

Packages: base, textmacros.

The rendered result has pixel differences from the input.

### Text enspace singleton

Before:

```latex
\text{A\enspace B}
```

After this rule:

```latex
\text{A B}
```

Packages: base, textmacros.

The rendered result has pixel differences from the input.

## Triggers

- [\\enspace](https://texform.dev/latex/commands/enspace)

## Eliminates

- [\\enspace](https://texform.dev/latex/commands/enspace)

## Upstream

- [base/small-spacer-merge-to-enspace](https://texform.dev/rules/base/small-spacer-merge-to-enspace): Merge exact half-em small-spacer chunks into enspace in one pass.

## Same family

- [ams/nobreakspace-to-tilde](https://texform.dev/rules/ams/nobreakspace-to-tilde): Collapse nobreakspace to the canonical nonbreaking space token.
- [base/break-to-linebreak](https://texform.dev/rules/base/break-to-linebreak): Collapse break to the explicit linebreak command.
- [base/newline-to-linebreak](https://texform.dev/rules/base/newline-to-linebreak): Collapse newline to the explicit linebreak command.
- [base/control-space-to-tilde](https://texform.dev/rules/base/control-space-to-tilde): Rewrite math-mode control space to the canonical active space token.
- [base/gt-space-to-colon-space](https://texform.dev/rules/base/gt-space-to-colon-space): Collapse \> to the canonical medium math space command \:
- [base/hfil-to-hfill](https://texform.dev/rules/base/hfil-to-hfill): Collapse hfil to the canonical hfill command under MathJax spacing semantics.
- [base/hfilll-to-hfill](https://texform.dev/rules/base/hfilll-to-hfill): Collapse hfilll to the canonical hfill command.
- [base/hskip-to-hspace](https://texform.dev/rules/base/hskip-to-hspace): Collapse hskip to the explicit hspace command.
- [base/negthinspace-to-neg-comma-space](https://texform.dev/rules/base/negthinspace-to-neg-comma-space): Collapse negthinspace to the explicit negative thin math space command.
- [base/space-to-tilde](https://texform.dev/rules/base/space-to-tilde): Collapse space to the explicit nonbreaking space token.
- [base/thinspace-to-comma-space](https://texform.dev/rules/base/thinspace-to-comma-space): Collapse thinspace to the explicit thin math space command.
- [base/double-enspace-to-quad](https://texform.dev/rules/base/double-enspace-to-quad): Rewrite two adjacent enspaces to one exact-width quad.
- [base/double-quad-to-qquad](https://texform.dev/rules/base/double-quad-to-qquad): Merge two adjacent quads into one qquad for authoring normalization.
- [base/small-spacer-merge-to-enspace](https://texform.dev/rules/base/small-spacer-merge-to-enspace): Merge exact half-em small-spacer chunks into enspace in one pass.
- [base/allowbreak-drop](https://texform.dev/rules/base/allowbreak-drop): Drop allowbreak as a pure linebreak hint during cleanup-oriented normalization.
- [base/badbreak-drop](https://texform.dev/rules/base/badbreak-drop): Drop badbreak as a pure linebreak hint during cleanup-oriented normalization.
- [base/goodbreak-drop](https://texform.dev/rules/base/goodbreak-drop): Drop goodbreak as a pure linebreak hint during cleanup-oriented normalization.
- [base/mathstrut-drop](https://texform.dev/rules/base/mathstrut-drop): Drop the invisible mathstrut layout helper in cleanup-oriented normalization.
- [base/nobreak-drop](https://texform.dev/rules/base/nobreak-drop): Drop nobreak as a pure linebreak hint during cleanup-oriented normalization.
- [base/strut-drop](https://texform.dev/rules/base/strut-drop): Drop the fixed empty strut node in cleanup-oriented normalization.
- [base/qquad-drop](https://texform.dev/rules/base/qquad-drop): Drop qquad in math mode and collapse each text-mode qquad run to one ordinary space.
- [base/quad-drop](https://texform.dev/rules/base/quad-drop): Drop quad in math mode and collapse each text-mode quad run to one ordinary space.
- [base/mkern-to-mspace](https://texform.dev/rules/base/mkern-to-mspace): Collapse mkern to the explicit mspace command.
- [base/mskip-to-mspace](https://texform.dev/rules/base/mskip-to-mspace): Collapse mskip to the explicit mspace command.

## Notes

Owns the shared enspace target across base/math and textmacros/text active records. In math mode, remove every enspace, including singletons. In text mode, replace each maximal adjacent run of one or more enspace commands with one ordinary text space. Actual text nodes split text-mode runs. Do not cross groups, arguments, scripts, environment cells, slots, modes, or non-Spacer nodes. Authoring-level fixed-spacing canonicalizations may produce quad from enspace pairs; quad-drop owns that downstream Equiv target, so the final Equiv normal form is independent of whether double-enspace-to-quad runs first.

## Disable this rule

```python
TransformEngine(profile="corpus", disable_rules=["base/enspace-drop"])
```

```javascript
new TransformEngine({ profile: 'corpus', disableRules: ['base/enspace-drop'] })
```

[Open in Playground](https://play.texform.dev/?input=A%5Censpace+B)
