# base/qquad-drop

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

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

## Metadata

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

## Rewrite patterns

### math-qquad

From:

```latex
\qquad
```

To:

```latex

```

### text-qquad-run

From:

```latex
\qquad\qquad
```

To:

```latex
 
```

## Examples

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

### Math qquad

Before:

```latex
A\qquad B
```

After this rule:

```latex
AB
```

Packages: base.

The rendered result has pixel differences from the input.

### Text qquad run

Before:

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

After this rule:

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

Packages: base, textmacros.

The rendered result has pixel differences from the input.

### Text qquad singleton

Before:

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

After this rule:

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

Packages: base, textmacros.

The rendered result has pixel differences from the input.

## Triggers

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

## Eliminates

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

## Upstream

- [base/double-quad-to-qquad](https://texform.dev/rules/base/double-quad-to-qquad): Merge two adjacent quads into one qquad for authoring normalization.

## 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/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 qquad target across base/math and textmacros/text active records. In math mode, remove every qquad, including singletons. In text mode, replace each maximal adjacent run of one or more qquad commands with one ordinary text space. Authoring-level double-quad-to-qquad may produce qquad; this rule eliminates that downstream target in Equiv, so applying or omitting the canonicalization does not change the final 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/qquad-drop"])
```

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

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