It is sometimes necessary to constrain the relative positioning of
flow objects in different streams. For example, a footnote might be
constrained to be on the same page as the corresponding reference, or
a sidenote might be constrained to be at the same vertical position as
its reference. Such constraints are specified by creating a
synchronization set. A synchronization set is a set of flow
objects whose relative positioning is constrained.
A flow object contains information describing the synchronization sets
to which it belongs. A flow object can belong to any number of
synchronization sets. For every synchronization set, there shall be a
flow object, the synchronizing flow object, that is a flow ancestor of
all the flow objects in the synchronization set.
In addition, each stream of
that flow object can contain (either directly or as a descendant) at
most one flow object in the synchronization set.
(sync sosofo1 sosofo2
#!key type: min: max:)
Creates a synchronization set whose members are the first
member of sosofo1 and the first member of
sosofo2. sync returns a sosofo comprising:
| 1. a copy of the first flow object of sosofo1
with added synchronization information, |
| 2. any remaining flow objects of sosofo1, |
| 3. a copy of the first flow object of sosofo2
with added synchronization information, and |
| 4. any remaining flow objects of sosofo2. |
The type: argument is a symbol specifying the type of
constraint on the areas created by formatting the synchronized flow
objects. The min: and max: arguments are integers that
further specify the type of constraint. The value of max: shall
be greater than or equal to that of min:. min: and
max: default to 0. The permitted values for type: are:
| • page specifying that the number of pages separating
|
| 1. the first of the areas created from the first synchronized flow object
from |
| 2. the first of the areas created from the second synchronized flow
object |
| shall not be less than min: nor greater than max:.
The synchronizing flow object shall be a page-sequence flow object or a
column-set-sequence flow object with a page-sequence flow object as an
ancestor. The number of pages from one area to another area is
defined to be the index, among all the pages of the page-sequence,
of the page on which the second area lies minus the index of the
page on which the first area lies.
|
| If min: were -1 and max: were 2, then the first of the
areas created from the second synchronized flow object would be
constrained to be either on the page before the first of the areas
created from the first synchronized flow object, on the same page as
the first of the areas created from the first synchronized flow
object, on the page after the
first of the areas created from the first synchronized flow object, or
on the next page after that. |
|
| • spread specifying that the number of spreads from the first of
the areas created from the first synchronized flow object to the first
of the areas created from second synchronized flow object shall not be
less than min: nor greater than max:. The synchronizing
flow object shall be a page-sequence flow object or a
column-set-sequence flow object with a page-sequence
flow object as an ancestor. |
| • column specifying that the first of the areas created from the
first synchronized flow object and the first of the areas created from
the second synchronized flow object shall be in the same column-subset
and that the number of columns from the first of the areas created
from the first synchronized flow object to the first of the areas
created from the second synchronized flow object shall be between
min: and max:. The synchronizing flow object shall be of
class column-set-sequence. |
The default value of type: is page.
(side-sync list)
Creates a synchronization set containing the first
members of each of the members of list, which
shall be a list of two or more sosofos.
side-sync returns the sosofo
that results from concatenating the members of the list
except that the first member of each sosofo is replaced
by a copy with added synchronization information. The first areas
produced by each member of the synchronization set are constrained to
be positioned in the same column-set so that the position of their
placement paths is the same in the filling-direction,
possibly adjusted for any difference in alignment mode.