GPOS Editor α

Bulk Apply: Pattern Search

Source List: All Collision Near Kerning Maybe Pattern Edited
(searches the Source List above; results go to the Pattern List)
Word:    
Pattern:
(Mouse over for hints)

Prefix

`!` invert compare; `+` must exist; `^` first glyph; `$` last glyph; `*` adjust glyph (implies `+`) - no space before glyph name!

Delta

Use form `GLYPH<ID:VAL,ID:VAL>`
- where ID=dx,dy,ax,ay - to find delta values.
- where VAL is a value or `!` = NOT, `*` = anything, `+` = any positive, `-` = any negative.
- where VAL can be a range `80..120` (inclusive), `..120` (up to 120 inclusive), `80..` (above 80 inclusive)
- VAL can be prefixed with `@` to compare the absolute position (harfbuzz base + delta) instead of just the delta.
- VAL can be prefixed with `b` to compare the absolute position relative to a mark's base glyph (0 if not a mark, so behaves like `@`).
- VAL can be prefixed with `g` to compare the gap between the mark's and its base's bounding boxes on that axis (0 if they overlap, positive if the mark is beyond the base's edge, negative if before it; 0 if not a mark).
e.g. `ALIFf1<dx:-60 ax:100>`
e.g. `sda<dx:* dy:->`
e.g. `sda<dy:@..-250>` - absolute dy less than -250
e.g. `sda<dy:b0..>` - mark sits at or above its base's dy
e.g. `sda<dy:g50..>` - mark's bbox sits 50+ units above its base's bbox

RegExp

Use `/.../` for regular expressions.
e.g. `/.+/` to find any glyph.

Any mark

Use `~` for any mark glyph (the font's mark class), or `!~` for any glyph that is not a mark.
e.g. `*~<dy:-40>` or `BEi1 ~`
Parameters: Min Count:   Max Gap:  
Results:
Hover over index or word to show SVG. Hold SHIFT to show before.

Pattern List Operations




Apply Mined Rules

No rules file loaded

Pattern Bins

Duplicate Glyph Sequences

Not scanned yet
Cause:

Load Files

1. Word List Drag Word List .TXT file
2. Font Drag Font .TTF file
3. Force Field JSON Drag .JSON file
4. GPOSE file (optional) Drag .GPOSE file
5. Process

2026-10-27 1630