Coordinate Spaces & Transformations in InDesign [UPDATE]
October 14, 2021 | Tips | en
Coordinate Spaces & Transformations is a free eBook covering all atomic subjects that a InDesign scripter or developer should grab before using transformation matrices and the related methods. The last update has minor corrections and notes…
(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.
1. KEY CONCEPTS
— 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.
2. INDESIGN COORDINATE SPACES
— Pasteboard, Spread, and Page spaces; Page Size and Location Issues.
— Inner Coordinate Space of a PageItem.
— Chasles' Relation; Moving vs. Displacing in Space…
3. BOUNDING BOXES
— Each Bounding Box Depends on a Coordinate Space.
— Each Bounding Box Defines a Coordinate System.
— Path Bounds vs. Visible Bounds.
4. RESOLVING LOCATIONS
— 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.
5. THE TRANSFORM PROCESS
— Understanding the “Transform Space.”
— Transformation Origin.
— MatrixContent flags and other parameters.
— Impact of Transform Preferences.
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.)