Back to skills
SKILL.md
Math Unicode
ASecurityThis skill must be used whenever a response needs mathematical notation — equations, filters, set-builder notation, statistics, calculus, linear algebra, logic, ratios, drops, or counts. Load it before composing, including when the user explicitly mentions math-unicode. Emit terminal-native Unicode inline, never raw LaTeX delimiters or commands.
- 3 stars
- 0 votes
- 0 copies
- 10 views
- Added September 12, 2026
Works with
Security analysis
100/100npx -y skills add thedixitjain/the-mega-skill-library --skill math-unicode --agent claude-codeAre you the author of Math Unicode?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/thedixitjain-math-unicode)---
name: math-unicode
description: "This skill must be used whenever a response needs mathematical notation — equations, filters, set-builder notation, statistics, calculus, linear algebra, logic, ratios, drops, or counts. Load it before composing, including when the user explicitly mentions math-unicode. Emit terminal-native Unicode inline, never raw LaTeX delimiters or commands."
category: data-science-and-ml
source_repo: hashgraph-online/awesome-codex-plugins
source_path: "plugins/vladimirrott/claude-math/skills/math-unicode/SKILL.md"
source_url: https://github.com/hashgraph-online/awesome-codex-plugins/blob/HEAD/plugins/vladimirrott/claude-math/skills/math-unicode/SKILL.md
---
# math-unicode
When emitting mathematical notation in a terminal coding agent (Claude Code, Codex CLI, or similar), **always use Unicode glyphs inline** — never wrap math in `$…$`, `\(...\)`, or `$$...$$`. These terminals do not render LaTeX; raw delimiters appear as plain dollar signs and reduce readability.
## When this skill applies
Triggers (use Unicode math):
- Equations, formulas, derivations
- Filter conditions, set-builder notation
- Statistics: probabilities, expectations, distributions
- Calculus, linear algebra, logic
- Counts, ratios, fractions, drops where precision matters
Skip (do not transform):
- The user explicitly asks for LaTeX or a `.tex` file
- Math inside fenced code blocks (preserve source syntax)
- Strings being passed to a system that consumes LaTeX (KaTeX MCP, etc.)
## Glyph cheatsheet
### Greek
```
lowercase α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω
uppercase Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω
variants ϵ ϑ ϕ ϖ ϱ ς
```
### Operators
```
arithmetic + − × ÷ ± ∓ · ∗ ⋅ ∘ ⊕ ⊖ ⊗ ⊘ ⊙
big ∑ ∏ ∐ ∫ ∮ ∬ ∭ ⨁ ⨂ ⨅ ⨆
roots √ ∛ ∜
calculus ∂ ∇ Δ ∆ ⅆ ⅇ
constants ∞ ∅ ℵ ℶ
```
### Relations
```
equality = ≠ ≈ ≅ ≡ ≜ ≝ ≐ ∝ ∼ ≃ ≢
order < > ≤ ≥ ≪ ≫ ⋘ ⋙ ⊴ ⊵
set ∈ ∉ ∋ ∌ ⊂ ⊃ ⊆ ⊇ ⊊ ⊋ ⊏ ⊐ ⊑ ⊒
set ops ∪ ∩ ⊎ ⊔ ⊓ ∖
```
### Logic & arrows
```
logic ∧ ∨ ¬ ⊕ ⊻ ⊼ ⊽ ⊢ ⊨ ⊥ ⊤
quantifiers ∀ ∃ ∄ ∴ ∵
arrows → ← ↔ ⇒ ⇐ ⇔ ↦ ↪ ↩ ↑ ↓ ⇑ ⇓ ⟶ ⟵ ⟷ ⟹ ⟸ ⟺ ⊸
```
### Number sets & brackets
```
sets ℕ ℤ ℚ ℝ ℂ ℙ ℍ 𝔽
brackets ⟨ ⟩ ⌈ ⌉ ⌊ ⌋ ‖ ‖ 〈 〉
```
### Sub/superscript glyph blocks
```
superscript ⁰ ¹ ² ³ ⁴ ⁵ ⁶ ⁷ ⁸ ⁹ ⁺ ⁻ ⁼ ⁽ ⁾ ⁱ ⁿ ᵃ ᵇ ᶜ ᵈ ᵉ ᶠ ᵍ ʰ ʲ ᵏ ˡ ᵐ ᵒ ᵖ ʳ ˢ ᵗ ᵘ ᵛ ʷ ˣ ʸ ᶻ
subscript ₀ ₁ ₂ ₃ ₄ ₅ ₆ ₇ ₈ ₉ ₊ ₋ ₌ ₍ ₎ ₐ ₑ ₕ ᵢ ⱼ ₖ ₗ ₘ ₙ ₒ ₚ ᵣ ₛ ₜ ᵤ ᵥ ₓ
```
### Common LaTeX → Unicode
| LaTeX | Unicode | LaTeX | Unicode | LaTeX | Unicode |
|---|---|---|---|---|---|
| `\alpha` | α | `\sum` | ∑ | `\in` | ∈ |
| `\beta` | β | `\prod` | ∏ | `\notin` | ∉ |
| `\gamma` | γ | `\int` | ∫ | `\subset` | ⊂ |
| `\delta` | δ | `\partial` | ∂ | `\subseteq` | ⊆ |
| `\epsilon` | ε | `\nabla` | ∇ | `\cup` | ∪ |
| `\theta` | θ | `\infty` | ∞ | `\cap` | ∩ |
| `\lambda` | λ | `\emptyset` | ∅ | `\setminus` | ∖ |
| `\mu` | μ | `\leq` | ≤ | `\wedge` | ∧ |
| `\pi` | π | `\geq` | ≥ | `\vee` | ∨ |
| `\sigma` | σ | `\neq` | ≠ | `\neg` | ¬ |
| `\phi` | φ | `\approx` | ≈ | `\Rightarrow` | ⇒ |
| `\omega` | ω | `\equiv` | ≡ | `\Leftrightarrow` | ⇔ |
| `\sqrt` | √ | `\propto` | ∝ | `\forall` | ∀ |
| `\pm` | ± | `\cdot` | · | `\exists` | ∃ |
| `\times` | × | `\to` | → | `\mathbb{R}` | ℝ |
## Style rules
### Rule 1 — Inline math: Unicode, no delimiters
Bad: `The filter $f(T; m) = \{(s,r) : n_{s,r} \geq m\}$ produces the cohort.`
Good: `The filter f(T; m) = { (s,r) : n_{s,r} ≥ m } produces the cohort.`
### Rule 2 — Block math: own line(s), still no delimiters
Bad:
$$|Q| / |T| = 5238 / 31075 \approx 16.9\%$$
Good:
|Q| / |T| = 5 238 / 31 075 ≈ 16.9 %
### Rule 3 — Subscripts
- Single Unicode-renderable index: prefer the glyph (x₁, x₂, xᵢ, xⱼ, xₙ).
- Single index with no subscript glyph: use a bare underscore — `I_ν`, `∂_μ`.
- Multi-character or grouped subscript: use `_{...}` syntax — the underscore
reads unambiguously as a subscript and stays more legible than bracket-style
indexing:
- `n_{s,r}` ← (s,r) has no Unicode subscript form
- `x_max`, `σ_obs` ← multi-letter
- Never mix: don't write `x_₁` or `x_{1}` when `x₁` works.
### Rule 4 — Superscripts (powers)
- Simple / Unicode-mappable exponent: prefer the glyph — x², x³, xⁿ, eˣ, A⁻¹,
and the transpose xᵀ / vᵀ.
- Single exponent with no glyph: use a bare caret — `x^ν`, `(z/2)^a`.
- Multi-character or expression exponent: use **caret + parentheses**, never
`^{...}` — `x^(k+1)`, `x^(i)`, `e^(iπ)`. A bare `x^{T}` / `x^{(i)}` leaks
LaTeX source; write `xᵀ` (single glyph) or `x^(i)` (parenthesized).
### Rule 5 — Big operators with selectors
Unicode operator + a **bracketed inline selector** — never `_{...}^{...}`. Use
`..` for a numeric/expression range, `∈` for set membership, `→` for a limit
target, and an equation/condition when that is the natural selector:
```
∑[i=1..n] aᵢ ∏[k ∈ K] pₖ ∫[a..b] f(x) dx
∫[−∞..∞] e^(−x²) dx ⋃[i=1..n] Aᵢ lim[x→0] f(x)
∑[m₁+...+mₙ=N] c_m ∮[C] f(z) dz Res[z=z₀] f(z)
```
Use ordinary letters for named functions: `Γ`, `B`, `erf`, `det`, `tr`, `Re`,
`Im`, `exp`, `log`, `sin`, `cos`, `argmin`. Do not emit `\operatorname`.
For a left-scripted named function, use available glyphs such as `₂F₁(a,b;c;z)`;
when an index cannot be expressed as one glyph, use readable ASCII notation such
as `_{p}F_q` rather than inventing a substitute.
### Rule 6 — Fractions
- Inline: `a/b`, `(a + b) / (c + d)`
- Block (only when it aids clarity):
```
a + b
─────────────
c² + d²
```
### Rule 7 — Matrices / vectors
ASCII art with corner glyphs:
```
A = ⎡ a b ⎤ v = ( v₁ , v₂ , v₃ )ᵀ
⎣ c d ⎦
```
Declare variable types in prose instead of faking bold or italic: “Here z and n
are vectors, and Ω is a matrix.”
### Rule 8 — Tensor indices
Tensor indices are indices, not powers. Keep non-mappable tensor indices in
bare ASCII form and group only when the index has multiple characters:
```
R^ρ_{σμν} ∂_μ Γ^ρ_{νσ}
```
### Rule 9 — Piecewise forms and aligned derivations
Use the box-drawing brace glyphs for a short piecewise definition; keep equals
signs in the same column for a derivation. If those brace glyphs are absent in a
reader's font, use a semicolon-separated sentence instead.
```
f(x) =
⎧ x² if x ≥ 0
⎩ −x if x < 0
aₙ = bₙ + cₙ
= dₙ
```
### Rule 10 — Sets and conditions
Prefer set-builder with `|` or `:`:
```
Q = { (s,r) ∈ T : n_{s,r} ≥ 18 ∧ p⁰_{s,r} < 0.9 }
```
### Rule 11 — Numbers
- Thousands: thin space (` `, U+2009) — `5 238`, `34 601` — not commas (locale ambiguous).
- Decimal: dot — `16.9 %`.
- Percent: space before `%` — `16.9 %` (typographic convention; readable).
- Approximations: ≈, ∼. Order of magnitude: ~. Confidence: `x = 5.2 ± 0.3`.
### Rule 12 — When Unicode hurts, fall back explicitly
If a glyph chain becomes denser than the LaTeX it replaces, switch to readable ASCII pseudo-LaTeX and annotate it. Example:
```
H(p) = − ∑[x ∈ X] p(x) · log p(x) (∑ = sum over the support X)
```
The reader's comprehension is the only metric. Prefer common, well-supported
glyphs. Do not use combining marks or obscure modifier letters just to force a
super- or subscript; use readable bare `^x` / `_x` notation instead. Choose
whichever form is clearest, then stay consistent within a passage.
### Rule 13 — Plain letters for variables; never style with math-alphanumeric codepoints
Write variable names and identifiers with ordinary letters (x, A, Var, RSS). Do **not** reach into the Unicode *Mathematical Alphanumeric Symbols* block (𝐀 bold, 𝐴 italic, 𝓐 script, 𝔸 styled double-struck) to *style* ordinary letters. Those codepoints garble on copy/paste, terminal search, and screen readers — the same failure Claude Code hit in issue #61558.
Exception: the standard, semantically meaningful blackboard-bold sets and operators are correct notation, not styling — keep using ℕ ℤ ℚ ℝ ℂ ℙ 𝔽 (number sets) and 𝔼 (expectation). Use those; don't hand-style anything else.
## Quick reference — common forms
```
Mean / std μ ± σ x̄ ± s
Probability P(A | B) ℙ(A ∩ B) = ℙ(A) · ℙ(B | A)
Expectation 𝔼[X] = ∫ x · f(x) dx
Variance Var(X) = 𝔼[X²] − 𝔼[X]²
Gradient ∇f = ( ∂f/∂x₁ , ... , ∂f/∂xₙ )
Norm ‖x‖₂ = √(∑[i=1..n] xᵢ²)
Big-O T(n) = O(n log n)
Limit lim[n → ∞] aₙ = L
Sum bounds ∑[i=1..n] i = n(n+1)/2
Quantile q_α = inf{ x : F(x) ≥ α }
```
## Golden corpus — difficult terminal-native forms
These examples are deliberately chosen to exercise non-mappable indices,
constrained sums, tensors, special functions, contours, and multiline output.
They are normalized terminal forms of standard formulas (including DLMF
§10.32.E2, §15.6.E1, §19.19.E1, and §21.2.E1).
```
I_ν(z) = (z/2)^ν / (√π Γ(ν+½)) ∫[0..π] e^(±z cos θ)(sin θ)^(2ν) dθ
F(a,b;c;z) = 1 / (Γ(b)Γ(c−b)) ∫[0..1] t^(b−1)(1−t)^(c−b−1) / (1−zt)^a dt
T_N(b,z) = ∑[m₁+...+mₙ=N] ((b₁)_{m₁} ··· (bₙ)_{mₙ}) / (m₁! ··· mₙ!) · z₁^(m₁) ··· zₙ^(mₙ)
θ(z | Ω) = ∑[n ∈ ℤ^g] exp(2π i(½ n · Ω · n + n · z))
Here z and n are vectors, and Ω is a matrix.
R^ρ_{σμν} = ∂_μ Γ^ρ_{νσ} − ∂_ν Γ^ρ_{μσ} + Γ^ρ_{μλ} Γ^λ_{νσ} − Γ^ρ_{νλ} Γ^λ_{μσ}
f^(n)(z₀) = n! / (2π i) ∮[C] f(z) / (z−z₀)^(n+1) dz
∂u/∂t + (u · ∇)u = −∇p + νΔu + f, ∇·u = 0
p(x) = exp(−½ (x−μ)ᵀΣ⁻¹(x−μ)) / √((2π)ᵈ det Σ)
F(ω) = ∫[−∞..∞] f(t)e^(−iωt) dt
f(x) =
⎧ x² if x ≥ 0
⎩ −x if x < 0
```
## Anti-patterns — never emit these in the terminal (Claude Code / Codex)
```
✗ $f(x) = \sum_{i=1}^{n} x_i$
✗ \( a^2 + b^2 = c^2 \)
✗ $$\int_0^\infty e^{-x^2} dx = \frac{\sqrt{\pi}}{2}$$
✗ \[ |Q|/|T| \approx 16.9\% \]
✗ ∑_{i=1}^{n} or ∫_a^b or x^{T} (stacked bounds / brace exponent leak source even without $…$ — write ∑[i=1..n], ∫[a..b], xᵀ)
✗ Let 𝑉𝑎𝑟 = … or matrix 𝐀 = … (math-alphanumeric styling; garbles on copy/search — write Var, A)
```
If asked to produce raw LaTeX (e.g. for a `.tex` file or a KaTeX-rendering tool downstream), do so — and call it out explicitly: *"Raw LaTeX as requested; this will not render in the terminal."*
---
**Source:** [`hashgraph-online/awesome-codex-plugins`](https://github.com/hashgraph-online/awesome-codex-plugins) → `plugins/vladimirrott/claude-math/skills/math-unicode/SKILL.md`
Attribution
Comments
Loading comments…
Newsletter
Get the weekly list of safe new skills, and the ones we pulled.