special $raw_text$[options] arg_list
Here $
can be any character and is used to delimit the start
and end of raw_text. The command embeds raw_text in the
sketch
output after performing substitutions as follows.
#
i where i is a positive integer is replaced by the
i'th value in arg_list. Point and vector arguments become
two-dimensional points, which are the transformed 3d arguments
projected onto the x-y plane. This allows
two-dimentional output elements such as labels to be easily positioned
with respect to three-dimensional features in the drawing. Scalar
arguments are subsituted directly. No transformation is applied.
#{
i}
is also replaced as above.
#
i'2
is replaced as above for points or vectors. It is
an error for the i'th argument to be a scalar.
#
i'x
, #
i'y
, or #
i'z
is
replaced, respectively, by the scalar x, y, or
z-coordinate of the argument point or vector. It is an error for
the i'th argument to be a scalar.
#
i'3
is replaced by the three-dimensional
transformed argument. Note that if a perspective transformation has
been applied, the z-coordinate has little geometric
significance, though it accurately indicates relative depth.
#
i-
j where i and j are positive
integers is replaced by a string {
angle}
where
angle is the polar angle of a vector from the i'th point
in point_list to the j'th point projected into the
x-y plane. It is an error for the i'th or
j'th argument to be a scalar or a vector.
#{
i-
j}
is also replaced as above.
##
is replaced with #
.
The only useful option of special
is lay
, which
determines if the substitued raw text is emitted before, after,
or using the first point in point_list as an indicator
of depth. These occur, respectively, with lay=under
,
lay=over
, and lay=in
. See Special objects
and TikZ/PGF user-defined styles for examples.
See Internal options.