.ai import: legacy type keeps its writing direction, Tate-chu-yoko runs and upright Roman characters

The legacy reader skipped `TV`, `Tv`, `Ty` and `TY` of section 15.3.4 of
the version 7 file format specification, so type set with `1 TV` opened
horizontal.

- `TV` sets a text object's writing direction. VectorCraft keeps one
  direction for each text object, the one in force at its first
  character, with a warning when a later character has another.
- `Ty` marks a Kumi block as a Tate-chu-yoko run, which is VectorCraft's
  own mapping, and `TY` does the same in horizontal type. A `TY` block in
  vertical type opens unmarked. Two blocks with nothing between them open
  as one block.
- `Tv` sets Standard Vertical Roman Alignment.

All four are modal, and an operand other than 0 or 1 leaves the value as
it was.

Docs: docs/file-format-parity.md.
This commit is contained in:
dotCooCoo
2026-11-07 09:17:53 +07:00
committed by bflatastic
parent 1c2a8c7f7a
commit fe9d62e05e
32 changed files with 209 additions and 5 deletions
+8
View File
@@ -132,6 +132,14 @@ private editing data. VectorCraft:
(`TE`) for the codes they leave out unless the `TZ` sets `useDefault` to 0.
Its area type with several linked areas opens as threaded frames, one for each area with its own matrix,
and the story flows through them.
Its writing direction (`TV`) opens as vertical type. VectorCraft keeps one direction for each text object, the
one in force at its first character, with a warning when a later character has another. Vertical point type
starts at the origin of `Tp`'s matrix on the column's center line, which is VectorCraft's own placement. Its Kumi
blocks (`Ty`, and `TY` in horizontal type) open as Tate-chu-yoko runs, which is VectorCraft's own mapping. A `TY`
block in vertical type opens unmarked, and two blocks with nothing between them open as one block. Its upright
Roman characters (`Tv`) open with Standard Vertical Roman Alignment. VectorCraft's own layout rule also sets a
run of two or three half-width digits across the column in vertical type, inside or outside a block and with
either `Tv` value.
Legacy `.ai` type set in rendering modes 4 to 7 (`Tr`, text used as a mask) is a clipping path of its
clipping group, as a `W` path is, and the mode lasts into later text objects. Type in linked areas, in
wraparound text or in a compound path doesn't clip, with a warning. A `Tr` operand that is not a whole number