# physics/physics-braket-expand

Expand braket to an explicit angle-bracket form with a middle bar.

https://texform.dev/rules/physics/physics-braket-expand

## Metadata

| Field | Value |
| --- | --- |
| Key | physics/physics-braket-expand |
| Level | faithful |
| Fidelity | render |
| Enabled by packages | physics |
| Profiles | Faithful, Corpus, Equiv |

## Rewrite patterns

### braket-two-arg-auto-sized

From:

```latex
\braket{#1}{#2}
```

To:

```latex
\left\langle #1 \middle\vert #2 \right\rangle
```

### braket-two-arg-fixed-size

From:

```latex
\braket*{#1}{#2}
```

To:

```latex
\langle #1 \vert #2 \rangle
```

### braket-single-arg-auto-sized

From:

```latex
\braket{#1}
```

To:

```latex
\left\langle #1 \middle\vert #1 \right\rangle
```

### braket-single-arg-fixed-size

From:

```latex
\braket*{#1}
```

To:

```latex
\langle #1 \vert #1 \rangle
```

## Examples

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

### braket orthonormality

Before:

```latex
\braket{\psi_n}{\psi_m}=\delta_{nm}
```

After this rule:

```latex
\left\langle \psi_n \middle\vert \psi_m \right\rangle=\delta_{nm}
```

Packages: base, physics.

Rendering verified with the declared packages.

### braket single argument self overlap

Before:

```latex
N=\braket{\psi}
```

After this rule:

```latex
N=\left\langle \psi \middle\vert \psi \right\rangle
```

Packages: base, physics.

Rendering verified with the declared packages.

### braket star fixed size

Before:

```latex
\braket*{u}{v}=0
```

After this rule:

```latex
\langle u \vert v \rangle=0
```

Packages: base, physics.

Rendering verified with the declared packages.

## Triggers

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

## Eliminates

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

## Produces

- [\\left](https://texform.dev/latex/commands/left)
- [\\middle](https://texform.dev/latex/commands/middle)
- [\\right](https://texform.dev/latex/commands/right)

## Same family

- [physics/expectation-expand](https://texform.dev/rules/physics/expectation-expand): Expand expectation-value helpers to explicit angle brackets.
- [physics/matrixel-expand](https://texform.dev/rules/physics/matrixel-expand): Expand matrix elements to explicit angle-bracket and bar fences.
- [physics/physics-bra-expand](https://texform.dev/rules/physics/physics-bra-expand): Expand bra to an explicit angle-bracket and bar fence form.
- [physics/physics-ket-expand](https://texform.dev/rules/physics/physics-ket-expand): Expand ket to an explicit bar and angle-bracket fence form.
- [physics/commutator-expand](https://texform.dev/rules/physics/commutator-expand): Expand commutators to explicit square-bracket fences.
- [physics/poisson-bracket-expand](https://texform.dev/rules/physics/poisson-bracket-expand): Expand poisson brackets to explicit brace fences.

## Notes

Covers physics single-argument and two-argument forms. In physics, the single-argument form repeats the argument on both sides; the braket package single-argument bar parser is package-specific and should remain separate from the physics transform.

## Disable this rule

```python
TransformEngine(profile="corpus", disable_rules=["physics/physics-braket-expand"])
```

```javascript
new TransformEngine({ profile: 'corpus', disableRules: ['physics/physics-braket-expand'] })
```

[Open in Playground](https://play.texform.dev/?input=%5Cbraket%7B%5Cpsi_n%7D%7B%5Cpsi_m%7D%3D%5Cdelta_%7Bnm%7D)
