# base/quad-drop

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

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

## Metadata

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

## Rewrite patterns

### math-quad

From:

```latex
\quad
```

To:

```latex

```

### text-quad-run

From:

```latex
\quad\quad
```

To:

```latex
 
```

## Examples

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

### Math quad

Before:

```latex
A\quad B
```

After this rule:

```latex
AB
```

Packages: base.

The rendered result has pixel differences from the input.

### Text quad run

Before:

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

After this rule:

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

Packages: base, textmacros.

The rendered result has pixel differences from the input.

### Text quad singleton

Before:

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

After this rule:

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

Packages: base, textmacros.

The rendered result has pixel differences from the input.

## Triggers

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

## Eliminates

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

## Upstream

- [base/double-enspace-to-quad](https://texform.dev/rules/base/double-enspace-to-quad): Rewrite two adjacent enspaces to one exact-width quad.

## 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/enspace-drop](https://texform.dev/rules/base/enspace-drop): Drop enspace in math mode and collapse each text-mode enspace run to one ordinary space.
- [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/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 quad target across base/math and textmacros/text active records. In math mode, remove every quad, including singletons. In text mode, replace each maximal adjacent run of one or more quad commands with one ordinary text space. Authoring-level double-enspace-to-quad may produce quad; this rule eliminates that downstream target in Equiv. Authoring-level double-quad-to-qquad may instead consume quad pairs; qquad-drop owns that downstream target, so both paths reach the same Equiv normal form. Do not cross groups, arguments, scripts, environment cells, slots, modes, or non-Spacer nodes.

## Disable this rule

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

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

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