aboutsummaryrefslogtreecommitdiffstats
path: root/doc/expert/pre_hexp
blob: 937e746b5bad5a0a9c4f13ea0b33256c2227ff4d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
@Section
   @Title { "@HExpand" and "@VExpand" }
   @Tag { hexpand }
@Begin
@PP
hexpand. @Index { @@HExpand symbol }
vexpand. @Index { @@VExpand symbol }
expansion @Index { Expansion of object }
The @@HExpand symbol causes its right parameter to be as wide as it
possibly could be without violating a @@Wide symbol or intruding into
the space occupied by neighbouring gaps or objects.  The @@VExpand
symbol is similar, but it affects height.  For example, in the object
@ID @Code {
"8i @Wide 11i @High {"
"    //1i  ||1i @HExpand @VExpand x ||1i"
"    //1i"
"}"
}
object @Code x could have any size up to six inches wide by nine inches
high, so the @@HExpand and @@VExpand symbols cause it to have exactly
this size.  This is important, for example, if @Code x contains
@Code "|1rt" or {@Code "/1rt"}; without the expansion these might not
move as far across or down as expected.
@PP
As Section {@NumberOf size} explains in detail, most objects are
already as large as they possibly could be.  Consequently these symbols
are needed only rarely.  @@HExpand includes a @@OneCol effect, and
@@VExpand includes a @@OneRow effect.
@End @Section