Text and Shaping
Type with the font you are drawing. Shaping, kerning and bidirectional text all work while you edit.
| Status | Implemented |
|---|---|
| Stability | Stable |
Typing
Press the text tool and type. The glyphs of the open font lay out as a line of real text, shaped with the font’s own feature code and kerned. Click a glyph in that line to edit it in place, with its neighbours around it.
Edits show up in the line as you make them. The glyph you are editing uses its own live advance width, so spacing changes are visible in context immediately rather than after a reload.
View → Next Sample String rebuilds the buffer as sample text around the glyph you have open.
The Caret
| Left, Right | Move visually, not by storage order. Left means left on screen, whichever direction the run runs. |
|---|---|
| Up, Down | Move a line. |
| Home, End | The visual edges of the line. |
| Backspace, Delete | Delete, re-shaping Arabic around the caret. |
| Enter | Line break. |
Arabic re-shapes as you type and as you delete, so joining forms stay correct while the text changes under them.
The Shaping Inspector
The Shaping section of the right panel shows the buffer’s characters in logical order beside the glyphs they shaped into, linked by cluster.
Click a chip to cross-highlight its cluster, so you can see which characters produced which glyphs. Double-click a glyph chip to open that glyph for editing inside the shaped run.
This is the tool for the question “why did that come out wrong”. It shows you the mapping instead of leaving you to infer it from the result.
Script and Language
Shaping can be run under a chosen script and language rather than letting the engine infer them from the characters. Set them in the Shaping section.
It matters wherever a language changes the expected forms: Turkish,
Romanian, Dutch, Vietnamese, Farsi, Urdu, Sindhi, Kashmiri. It is also
how you check that a locl rule fires for the language it was written
for rather than assuming it does.
Connected Scripts
Cursive scripts need the joining forms of each letter: initial, medial, final, and isolated. Shaping engines find them by glyph name, so a misnamed glyph looks to them like a missing one.
Glyph → Check Joining measures rather than eyeballs. For every positional form it measures the connecting stroke at the joining edges. Initial and medial join at x = 0; medial and final join at the advance. It then finds the font’s common band and selects every form that misses it.
Naming the forms correctly also feeds feature generation: init,
medi, and fina substitutions are written from those names, and
entry and exit anchors become cursive attachment. See
Feature Code.
Kerning in Text
Drag the space between two glyphs to kern the pair. This is the working path, because you set the value while looking at the pair at size in a real word. See Spacing and Kerning.