Go forward to Information about Compositions.
Go backward to Vertical Compositions.
Go up to Compositions.
Other Compositions
..................
The `csup' function builds a superscripted expression. For example,
`csup(a, b)' looks the same as `a^b' does in Big language mode. This
is essentially a horizontal composition of `a' and `b', where `b' is
shifted up so that its bottom line is one above the baseline.
Likewise, the `csub' function builds a subscripted expression. This
shifts `b' down so that its top line is one below the bottom line of
`a' (note that this is not quite analogous to `csup'). Other
arrangements can be obtained by using `choriz' and `cvert' directly.
The `cflat' function formats its argument in "flat" mode, as obtained
by `d O', if the current language mode is normal or Big. It has no
effect in other language modes. For example, `a^(b/c)' is formatted
by Big mode like `csup(a, cflat(b/c))' to improve its readability.
The `cspace' function creates horizontal space. For example,
`cspace(4)' is effectively the same as `string(" ")'. A second string
(i.e., vector of characters) argument is repeated instead of the space
character. For example, `cspace(4, "ab")' looks like `abababab'. If
the second argument is not a string, it is formatted in the normal way
and then several copies of that are composed together: `cspace(4,
a^2)' yields
2 2 2 2
a a a a
If the number argument is zero, this is a zero-width object.
The `cvspace' function creates vertical space, or a vertical stack of
copies of a certain string or formatted object. The baseline is the
center line of the resulting stack. A numerical argument of zero will
produce an object which contributes zero height if used in a vertical
composition.
There are also `ctspace' and `cbspace' functions which create vertical
space with the baseline the same as the baseline of the top or bottom
copy, respectively, of the second argument. Thus `cvspace(2, a/b) +
ctspace(2, a/b) + cbspace(2, a/b)' displays as:
a
-
a b
- a a
b + - + -
a b b
- a
b -
b