Macro Language Reference > PIs > Text > <?blk>
  
<?blk>
Description
The <?blk> and <?elk> (end line keep) commands will keep a block of text together over pages. When a line keep is invoked, all text lines following the keep will remain together as an unbroken block, until the line keep is revoked. The key difference between a line keep and other keep facilities is that a line keep works indiscriminately across paragraph boundaries. It can be invoked and revoked anywhere on any line of any paragraph.
Syntax
<?blk level:n?>
<?blk>
level
Line keeps can also be nested. When no line keep is currently active, the level is 0. When line keep is first invoked with <?blk> the level for the current line increases to 1. Each subsequent <?blk> without any intervening <?elk> will increase the nest level by 1 more. Each <?elk> will decrease the level by 1. When it reaches 0, line keep becomes inactive for the current line. <?elk> does not allow the Line Keep level to go below 0.
Additional Information
Sometimes, it may be necessary to start a new nesting structure, ending any previous line keeps, or to completely end all active line keeps, without regard to the current level. Both of these are achieved by adding a level number to the commands, i.e.<?blk 1><?elk 0>.
Any level number can be used, but the <?blk> number must be at least 1 or the command is ignored.
If all line keeps are started and ended with level values of 1 and 0 as shown above then this effectively gives inner keep blocks priority over any outer block. However, do note that lines at the beginning of the outer block, before the first inner block starts, will still be kept with the first inner keep as the level number for these lines was greater than 0.
Related Links