Next: Content placement inside another block, Previous: Default alignment, Up: Block Layout [Contents]
Sometimes one wants to depart from the row or column-like arrangement enabled
by the above mechanisms. For this you can use the alignment modifiers
that can be written before any block definition. They can be of two kind:
major and minor. Major alignment modifiers are
leftof
, rightof
, above
or below
. Writing them
before any block places that block in the given relation to the previous block
(and center/middle aligned in the other direction).
You can also use minor alignment modifiers top
, bottom
, left
or right
, which only set alignment in one direction making the new block
align at the specified side.
You can use two major alignemnt modifier of them like below leftof box A;
, which will place A
diagonally south-west from the previous block. Note that the next block will
continue to use the default row or column like layout, that is be left or below
and middle or center aligned to the previous (so far last) block,
such as block H
is aligned to G
on the figure below.
![]() | ![]() |
You can also specify one major and one minor alignment specifier, like
below left
to override the center alignment in the horizontal direction
and make it left aligned.
You can specify one or more blocks after the alignment modifiers (use the plus
sign (+
) to separate them) if you want to relate to a block other than the
previous one. When using several blocks, Msc-generator will align to their bounding
box, similar to how attribute values are interpreted.
![]() | ![]() |
You can also specify an offset in addition to (or instead of) the block(s) after alignment modifiers. This number will be added appropriately.
![]() | ![]() |
Note that the blocks/number and the second alignment modifier may come in any order.
You can also specify a coordinate after alignment modifiers. This is less useful, so I do not give an example here.
If you specify alignment modifiers before a definition of multiple blocks,
it will only apply to the first one. For example, in the example below only
block C
is below block A
, whereas block D
simply follows
block C
following the default row alignment. The same way, you can apply
alignment modifiers after the definition of the block, but if you do it for
a series of blocks, it only applies to the first one (C.F
in the example
below).
![]() | ![]() |
Next: Content placement inside another block, Previous: Default alignment, Up: Block Layout [Contents]