(Update 14-Oct-2021). — A recent discussion with Manan Joshi led me to rephrase a few statements regarding the inner coordinate space of a PageItem. Manan observed that “for text frames the inner coordinate space seems to have its origin at the center of the frame. When resolving with respect to pasteboard or spread, the matrix obtained is of the form [1, 0, 0, 1, tx, ty].”

As a matter of fact, a TextFrame has its affine map and geometry initialized in a way that makes the inner space origin coincide with the center of its bounding box. That's clearly an exception. It wasn't mentioned in the PDF until now (we only documented the case in the ISFR series—see 1st note.) The exception is even more obvious in IDML format. Inspecting the ItemTransform attribute of a TextFrame, we see that translation arguments somehow preset the origin within the object bounding box. Then the PathGeometry structure defines the anchor points with respect to that location. By contrast, the ItemTransform of a SplineItem (e.g, a rectangle) is originally the identity matrix, meaning that the PathGeometry is fully relative to the spread origin.

The present version of the eBook doesn't deal in depth with such oddities because “case studies and special issues” are reserved for a future chapter ;-) Anyway it was important to mention the TextFrame exception from Chapter 2 onwards.

(30-Jun-2018). — It tooks me six years to document the fundamentals of InDesign “Coordinate Spaces and Transformations.” You may think I am sluggishly slow—which is a sensible diagnosis!—but the topic required a true immersion to be both experimented and covered. Chapter 5 (“The Transform Process”) is now available and makes this release consistent enough to form a kind of white paper.

— 2D Coordinates; Affine Maps; Relative Locations, Inner Space.
— Transformations, Maps, Matrices; Matrix Patterns and Product.
— InDesign Transform Order (scaling×shear×rotation×translation).
— Transforming vs. Deforming; Hierarchical Mapping of DOM components.

— Pasteboard, Spread, and Page spaces; Page Size and Location Issues.
— Inner Coordinate Space of a PageItem.
— Chasles' Relation; Moving vs. Displacing in Space…

— Each Bounding Box Depends on a Coordinate Space.
— Each Bounding Box Defines a Coordinate System.
— Path Bounds vs. Visible Bounds.

— Definition; Location Specifier and Syntax.
— All about the resolve() method.
— Transform-Space into Bound-Space Algorithm.
— InDesign's Ruler System; Details about Page-based Rulers.

— Understanding the “Transform Space.”
— Transformation Origin.
— MatrixContent flags and other parameters.
— Impact of Transform Preferences.

Chapter 5 investigates the transform() method.

Version History

14-Oct-2021. — Version 3.2, Chapters 1—5, bookmarks, and corrections, CoordinateSpacesTransfos01-05.pdf (1.05 MB, 41 p.)

30-Jun-2018. — Version 3.1, Chapters 1—5 + bookmarks, CoordinateSpacesTransfos01-05.pdf (1.17 MB, 41 p.)

14-Jun-2016. — Version 3.0 (draft), Chapter 4 only, CoordinateSpacesTransfos04.pdf (433 KB, 12 p.)

18-Oct-2014. — Version 2.1b, added Chapter 3, CoordinateSpacesTransfos01-03.pdf (528 KB, 22 p.)

8-Oct-2014. — Version 2.1a, Chapters 1 and 2, CoordinateSpacesTransfos01-02.pdf (481 KB, 19 p.)

24-Mar-2014. — Version 2.0, “Key Concepts,” CoordinateSpacesTransfos01_KeyConcepts.pdf (377 KB, 10 p.)

21-Dec-2012. — Version 1.0, creation date (unpublished.)

Download version 3.2 (PDF, 41 pages)

Coordinate Spaces & Transformations Series