summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/texdraw/texdraw_2.html
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/texdraw/texdraw_2.html')
-rw-r--r--Master/texmf-dist/doc/texdraw/texdraw_2.html882
1 files changed, 882 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/texdraw/texdraw_2.html b/Master/texmf-dist/doc/texdraw/texdraw_2.html
new file mode 100644
index 00000000000..25abbb1af0e
--- /dev/null
+++ b/Master/texmf-dist/doc/texdraw/texdraw_2.html
@@ -0,0 +1,882 @@
+<HTML>
+<HEAD>
+<!-- Created by texi2html 1.56k from texdraw.texi on 10 March 2004 -->
+
+<TITLE>TeXdraw - 2. Using the TeXdraw Commands</TITLE>
+</HEAD>
+<BODY>
+Go to the <A HREF="texdraw_1.html">first</A>, <A HREF="texdraw_1.html">previous</A>, <A HREF="texdraw_3.html">next</A>, <A HREF="texdraw_11.html">last</A> section, <A HREF="texdraw_toc.html">table of contents</A>.
+<P><HR><P>
+
+
+<H1><A NAME="SEC3" HREF="texdraw_toc.html#TOC3">2. Using the TeXdraw Commands</A></H1>
+
+<P>
+The main TeXdraw macros (commands) are defined in the file
+<TT>`texdraw.tex'</TT>. These macros may be used directly in TeX. The
+file <TT>`texdraw.sty'</TT> provides an interface for use with LaTeX2e.
+The following sections describe the basic commands for TeXdraw.
+
+
+
+<UL>
+<LI><A HREF="texdraw_2.html#SEC4">Accessing TeXdraw</A>
+<LI><A HREF="texdraw_2.html#SEC5">Command syntax</A>
+<LI><A HREF="texdraw_2.html#SEC6">TeXdraw coordinates</A>
+<LI><A HREF="texdraw_2.html#SEC7">Coordinate specification</A>
+<LI><A HREF="texdraw_2.html#SEC8">Line vectors</A>
+<LI><A HREF="texdraw_2.html#SEC9">TeX text</A>
+<LI><A HREF="texdraw_2.html#SEC10">Circles and arcs</A>
+<LI><A HREF="texdraw_2.html#SEC11">Bezier curves</A>
+<LI><A HREF="texdraw_2.html#SEC12">Fill commands</A>
+</UL>
+
+
+
+<H2><A NAME="SEC4" HREF="texdraw_toc.html#TOC4">2.1 Accessing TeXdraw</A></H2>
+<P>
+<A NAME="IDX5"></A>
+<A NAME="IDX6"></A>
+
+
+<P>
+<A NAME="IDX7"></A>
+<A NAME="IDX8"></A>
+The form of the user command to run the TeX program depends on which
+version of TeX is being used, and which other macro packages are
+preloaded as format files. Typically, installations have at least two
+versions of TeX -- plain TeX which includes basic typesetting
+macros (usually invoked as <TT>`tex'</TT>) and LaTeX2e which includes the
+LaTeX2e typesetting macros (usually invoked as <TT>`latex'</TT>). An
+older version of LaTeX, version 2.09, may also be available. The
+TeXdraw macros can be used with plain TeX and with either version
+of LaTeX.
+
+
+<P>
+For use with plain TeX, the user must read in the TeXdraw macros
+from the file <TT>`texdraw.tex'</TT>.
+
+<PRE>
+\input texdraw % Read in the TeXdraw macros
+ ...
+\btexdraw
+ ... % TeXdraw commands to generate a drawing
+\etexdraw
+</PRE>
+
+<P>
+For use with LaTeX version 2.09, the user reads in the TeXdraw
+macros from the file <TT>`texdraw.tex'</TT> and optionally defines the
+<CODE>\begin{texdraw}</CODE> / <CODE>\end{texdraw}</CODE> environment.
+
+<PRE>
+\documentstyle[11pt]{article} % Article style with the 11pt size options
+...
+\input texdraw % Read in the TeXdraw macros
+\newenvironment{texdraw}{\leavevmode\btexdraw}{\etexdraw}
+ ...
+\begin{texdraw}
+ ... % TeXdraw commands to generate a drawing
+\end{texdraw}
+...
+\end{document}
+</PRE>
+
+<P>
+<A NAME="IDX9"></A>
+<A NAME="IDX10"></A>
+For use with LaTeX2e, the user must load the <CODE>texdraw</CODE> package
+(file <TT>`texdraw.sty'</TT>). This package file defines the
+<CODE>\begin{texdraw}</CODE> / <CODE>\end{texdraw}</CODE> environment, brings in
+the standard <CODE>graphics</CODE> package and reads in the file
+<TT>`texdraw.tex'</TT> containing the definitions of the TeXdraw macros.
+
+<PRE>
+\documentclass[11pt]{article} % Article class with the 11pt size option
+\usepackage{texdraw} % TeXdraw commands
+
+\begin{document}
+ ...
+\begin{texdraw}
+ ... % TeXdraw commands to generate a drawing
+\end{texdraw}
+ ...
+\end{document}
+</PRE>
+
+<P>
+As the TeXdraw commands are processed by TeX, an intermediate
+PostScript file is generated. The intermediate PostScript has a name of
+the form <TT>`<VAR>name</VAR>.ps1'</TT>. The name part is derived from the name
+of the main TeX file being processed. If more than one drawing is
+produced, the digit in the file name extension is
+incremented.<A NAME="DOCF1" HREF="texdraw_foot.html#FOOT1">(1)</A>
+
+
+<P>
+The TeXdraw commands to produce a drawing are inserted between
+<CODE>\btexdraw</CODE> and <CODE>\etexdraw</CODE> commands, or for LaTeX, between
+<CODE>\begin{texdraw}</CODE> and <CODE>\end{texdraw}</CODE> commands. This
+results in a TeX box of appropriate size containing the drawing
+generated by the TeXdraw commands. The TeXdraw box can be
+positioned in a document like any other TeX box.
+
+
+<P>
+The <CODE>\centertexdraw{...}</CODE> macro centers the box generated by
+TeXdraw. The vertical space taken up is equal to the vertical size
+of the drawing. The <CODE>\centertexdraw</CODE> macro is normally used in
+vertical mode (between paragraphs). A <CODE>\par</CODE> command (a blank line
+will do also) before a <CODE>\centertexdraw</CODE> command will terminate
+horizontal mode and return to vertical mode. For LaTeX, a structured
+equivalent to the <CODE>\centertexdraw{...}</CODE> command is shown below.
+
+<PRE>
+\begin{center}
+\begin{texdraw}
+ ...
+\end{texdraw}
+\end{center}
+</PRE>
+
+<P>
+The <CODE>\everytexdraw</CODE> command can be used to define a set of
+TeXdraw commands that will be executed at the beginning of every
+TeXdraw drawing. It is invoked as <CODE>\everytexdraw{ ...}</CODE>,
+with the desired TeXdraw commands as arguments.
+
+
+<DL COMPACT>
+
+<DT><CODE>\btexdraw</CODE>
+<DD>
+<A NAME="IDX11"></A>
+
+Start a TeXdraw drawing. The drawing is terminated with an
+<CODE>\etexdraw</CODE> command.
+<A NAME="IDX12"></A>
+<DT><CODE>\etexdraw</CODE>
+<DD>
+End a TeXdraw drawing started with a <CODE>\btexdraw</CODE> command. The
+resulting TeXdraw drawing is placed in a box with height equal to the
+height of the drawing and width equal to the width of the drawing. The
+depth of the box is zero.
+<A NAME="IDX13"></A>
+<DT><CODE>\begin{texdraw}</CODE>
+<DD>
+Start a TeXdraw drawing. The drawing is terminated with an
+<CODE>\end{texdraw}</CODE> command. This command is for use with LaTeX.
+<A NAME="IDX14"></A>
+<DT><CODE>\end{texdraw}</CODE>
+<DD>
+End a TeXdraw drawing started with a <CODE>\begin{texdraw}</CODE>
+command. The resulting TeXdraw drawing is placed in a box with
+height equal to the height of the drawing and width equal to the width
+of the drawing. The depth of the box is zero. This command is for use
+with LaTeX.
+<A NAME="IDX15"></A>
+<DT><CODE>\centertexdraw{ ... }</CODE>
+<DD>
+Center a TeXdraw box horizontally. The argument contains TeXdraw
+commands. The resulting box has the horizontal size <CODE>\hsize</CODE> and
+height equal to the height of the drawing.
+<A NAME="IDX16"></A>
+<DT><CODE>\everytexdraw{ ... }</CODE>
+<DD>
+Specify TeXdraw commands to be executed at the beginning of every
+TeXdraw drawing.
+</DL>
+
+
+
+<H2><A NAME="SEC5" HREF="texdraw_toc.html#TOC5">2.2 Command syntax</A></H2>
+<P>
+<A NAME="IDX17"></A>
+<A NAME="IDX18"></A>
+
+
+<P>
+Generally TeXdraw commands that take a single argument need a
+terminating blank or newline after the argument. Arguments that are
+self-delimiting, such as coordinates within parentheses and text within
+braces, do not need the terminating blank. However, even when not
+needed by the defining syntax of the command, blanks following command
+arguments are allowed and ignored within the TeXdraw environment.
+
+
+<P>
+On entering the TeXdraw environment, TeX is in internal vertical
+mode (vertical mode inside a <CODE>\vbox</CODE>). In this mode, spaces can be
+placed freely between commands. However, any other extraneous input
+that generates output that is not part of the TeXdraw environment is
+disallowed.
+
+
+<P>
+Blank lines are interpreted as paragraph breaks, equivalent to a
+<CODE>\par</CODE> command. The TeXdraw macro <CODE>\centertexdraw</CODE> is
+defined with the <CODE>\long</CODE> attribute to allow <CODE>\par</CODE> commands
+and blank lines to be interspersed between TeXdraw commands. The
+<CODE>\btexdraw</CODE> and <CODE>\etexdraw</CODE> commands also allow <CODE>\par</CODE>
+command and blank lines to be included.
+
+
+
+
+<H2><A NAME="SEC6" HREF="texdraw_toc.html#TOC6">2.3 TeXdraw coordinates</A></H2>
+<P>
+<A NAME="IDX19"></A>
+
+
+<P>
+The TeXdraw coordinate system has increasing <VAR>x</VAR> to the right and
+increasing <VAR>y</VAR> upward. The coordinates (without the unit) are
+floating point numbers. Integer values can be written without a decimal
+point. The size of the drawing is determined by the maximum excursions
+of the coordinates specified in TeXdraw commands.
+
+
+<P>
+Consider the following example of TeXdraw commands to draw a simple
+figure.
+
+<PRE>
+\centertexdraw{
+ \drawdim cm \linewd 0.02
+ \move(2 2) \lvec(3 3) \lvec(2 4) \lvec(1 3) \lvec(2 2)
+ \textref h:C v:C \htext(2 3){$\sum \rho_n$}
+}
+</PRE>
+
+<P>
+This drawing uses units of centimetres, with a line width of 0.02 cm.
+The <VAR>x</VAR> coordinate ranges between 1 and 3 while the <VAR>y</VAR>
+coordinate ranges between 2 and 4. When included into a document, the
+size of the drawing is 2 cm by 2 cm. The drawing is placed in a TeX
+box, with the lower lefthand corner of the box corresponding to
+TeXdraw coordinate <CODE>(1 2)</CODE> and the upper righthand corner at
+<CODE>(3 4)</CODE>. The <CODE>\centertexdraw</CODE> command centers the drawing
+horizontally. The <CODE>\textref</CODE> command controls the centering of the
+text. The text in this drawing is centered (both horizontally and
+vertically) at the coordinate <CODE>(2 3)</CODE>.
+
+
+
+
+<H2><A NAME="SEC7" HREF="texdraw_toc.html#TOC7">2.4 Coordinate specification</A></H2>
+<P>
+<A NAME="IDX20"></A>
+<A NAME="IDX21"></A>
+
+
+<P>
+Coordinates are specified within parentheses, with blanks (but no comma)
+between the values. Leading blanks and trailing blanks are permitted
+within the parentheses. The coordinates refer to units, which are
+specified by the <CODE>\drawdim</CODE> command. The default is inches, but
+any valid TeX dimension unit can be specified. Symbolic
+specification of saved coordinate values will be discused later
+(see section <A HREF="texdraw_3.html#SEC16">3.3 Saving positions</A>).
+
+
+<DL COMPACT>
+
+<DT><CODE>\drawdim <VAR>dim</VAR></CODE>
+<DD>
+<A NAME="IDX22"></A>
+
+Set the units to <VAR>dim</VAR>. The argument <VAR>dim</VAR> can be any valid
+TeX dimension unit. The units are used to interpret coordinate
+values. Examples of valid units: <CODE>cm</CODE>, <CODE>mm</CODE>, <CODE>in</CODE>,
+<CODE>pt</CODE>, and <CODE>bp</CODE>.
+</DL>
+
+<P>
+Examples of coordinate and scaling specifications:
+<DL COMPACT>
+
+<DT><CODE>\drawdim {cm} \move(2 2)</CODE>
+<DD>
+Set the units to centimetres, move to a position 2 cm to the right and 2
+cm up from the origin of the drawing coordinate system.
+<DT><CODE>\drawdim bp</CODE>
+<DD>
+Set the units to big points.
+<DT><CODE>\lvec ( 2.2 +5.5) \lvec(2.3 -2) \lvec(2.2 5.4 )</CODE>
+<DD>
+Examples of acceptable coordinate specifications.
+</DL>
+
+
+
+<H2><A NAME="SEC8" HREF="texdraw_toc.html#TOC8">2.5 Line vectors</A></H2>
+<P>
+<A NAME="IDX23"></A>
+<A NAME="IDX24"></A>
+<A NAME="IDX25"></A>
+<A NAME="IDX26"></A>
+<A NAME="IDX27"></A>
+
+
+<P>
+TeXdraw implements moves, line vectors and arrow vectors. There are
+both absolute and relative motion versions of these vector commands.
+TeXdraw maintains a current position. Lines are drawn from the
+current position to a new coordinate, with the new coordinate becoming
+the new current position. An explicit move can be used to establish a
+new current position. The position <CODE>(0 0)</CODE> is used if there is no
+move to an initial current position.
+
+
+<P>
+The <CODE>\move</CODE> and <CODE>\rmove</CODE> commands establish a new current
+position without drawing a line. The <CODE>\lvec</CODE> and <CODE>\rlvec</CODE>
+commands draw a line from the current position to a new position, which
+then becomes the new current position. The <CODE>\avec</CODE> and
+<CODE>\ravec</CODE> commands draw a line with an arrowhead from the current
+position to a new coordinate, which then becomes the new current
+position. The tip of the arrow is at the new current position. The
+direction of the arrow follows the direction of the line. Since this
+direction is undefined for zero length vectors, these are not allowed
+for <CODE>\avec</CODE> or <CODE>\ravec</CODE>. Zero length arrow vectors will
+generate a PostScript print error: <CODE>undefinedresult</CODE>. For any
+non-zero length vector, the full size arrowhead is drawn, even if that
+arrowhead is longer than the line length.
+
+
+<P>
+The absolute motion versions of these commands specify the coordinate of
+the final position.
+
+
+<DL COMPACT>
+
+<DT><CODE>\move (<VAR>x</VAR> <VAR>y</VAR>)</CODE>
+<DD>
+<A NAME="IDX28"></A>
+
+Move to coordinate <CODE>(<VAR>x</VAR> <VAR>y</VAR>)</CODE>. The new current position
+is <CODE>(<VAR>x</VAR> <VAR>y</VAR>)</CODE>.
+<A NAME="IDX29"></A>
+<DT><CODE>\lvec (<VAR>x</VAR> <VAR>y</VAR>)</CODE>
+<DD>
+Draw a line from the current position to coordinate <CODE>(<VAR>x</VAR>
+<VAR>y</VAR>)</CODE>. The new current position is <CODE>(<VAR>x</VAR> <VAR>y</VAR>)</CODE>.
+<A NAME="IDX30"></A>
+<DT><CODE>\avec (<VAR>x</VAR> <VAR>y</VAR>)</CODE>
+<DD>
+Draw a line with an arrowhead from the current position to
+<CODE>(<VAR>x</VAR> <VAR>y</VAR>)</CODE>. The new current position is <CODE>(<VAR>x</VAR>
+<VAR>y</VAR>)</CODE>. The arrowhead is aligned with the line, with the tip at
+<CODE>(<VAR>x</VAR> <VAR>y</VAR>)</CODE>.
+</DL>
+
+<P>
+<A NAME="IDX31"></A>
+The relative motion versions of these commands interpret the coordinates
+as displacements relative to the current position. Given the
+displacements <CODE>(<VAR>dx</VAR> <VAR>dy</VAR>)</CODE> as a parameter, each of the
+relative motion commands moves <VAR>dx</VAR> units in the <VAR>x</VAR> direction
+and <VAR>dy</VAR> units in the <VAR>y</VAR> direction.
+
+
+<DL COMPACT>
+
+<DT><CODE>\rmove (<VAR>dx</VAR> <VAR>dy</VAR>)</CODE>
+<DD>
+<A NAME="IDX32"></A>
+
+Move from the current position, <VAR>dx</VAR> units in the <VAR>x</VAR> direction
+and <VAR>dy</VAR> units in the <VAR>y</VAR> direction. The final position becomes
+the new current position.
+<A NAME="IDX33"></A>
+<DT><CODE>\rlvec (<VAR>dx</VAR> <VAR>dy</VAR>)</CODE>
+<DD>
+Draw a line from the current position, <VAR>dx</VAR> units in the <VAR>x</VAR>
+direction and <VAR>dy</VAR> units in the <VAR>y</VAR> direction. The final
+position becomes the new current position.
+<A NAME="IDX34"></A>
+<DT><CODE>\ravec (<VAR>dx</VAR> <VAR>dy</VAR>)</CODE>
+<DD>
+Draw a line with an arrowhead from the current position, <VAR>dx</VAR> units
+in the <VAR>x</VAR> direction and <VAR>y</VAR> units in the <VAR>y</VAR> direction.
+The final position becomes the new current position. The arrowhead is
+aligned with the line, with the tip at the new current position.
+</DL>
+
+<P>
+Lines can be customized with commands to change the line width, line
+pattern and line gray level rendition. In addition, commands for
+changing the type and size of the arrowhead are available.
+
+
+<P>
+<A NAME="IDX35"></A>
+<A NAME="IDX36"></A>
+<A NAME="IDX37"></A>
+<A NAME="IDX38"></A>
+<A NAME="IDX39"></A>
+<A NAME="IDX40"></A>
+<DL COMPACT>
+
+<DT><CODE>\linewd <VAR>width</VAR></CODE>
+<DD>
+<A NAME="IDX41"></A>
+
+Set the line width to <VAR>width</VAR> units. Initially <VAR>width</VAR> is 0.01
+inches (corresponding to 3 pixels at 300 pixels to the inch).
+<DT><CODE>\lpatt (<VAR>pattern</VAR>)</CODE>
+<DD>
+Set lines to have the pattern <CODE>(<VAR>pattern</VAR>)</CODE>. A pattern is a
+sequence of on/off lengths separated by blanks and enclosed in parentheses.
+The lengths alternately specify the length of a dash and the length of a
+gap between dashes. Each length is interpreted using the current
+scaling and drawing units. The pattern is used cyclically. The empty
+pattern signifies a solid line. The initial line pattern is a solid
+line, corresponding to the empty pattern <CODE>\lpatt ()</CODE>.
+<A NAME="IDX42"></A>
+<DT><CODE>\setgray <VAR>level</VAR></CODE>
+<DD>
+Set the gray level of lines. Gray levels are real values from 0 (black)
+through intermediate values (gray) to 1 (white). The initial gray level
+is 0 corresponding to black.
+<A NAME="IDX43"></A>
+<DT><CODE>\arrowheadtype t:<VAR>type</VAR></CODE>
+<DD>
+Set the arrowhead type to <VAR>type</VAR>, where <VAR>type</VAR> is one of
+<CODE>F</CODE>, <CODE>T</CODE>, <CODE>W</CODE>, <CODE>V</CODE>, or <CODE>H</CODE>. There are two
+kinds of arrowheads. The first kind is a triangle. There are 3
+variants: type <CODE>T</CODE> is an empty triangle, type <CODE>F</CODE> is a filled
+triangle (using the current gray level for lines), type <CODE>W</CODE> is a
+triangle filled with white. The second kind of arrowhead is an open
+ended Vee. There are 2 variants: type <CODE>V</CODE> has the stem continue to
+the tip, type <CODE>H</CODE> has the stem stop at the base of the arrowhead.
+The initial arrowhead type is <CODE>T</CODE>.
+<A NAME="IDX44"></A>
+<DT><CODE>\arrowheadsize l:<VAR>length</VAR> w:<VAR>width</VAR></CODE>
+<DD>
+Set the arrowhead size to be <VAR>length</VAR> units long and <VAR>width</VAR>
+units wide. The width is measured across the "base" of the arrowhead.
+The initial arrowhead size has a <VAR>length</VAR> of 0.16 inches and a
+<VAR>width</VAR> of 0.08 inches.
+</DL>
+
+<P>
+Note that the lines which outline the arrowhead will be drawn with the
+same line pattern used for the stem. Normally, arrow vectors are drawn
+with the line pattern set for a solid line. Note that the fill level
+used for the <CODE>F</CODE> variant of the arrowhead uses the same gray level
+as used for lines. The difference between the <CODE>T</CODE> variant and the
+<CODE>W</CODE> variant only shows up if the arrowhead is placed over non-white
+areas of the drawing. The <CODE>W</CODE> variant obliterates the area under
+the arrowhead.
+
+
+<P>
+Examples of line parameter and arrowhead settings are shown in the
+following code.
+
+<PRE>
+\centertexdraw{
+ \drawdim in
+ \linewd 0.03 \setgray 0.6 \arrowheadtype t:F \avec(0 0.5)
+ \linewd 0.01 \setgray 0 \arrowheadtype t:V \avec(0.5 0.5)
+ \linewd 0.015 \lpatt(0.067 0.1) \lvec (1 0)
+ \linewd 0.02 \lpatt() \arrowheadtype t:T \avec(1.5 0.5)
+ \arrowheadtype t:H \avec(2.0 0.5)
+ \setgray 0.4 \arrowheadtype t:W \avec(3.0 0)
+}
+</PRE>
+
+
+
+<H2><A NAME="SEC9" HREF="texdraw_toc.html#TOC9">2.6 TeX text</A></H2>
+<P>
+<A NAME="IDX45"></A>
+
+
+<P>
+Text may be superimposed on the drawing. The text argument of the
+<CODE>\htext</CODE> command is in horizontal mode. This text can be ordinary
+text, math mode expressions, or even more complicated boxes consisting
+of tables and the like. The resulting TeX text is placed in a box.
+The reference point of the box can be chosen to be one of nine
+locations: horizontally left, center or right; vertically top, center or
+bottom. The <CODE>\htext</CODE> command takes one of two forms.
+
+
+<DL COMPACT>
+
+<DT><CODE>\htext (<VAR>x</VAR> <VAR>y</VAR>){<VAR>text</VAR>}</CODE>
+<DD>
+<A NAME="IDX46"></A>
+
+<DT><CODE>\htext {<VAR>text</VAR>}</CODE>
+<DD>
+The first form of this command places the TeX text <VAR>text</VAR>
+horizontally with the text reference point at the coordinate
+<CODE>(<VAR>x</VAR> <VAR>y</VAR>)</CODE>. The new current position is <CODE>(<VAR>x</VAR>
+<VAR>y</VAR>)</CODE>. The second form of this command places the TeX text
+<VAR>text</VAR> horizontally with the text reference point at the current
+position. The text reference point is set with the <CODE>\textref</CODE>
+command.
+</DL>
+
+<P>
+<A NAME="IDX47"></A>
+<A NAME="IDX48"></A>
+<A NAME="IDX49"></A>
+Text can be placed vertically using the <CODE>\vtext</CODE> command. The text
+argument is in horizontal mode. The TeX text is placed in a box and
+then rotated counterclockwise. The reference point is the point in the
+box, <EM>before</EM> rotation of the text. Not all PostScript printer
+drivers support vertical text.
+
+
+<DL COMPACT>
+
+<DT><CODE>\vtext (x y){<VAR>text</VAR>}</CODE>
+<DD>
+<A NAME="IDX50"></A>
+
+<DT><CODE>\vtext {<VAR>text</VAR>}</CODE>
+<DD>
+The first form of this command places the TeX text <VAR>text</VAR>
+vertically with the text reference point at the coordinate
+<CODE>(<VAR>x</VAR> <VAR>y</VAR>)</CODE>. The new current position is <CODE>(<VAR>x</VAR>
+<VAR>y</VAR>)</CODE>. The second form of this command places the TeX text
+<VAR>text</VAR> vertically with the text reference point at the current
+position. In both cases, the TeX text is placed in a box and the box
+is rotated counterclockwise by 90 degrees about the text reference
+point. The text reference point is set with the <CODE>\textref</CODE>
+command.
+</DL>
+
+<P>
+<A NAME="IDX51"></A>
+<A NAME="IDX52"></A>
+Text can be placed at an arbitrary angle using the <CODE>\rtext</CODE>
+command. The text argument is in horizontal mode. The TeX text is
+placed in a box and then rotated counterclockwise. The reference point
+is the point in the box, <EM>before</EM> rotation of the text. Not all
+PostScript printer drivers support rotated text.
+
+
+<DL COMPACT>
+
+<DT><CODE>\rtext td:<VAR>angle</VAR> (x y){<VAR>text</VAR>}</CODE>
+<DD>
+<A NAME="IDX53"></A>
+
+<DT><CODE>\rtext td:<VAR>angle</VAR> {<VAR>text</VAR>}</CODE>
+<DD>
+The first form of this command places the TeX text <VAR>text</VAR> at an
+angle with the text reference point at the coordinate <CODE>(<VAR>x</VAR>
+<VAR>y</VAR>)</CODE>. The new current position is <CODE>(<VAR>x</VAR> <VAR>y</VAR>)</CODE>. The
+second form of this command places the TeX text <VAR>text</VAR> at an
+angle with the text reference point at the current position. In both
+cases, the TeX text is placed in a box and the box is rotated
+counterclockwise by <VAR>angle</VAR> degrees about the text reference point.
+The text reference point is set with the <CODE>\textref</CODE> command.
+</DL>
+
+<P>
+The reference point for subsequent TeX text in a <CODE>\htext</CODE>,
+<CODE>\vtext</CODE> or <CODE>\rtext</CODE> command is set with the <CODE>\textref</CODE>
+command.
+
+
+<DL COMPACT>
+
+<DT><CODE>\textref h:<VAR>h-ref</VAR> v:<VAR>v-ref</VAR></CODE>
+<DD>
+<A NAME="IDX54"></A>
+
+Set the text reference point for subsequent text commands. The
+horizontal reference point <VAR>h-ref</VAR> is one of <CODE>L</CODE>, <CODE>C</CODE> or
+<CODE>R</CODE> (left, center or right). The vertical reference point
+<VAR>v-ref</VAR> is one of <CODE>T</CODE>, <CODE>C</CODE> or <CODE>B</CODE> (top, center or
+bottom). For rotated text, the reference point is determined before
+rotation. The initial text reference point corresponds to
+<CODE>\textref h:L v:B</CODE>.
+</DL>
+<P>
+
+
+<P>
+The font used to render the text is determined as for any other TeX
+text. Normally the font used outside of TeXdraw is in effect. If
+desired, other fonts can be specified as part of the text. Any font
+changes within a TeXdraw text command remain local to that command.
+
+
+<P>
+Only the coordinate of the text reference point in a <CODE>\htext</CODE>,
+<CODE>\vtext</CODE> or <CODE>\rtext</CODE> command is used in calculating the size
+of the drawing. This means that text itself can spill outside of the
+drawing area determined by TeXdraw. The area of the drawing can be
+increased to include the text by issuing additional <CODE>\move</CODE>
+commands.
+
+
+
+<PRE>
+\centertexdraw{
+ \avec(-0.75 -0.25) \textref h:R v:C \htext{H-text}
+ \move(0 0) \avec(-0.75 +0.25) \textref h:R v:B \htext{H-text}
+ \move(0 0) \avec(0 +0.5) \textref h:L v:T \vtext{V-text}
+ \move(0 0) \avec(+0.75 +0.25) \textref h:L v:B \htext{H-text}
+ \move(0 0) \avec(+0.75 -0.25) \textref h:L v:C \htext{H-text}
+}
+</PRE>
+
+
+
+<H2><A NAME="SEC10" HREF="texdraw_toc.html#TOC10">2.7 Circles, ellipses and arcs</A></H2>
+<P>
+<A NAME="IDX55"></A>
+<A NAME="IDX56"></A>
+<A NAME="IDX57"></A>
+<A NAME="IDX58"></A>
+
+
+<P>
+TeXdraw supplies commands to generate circles, ellipses and arcs.
+There are two forms of the circle command. The <CODE>\lcir</CODE> command
+draws a circle of given radius. The <CODE>\fcir</CODE> command draws a filled
+circle. In the latter case, the circle is filled by a specified gray
+level. For the filled circle, the line defining the circumference of
+the circle is not drawn. Note that the gray level area filled in by the
+<CODE>\fcir</CODE> command is opaque, even if the fill is chosen to be white.
+For either form of the circle command, the drawing size is increased if
+necessary to contain the circle.
+
+
+<P>
+The <CODE>\lellip</CODE> command generates an ellipse specified by the radius
+of the ellipse in the <VAR>x</VAR> direction and the radius of the ellipse in
+the <VAR>y</VAR> direction. The ellipse is symmetrical about horizontal and
+vertical lines drawn through the current point. The <CODE>\fellip</CODE>
+command draws a filled ellipse. In the latter case, the ellipse is
+filled by a specified gray level. For the filled ellipse, the line
+defining the boundary of the ellipse is not drawn. For either form of
+the ellipse command, the drawing size is increased if necessary to
+contain the ellipse.
+
+
+<P>
+The <CODE>\larc</CODE> command generates a counterclockwise arc specified by a
+start angle in degrees and an end angle in degrees. The center of the
+arc is the current position. Only the arc is drawn, not the line
+joining the center to the beginning of the arc. Note that the
+<CODE>\larc</CODE> command does not affect the size of the drawing.
+
+
+<DL COMPACT>
+
+<DT><CODE>\lcir r:<VAR>radius</VAR></CODE>
+<DD>
+<A NAME="IDX59"></A>
+
+Draw a circle with center at the current position. The radius is
+specified by <VAR>radius</VAR>. This command draws a line along the
+circumference of the circle. The drawing size is increased if necessary
+to contain the circle.
+<A NAME="IDX60"></A>
+<DT><CODE>\fcir f:<VAR>level</VAR> r:<VAR>radius</VAR></CODE>
+<DD>
+Draw a filled circle with center at the current position. The radius is
+specified by <VAR>radius</VAR>. The circle is painted with the gray level
+specified by <VAR>level</VAR>. A gray level of 1 corresponds to white, with
+decreasing values getting darker. The level 0 is full black. This
+command does not draw a line along the circumference. The drawing size
+is increased if necessary to contain the circle.
+<A NAME="IDX61"></A>
+<DT><CODE>\lellip rx:<VAR>x-radius</VAR> ry:<VAR>y-radius</VAR></CODE>
+<DD>
+Draw an ellipse with center at the current position. The radius in the
+<VAR>x</VAR> direction is specified by <VAR>x-radius</VAR>. The radius in the
+<VAR>y</VAR> direction is specified by <VAR>y-radius</VAR>. The drawing size is
+increased if necessary to contain the ellipse.
+<A NAME="IDX62"></A>
+<DT><CODE>\fellip f:<VAR>level</VAR> rx:<VAR>x-radius</VAR> ry:<VAR>y-radius</VAR></CODE>
+<DD>
+Draw a filled ellipse with center at the current position. The radius
+in the <VAR>x</VAR> direction is specified by <VAR>x-radius</VAR>. The radius in
+the <VAR>y</VAR> direction is specified by <VAR>y-radius</VAR>. The ellipse is
+painted with the gray level specified by <VAR>level</VAR>. A gray level of 1
+corresponds to white, with decreasing values getting darker. The level
+0 is full black. This command does not draw a line along the boundary
+of the ellipse. The drawing size is increased if necessary to contain
+the ellipse.
+<A NAME="IDX63"></A>
+<DT><CODE>\larc r:<VAR>radius</VAR> sd:<VAR>start-angle</VAR> ed:<VAR>end-angle</VAR></CODE>
+<DD>
+Draw a counterclockwise arc. The center of the arc is at the current
+position. The radius is specified by <VAR>radius</VAR>. The start and end
+angles (in degrees) are specified by <VAR>start-angle</VAR> and
+<VAR>end-angle</VAR>. This command does not affect the limits (size) of the
+drawing.
+</DL>
+
+<P>
+As an example, the following commands draw a filled circle, and
+superimpose an arc.
+
+<PRE>
+\centertexdraw{
+ \linewd 0.02
+ \fcir f:0.7 r:1
+ \larc r:1 sd:45 ed:135
+ \lvec (+0.707 +0.707) \move (0 0) \lvec (-0.707 +0.707)
+}
+</PRE>
+
+<P>
+Note that for the arc command, the resulting figure can spill outside of
+the TeXdraw box as determined by the maximum excursions of the
+coordinates. Extra moves can be used to compensate for the size of the
+arc.
+
+
+
+
+<H2><A NAME="SEC11" HREF="texdraw_toc.html#TOC11">2.8 Bezier curves</A></H2>
+<P>
+<A NAME="IDX64"></A>
+<A NAME="IDX65"></A>
+
+
+<P>
+Bezier curves in TeXdraw use 4 reference coordinates, two as the end
+points and two others to control the shape of the curve. Let the 4
+points be <CODE>(<VAR>x0</VAR> <VAR>y0</VAR>)</CODE>, <CODE>(<VAR>x1</VAR> <VAR>y1</VAR>)</CODE>,
+<CODE>(<VAR>x2</VAR> <VAR>y2</VAR>)</CODE> and <CODE>(<VAR>x3</VAR> <VAR>y3</VAR>)</CODE>. The curve
+starts out tangent to the line joining the first two points and ends up
+tangent to the line joining the second two points. The control points
+"pull" at the curve to control the curvature. The amount of pull
+increases with the distance of the control point from the endpoint.
+
+
+<P>
+As the parameter u varies from 0 to 1, the coordinates of the Bezier
+curve are given by a pair of parametric cubic equations,
+
+
+<P>
+x(u) = (1-u)^3 x0 + 3u (1-u)^2 x1 + 3u^2 (1-u) x2 + u^3 x3
+y(u) = (1-u)^3 y0 + 3u (1-u)^2 y1 + 3u^2 (1-u) y2 + u^3 y3 .
+
+
+<DL COMPACT>
+
+<DT><CODE>\clvec (<VAR>x1</VAR> <VAR>y1</VAR>)(<VAR>x2</VAR> <VAR>y2</VAR>)(<VAR>x3</VAR> <VAR>y3</VAR>)</CODE>
+<DD>
+<A NAME="IDX66"></A>
+
+Draw a Bezier curve from the current position to the coordinate
+<CODE>(<VAR>x3</VAR> <VAR>y3</VAR>)</CODE> which becomes the new current position. The
+coordinates <CODE>(<VAR>x1</VAR> <VAR>y1</VAR>)</CODE> and <CODE>(<VAR>x2</VAR> <VAR>y2</VAR>)</CODE>
+serve as control points for the curve. Only the last coordinate given
+is used to update the size of the drawing.
+</DL>
+<P>
+Note that only 3 coordinate pairs are specified. The other point is the
+current position before the <CODE>\clvec</CODE> command is executed. Only the
+last coordinate specified in the <CODE>\clvec</CODE> command is used to
+determine the extent of the drawing. While the Bezier curve passes
+through the old current position and the new current position, in
+general the curve will not reach the intermediate control points. The
+curve is always entirely enclosed by the convex quadrilateral defined by
+the two end points and the two control points. Note that the curve may
+pass outside the limits of the drawing as determined by the end point of
+the curve.
+
+
+<P>
+A simple Bezier curve is produced by the following example.
+
+<PRE>
+\btexdraw
+ \move (0 0)
+ \clvec (0 1)(1 0)(1 1)
+\etexdraw
+</PRE>
+
+
+
+<H2><A NAME="SEC12" HREF="texdraw_toc.html#TOC12">2.9 Fill commands</A></H2>
+<P>
+<A NAME="IDX67"></A>
+<A NAME="IDX68"></A>
+<A NAME="IDX69"></A>
+
+
+<P>
+PostScript deals with paths consisting of line segments. The paths can
+be closed and the interior of the closed region filled. From
+TeXdraw, paths start with a <CODE>\move</CODE> or <CODE>\rmove</CODE> command and
+continue with <CODE>\lvec</CODE>, <CODE>\rlvec</CODE> or <CODE>\clvec</CODE> commands.
+The TeXdraw fill commands close the path and fill the interior of the
+closed region. Closing the path means that effectively another
+<CODE>\lvec</CODE> line is drawn from the last point specified to the initial
+point. TeXdraw provides two forms of the fill command. The
+<CODE>\ifill</CODE> fills the interior of the region with the given gray
+level. The lines defining the path are not drawn. The <CODE>\lfill</CODE>
+command fills the region defined by the closed path and draws a line
+along the enclosing path. Note for both forms of the fill command, the
+gray level used for filling is opaque, even if the gray level is chosen
+to be white.
+
+
+<DL COMPACT>
+
+<DT><CODE>\lfill f:<VAR>level</VAR></CODE>
+<DD>
+<A NAME="IDX70"></A>
+
+Close the current path, draw the line around the path using the current
+grey level for lines and paint the interior of the region with specified
+gray level <VAR>level</VAR>. Gray levels are real values from 0 (black)
+through intermediate values (grays) to 1 (white).
+<A NAME="IDX71"></A>
+<DT><CODE>\ifill f:<VAR>level</VAR></CODE>
+<DD>
+Close the current path and paint the interior of the region with gray
+level <VAR>level</VAR>. The line around the path is not drawn. Gray levels
+are real values from 0 (black) through intermediate values (grays) to 1
+(white).
+</DL>
+
+<P>
+The following example draws a "flag" with the interior filled in. The
+path around the boundary is given in a clockwise order to define a
+closed path. We could take advantage of the fact that the fill command
+will close an open path to eliminate one of the <CODE>\lvec</CODE> commands.
+
+<PRE>
+\centertexdraw{
+\move (0.5 0)
+\lvec (0 0.5) \clvec (0.5 0.85)(1 0.65)(1.5 1)
+\lvec (2 0.5) \clvec (1.5 0.15)(1 0.35)(0.5 0)
+\lfill f:0.8
+}
+</PRE>
+
+<P>
+In TeXdraw, the <CODE>\move</CODE> command always terminates any previous
+paths and starts a new path. Commands that change line parameters
+(e.g. <CODE>\setgray</CODE> or <CODE>\lpatt</CODE>) also terminate paths and start
+new paths. The circle, ellipse and arc commands do not affect the
+definition of the current path. The <CODE>\avec</CODE> command is not
+appropriate for defining a path to be filled. It ends a subpath at its
+tail and begins a new subpath at its tip. Filling a region defined by a
+path with subpaths is more complicated in that each subpath is closed
+before filling.
+
+
+<P><HR><P>
+Go to the <A HREF="texdraw_1.html">first</A>, <A HREF="texdraw_1.html">previous</A>, <A HREF="texdraw_3.html">next</A>, <A HREF="texdraw_11.html">last</A> section, <A HREF="texdraw_toc.html">table of contents</A>.
+</BODY>
+</HTML>