(v13) HqnLayout block creation procedures
This page applies to Harlequin v13.1r0 and later; both Harlequin Core and Harlequin MultiRIP.
Several support procedures are provided to assist in construction or variation of blocks:
BlockName Variations adaptstandard
BlockDict
This procedure loads a pre-defined block, identified by its name (BlockName), takes a shallow copy of it, and overrides its current values with the contents of the variations dictionary; for example:
/PaperSet [ { /Paper << /BottomLabel /None >> adaptstandard } ]
You must call adaptstandard from within a procedure value to ensure that the referenced block can be found by name.
SelectorName BuildCMYKWedge
BlockDict SelectorName BuildSpotWedge
BlockDict SelectorName BuildRenderedWedge
BlockDict SelectorName BuildMonoWedge
BlockDict
These four procedures dynamically construct blocks from primitives called Selectors (found in the Selectors dictionary), each of which defines the patches to be displayed for one separation:
BuildCMYKWedgereplicates these patches four times, once for each of Cyan, Magenta, Yellow, and Black.BuildSpotWedgereplicates them as many times as there are spot colors defined in the job content.BuildRenderedWedgereplicates them for every colorant being rendered (either as separations, or planes in frame-interleaved output).BuildMonoWedgeshows them just once.
For example:
/AllSep8 { /Patch8 BuildRenderedWedge }
The support procedure must be called from within a procedure value. It is therefore executed in the context of a single job, when the separations to be rendered are known, rather than as the RIP boots with a default separation setup.
The value of a Selector is a dictionary. Keys within a Selector dictionary are integers matching the number of rows in a block for which they are defined; Selectors should not be used in constructing blocks if Rows does not match a value in the Selector dictionary. In addition to the integer-keyed dictionaries, a Selector may contain other key/value pairs for which the same value is to be used for all patches after expansion. Structs should not be used as the values of these keys.
The sub-dictionaries within a Selector each contain a number of keys that relate directly to keys in Block objects. When one of the procedures above is called, the Selector value is copied as many times as required in order to construct a block. The mapping from Selector keys to Block keys is as follows:
Selector key | Block key |
|
|
|
|
|
|
|
|
|
|
Selector and Block key mappings
The Selector may also contain a key named AmendSeparations, the value of which is a procedure. The only documented procedures are:
{ ProcessLast }
which places spot colors before process colors (the default is to place spot colors last)
{ RemoveK ProcessLast }
which does not include the black separation in the list of separations to be included, and places spot colors before process colors.