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.