Skip to main content
Skip table of contents

(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:

  • BuildCMYKWedge replicates these patches four times, once for each of Cyan, Magenta, Yellow, and Black.
  • BuildSpotWedge replicates them as many times as there are spot colors defined in the job content.
  • BuildRenderedWedge replicates them for every colorant being rendered (either as separations, or planes in frame-interleaved output).
  • BuildMonoWedge shows 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.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.