diff options
Diffstat (limited to 'Master/texmf-dist/doc/support/texdraw')
24 files changed, 5872 insertions, 7161 deletions
diff --git a/Master/texmf-dist/doc/support/texdraw/ChangeLog b/Master/texmf-dist/doc/support/texdraw/ChangeLog new file mode 100644 index 00000000000..8e7942e19ff --- /dev/null +++ b/Master/texmf-dist/doc/support/texdraw/ChangeLog @@ -0,0 +1,37 @@ +$Id: ChangeLog,v 2.0 1995/12/18 texdraw-V2R0 $ + +V2R0 1995/12/17 + - Interface to standard LaTeX2e graphics package + +V1R5c 1995/11/03 + - Fix version number reporting + - Modify LaTeX example for LaTeX2e + - Fix compilation of texindex + - Remove longstanding spurious character in blockdiagram.tex + +V1R5 1993/04/10 + - Fix \lpatt; it was only passing the first element of the pattern, + reported by Alex Stark (jas2@eng.cam.ac.uk). + - Added \fellip and \everytexdraw at the suggestion of Karl Berry + (karl@cs.umb.edu) + - Changes to documentation + - More docs on porting to other drivers + +V1R4a 1992/07/07 + - Removed a lingering space in \pixtobp + - Fix incorrect position when "move pending" AND "path in prgress" + - Repackage \special for easier porting to other systems + +V1R3 1991/05/08 + - Track pending moves to give a smaller PS file + - Added a path in progress flag + +V1R2 1991/04/21 + - Improved \intdiv with more precise results + +V1R1 1991/04/16 + - Macro names changed for compatibility with LaTeX + - EPSF style PostScript + +V1R0 1991/02/24 + - First version with revision control diff --git a/Master/texmf-dist/doc/support/texdraw/README b/Master/texmf-dist/doc/support/texdraw/README new file mode 100644 index 00000000000..91cced49d63 --- /dev/null +++ b/Master/texmf-dist/doc/support/texdraw/README @@ -0,0 +1,170 @@ +This file describes the contents of the distribution for TeXdraw + +$Id: README,v 2.0 1995/12/18 texdraw-V2R0 $ + +The TeXdraw package consists of a set of macro definitions for the TeX +typesetting program. These macros allow the user to produce PostScript +drawings from within TeX and LaTeX. + +The main benefits of TeXdraw accrue from the ability to produce drawings +from <within> TeX, using TeX fonts for labelling the drawing. + +Basic drawing features include: +(1) moves, lines and arrow vectors + - selectable gray level, line width pattern, arrowhead size and type +(2) circles, ellipses, arcs, and Bezier curves +(3) general fill command to fill a region defined by lines and Bezier + curves (selectable gray level) +(4) TeX text, including mathematics, can be positioned and superimposed + on the drawing + +TeXdraw has been designed to be extensible. Drawing "segments" are +relocatable, self-contained units. Using a combination of the begingroup/ +endgroup mechanism in TeX and the gsave/grestore mechanism in PostScript, +drawing segments allow for local changes to the scaling and line +parameters. Using TeX's macro definition capability, new drawing commands +can be constructed from drawing segments. + +The extensibility features include, +(1) relocatable drawing segments to keep changes local +(2) local segment scaling +(3) saving and restoring positions using symbolic positions + +The compressed file texdraw-V2R0.tar.Z is available for anonymous ftp on +ftp.TSP.EE.McGill.CA in directory /pub/tsp/texdraw. + +===== +Peter Kabal kabal@TSP.EE.McGill.CA +Department of Electrical Engineering +McGill University +Montreal, Quebec + + +===== +The distribution consists of the TeXdraw macros themselves, files with +auxiliary macros, and the TeXdraw manual (texinfo format, also as a +PostScript file). + +Distribution Contents: +---------------------- + +Miscellaneous: + README - this file + ChangeLog - log of changes to TeXdraw + +TeXdraw macros (main directory): + texdraw.tex - TeXdraw macros for TeX + texdraw.sty - LaTeX2e interface to TeXdraw + txdtools.tex - TeXdraw toolbox for extending TeXdraw + txdps.tex - TeXdraw macros for accessing PostScript macros + blockdiagram.tex - Block diagram macros for TeXdraw + txdexamp.tex - plain TeX code for the examples in the manual + txdexamp.latex - LaTeX2e code for the examples in the manual + +compacted TeXdraw macros (directory compact/): + texdraw.tex + txdtools.tex + txdps.tex + +TeXdraw documentation (directory manual/): + texdraw.ps - PostScript version of the manual + texdraw.texi - Texinfo source file for the TeXdraw manual + texdraw.aux - cross-references (generated by an earlier run, used + as input when TeX'ing the manual) + texdraw.cps - concept index (generated by an earlier run, used as + input when TeX'ing the manual) + texdraw.fns - sorted functon index (generated by an earlier run, + used as input when TeX'ing the manual). + +GNU Texinfo utilities (directory manual/): + texindex.c - Source for the texindex program + getopt.h - Include file for texindex.c + texinfo.tex - Texinfo macros used to make manuals and on-line + documentation + texi2dvi - Script to run TeX and texindex + +=============================================== +The following notes on setup are for Unix systems. + +Initial Tests: + +(1) Print the PostScript version of the manual ("texdraw.ps") to see the + capabilities of TeXdraw. +(2) Try TeX'ing the examples file. Assuming plain TeX is invoked with the + command "tex" and LaTeX2e is invoked with the command "latex" + % tex txdexamp + ... or ... + % latex texdexamp.latex +(3) Printing the examples using the appropriate printer driver program (only + dvips can be used with the plain TeX version of the examples), + % dvips txdexamp + +===== +Permanent Setup: + +Compact source files: +In the subdirectory "compact", there are versions of the macro files +with most comments and white space removed. + +(1) Private copy of TeXdraw. + Move the TeXdraw sources files ("texdraw.sty", texdraw.tex", + "txdtools.tex" and "txdps.tex") to an appropriate directory. If you are + keeping private versions of the files, consider using the directory + ~mylogin/tex . With many versions of TeX, including this directory in + the TeX input path variable (the environment variable TEXINPUTS) allows + you to refer to the files in TeX without specifying the full pathname. + With the C-cshell, a line in the ".login" file sets the environment + variable TEXINPUTS + % setenv TEXINPUTS ".:$HOME/tex:". + The last part of the path string should terminate with a colon to have + the default directory of TeX files available. +(2) Public copy of TeXdraw. + Move the TeXdraw source files ("texdraw.sty", "texdraw.tex", + "txdtools.tex" and "txdps.tex") to a directory that TeX searches by + default. This might be a directory such as "/usr/local/lib/tex/inputs". + Newer versions of TeX allow subdirectory searching - in that case, use + the directory "/usr/local/lib/tex/inputs/TeXdraw". + +===== +The following instructions pertain to installing the ability to use the +Texinfo system for any texinfo type manual. +(1) The GNU program "texindex" should built using + % cc texindex.c -o texindex + Move the program to an appropriate place such as "/usr/local/bin". +(2) The GNU script "texi2dvi" runs TeX and texindex for a texinfo file. + Move this script to an appropriate place such as "/usr/local/bin". +(3) The GNU "texinfo.tex" file should go into the public directories + searched by TeX, for instance "/usr/local/lib/tex/inputs", or + "/usr/local/lib/tex/inputs/texinfo". + +===== +Creating a TeXdraw manual from the sources: +(1) Make sure "texdraw.tex", "txdtools.tex" and "texinfo.tex" will be found + by TeX. +(2) To create the manual, you have to TeX the manual twice - the second + time to access the sorted indices and the cross-references. The + program "texindex" sorts the indices. (The distribution includes pre- + sorted indices that can be used). The three steps can be replaced by + an invokation of the script "texi2dvi". + % tex texdraw.texinfo + % texindex texdraw + % tex texdraw.texinfo +(3) If you have the printer driver program dvips, a PostScript version of the + manual is created as follows. + % dvips texdraw -o texdraw.ps + +===== +On-line info manual: + +Consider building an info version of the manual. For this you need the +GNU program "makeinfo" (available by anonymous ftp from prep.ai.mit.edu +as part of texinfo-XXX.tar.gz). After running "makeinfo texdraw", the top +level info directory file "dir" in /usr/local/emacs/info needs to be +updated to include a menu entry for TeXdraw. This entry is of the form +* TeXdraw: (texdraw). + TeXdraw is a collection of macros that allow drawings to be + created from within TeX. +Also the files produced by makeinfo (texdraw, texdraw-1, texdraw-2, and +texdraw-3) need to be moved there. The info file can be read from within +the emacs editor, or with the info reader program "info" (also part of the +texinfo distribution). diff --git a/Master/texmf-dist/doc/support/texdraw/getopt.c b/Master/texmf-dist/doc/support/texdraw/getopt.c deleted file mode 100644 index 36ebf5c5b03..00000000000 --- a/Master/texmf-dist/doc/support/texdraw/getopt.c +++ /dev/null @@ -1,762 +0,0 @@ -/* Getopt for GNU. - NOTE: getopt is now part of the C library, so if you don't know what - "Keep this file name-space clean" means, talk to roland@gnu.ai.mit.edu - before changing it! - - Copyright (C) 1987, 88, 89, 90, 91, 92, 93, 94, 95 - Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2, or (at your option) any - later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -/* This tells Alpha OSF/1 not to define a getopt prototype in <stdio.h>. - Ditto for AIX 3.2 and <stdlib.h>. */ -#ifndef _NO_PROTO -#define _NO_PROTO -#endif - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#if !defined (__STDC__) || !__STDC__ -/* This is a separate conditional since some stdc systems - reject `defined (const)'. */ -#ifndef const -#define const -#endif -#endif - -#include <stdio.h> - -/* Comment out all this code if we are using the GNU C Library, and are not - actually compiling the library itself. This code is part of the GNU C - Library, but also included in many other GNU distributions. Compiling - and linking in this code is a waste when using the GNU C library - (especially if it is a shared library). Rather than having every GNU - program understand `configure --with-gnu-libc' and omit the object files, - it is simpler to just do this in the source for each such file. */ - -#if defined (_LIBC) || !defined (__GNU_LIBRARY__) - - -/* This needs to come after some library #include - to get __GNU_LIBRARY__ defined. */ -#ifdef __GNU_LIBRARY__ -/* Don't include stdlib.h for non-GNU C libraries because some of them - contain conflicting prototypes for getopt. */ -#include <stdlib.h> -#endif /* GNU C library. */ - -/* This is for other GNU distributions with internationalized messages. - The GNU C Library itself does not yet support such messages. */ -#if HAVE_LIBINTL_H -# include <libintl.h> -#else -# define gettext(msgid) (msgid) -#endif - -/* This version of `getopt' appears to the caller like standard Unix `getopt' - but it behaves differently for the user, since it allows the user - to intersperse the options with the other arguments. - - As `getopt' works, it permutes the elements of ARGV so that, - when it is done, all the options precede everything else. Thus - all application programs are extended to handle flexible argument order. - - Setting the environment variable POSIXLY_CORRECT disables permutation. - Then the behavior is completely standard. - - GNU application programs can use a third alternative mode in which - they can distinguish the relative order of options and other arguments. */ - -#include "getopt.h" - -/* For communication from `getopt' to the caller. - When `getopt' finds an option that takes an argument, - the argument value is returned here. - Also, when `ordering' is RETURN_IN_ORDER, - each non-option ARGV-element is returned here. */ - -char *optarg = NULL; - -/* Index in ARGV of the next element to be scanned. - This is used for communication to and from the caller - and for communication between successive calls to `getopt'. - - On entry to `getopt', zero means this is the first call; initialize. - - When `getopt' returns EOF, this is the index of the first of the - non-option elements that the caller should itself scan. - - Otherwise, `optind' communicates from one call to the next - how much of ARGV has been scanned so far. */ - -/* XXX 1003.2 says this must be 1 before any call. */ -int optind = 0; - -/* The next char to be scanned in the option-element - in which the last option character we returned was found. - This allows us to pick up the scan where we left off. - - If this is zero, or a null string, it means resume the scan - by advancing to the next ARGV-element. */ - -static char *nextchar; - -/* Callers store zero here to inhibit the error message - for unrecognized options. */ - -int opterr = 1; - -/* Set to an option character which was unrecognized. - This must be initialized on some systems to avoid linking in the - system's own getopt implementation. */ - -int optopt = '?'; - -/* Describe how to deal with options that follow non-option ARGV-elements. - - If the caller did not specify anything, - the default is REQUIRE_ORDER if the environment variable - POSIXLY_CORRECT is defined, PERMUTE otherwise. - - REQUIRE_ORDER means don't recognize them as options; - stop option processing when the first non-option is seen. - This is what Unix does. - This mode of operation is selected by either setting the environment - variable POSIXLY_CORRECT, or using `+' as the first character - of the list of option characters. - - PERMUTE is the default. We permute the contents of ARGV as we scan, - so that eventually all the non-options are at the end. This allows options - to be given in any order, even with programs that were not written to - expect this. - - RETURN_IN_ORDER is an option available to programs that were written - to expect options and other ARGV-elements in any order and that care about - the ordering of the two. We describe each non-option ARGV-element - as if it were the argument of an option with character code 1. - Using `-' as the first character of the list of option characters - selects this mode of operation. - - The special argument `--' forces an end of option-scanning regardless - of the value of `ordering'. In the case of RETURN_IN_ORDER, only - `--' can cause `getopt' to return EOF with `optind' != ARGC. */ - -static enum -{ - REQUIRE_ORDER, PERMUTE, RETURN_IN_ORDER -} ordering; - -/* Value of POSIXLY_CORRECT environment variable. */ -static char *posixly_correct; - -#ifdef __GNU_LIBRARY__ -/* We want to avoid inclusion of string.h with non-GNU libraries - because there are many ways it can cause trouble. - On some systems, it contains special magic macros that don't work - in GCC. */ -#include <string.h> -#define my_index strchr -#else - -/* Avoid depending on library functions or files - whose names are inconsistent. */ - -char *getenv (); - -static char * -my_index (str, chr) - const char *str; - int chr; -{ - while (*str) - { - if (*str == chr) - return (char *) str; - str++; - } - return 0; -} - -/* If using GCC, we can safely declare strlen this way. - If not using GCC, it is ok not to declare it. */ -#ifdef __GNUC__ -/* Note that Motorola Delta 68k R3V7 comes with GCC but not stddef.h. - That was relevant to code that was here before. */ -#if !defined (__STDC__) || !__STDC__ -/* gcc with -traditional declares the built-in strlen to return int, - and has done so at least since version 2.4.5. -- rms. */ -extern int strlen (const char *); -#endif /* not __STDC__ */ -#endif /* __GNUC__ */ - -#endif /* not __GNU_LIBRARY__ */ - -/* Handle permutation of arguments. */ - -/* Describe the part of ARGV that contains non-options that have - been skipped. `first_nonopt' is the index in ARGV of the first of them; - `last_nonopt' is the index after the last of them. */ - -static int first_nonopt; -static int last_nonopt; - -/* Exchange two adjacent subsequences of ARGV. - One subsequence is elements [first_nonopt,last_nonopt) - which contains all the non-options that have been skipped so far. - The other is elements [last_nonopt,optind), which contains all - the options processed since those non-options were skipped. - - `first_nonopt' and `last_nonopt' are relocated so that they describe - the new indices of the non-options in ARGV after they are moved. */ - -static void -exchange (argv) - char **argv; -{ - int bottom = first_nonopt; - int middle = last_nonopt; - int top = optind; - char *tem; - - /* Exchange the shorter segment with the far end of the longer segment. - That puts the shorter segment into the right place. - It leaves the longer segment in the right place overall, - but it consists of two parts that need to be swapped next. */ - - while (top > middle && middle > bottom) - { - if (top - middle > middle - bottom) - { - /* Bottom segment is the short one. */ - int len = middle - bottom; - register int i; - - /* Swap it with the top part of the top segment. */ - for (i = 0; i < len; i++) - { - tem = argv[bottom + i]; - argv[bottom + i] = argv[top - (middle - bottom) + i]; - argv[top - (middle - bottom) + i] = tem; - } - /* Exclude the moved bottom segment from further swapping. */ - top -= len; - } - else - { - /* Top segment is the short one. */ - int len = top - middle; - register int i; - - /* Swap it with the bottom part of the bottom segment. */ - for (i = 0; i < len; i++) - { - tem = argv[bottom + i]; - argv[bottom + i] = argv[middle + i]; - argv[middle + i] = tem; - } - /* Exclude the moved top segment from further swapping. */ - bottom += len; - } - } - - /* Update records for the slots the non-options now occupy. */ - - first_nonopt += (optind - last_nonopt); - last_nonopt = optind; -} - -/* Initialize the internal data when the first call is made. */ - -static const char * -_getopt_initialize (optstring) - const char *optstring; -{ - /* Start processing options with ARGV-element 1 (since ARGV-element 0 - is the program name); the sequence of previously skipped - non-option ARGV-elements is empty. */ - - first_nonopt = last_nonopt = optind = 1; - - nextchar = NULL; - - posixly_correct = getenv ("POSIXLY_CORRECT"); - - /* Determine how to handle the ordering of options and nonoptions. */ - - if (optstring[0] == '-') - { - ordering = RETURN_IN_ORDER; - ++optstring; - } - else if (optstring[0] == '+') - { - ordering = REQUIRE_ORDER; - ++optstring; - } - else if (posixly_correct != NULL) - ordering = REQUIRE_ORDER; - else - ordering = PERMUTE; - - return optstring; -} - -/* Scan elements of ARGV (whose length is ARGC) for option characters - given in OPTSTRING. - - If an element of ARGV starts with '-', and is not exactly "-" or "--", - then it is an option element. The characters of this element - (aside from the initial '-') are option characters. If `getopt' - is called repeatedly, it returns successively each of the option characters - from each of the option elements. - - If `getopt' finds another option character, it returns that character, - updating `optind' and `nextchar' so that the next call to `getopt' can - resume the scan with the following option character or ARGV-element. - - If there are no more option characters, `getopt' returns `EOF'. - Then `optind' is the index in ARGV of the first ARGV-element - that is not an option. (The ARGV-elements have been permuted - so that those that are not options now come last.) - - OPTSTRING is a string containing the legitimate option characters. - If an option character is seen that is not listed in OPTSTRING, - return '?' after printing an error message. If you set `opterr' to - zero, the error message is suppressed but we still return '?'. - - If a char in OPTSTRING is followed by a colon, that means it wants an arg, - so the following text in the same ARGV-element, or the text of the following - ARGV-element, is returned in `optarg'. Two colons mean an option that - wants an optional arg; if there is text in the current ARGV-element, - it is returned in `optarg', otherwise `optarg' is set to zero. - - If OPTSTRING starts with `-' or `+', it requests different methods of - handling the non-option ARGV-elements. - See the comments about RETURN_IN_ORDER and REQUIRE_ORDER, above. - - Long-named options begin with `--' instead of `-'. - Their names may be abbreviated as long as the abbreviation is unique - or is an exact match for some defined option. If they have an - argument, it follows the option name in the same ARGV-element, separated - from the option name by a `=', or else the in next ARGV-element. - When `getopt' finds a long-named option, it returns 0 if that option's - `flag' field is nonzero, the value of the option's `val' field - if the `flag' field is zero. - - The elements of ARGV aren't really const, because we permute them. - But we pretend they're const in the prototype to be compatible - with other systems. - - LONGOPTS is a vector of `struct option' terminated by an - element containing a name which is zero. - - LONGIND returns the index in LONGOPT of the long-named option found. - It is only valid when a long-named option has been found by the most - recent call. - - If LONG_ONLY is nonzero, '-' as well as '--' can introduce - long-named options. */ - -int -_getopt_internal (argc, argv, optstring, longopts, longind, long_only) - int argc; - char *const *argv; - const char *optstring; - const struct option *longopts; - int *longind; - int long_only; -{ - optarg = NULL; - - if (optind == 0) - { - optstring = _getopt_initialize (optstring); - optind = 1; /* Don't scan ARGV[0], the program name. */ - } - - if (nextchar == NULL || *nextchar == '\0') - { - /* Advance to the next ARGV-element. */ - - if (ordering == PERMUTE) - { - /* If we have just processed some options following some non-options, - exchange them so that the options come first. */ - - if (first_nonopt != last_nonopt && last_nonopt != optind) - exchange ((char **) argv); - else if (last_nonopt != optind) - first_nonopt = optind; - - /* Skip any additional non-options - and extend the range of non-options previously skipped. */ - - while (optind < argc - && (argv[optind][0] != '-' || argv[optind][1] == '\0')) - optind++; - last_nonopt = optind; - } - - /* The special ARGV-element `--' means premature end of options. - Skip it like a null option, - then exchange with previous non-options as if it were an option, - then skip everything else like a non-option. */ - - if (optind != argc && !strcmp (argv[optind], "--")) - { - optind++; - - if (first_nonopt != last_nonopt && last_nonopt != optind) - exchange ((char **) argv); - else if (first_nonopt == last_nonopt) - first_nonopt = optind; - last_nonopt = argc; - - optind = argc; - } - - /* If we have done all the ARGV-elements, stop the scan - and back over any non-options that we skipped and permuted. */ - - if (optind == argc) - { - /* Set the next-arg-index to point at the non-options - that we previously skipped, so the caller will digest them. */ - if (first_nonopt != last_nonopt) - optind = first_nonopt; - return EOF; - } - - /* If we have come to a non-option and did not permute it, - either stop the scan or describe it to the caller and pass it by. */ - - if ((argv[optind][0] != '-' || argv[optind][1] == '\0')) - { - if (ordering == REQUIRE_ORDER) - return EOF; - optarg = argv[optind++]; - return 1; - } - - /* We have found another option-ARGV-element. - Skip the initial punctuation. */ - - nextchar = (argv[optind] + 1 - + (longopts != NULL && argv[optind][1] == '-')); - } - - /* Decode the current option-ARGV-element. */ - - /* Check whether the ARGV-element is a long option. - - If long_only and the ARGV-element has the form "-f", where f is - a valid short option, don't consider it an abbreviated form of - a long option that starts with f. Otherwise there would be no - way to give the -f short option. - - On the other hand, if there's a long option "fubar" and - the ARGV-element is "-fu", do consider that an abbreviation of - the long option, just like "--fu", and not "-f" with arg "u". - - This distinction seems to be the most useful approach. */ - - if (longopts != NULL - && (argv[optind][1] == '-' - || (long_only && (argv[optind][2] || !my_index (optstring, argv[optind][1]))))) - { - char *nameend; - const struct option *p; - const struct option *pfound = NULL; - int exact = 0; - int ambig = 0; - int indfound; - int option_index; - - for (nameend = nextchar; *nameend && *nameend != '='; nameend++) - /* Do nothing. */ ; - - /* Test all long options for either exact match - or abbreviated matches. */ - for (p = longopts, option_index = 0; p->name; p++, option_index++) - if (!strncmp (p->name, nextchar, nameend - nextchar)) - { - if (nameend - nextchar == strlen (p->name)) - { - /* Exact match found. */ - pfound = p; - indfound = option_index; - exact = 1; - break; - } - else if (pfound == NULL) - { - /* First nonexact match found. */ - pfound = p; - indfound = option_index; - } - else - /* Second or later nonexact match found. */ - ambig = 1; - } - - if (ambig && !exact) - { - if (opterr) - fprintf (stderr, gettext ("%s: option `%s' is ambiguous\n"), - argv[0], argv[optind]); - nextchar += strlen (nextchar); - optind++; - return '?'; - } - - if (pfound != NULL) - { - option_index = indfound; - optind++; - if (*nameend) - { - /* Don't test has_arg with >, because some C compilers don't - allow it to be used on enums. */ - if (pfound->has_arg) - optarg = nameend + 1; - else - { - if (opterr) - if (argv[optind - 1][1] == '-') - /* --option */ - fprintf (stderr, - gettext ("%s: option `--%s' doesn't allow an argument\n"), - argv[0], pfound->name); - else - /* +option or -option */ - fprintf (stderr, - gettext ("%s: option `%c%s' doesn't allow an argument\n"), - argv[0], argv[optind - 1][0], pfound->name); - - nextchar += strlen (nextchar); - return '?'; - } - } - else if (pfound->has_arg == 1) - { - if (optind < argc) - optarg = argv[optind++]; - else - { - if (opterr) - fprintf (stderr, - gettext ("%s: option `%s' requires an argument\n"), - argv[0], argv[optind - 1]); - nextchar += strlen (nextchar); - return optstring[0] == ':' ? ':' : '?'; - } - } - nextchar += strlen (nextchar); - if (longind != NULL) - *longind = option_index; - if (pfound->flag) - { - *(pfound->flag) = pfound->val; - return 0; - } - return pfound->val; - } - - /* Can't find it as a long option. If this is not getopt_long_only, - or the option starts with '--' or is not a valid short - option, then it's an error. - Otherwise interpret it as a short option. */ - if (!long_only || argv[optind][1] == '-' - || my_index (optstring, *nextchar) == NULL) - { - if (opterr) - { - if (argv[optind][1] == '-') - /* --option */ - fprintf (stderr, gettext ("%s: unrecognized option `--%s'\n"), - argv[0], nextchar); - else - /* +option or -option */ - fprintf (stderr, gettext ("%s: unrecognized option `%c%s'\n"), - argv[0], argv[optind][0], nextchar); - } - nextchar = (char *) ""; - optind++; - return '?'; - } - } - - /* Look at and handle the next short option-character. */ - - { - char c = *nextchar++; - char *temp = my_index (optstring, c); - - /* Increment `optind' when we start to process its last character. */ - if (*nextchar == '\0') - ++optind; - - if (temp == NULL || c == ':') - { - if (opterr) - { - if (posixly_correct) - /* 1003.2 specifies the format of this message. */ - fprintf (stderr, gettext ("%s: illegal option -- %c\n"), - argv[0], c); - else - fprintf (stderr, gettext ("%s: invalid option -- %c\n"), - argv[0], c); - } - optopt = c; - return '?'; - } - if (temp[1] == ':') - { - if (temp[2] == ':') - { - /* This is an option that accepts an argument optionally. */ - if (*nextchar != '\0') - { - optarg = nextchar; - optind++; - } - else - optarg = NULL; - nextchar = NULL; - } - else - { - /* This is an option that requires an argument. */ - if (*nextchar != '\0') - { - optarg = nextchar; - /* If we end this ARGV-element by taking the rest as an arg, - we must advance to the next element now. */ - optind++; - } - else if (optind == argc) - { - if (opterr) - { - /* 1003.2 specifies the format of this message. */ - fprintf (stderr, - gettext ("%s: option requires an argument -- %c\n"), - argv[0], c); - } - optopt = c; - if (optstring[0] == ':') - c = ':'; - else - c = '?'; - } - else - /* We already incremented `optind' once; - increment it again when taking next ARGV-elt as argument. */ - optarg = argv[optind++]; - nextchar = NULL; - } - } - return c; - } -} - -int -getopt (argc, argv, optstring) - int argc; - char *const *argv; - const char *optstring; -{ - return _getopt_internal (argc, argv, optstring, - (const struct option *) 0, - (int *) 0, - 0); -} - -#endif /* _LIBC or not __GNU_LIBRARY__. */ - -#ifdef TEST - -/* Compile with -DTEST to make an executable for use in testing - the above definition of `getopt'. */ - -int -main (argc, argv) - int argc; - char **argv; -{ - int c; - int digit_optind = 0; - - while (1) - { - int this_option_optind = optind ? optind : 1; - - c = getopt (argc, argv, "abc:d:0123456789"); - if (c == EOF) - break; - - switch (c) - { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - if (digit_optind != 0 && digit_optind != this_option_optind) - printf ("digits occur in two different argv-elements.\n"); - digit_optind = this_option_optind; - printf ("option %c\n", c); - break; - - case 'a': - printf ("option a\n"); - break; - - case 'b': - printf ("option b\n"); - break; - - case 'c': - printf ("option c with value `%s'\n", optarg); - break; - - case '?': - break; - - default: - printf ("?? getopt returned character code 0%o ??\n", c); - } - } - - if (optind < argc) - { - printf ("non-option ARGV-elements: "); - while (optind < argc) - printf ("%s ", argv[optind++]); - printf ("\n"); - } - - exit (0); -} - -#endif /* TEST */ diff --git a/Master/texmf-dist/doc/support/texdraw/getopt.h b/Master/texmf-dist/doc/support/texdraw/getopt.h deleted file mode 100644 index 952f4830d3d..00000000000 --- a/Master/texmf-dist/doc/support/texdraw/getopt.h +++ /dev/null @@ -1,129 +0,0 @@ -/* Declarations for getopt. - Copyright (C) 1989, 90, 91, 92, 93, 94 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2, or (at your option) any - later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -#ifndef _GETOPT_H -#define _GETOPT_H 1 - -#ifdef __cplusplus -extern "C" { -#endif - -/* For communication from `getopt' to the caller. - When `getopt' finds an option that takes an argument, - the argument value is returned here. - Also, when `ordering' is RETURN_IN_ORDER, - each non-option ARGV-element is returned here. */ - -extern char *optarg; - -/* Index in ARGV of the next element to be scanned. - This is used for communication to and from the caller - and for communication between successive calls to `getopt'. - - On entry to `getopt', zero means this is the first call; initialize. - - When `getopt' returns EOF, this is the index of the first of the - non-option elements that the caller should itself scan. - - Otherwise, `optind' communicates from one call to the next - how much of ARGV has been scanned so far. */ - -extern int optind; - -/* Callers store zero here to inhibit the error message `getopt' prints - for unrecognized options. */ - -extern int opterr; - -/* Set to an option character which was unrecognized. */ - -extern int optopt; - -/* Describe the long-named options requested by the application. - The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector - of `struct option' terminated by an element containing a name which is - zero. - - The field `has_arg' is: - no_argument (or 0) if the option does not take an argument, - required_argument (or 1) if the option requires an argument, - optional_argument (or 2) if the option takes an optional argument. - - If the field `flag' is not NULL, it points to a variable that is set - to the value given in the field `val' when the option is found, but - left unchanged if the option is not found. - - To have a long-named option do something other than set an `int' to - a compiled-in constant, such as set a value from `optarg', set the - option's `flag' field to zero and its `val' field to a nonzero - value (the equivalent single-letter option character, if there is - one). For long options that have a zero `flag' field, `getopt' - returns the contents of the `val' field. */ - -struct option -{ -#if defined (__STDC__) && __STDC__ - const char *name; -#else - char *name; -#endif - /* has_arg can't be an enum because some compilers complain about - type mismatches in all the code that assumes it is an int. */ - int has_arg; - int *flag; - int val; -}; - -/* Names for the values of the `has_arg' field of `struct option'. */ - -#define no_argument 0 -#define required_argument 1 -#define optional_argument 2 - -#if defined (__STDC__) && __STDC__ -#ifdef __GNU_LIBRARY__ -/* Many other libraries have conflicting prototypes for getopt, with - differences in the consts, in stdlib.h. To avoid compilation - errors, only prototype getopt for the GNU C library. */ -extern int getopt (int argc, char *const *argv, const char *shortopts); -#else /* not __GNU_LIBRARY__ */ -extern int getopt (); -#endif /* __GNU_LIBRARY__ */ -extern int getopt_long (int argc, char *const *argv, const char *shortopts, - const struct option *longopts, int *longind); -extern int getopt_long_only (int argc, char *const *argv, - const char *shortopts, - const struct option *longopts, int *longind); - -/* Internal only. Users should not call this directly. */ -extern int _getopt_internal (int argc, char *const *argv, - const char *shortopts, - const struct option *longopts, int *longind, - int long_only); -#else /* not __STDC__ */ -extern int getopt (); -extern int getopt_long (); -extern int getopt_long_only (); - -extern int _getopt_internal (); -#endif /* __STDC__ */ - -#ifdef __cplusplus -} -#endif - -#endif /* _GETOPT_H */ diff --git a/Master/texmf-dist/doc/support/texdraw/texdraw.pdf b/Master/texmf-dist/doc/support/texdraw/texdraw.pdf Binary files differdeleted file mode 100644 index a29240227f0..00000000000 --- a/Master/texmf-dist/doc/support/texdraw/texdraw.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/support/texdraw/texdraw.ps b/Master/texmf-dist/doc/support/texdraw/texdraw.ps new file mode 100644 index 00000000000..8af929ecb6a --- /dev/null +++ b/Master/texmf-dist/doc/support/texdraw/texdraw.ps @@ -0,0 +1,5665 @@ +%!PS-Adobe-2.0 +%%Creator: dvipsk 5.515a Copyright 1986, 1993 Radical Eye Software +%%Title: texdraw.dvi +%%Pages: 60 +%%PageOrder: Ascend +%%BoundingBox: 0 0 612 792 +%%EndComments +%DVIPSCommandLine: dvips texdraw -o texdraw.ps +%DVIPSSource: TeX output 1995.12.19:1238 +%%BeginProcSet: tex.pro +/TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N +/X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /@rigin{isls{[ +0 -1 1 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale +isls{Resolution hsize -72 div mul 0 TR}if Resolution VResolution vsize +-72 div 1 add mul TR matrix currentmatrix dup dup 4 get round 4 exch put +dup dup 5 get round 5 exch put setmatrix}N /@landscape{/isls true N}B +/@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B +/FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{ +/nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N +string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N +end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{ +/sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0] +N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup +length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{ +128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub +get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data +dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N +/rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup +/base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx +0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff +setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff +.1 add]{ch-image}imagemask restore}B /D{/cc X dup type /stringtype ne{]} +if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup +length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{ +cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin +0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul +add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore showpage +userdict /eop-hook known{eop-hook}if}N /@start{userdict /start-hook +known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X +/IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for +65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0 +0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V +{}B /RV statusdict begin /product where{pop product dup length 7 ge{0 7 +getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false} +ifelse}{false}ifelse end{{gsave TR -.1 -.1 TR 1 1 scale rulex ruley +false RMat{BDot}imagemask grestore}}{{gsave TR -.1 -.1 TR rulex ruley +scale 1 1 false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave +transform round exch round exch itransform moveto rulex 0 rlineto 0 +ruley neg rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta +0 N /tail{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail} +B /c{-4 M}B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{ +3 M}B /k{4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p +-1 w}B /q{p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{ +3 2 roll p a}B /bos{/SS save N}B /eos{SS restore}B end +%%EndProcSet +%%BeginProcSet: special.pro +TeXDict begin /SDict 200 dict N SDict begin /@SpecialDefaults{/hs 612 N +/vs 792 N /ho 0 N /vo 0 N /hsc 1 N /vsc 1 N /ang 0 N /CLIP 0 N /rwiSeen +false N /rhiSeen false N /letter{}N /note{}N /a4{}N /legal{}N}B +/@scaleunit 100 N /@hscale{@scaleunit div /hsc X}B /@vscale{@scaleunit +div /vsc X}B /@hsize{/hs X /CLIP 1 N}B /@vsize{/vs X /CLIP 1 N}B /@clip{ +/CLIP 2 N}B /@hoffset{/ho X}B /@voffset{/vo X}B /@angle{/ang X}B /@rwi{ +10 div /rwi X /rwiSeen true N}B /@rhi{10 div /rhi X /rhiSeen true N}B +/@llx{/llx X}B /@lly{/lly X}B /@urx{/urx X}B /@ury{/ury X}B /magscale +true def end /@MacSetUp{userdict /md known{userdict /md get type +/dicttype eq{userdict begin md length 10 add md maxlength ge{/md md dup +length 20 add dict copy def}if end md begin /letter{}N /note{}N /legal{} +N /od{txpose 1 0 mtx defaultmatrix dtransform S atan/pa X newpath +clippath mark{transform{itransform moveto}}{transform{itransform lineto} +}{6 -2 roll transform 6 -2 roll transform 6 -2 roll transform{ +itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll curveto}}{{ +closepath}}pathforall newpath counttomark array astore /gc xdf pop ct 39 +0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}if}N +/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 -1 +scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 get +ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip +not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0 +TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{noflips{TR +pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop 90 rotate 1 +-1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg +TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr 1 get neg +sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr 2 get ppr +0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 -1 roll add +2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S TR}if}N /cp +{pop pop showpage pm restore}N end}if}if}N /normalscale{Resolution 72 +div VResolution 72 div neg scale magscale{DVImag dup scale}if 0 setgray} +N /psfts{S 65781.76 div N}N /startTexFig{/psf$SavedState save N userdict +maxlength dict begin /magscale false def normalscale currentpoint TR +/psf$ury psfts /psf$urx psfts /psf$lly psfts /psf$llx psfts /psf$y psfts +/psf$x psfts currentpoint /psf$cy X /psf$cx X /psf$sx psf$x psf$urx +psf$llx sub div N /psf$sy psf$y psf$ury psf$lly sub div N psf$sx psf$sy +scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub TR +/showpage{}N /erasepage{}N /copypage{}N /p 3 def @MacSetUp}N /doclip{ +psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2 +roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath +moveto}N /endTexFig{end psf$SavedState restore}N /@beginspecial{SDict +begin /SpecialSave save N gsave normalscale currentpoint TR +@SpecialDefaults count /ocount X /dcount countdictstack N}N /@setspecial +{CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto +closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx +sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR +}{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse +CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury +lineto closepath clip}if /showpage{}N /erasepage{}N /copypage{}N newpath +}N /@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{ +end}repeat grestore SpecialSave restore end}N /@defspecial{SDict begin} +N /@fedspecial{end}B /li{lineto}B /rl{rlineto}B /rc{rcurveto}B /np{ +/SaveX currentpoint /SaveY X N 1 setlinecap newpath}N /st{stroke SaveX +SaveY moveto}N /fil{fill SaveX SaveY moveto}N /ellipse{/endangle X +/startangle X /yrad X /xrad X /savematrix matrix currentmatrix N TR xrad +yrad scale 0 0 1 startangle endangle arc savematrix setmatrix}N end +%%EndProcSet +TeXDict begin 40258431 52099146 1000 300 300 (texdraw.dvi) +@start /Fa 1 47 df<70F8F8F0E005057B840E>46 D E /Fb 1 +47 df<387CFCFCF87006067A8512>46 D E /Fc 45 123 df<00FE000381000601800E03 +801C01001C00001C00001C00001C00001C0000FFFF801C03801C03801C03801C03801C03 +801C03801C03801C03801C03801C03801C03801C03801C03801C0380FF8FF0141A809915 +>12 D<60F0F07010101020204040040B7D830B>44 D<07E01C38381C300C700E60066006 +E007E007E007E007E007E007E007E007E007E00760066006700E300C381C1C3807E01018 +7F9713>48 D<03000700FF00070007000700070007000700070007000700070007000700 +070007000700070007000700070007007FF80D187D9713>I<0F80106020304038803CC0 +1CE01C401C003C003800380070006000C001800100020004040804100430083FF87FF8FF +F80E187E9713>I<07E01838201C601E700E201E001E001C001C0038007007E00038001C +000E000F000FE00FE00FC00F400E601C183807E010187F9713>I<001800180038007800 +F800B8013802380238043808381838103820384038C038FFFF0038003800380038003800 +3803FF10187F9713>I<30183FF03FE03F80200020002000200020002FC0306020300038 +0018001C001C401CE01CE01C80184038403030E00F800E187E9713>I<01F807040C0618 +0E300E300070006000E000E3E0E418E80CF00EE006E007E007E007600760077006300E18 +0C0C3807E010187F9713>I<40007FFF7FFE7FFE40048008801080100020004000400080 +01800100030003000700060006000E000E000E000E000E00040010197E9813>I<07E018 +18300C2006600660067006780C3E181F3007C003E00CF8307C601E600FC007C003C003C0 +0360022004181807E010187F9713>I<07E01C303018700C600EE006E006E007E007E007 +6007700F3017182707C700070006000E000C700C7018603030600F8010187F9713>I<FF +FF800E00E00E00700E00380E003C0E003C0E003C0E003C0E003C0E00780E00700E01E00F +FFC00E00F00E00780E003C0E001C0E001E0E001E0E001E0E001E0E001C0E003C0E00780E +00F0FFFFC0171A7F991B>66 D<FFFFF80E00380E00180E00080E000C0E00040E00040E00 +040E01000E01000E01000E03000FFF000E03000E01000E01000E01000E00020E00020E00 +020E00060E00040E00040E000C0E003CFFFFFC171A7F991A>69 D<FFFFF80E00380E0018 +0E00080E000C0E00040E00040E00040E01000E01000E01000E03000FFF000E03000E0100 +0E01000E01000E00000E00000E00000E00000E00000E00000E00000E0000FFE000161A7F +9919>I<FFE0000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00 +000E00000E00000E00000E00000E00000E00000E00080E00080E00080E00180E00100E00 +300E00700E00F0FFFFF0151A7F9918>76 D<FFFF800E01E00E00700E00780E00380E003C +0E003C0E003C0E003C0E00380E00780E00700E01E00FFF800E00000E00000E00000E0000 +0E00000E00000E00000E00000E00000E00000E0000FFE000161A7F991A>80 +D<0FC21836200E6006C006C002C002C002E00070007E003FE01FF803FC007E000E000700 +03800380038003C002C006E004D81887E0101A7E9915>83 D<7FFFFF00701C0700401C01 +00401C0100C01C0180801C0080801C0080801C0080001C0000001C0000001C0000001C00 +00001C0000001C0000001C0000001C0000001C0000001C0000001C0000001C0000001C00 +00001C0000001C0000001C0000001C000003FFE000191A7F991C>I<FFC0FF800F003C00 +0F001000070020000380200003C0400001C0800000E1800000F10000007A0000003E0000 +001C0000001E0000001E00000017000000278000004380000041C0000081E0000100E000 +0300700002007800040038000C001C001E003E00FF007FC01A1A7F991D>88 +D<1FC000387000383800101C00001C00001C0003FC001E1C00381C00701C00E01C00E01C +80E01C80E03C80705F801F8F0011107F8F13>97 D<FC00001C00001C00001C00001C0000 +1C00001C00001C00001C00001C00001CFC001D07001E03801C01C01C00C01C00E01C00E0 +1C00E01C00E01C00E01C00E01C01C01C01801E030019060010F800131A809915>I<07F8 +1C1C381C70087000E000E000E000E000E000E0007000700438081C1807E00E107F8F11> +I<003F0000070000070000070000070000070000070000070000070000070003E7000C17 +00180F00300700700700E00700E00700E00700E00700E00700E00700600700700700380F +001C370007C7E0131A7F9915>I<07C01C3030187018600CE00CFFFCE000E000E000E000 +6000700438081C1807E00E107F8F11>I<01F007180E381C101C001C001C001C001C001C +00FFC01C001C001C001C001C001C001C001C001C001C001C001C001C001C00FF800D1A80 +990C>I<0FCF001871803030007038007038007038007038003030001860002FC0006000 +006000007000003FF0003FFC001FFE00600F00C00300C00300C00300C00300600600381C +0007E00011187F8F13>I<FC00001C00001C00001C00001C00001C00001C00001C00001C +00001C00001C7C001D87001E03801E03801C03801C03801C03801C03801C03801C03801C +03801C03801C03801C03801C0380FF9FF0141A809915>I<183C3C18000000000000FC1C +1C1C1C1C1C1C1C1C1C1C1C1C1CFF081A80990A>I<018003C003C0018000000000000000 +00000000000FC001C001C001C001C001C001C001C001C001C001C001C001C001C001C001 +C001C001C001C041C0E180E3007E000A2182990C>I<FC00001C00001C00001C00001C00 +001C00001C00001C00001C00001C00001C1FC01C0F001C0C001C18001C20001C40001CE0 +001DE0001E70001C78001C38001C1C001C1E001C0F001C0F80FF9FE0131A809914>I<FC +001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C +001C001C001C001C001C001C00FF80091A80990A>I<FC7C1F001D8E63801E0781C01E07 +81C01C0701C01C0701C01C0701C01C0701C01C0701C01C0701C01C0701C01C0701C01C07 +01C01C0701C01C0701C0FF9FE7F81D107F8F20>I<FC7C001D87001E03801E03801C0380 +1C03801C03801C03801C03801C03801C03801C03801C03801C03801C0380FF9FF0141080 +8F15>I<07E01C38300C700E6006E007E007E007E007E007E0076006700E381C1C3807E0 +10107F8F13>I<FCFC001D07001E03801C01C01C01C01C00E01C00E01C00E01C00E01C00 +E01C00E01C01C01C01801E03001D06001CF8001C00001C00001C00001C00001C00001C00 +00FF80001317808F15>I<FC781D9C1E1C1E081C001C001C001C001C001C001C001C001C +001C001C00FF800E10808F0F>114 D<1F2060E04020C020C020F0007F003FC01FE000F0 +80708030C030C020F0408F800C107F8F0F>I<0800080008000800180018003800FFC038 +003800380038003800380038003800382038203820382018201C4007800B177F960F>I< +FC1F801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C0380 +1C07800C07800E0B8003F3F01410808F15>I<FF0F803C07001C06001C04001C04000E08 +000E080007100007100007100003A00003A00001C00001C00001C00000800011107F8F14 +>I<FE7F1F80381C07003C1C06001C0C04001C0E04000E1608000E1708000E1708000723 +10000723900007A3900003C1A00003C1E0000180C0000180C0000180C00019107F8F1C> +I<FE3F803C1E001C08000E10000F300007600003C00001C00001E00003E0000270000438 +00083800181C00381E00FC3FC012107F8F14>I<FF0F803C07001C06001C04001C04000E +08000E080007100007100007100003A00003A00001C00001C00001C00000800000800001 +0000010000E10000E20000E4000078000011177F8F14>I<FFF8E070C07080E081C081C0 +0380070007000E041C041C04380870087038FFF80E107F8F11>I +E /Fd 1 47 df<7070F06004047D830B>46 D E /Fe 31 126 df<0FC01FF03838701CE0 +0EE00EE00E400E000E001C001C00380030007000E001C0030006000C00180E300E7FFE7F +FE0F177E9614>50 D<FFF0FFFC381E380E38073807380738073807380E381E3FFC3FF038 +003800380038003800380038003800FE00FE0010177F9614>80 D<0FCC1FFC307C603CE0 +1CE01CE01CE00070007E003FE00FF001F8001C001E000E600EE00EE00EF01CF838FFF0C7 +E00F177E9614>83 D<C000E000E00070007000380038001C001C000E000E000700070003 +800380038001C001C000E000E00070007000380038001C001C000E000E00060F1D7E9914 +>92 D<1FC0007FF000707800201800001C00001C0007FC001FFC003C1C00701C00E01C00 +E01C00E01C00707C003FFF800F8F8011107E8F14>97 D<FC0000FC00001C00001C00001C +00001C00001C00001CF8001DFE001F07001E03001C03801C01C01C01C01C01C01C01C01C +01C01C01C01C03801E03001F0E001DFC000CF8001217809614>I<03F80FFE1C0E380470 +006000E000E000E000E00060007000380E1C1E0FFC03F00F107E8F14>I<007E00007E00 +000E00000E00000E00000E00000E0007CE000FFE001C3E00301E00700E00E00E00E00E00 +E00E00E00E00E00E00E00E00700E00301E00383E001FEFC007CFC012177F9614>I<07E0 +0FF01C38301C700CE00EE00EFFFEFFFEE00060007000380E1C1E0FFC03F00F107E8F14> +I<00FC01FE038E07040700070007007FFEFFFE0700070007000700070007000700070007 +00070007000700FFF8FFF80F177F9614>I<07CF001FFF80383B80301800701C00701C00 +701C003018003838003FF00037C0007000007000003FF8001FFC003FFE00700F00E00380 +E00380E00380E003807007003C1E001FFC0007F00011197F8F14>I<FC0000FC00001C00 +001C00001C00001C00001C00001C78001DFE001F86001E07001C07001C07001C07001C07 +001C07001C07001C07001C07001C07001C0700FF8FE0FF8FE01317809614>I<06000F00 +0F0006000000000000000000FF00FF000700070007000700070007000700070007000700 +07000700FFF8FFF80D187C9714>I<006000F000F0006000000000000000001FF01FF000 +700070007000700070007000700070007000700070007000700070007000700070007040 +E0E0C07F803F000C207E9714>I<FC0000FC00001C00001C00001C00001C00001C00001C +FF801CFF801C1C001C38001C70001CE0001DC0001FE0001FE0001E70001C38001C3C001C +1C001C0E00FF1F80FF1F801117809614>I<FF80FF800380038003800380038003800380 +038003800380038003800380038003800380038003800380FFFEFFFE0F177E9614>I<FB +8E00FFDF003CF3803CF38038E38038E38038E38038E38038E38038E38038E38038E38038 +E38038E380FEFBE0FE79E01310808F14>I<FC7800FDFE001F86001E07001C07001C0700 +1C07001C07001C07001C07001C07001C07001C07001C0700FF8FE0FF8FE01310808F14> +I<07C01FF03C78701C701CE00EE00EE00EE00EE00EE00E701C783C3C781FF007C00F107E +8F14>I<FCF800FDFE001F07001E03001C03801C01C01C01C01C01C01C01C01C01C01C01 +C01C03801E03001F0E001DFC001CF8001C00001C00001C00001C00001C00001C0000FF80 +00FF80001218808F14>I<FE1F00FE7F800EE3800F81000F00000F00000E00000E00000E +00000E00000E00000E00000E00000E0000FFF000FFF00011107F8F14>114 +D<0FD83FF86038C038C038F0007F803FF007F8001C6006E006F006F81CFFF8CFE00F107E +8F14>I<06000E000E000E000E007FFCFFFC0E000E000E000E000E000E000E000E000E0E +0E0E0E0E0E1C07F801F00F157F9414>I<FC3F00FC3F001C07001C07001C07001C07001C +07001C07001C07001C07001C07001C07001C07001C1F000FFFE003E7E01310808F14>I< +FE3F80FE3F803C1E001C1C001C1C001C1C000E38000E38000E3800063000077000077000 +07700003E00003E00003E00011107F8F14>I<FE3F80FE3F80700700380E00380E00380E +0039CE0039CE0039CE001B6C001A6C001A6C001A6C001E7C001E7C000E380011107F8F14 +>I<7E3F007E3F001E3C000E780007700007E00003E00001C00003C00003E0000770000E +78000E38001C1C00FE3F80FE3F8011107F8F14>I<FE3F80FE3F801C0E001C1C001C1C00 +0E1C000E38000E380007380007300007300003700003700003E00001E00001E00001C000 +01C00001C0000380007380007700007E00003C000011187F8F14>I<3FFF7FFF700E701C +7038007000E001C0038007000E001C0738077007FFFFFFFF10107F8F14>I<003E00FE01 +E003800380038003800380038003800380038003807F00FE007F00038003800380038003 +800380038003800380038001E000FE003E0F1D7E9914>I<7800FE000F00038003800380 +038003800380038003800380038001FC00FE01FC03800380038003800380038003800380 +038003800F00FE0078000F1D7E9914>125 D E /Ff 1 93 df<600000F00000F00000F8 +00007800007C00003C00003E00001E00001F00000F00000F800007800007C00003C00003 +E00001E00001E00001F00000F00000F800007800007C00003C00003E00001E00001F0000 +0F00000F800007800007800007C00003C00003E00001E00001F00000F00000F800007800 +007C00003C00003E00001E00001F00000F00000F000006182F7DA91F>92 +D E /Fg 1 1 df<FFFFC0FFFFC012027D871A>0 D E /Fh 1 1 df<FFFEFFFE0F027D85 +16>0 D E /Fi 1 44 df<00C00000C00000C00000C00000C00000C00000C00000C000FF +FF80FFFF8000C00000C00000C00000C00000C00000C00000C00000C00011127E8D15>43 +D E /Fj 28 121 df<0003FC00003FFE00007E070001F80F8003F01F8003E01F8007E01F +8007E01F8007E01F8007E0060007E0000007E0000007E0000007E0FFC0FFFFFFC0FFFFFF +C007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00F +C007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00F +C007E00FC007E00FC07FFC7FFC7FFC7FFC1E267FA522>12 D<3C7EFFFFFFFF7E3C08087C +8711>46 D<001C00003C0000FC00FFFC00FFFC0000FC0000FC0000FC0000FC0000FC0000 +FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000 +FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC007FFFFC7F +FFFC16237CA21F>49 D<01FF0007FFC01E07F03803F86001FC7C00FEFE00FEFE00FFFE00 +7FFE007F7C007F3800FF0000FF0000FE0000FE0001FC0001F80003F00007E0000780000F +00001E00003C0000700000E00301C0030380070700060600060FFFFE1FFFFE3FFFFE7FFF +FCFFFFFCFFFFFC18237DA21F>I<01FF0007FFE01E03F03801F83C01FC7E00FE7E00FE7E +00FE3E00FE1C01FE0001FC0001FC0003F80007F0000FC001FF0001FF000007E00001F000 +01F80000FC0000FE0000FF0000FF1000FF7C00FFFE00FFFE00FFFE00FEFE00FE7C01FC70 +01F83E07F00FFFC001FF0018237DA21F>I<0000380000007800000078000000F8000001 +F8000003F8000007F8000006F800000CF800001CF8000038F8000030F8000060F80000E0 +F80001C0F8000180F8000300F8000700F8000E00F8001C00F8001800F8003000F8007000 +F800E000F800FFFFFFC0FFFFFFC00001F8000001F8000001F8000001F8000001F8000001 +F8000001F800007FFFC0007FFFC01A237EA21F>I<18000C1F007C1FFFF81FFFF01FFFE0 +1FFFC01FFF801FFE0018000018000018000018000018000018FF001BFFE01F01F01C00F8 +0800FC00007E00007E00007E00007F00007F78007FFC007FFC007FFC007FFC007EF8007E +6000FC7000FC3801F81E07E007FFC001FE0018237DA21F>I<FFFFFFE000FFFFFFFC0003 +F800FF0003F8003F8003F8001FC003F8001FE003F8000FE003F8000FF003F8000FF003F8 +000FF003F8000FF003F8000FF003F8000FF003F8000FE003F8001FE003F8001FC003F800 +3F8003F800FF0003FFFFFC0003FFFFE00003F800000003F800000003F800000003F80000 +0003F800000003F800000003F800000003F800000003F800000003F800000003F8000000 +03F800000003F800000003F800000003F8000000FFFFE00000FFFFE0000024257EA42A> +80 D<FFFFFF800000FFFFFFF8000003F801FE000003F8007F000003F8003F800003F800 +1FC00003F8001FC00003F8001FE00003F8001FE00003F8001FE00003F8001FE00003F800 +1FE00003F8001FC00003F8001FC00003F8003F800003F8007F000003F801FE000003FFFF +F8000003FFFFC0000003F803F0000003F801F8000003F800FC000003F8007E000003F800 +7E000003F8007F000003F8007F000003F8007F000003F8007F000003F8007F800003F800 +7F800003F8007F800003F8007F806003F8003FC06003F8003FC0C003F8001FE1C0FFFFE0 +0FFF80FFFFE001FE002B257EA42E>82 D<00FF008007FFE3800F80F7801E001F803C000F +807800078078000380F8000380F8000180F8000180FC000180FC000000FF0000007FE000 +007FFF00003FFFE0003FFFF8001FFFFE0007FFFF0003FFFF80007FFF800003FFC000003F +C000000FE0000007E0000007E0C00003E0C00003E0C00003E0C00003C0E00003C0F00007 +C0F8000780FC000F00FFC03E00E3FFF800803FE0001B257DA422>I<7FFFFFFFF87FFFFF +FFF87E00FE01F87800FE00787000FE00386000FE00186000FE0018E000FE001CE000FE00 +0CC000FE000CC000FE000CC000FE000CC000FE000C0000FE00000000FE00000000FE0000 +0000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE000000 +00FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000 +FE00000000FE00000000FE00000000FE000000FFFFFE0000FFFFFE0026247EA32B>I<07 +FF00001FFFC0003E03E0003F01F0003F01F8003F00FC001E00FC000000FC000000FC0000 +00FC00003FFC0003FCFC000FC0FC003F00FC007E00FC007E00FC00FC00FC00FC00FC00FC +00FC00FC017C007E017C003F067C001FFC3FE007F01FE01B187E971E>97 +D<007FE003FFF807C07C1F80FC1F00FC3F00FC7E00787E0000FE0000FE0000FE0000FE00 +00FE0000FE0000FE0000FE00007E00007F00003F000C1F800C1FC01807E07003FFE0007F +0016187E971B>99 D<0001FF800001FF8000001F8000001F8000001F8000001F8000001F +8000001F8000001F8000001F8000001F8000001F8000001F8000001F80007F1F8003FFDF +8007E0FF801F803F803F001F803F001F807E001F807E001F80FE001F80FE001F80FE001F +80FE001F80FE001F80FE001F80FE001F80FE001F807E001F807E001F803F001F803F003F +801F807F800FC0FF8003FF9FF800FE1FF81D267EA522>I<007F0003FFC007C1F00F80F8 +1F00F83F007C7E007C7E007EFE007EFE007EFFFFFEFFFFFEFE0000FE0000FE00007E0000 +7E00007E00063F00061F000C0F801807E07003FFE0007F8017187E971C>I<01FF07C007 +FFDFE00F83F1E01F01F1E03E00F8007E00FC007E00FC007E00FC007E00FC007E00FC007E +00FC003E00F8001F01F0000F83E0000FFFC00011FF00003000000030000000380000003C +0000003FFFE0001FFFFC001FFFFE000FFFFF001FFFFF803C003F8078000FC0F80007C0F8 +0007C0F80007C0F80007C07C000F803E001F001F807E0007FFF80000FFC0001B247E971F +>103 D<FFC00000FFC000000FC000000FC000000FC000000FC000000FC000000FC00000 +0FC000000FC000000FC000000FC000000FC000000FC000000FC1F8000FC7FE000FCC3F00 +0FD01F000FF01F800FE01F800FE01F800FC01F800FC01F800FC01F800FC01F800FC01F80 +0FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F80 +0FC01F80FFFCFFF8FFFCFFF81D267DA522>I<0F001F803FC03FC03FC03FC01F800F0000 +00000000000000000000000000FFC0FFC00FC00FC00FC00FC00FC00FC00FC00FC00FC00F +C00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC0FFF8FFF80D277EA611>I<FFC0FFC0 +0FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC0 +0FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC0FFFCFFFC +0E267EA511>108 D<FF81FC01FC00FF87FF07FF000F8C1F8C1F800F980F980F800FB00F +F00FC00FA00FE00FC00FA00FE00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00F +C00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00F +C00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC0FFFCFF +FCFFFCFFFCFFFCFFFC2E187D9733>I<FF81F800FF87FE000F8C3F000F901F000FB01F80 +0FA01F800FA01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F80 +0FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F80FFFCFFF8 +FFFCFFF81D187D9722>I<007F800003FFF00007C0F8001F807E003F003F003F003F007E +001F807E001F80FE001FC0FE001FC0FE001FC0FE001FC0FE001FC0FE001FC0FE001FC0FE +001FC07E001F807E001F803F003F003F003F001F807E000FC0FC0003FFF000007F80001A +187E971F>I<FFC3F800FFCFFE000FF83F800FE00FC00FC00FE00FC007E00FC007F00FC0 +03F00FC003F80FC003F80FC003F80FC003F80FC003F80FC003F80FC003F80FC003F80FC0 +07F00FC007F00FC007E00FC00FC00FE01FC00FF83F000FDFFE000FC7F0000FC000000FC0 +00000FC000000FC000000FC000000FC000000FC000000FC000000FC00000FFFC0000FFFC +00001D237E9722>I<FF87C0FF8FF00F98F80FB1F80FA1F80FA1F80FE0F00FC0000FC000 +0FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC000 +0FC000FFFE00FFFE0015187E9719>114 D<07F9801FFF803C0F80700380F00180F00180 +F00180FC0000FF80007FFC007FFE003FFF800FFFC003FFC0001FE00003E0C001E0C001E0 +E001E0E001C0F003C0FC0780EFFF00C3FC0013187E9718>I<0060000060000060000060 +0000E00000E00001E00001E00003E00007E0001FE000FFFFC0FFFFC007E00007E00007E0 +0007E00007E00007E00007E00007E00007E00007E00007E00007E00007E06007E06007E0 +6007E06007E06007E06003E0C003F0C001FF80007E0013237FA218>I<FFC1FF80FFC1FF +800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F +800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC03F800FC03F +8007C07F8007E0DF8003FF9FF800FE1FF81D187D9722>I<FFF83FF0FFF83FF00FC00F00 +07E00C0003F01C0003F8380001FC700000FCE000007EC000003F8000003F8000001F8000 +000FC000001FE000001FF0000033F8000071F80000E0FC0001C07E0003807F0003003F00 +0F001F80FFC07FF8FFC07FF81D187F9720>120 D E /Fk 3 116 +df<07FFE000E07001C01801C01C01C01C01C01C0380380380380380700381C007FF0007 +00000700000700000E00000E00000E00000E00001C0000FF800016147F9315>80 +D<30F8590C4E0C9C0C980C180C180C30183019303130316032601C100D7F8C15>110 +D<0700188019C0318038001E000F0003804180E180C10082007C000A0D7E8C10>115 +D E /Fl 15 123 df<0000F8000306000406000803001003002003004007004007008007 +00800601000E01000C0107F80104700207D802001C02001C02001E04001E04001E04001E +04001E08003C08003C08003C0800781800701400F01400E01201C0218700207C00200000 +20000040000040000040000040000080000080000080000018297F9F1A>12 +D<01801801C01C0380380380380380380380380700700700700700700700700E00E00E00 +E00E00E00E00E11E01C21E01C21E03C21E05C43F08C439F0783800003800007000007000 +00700000700000E00000E00000E00000C00000181E7F931B>22 D<0FFFFC1FFFFC3FFFFC +608200C08400808400018400010400010C00030C00030C00020C00060C00060C000E0C00 +0C0E001C0E001C0E00380F0018060016147E931A>25 D<000F800038C000606000C07001 +C0700380780380780700780700780700780E00F00E00F00E00F00E01E01C01C01C01C01E +03801E0700390C0038F000380000380000700000700000700000700000E00000E00000E0 +0000C00000151E7F9318>I<04000180080003C0100003E0100001E0200000E0200000E0 +2000004040040040400C0040400C0040800C008080080080C0080180C0180300C0380600 +E07C0E00FFEFFC007FCFF8003F87F0001E03C0001B1480931C>33 +D<70F8F8F87005057C840D>58 D<00FFF9FFF0000F801F00000F001E00000F001E00000F +001E00001E003C00001E003C00001E003C00001E003C00003C007800003C007800003C00 +7800003C007800007800F000007FFFF000007800F000007800F00000F001E00000F001E0 +0000F001E00000F001E00001E003C00001E003C00001E003C00001E003C00003C0078000 +03C007800003C007800003C007800007C00F8000FFF8FFF800241F7E9E26>72 +D<00FFF80FF8000F8003E0000F000380000F000200000F000400001E000800001E002000 +001E004000001E008000003C010000003C040000003C080000003C180000007838000000 +787C000000793C0000007A3C000000F41E000000F81E000000F01E000000F00F000001E0 +0F000001E00F000001E007800001E007800003C007800003C003C00003C003C00003C003 +C00007C003E000FFFC3FFC00251F7E9E27>75 D<00FF803FF0000F800780000F80020000 +0BC00200000BC002000013C004000011E004000011E004000011E004000020F008000020 +F008000020F808000020780800004078100000403C100000403C100000403C100000801E +200000801E200000801E200000800F200001000F400001000F4000010007C000010007C0 +0002000780000200038000020003800006000380000F00010000FFE0010000241F7E9E25 +>78 D<07803F8007000700070007000E000E000E000E001C001C001CF01D0C3A0E3C0E38 +0F380F700F700F700F700FE01EE01EE01EE01CE03CE038607060E031C01F0010207E9F14 +>98 D<007C01C207010E011C013C013802780C7BF07C00F000F000F000F0007000700170 +023004183807C010147E9315>101 D<00007C0000CE00019E00039E00030C0007000007 +00000700000700000E00000E00000E0000FFF0000E00000E00001C00001C00001C00001C +00001C0000380000380000380000380000380000700000700000700000700000700000E0 +0000E00000E00000E00000C00001C000318000798000F300006200003C000017297E9F16 +>I<1E07802318C023A06043C0704380704380708700E00700E00700E00700E00E01C00E +01C00E01C00E03821C03841C07041C07081C03083803101801E017147E931B>110 +D<03C1C00C62201034701038F02038F020386040700000700000700000700000E00000E0 +0000E00000E02061C040F1C040F1C080E2C080446300383C0014147E931A>120 +D<01E02003F04007F8C00C1F8008010000020000040000080000100000600000C0000100 +000200000400800801001003003F060061FC0040F80080700013147E9315>122 +D E /Fm 1 81 df<FFFFFFFFF0FFFFFFFFF07000000FF878000000F83C000000381C0000 +001C0E0000000C0F000000040700000006038000000203C000000001E000000000E00000 +0000700000000078000000003C000000001C000000001E000000000F0000000007000000 +00038000000003800000000300000000070000000006000000000C000000001800000000 +380000000030000000006000000000C000000001C0000000018000000203000000060600 +0000040E0000000C0C0000001C180000003830000000F87000000FF87FFFFFFFF0FFFFFF +FFF0272A7E7F2C>80 D E /Fn 4 52 df<0F0030C0606060604020C030C030C030C030C0 +30C030C030C030C03040206060606030C00F000C137E9211>48 D<0C001C00EC000C000C +000C000C000C000C000C000C000C000C000C000C000C000C000C00FFC00A137D9211>I< +1F0060C06060F070F030603000700070006000C001C00180020004000810101020207FE0 +FFE00C137E9211>I<0FC030707038703870380038003000E00FC0007000380018001C60 +1CF01CF018E03860701FC00E137F9211>I E /Fo 34 122 df<1C3E7E7E3A0202040408 +081020C0070E7D840D>44 D<FFC0FFC00A027D8A0F>I<007E0001C3000301800701C00E +00C00E00E01C00E01C00E03C01E03801E07801E07801E07801E07801E07801E0F003C0F0 +03C0F003C0F003C0F003C0F00380F00780E00780E00700E00700E00E00600E00701C0030 +38003870000FC000131F7C9D17>48 D<000C001C00FC0F38003800380038003800380070 +0070007000700070007000E000E000E000E000E000E001C001C001C001C001C001C00380 +03C0FFFE0F1E7C9D17>I<003F8000C1E00100F00200780400780400780F007C0F807C0F +807C0F00780600780000F80000F00001E00001C0000380000700000E00001C0000380000 +600000C0000180000300200600200800401000403FFFC07FFF80FFFF80161E7E9D17>I< +007F000183C00201E00400F00700F00F00F00F01F00F01F00001E00001E00003C0000380 +000700000E0000F800000E000007000007800007C00003C00007C03007C07807C0F807C0 +F807C0F00780800F00400E00201C0018780007E000141F7D9D17>I<07FFFFF8007C0078 +003C0038003C001800780018007800080078000800780008007800080078080800F01000 +00F0100000F0100000F0300000FFF00000F0700001E0200001E0200001E0200001E02000 +01E0000801E0001003C0001003C0001003C0002003C0002003C0006003C000C0078001C0 +078007C0FFFFFF801D1F7E9E1F>69 D<07FFF000007E0000003C0000003C000000780000 +007800000078000000780000007800000078000000F0000000F0000000F0000000F00000 +00F0000000F0000001E0000001E0000001E0000001E0000001E0008001E0010003C00100 +03C0010003C0030003C0020003C0060003C0060007801E0007807C00FFFFFC00191F7E9E +1C>76 D<07FC0000FFC0007C0000F800003C00017800003C00017800004E0002F000004E +0002F000004E0004F000004E0004F000004E0008F000004E0008F00000870011E0000087 +0011E00000870021E00000870021E00000870041E00000838041E00001038083C0000103 +8083C00001038103C00001038203C0000101C203C0000101C403C0000201C40780000201 +C80780000201C80780000201D00780000200F00780000600E00780000600E00F00000F00 +C00F8000FFE0C1FFF8002A1F7E9E2A>I<07FFFF00007C03C0003C01E0003C00F0007800 +F0007800F8007800F8007800F8007800F8007800F000F001F000F001E000F003C000F007 +8000F00F0000FFF80001E0000001E0000001E0000001E0000001E0000001E0000003C000 +0003C0000003C0000003C0000003C0000003C000000780000007C00000FFFC00001D1F7E +9E1F>80 D<07FFFC00007C0700003C03C0003C01E0007801E0007801F0007801F0007801 +F0007801F0007801E000F003E000F003C000F0078000F00F0000F03C0000FFF00001E030 +0001E0380001E01C0001E01C0001E01C0001E01E0003C03E0003C03E0003C03E0003C03E +0003C03E0003C03E0207803E0407C01F04FFFC0F18000003E01F207E9E21>82 +D<003F040060CC01803C03801C03001C0700180600080E00080E00080E00080E00000F00 +000F80000FE00007FE0003FF8001FFC0007FE00007E00001E00000E00000F00000F04000 +E04000E04000E04000E06000C0600180E00380F80300C60C0081F80016217D9F19>I<07 +F8000C0C001E06001E07001C070000070000070000070000FF0007C7001E07003C0E0078 +0E00F00E10F00E10F00E10F01E10F02E20784F401F878014147D9317>97 +D<0700003F00000F00000700000700000E00000E00000E00000E00000E00000E00001C00 +001C7C001D87001E03801C01C01C01C03801C03801E03801E03801E03801E03801E07003 +C07003C0700380700780700700700E00E81C00C4380083E00013207B9F19>I<01FC0706 +0E0F1C0F380E78007000F000F000F000F000E000E000E000E000F0027004300818300FC0 +10147C9314>I<0000700003F00000F00000700000700000E00000E00000E00000E00000 +E00000E00001C000F9C00305C00E03C01C03C03801C0780380700380F00380F00380F003 +80F00380E00700E00700E00700E00700E00700700F00301E00186F000F8FE014207C9F19 +>I<00F800070E000E07001C0700380380780380700380F00380F00380FFFF80F00000E0 +0000E00000E00000E00000F001007002003004001C180007E00011147D9314>I<000780 +0018C00031E00061E000E1C000C00001C00001C00001C00001C00001C0000380007FF800 +0380000380000380000380000700000700000700000700000700000700000E00000E0000 +0E00000E00000E00000E00001C00001E0000FFE00013207E9F0E>I<00000E003E1100E1 +A301C1C20381E00780E00701E00F01E00F01E00F01E00703C007038007870004FC000800 +000800001800001C00000FFF000FFFC007FFE01800F0300030600030C00030C00030C000 +306000603000C01C070007FC00181F809417>I<00E00007E00001E00000E00000E00001 +C00001C00001C00001C00001C00001C000038000038F800390E003A0E003C06003806007 +80E00700E00700E00700E00700E00700E00E01C00E01C00E01C00E01C00E01C00E01C01C +03801E03C0FFCFF815207E9F19>I<01C003E003E003C001800000000000000000000000 +0003801F800780038003800700070007000700070007000E000E000E000E000E000E001C +001E00FF800B1F7F9E0C>I<00E007E001E000E000E001C001C001C001C001C001C00380 +038003800380038003800700070007000700070007000E000E000E000E000E000E001C00 +1E00FFC00B207F9F0C>108 D<0387C07C001F9861860007A072070003C0340300038038 +03000780780700070070070007007007000700700700070070070007007007000E00E00E +000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E001C01C01C001E01E01E00 +FFCFFCFFC022147E9326>I<038F801F90E007A0E003C0600380600780E00700E00700E0 +0700E00700E00700E00E01C00E01C00E01C00E01C00E01C00E01C01C03801E03C0FFCFF8 +15147E9319>I<00FC000387000E01801C00C03800E03800E07000F0F000F0F000F0F000 +F0F000F0E001E0E001E0E001C0E003C0F00380700700380E001C1C0007E00014147D9317 +>I<00E3E007EC3800F01C00E01E00E00E01C00E01C00F01C00F01C00F01C00F01C00F03 +801E03801E03801C03803C0380380380700740E00721C0071F000700000700000700000E +00000E00000E00000E00001E0000FFC000181D809319>I<038E001FB38007C78003C780 +0383000780000700000700000700000700000700000E00000E00000E00000E00000E0000 +0E00001C00001E0000FFE00011147E9312>114 D<01F2060E080618061802380438001E +001FE00FF003F8003C401C400C400C600C6018E010D0608FC00F147E9312>I<00800100 +01000100030007000F001E00FFF80E000E000E000E001C001C001C001C001C001C003800 +38203820382038203840384018800F000D1C7C9B12>I<1C0380FC1F803C07801C03801C +0380380700380700380700380700380700380700700E00700E00700E00700E00701E0070 +1E00703C00305E001F9FC012147B9319>I<FF83F81E00E01C00C01C00800E00800E0100 +0E02000E02000F040007040007080007080007100003900003A00003E00003C000038000 +01800001000015147C9318>I<FF9FE1FC3E0780701C0300601C0300401C0380401C0380 +800E0780800E0581000E0981000E09C2000E11C2000731C4000721C4000760C8000740C8 +000780F0000780F0000300E00003006000020040001E147C9321>I<1FF0FF03C07801C0 +6001C04000E08000E180007300007600003C00003C00001C00002E00004E000087000107 +000203800603800C01C03E03E0FF07FC18147F9318>I<0FF83F8001E00E0001C00C0001 +C0080000E0180000E0100000E0200000E0200000F0400000704000007080000070800000 +71000000390000003A0000003E0000003C00000038000000180000001000000010000000 +200000002000000040000070C00000F0800000F1000000E20000007C000000191D809318 +>I E /Fp 38 121 df<0001C0000003C000000FC000007FC0001FFFC000FFFFC000FFBF +C000E03FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003F +C000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003F +C000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003F +C000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003F +C0007FFFFFE07FFFFFE07FFFFFE01B2E7AAD28>49 D<003FE00001FFFE0007FFFF800F80 +FFC01E003FE038001FF07C000FF87E0007FCFF0007FCFF8007FEFF8007FEFF8003FEFF80 +03FE7F0003FE3E0007FE000007FE000007FC000007FC00000FF800000FF800000FF00000 +1FE000001FC000003F8000007F0000007E000000F8000001F0000003E0000007C000000F +0000001E000E003C000E0038000E0070001E00E0001C01C0001C0300003C07FFFFFC0FFF +FFFC1FFFFFFC3FFFFFFC7FFFFFF8FFFFFFF8FFFFFFF8FFFFFFF81F2E7CAD28>I<001FF8 +0000007FFF000001FFFFC00003E03FE00007800FF0000FC00FF8001FE007F8001FE007FC +001FE007FC001FE007FC001FE007FC000FC007FC00078007FC0000000FF80000000FF800 +00000FF00000001FE00000001FC00000003F80000000FE0000003FF80000003FFF800000 +001FE000000007F000000007F800000003FC00000003FE00000001FF00000001FF000000 +01FF80000001FF80000001FF801C0001FF803E0001FF807F0001FF80FF8001FF80FF8001 +FF00FF8001FF00FF8003FE007F0003FE007E0007FC003C0007F8001FC01FF0000FFFFFC0 +0003FFFF0000003FF80000212E7DAD28>I<0000007000000000F000000001F000000003 +F000000007F00000000FF00000000FF00000001FF00000003FF000000077F0000000F7F0 +000000E7F0000001C7F000000387F000000707F000000F07F000000E07F000001C07F000 +003807F000007007F00000F007F00000E007F00001C007F000038007F000070007F0000F +0007F0000E0007F0001C0007F000380007F000700007F000E00007F000FFFFFFFFE0FFFF +FFFFE0FFFFFFFFE000000FF00000000FF00000000FF00000000FF00000000FF00000000F +F00000000FF00000000FF00000000FF000000FFFFFE0000FFFFFE0000FFFFFE0232E7EAD +28>I<0C0000300FC003F00FFFFFE00FFFFFC00FFFFF800FFFFF000FFFFE000FFFF8000F +FFF0000FFF80000E0000000E0000000E0000000E0000000E0000000E0000000E0000000E +0000000E1FF0000E7FFE000FE03F800F800FC00E0007E00C0007F0000007F8000003FC00 +0003FC000003FC000003FE000003FE180003FE3E0003FE7F0003FEFF0003FEFF0003FEFF +0003FCFF0003FCFE0003FC780007F8780007F03C000FE01E001FC00FC07F8007FFFF0001 +FFFC00003FE0001F2E7CAD28>I<0000007800000000000078000000000000FC00000000 +0000FC000000000000FC000000000001FE000000000001FE000000000003FF0000000000 +03FF000000000007FF800000000007FF800000000007FF80000000000FFFC0000000000E +7FC0000000001E7FE0000000001C3FE0000000001C3FE000000000383FF000000000381F +F000000000781FF800000000700FF800000000700FF800000000E00FFC00000000E007FC +00000001E007FE00000001C003FE00000001C003FE000000038003FF000000038001FF00 +0000078001FF800000070000FF800000070000FF8000000FFFFFFFC000000FFFFFFFC000 +001FFFFFFFE000001C00003FE000003C00003FF000003800001FF000003800001FF00000 +7000001FF800007000000FF80000F000000FFC0000E0000007FC0000E0000007FC0001C0 +000007FE0003E0000003FE00FFFF8001FFFFFCFFFF8001FFFFFCFFFF8001FFFFFC36317D +B03D>65 D<FFFFFFFFE00000FFFFFFFFFE0000FFFFFFFFFF800000FF0000FFC00000FF00 +003FF00000FF00001FF80000FF00000FF80000FF000007FC0000FF000007FC0000FF0000 +07FE0000FF000003FE0000FF000003FE0000FF000003FE0000FF000003FE0000FF000007 +FE0000FF000007FE0000FF000007FC0000FF000007FC0000FF00000FF80000FF00001FF0 +0000FF00003FE00000FF0000FF800000FF000FFF000000FFFFFFFE000000FFFFFFFFC000 +00FF00001FF00000FF000007F80000FF000003FE0000FF000003FE0000FF000001FF0000 +FF000001FF8000FF000000FF8000FF000000FFC000FF000000FFC000FF000000FFC000FF +000000FFC000FF000000FFC000FF000000FFC000FF000000FFC000FF000000FF8000FF00 +0001FF8000FF000001FF0000FF000003FF0000FF000007FE0000FF00000FFC0000FF0000 +7FF800FFFFFFFFFFE000FFFFFFFFFF8000FFFFFFFFFC000032317EB039>I<000003FF80 +018000003FFFF003800001FFFFFC07800007FF003F0F80001FF800079F80003FC00001FF +8000FF800000FF8001FE0000007F8003FC0000003F8007FC0000001F8007F80000000F80 +0FF00000000F801FF000000007801FF000000007803FE000000007803FE000000003807F +E000000003807FE000000003807FC000000000007FC00000000000FFC00000000000FFC0 +0000000000FFC00000000000FFC00000000000FFC00000000000FFC00000000000FFC000 +00000000FFC00000000000FFC000000000007FC000000000007FC000000000007FE00000 +0000007FE000000003803FE000000003803FE000000003801FF000000003801FF0000000 +07800FF0000000070007F8000000070007FC0000000E0003FC0000001E0001FE0000001C +0000FF8000007800003FC00000F000001FF80003E0000007FF003F80000001FFFFFE0000 +00003FFFF80000000003FF80000031317CB03A>I<FFFFFFFFF00000FFFFFFFFFF0000FF +FFFFFFFFC00000FF8000FFF00000FF80000FF80000FF800003FE0000FF800001FF0000FF +800000FF8000FF8000007FC000FF8000003FC000FF8000001FE000FF8000001FF000FF80 +00000FF000FF8000000FF800FF8000000FF800FF80000007FC00FF80000007FC00FF8000 +0007FC00FF80000007FC00FF80000007FE00FF80000007FE00FF80000007FE00FF800000 +07FE00FF80000007FE00FF80000007FE00FF80000007FE00FF80000007FE00FF80000007 +FE00FF80000007FE00FF80000007FE00FF80000007FC00FF80000007FC00FF80000007FC +00FF80000007FC00FF8000000FF800FF8000000FF800FF8000000FF000FF8000001FF000 +FF8000001FE000FF8000003FE000FF8000007FC000FF8000007F8000FF800001FF0000FF +800003FE0000FF80000FFC0000FF80007FF000FFFFFFFFFFC000FFFFFFFFFF0000FFFFFF +FFF0000037317EB03E>I<FFFFFFFFFFF0FFFFFFFFFFF0FFFFFFFFFFF000FF80003FF000 +FF800007F800FF800003F800FF800000F800FF800000F800FF8000007800FF8000007800 +FF8000003800FF8000003800FF8000003800FF8000001C00FF8007001C00FF8007001C00 +FF8007001C00FF8007000000FF8007000000FF800F000000FF801F000000FF803F000000 +FFFFFF000000FFFFFF000000FFFFFF000000FF803F000000FF801F000000FF800F000000 +FF8007000000FF8007000000FF8007000700FF8007000700FF8007000700FF8000000E00 +FF8000000E00FF8000000E00FF8000000E00FF8000001E00FF8000001E00FF8000003C00 +FF8000003C00FF8000007C00FF800000FC00FF800001FC00FF800007FC00FF80003FFCFF +FFFFFFFFF8FFFFFFFFFFF8FFFFFFFFFFF830317EB035>I<FFFFFF80FFFFFF80FFFFFF80 +00FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF8000 +00FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF8000 +00FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF8000 +00FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF8000 +00FF800000FF800000FF800000FF800000FF800000FF800000FF8000FFFFFF80FFFFFF80 +FFFFFF8019317EB01E>73 D<FFFFFFE00000FFFFFFE00000FFFFFFE0000000FF80000000 +00FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF80000000 +00FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF80000000 +00FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF80000000 +00FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF80000000 +00FF8000000000FF8000000000FF800001C000FF800001C000FF800001C000FF800001C0 +00FF800003C000FF8000038000FF8000038000FF8000078000FF8000078000FF80000780 +00FF80000F8000FF80001F8000FF80003F8000FF80007F8000FF8000FF0000FF8007FF00 +FFFFFFFFFF00FFFFFFFFFF00FFFFFFFFFF002A317EB030>76 D<FFFFC000000003FFFFFF +FFC000000003FFFFFFFFE000000007FFFF00FFE000000007FF0000EFF00000000EFF0000 +EFF00000000EFF0000EFF00000000EFF0000E7F80000001CFF0000E7F80000001CFF0000 +E3FC00000038FF0000E3FC00000038FF0000E1FE00000070FF0000E1FE00000070FF0000 +E0FF000000E0FF0000E0FF000000E0FF0000E07F800001C0FF0000E07F800001C0FF0000 +E03FC0000380FF0000E03FC0000380FF0000E03FC0000380FF0000E01FE0000700FF0000 +E01FE0000700FF0000E00FF0000E00FF0000E00FF0000E00FF0000E007F8001C00FF0000 +E007F8001C00FF0000E003FC003800FF0000E003FC003800FF0000E001FE007000FF0000 +E001FE007000FF0000E000FF00E000FF0000E000FF00E000FF0000E000FF00E000FF0000 +E0007F81C000FF0000E0007F81C000FF0000E0003FC38000FF0000E0003FC38000FF0000 +E0001FE70000FF0000E0001FE70000FF0000E0000FFE0000FF0000E0000FFE0000FF0000 +E00007FC0000FF0000E00007FC0000FF0000E00007FC0000FF0000E00003F80000FF0001 +F00003F80000FF00FFFFE001F000FFFFFFFFFFE001F000FFFFFFFFFFE000E000FFFFFF48 +317EB04D>I<FFFFFFFFE000FFFFFFFFFE00FFFFFFFFFF8000FF8000FFE000FF80003FF0 +00FF80000FF800FF800007FC00FF800007FC00FF800003FE00FF800003FE00FF800003FF +00FF800003FF00FF800003FF00FF800003FF00FF800003FF00FF800003FF00FF800003FF +00FF800003FE00FF800003FE00FF800007FC00FF800007F800FF80000FF800FF80003FE0 +00FF8000FFC000FFFFFFFF0000FFFFFFF80000FF8000000000FF8000000000FF80000000 +00FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF80000000 +00FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF80000000 +00FF8000000000FF8000000000FF8000000000FF8000000000FF80000000FFFFFF800000 +FFFFFF800000FFFFFF80000030317EB037>80 D<001FF8018000FFFF038003FFFFC78007 +F007EF800F8000FF801F00007F803E00001F803E00000F807C00000F807C00000780FC00 +000780FC00000780FC00000380FE00000380FE00000380FF00000000FFC00000007FF000 +00007FFF8000003FFFF800003FFFFF80001FFFFFF0000FFFFFF80007FFFFFE0003FFFFFF +0000FFFFFF80003FFFFF800001FFFFC000001FFFE0000000FFE00000003FE00000001FF0 +0000000FF000000007F060000007F0E0000003F0E0000003F0E0000003F0E0000003E0F0 +000003E0F0000003E0F8000007C0FC000007C0FF00000F80FFC0001F00FBFC00FE00F1FF +FFF800E03FFFF000C003FF800024317CB02D>83 D<7FFFFFFFFFFF007FFFFFFFFFFF007F +FFFFFFFFFF007FC00FF801FF007E000FF8003F007C000FF8001F0078000FF8000F007800 +0FF8000F0070000FF8000700F0000FF8000780F0000FF8000780F0000FF8000780E0000F +F8000380E0000FF8000380E0000FF8000380E0000FF8000380E0000FF800038000000FF8 +00000000000FF800000000000FF800000000000FF800000000000FF800000000000FF800 +000000000FF800000000000FF800000000000FF800000000000FF800000000000FF80000 +0000000FF800000000000FF800000000000FF800000000000FF800000000000FF8000000 +00000FF800000000000FF800000000000FF800000000000FF800000000000FF800000000 +000FF800000000000FF800000000000FF800000000000FF800000000000FF80000000000 +0FF800000000000FF8000000007FFFFFFF0000007FFFFFFF0000007FFFFFFF000031307D +AF38>I<FFFFFF8003FFFF80FFFFFF8003FFFF80FFFFFF8003FFFF8000FF80000007C000 +00FF80000003800000FF80000003800000FF80000003800000FF80000003800000FF8000 +0003800000FF80000003800000FF80000003800000FF80000003800000FF800000038000 +00FF80000003800000FF80000003800000FF80000003800000FF80000003800000FF8000 +0003800000FF80000003800000FF80000003800000FF80000003800000FF800000038000 +00FF80000003800000FF80000003800000FF80000003800000FF80000003800000FF8000 +0003800000FF80000003800000FF80000003800000FF80000003800000FF800000038000 +00FF80000003800000FF80000003800000FF80000003800000FF80000003800000FF8000 +00038000007F800000038000007F800000070000007FC00000070000003FC000000E0000 +003FC000000E0000001FE000001C0000000FF000003800000007F800007000000003FC00 +01E000000000FF801FC0000000003FFFFF80000000000FFFFE000000000000FFE0000000 +39317EB03E>I<7FFFFF007FFFF87FFFFF007FFFF87FFFFF007FFFF800FFE00001F00000 +7FE00001E000003FF00001C000001FF80003C000001FFC00078000000FFC000F00000007 +FE000E00000007FF001E00000003FF003C00000001FF807800000000FFC07000000000FF +E0F0000000007FE1E0000000003FF3C0000000003FFB80000000001FFF80000000000FFF +000000000007FE000000000007FF000000000003FF000000000001FF800000000001FFC0 +0000000000FFC00000000001FFE00000000003FFF00000000007BFF800000000071FF800 +0000000F0FFC000000001E0FFE000000003C07FE000000003803FF000000007801FF8000 +0000F001FFC0000000E000FFC0000001C0007FE0000003C0007FF000000780003FF00000 +0700001FF800000F00000FFC00001E00000FFE00003C000007FE000038000003FF0000FC +000003FF80FFFFE0007FFFFFFFFFE0007FFFFFFFFFE0007FFFFF38317EB03D>88 +D<00FFF0000003FFFE00000F803F80000FC00FE0001FE007F0001FE007F0001FE003F800 +0FC003FC00078003FC00000003FC00000003FC00000003FC00000003FC000000FFFC0000 +1FFFFC0000FFE3FC0003FC03FC000FF003FC001FC003FC003FC003FC007F8003FC007F80 +03FC00FF0003FC00FF0003FC00FF0003FC00FF0007FC00FF0007FC007F800DFC003FC019 +FE001FE070FFF007FFE07FF000FF803FF024207E9F27>97 D<01F8000000FFF8000000FF +F8000000FFF80000000FF800000007F800000007F800000007F800000007F800000007F8 +00000007F800000007F800000007F800000007F800000007F800000007F800000007F800 +000007F800000007F83FE00007F8FFFC0007FBE07F0007FF001F8007FE000FC007FC000F +E007F80007F007F80007F807F80007F807F80003FC07F80003FC07F80003FC07F80003FE +07F80003FE07F80003FE07F80003FE07F80003FE07F80003FE07F80003FE07F80003FE07 +F80003FC07F80003FC07F80003FC07F80007F807F80007F807F80007F007FC000FE007FE +000FC007E7003F8007C3C0FE000780FFF80007003FC00027327EB12D>I<000FFF00007F +FFC001FC01F003F003F007E007F80FE007F81FC007F83FC003F03FC001E07F8000007F80 +00007F800000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF80 +00007F8000007F8000007F8000003FC0001C3FC0001C1FC000380FE0003807E0007003F0 +01E001FC07C0007FFF00000FF8001E207D9F24>I<0000000FC0000007FFC0000007FFC0 +000007FFC00000007FC00000003FC00000003FC00000003FC00000003FC00000003FC000 +00003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000 +003FC00007F83FC0003FFF3FC000FE07BFC003F801FFC007E0007FC00FE0007FC01FC000 +3FC03FC0003FC03FC0003FC07F80003FC07F80003FC07F80003FC0FF80003FC0FF80003F +C0FF80003FC0FF80003FC0FF80003FC0FF80003FC0FF80003FC0FF80003FC07F80003FC0 +7F80003FC07F80003FC03FC0003FC03FC0003FC01FC0003FC00FE0007FC007E000FFC003 +F003FFE001FC0F3FFE007FFE3FFE000FF03FFE27327DB12D>I<000FFC00007FFF8001FC +0FC003F003E007E001F00FE001F81FC000FC3FC000FE3FC000FE7F80007E7F80007F7F80 +007FFF80007FFF80007FFFFFFFFFFFFFFFFFFF800000FF800000FF800000FF8000007F80 +00007F8000007F8000003FC000071FC000071FC0000E0FE0000E07F0001C03F8007800FE +03E0003FFFC00007FE0020207E9F25>I<0001FE00000FFF80001FC3C0007F07E000FE0F +F001FE0FF001FC0FF003FC0FF003FC07E003FC018003FC000003FC000003FC000003FC00 +0003FC000003FC000003FC000003FC0000FFFFFC00FFFFFC00FFFFFC0003FC000003FC00 +0003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC00 +0003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC00 +0003FC000003FC000003FC000003FC000003FC000003FC00007FFFF0007FFFF0007FFFF0 +001C327EB119>I<001FF007C000FFFE3FE001F83F79F007E00FC3F00FE00FE1F00FC007 +E0E01FC007F0001FC007F0003FC007F8003FC007F8003FC007F8003FC007F8003FC007F8 +001FC007F0001FC007F0000FC007E0000FE00FE00007E00FC00003F83F000006FFFE0000 +0E1FF000000E000000001E000000001E000000001F000000001F800000001FFFFF80000F +FFFFF0000FFFFFFC0007FFFFFE0003FFFFFF0003FFFFFF800FFFFFFFC01F00007FC07E00 +001FE07C00000FE0FC000007E0FC000007E0FC000007E0FC000007E07E00000FC03E0000 +0F803F00001F800FC0007E0007F803FC0001FFFFF000001FFF0000242F7E9F28>I<01F8 +000000FFF8000000FFF8000000FFF80000000FF800000007F800000007F800000007F800 +000007F800000007F800000007F800000007F800000007F800000007F800000007F80000 +0007F800000007F800000007F800000007F807F80007F83FFE0007F8783F0007F8C03F80 +07F9801FC007FB001FC007FE001FE007FC001FE007FC001FE007FC001FE007F8001FE007 +F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8 +001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F800 +1FE007F8001FE007F8001FE007F8001FE0FFFFC3FFFFFFFFC3FFFFFFFFC3FFFF28327DB1 +2D>I<03C00007E0000FF0001FF8001FF8001FF8001FF8000FF00007E00003C000000000 +00000000000000000000000000000000000000000000000001F800FFF800FFF800FFF800 +0FF80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F800 +07F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F800 +07F800FFFF80FFFF80FFFF8011337DB217>I<01F800FFF800FFF800FFF8000FF80007F8 +0007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F8 +0007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F8 +0007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F8 +0007F80007F80007F80007F80007F800FFFFC0FFFFC0FFFFC012327DB117>108 +D<03F007F8001FE000FFF03FFE00FFF800FFF0783F01E0FC00FFF0C03F8300FE000FF180 +1FC6007F0007F3001FCC007F0007F6001FF8007F8007FC001FF0007F8007FC001FF0007F +8007FC001FF0007F8007F8001FE0007F8007F8001FE0007F8007F8001FE0007F8007F800 +1FE0007F8007F8001FE0007F8007F8001FE0007F8007F8001FE0007F8007F8001FE0007F +8007F8001FE0007F8007F8001FE0007F8007F8001FE0007F8007F8001FE0007F8007F800 +1FE0007F8007F8001FE0007F8007F8001FE0007F8007F8001FE0007F8007F8001FE0007F +8007F8001FE0007F8007F8001FE0007F80FFFFC3FFFF0FFFFCFFFFC3FFFF0FFFFCFFFFC3 +FFFF0FFFFC3E207D9F43>I<03F007F800FFF03FFE00FFF0783F00FFF0C03F800FF1801F +C007F3001FC007F6001FE007FC001FE007FC001FE007FC001FE007F8001FE007F8001FE0 +07F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007 +F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8 +001FE007F8001FE007F8001FE0FFFFC3FFFFFFFFC3FFFFFFFFC3FFFF28207D9F2D>I<00 +07FC0000007FFFC00001FC07F00003F001F80007E000FC000FC0007E001FC0007F003FC0 +007F803F80003F807F80003FC07F80003FC07F80003FC0FF80003FE0FF80003FE0FF8000 +3FE0FF80003FE0FF80003FE0FF80003FE0FF80003FE0FF80003FE07F80003FC07F80003F +C07F80003FC03FC0007F803FC0007F801FC0007F000FE000FE0007E000FC0003F803F800 +01FE0FF000007FFFC0000007FC000023207E9F28>I<01F83FE000FFF8FFFC00FFFBE07F +00FFFF003F8007FE001FC007FC000FE007F8000FF007F80007F807F80007F807F80007FC +07F80003FC07F80003FC07F80003FE07F80003FE07F80003FE07F80003FE07F80003FE07 +F80003FE07F80003FE07F80003FE07F80003FC07F80007FC07F80007FC07F80007F807F8 +0007F807F8000FF007FC000FE007FE001FC007FF003F8007FBC0FE0007F8FFF80007F83F +C00007F800000007F800000007F800000007F800000007F800000007F800000007F80000 +0007F800000007F800000007F800000007F8000000FFFFC00000FFFFC00000FFFFC00000 +272E7E9F2D>I<03F03F00FFF07FC0FFF1C3E0FFF187E00FF30FF007F60FF007F60FF007 +FC07E007FC03C007FC000007FC000007F8000007F8000007F8000007F8000007F8000007 +F8000007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F8000007 +F8000007F8000007F8000007F80000FFFFE000FFFFE000FFFFE0001C207E9F21>114 +D<01FF860007FFFE001F00FE003C003E0078001E0078000E00F8000E00F8000E00F8000E +00FC000000FF800000FFFC00007FFFC0007FFFF0003FFFF8001FFFFC0007FFFE0001FFFF +00003FFF000000FF8000003F8060001F80E0000F80E0000F80F0000F80F0000F00F8000F +00FC001E00FE001C00FF807800F3FFF000C07F800019207D9F20>I<001C0000001C0000 +001C0000001C0000001C0000003C0000003C0000003C0000007C0000007C000000FC0000 +01FC000003FC000007FC00001FFFFE00FFFFFE00FFFFFE0003FC000003FC000003FC0000 +03FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC0000 +03FC000003FC000003FC000003FC000003FC038003FC038003FC038003FC038003FC0380 +03FC038003FC038001FC038001FC070000FE0700007F0E00003FFC000007F000192E7FAD +1F>I<01F80007E0FFF803FFE0FFF803FFE0FFF803FFE00FF8003FE007F8001FE007F800 +1FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001F +E007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE0 +07F8001FE007F8001FE007F8001FE007F8003FE007F8003FE003F8007FE003F8007FE001 +FC00DFF000FE039FFF007FFF1FFF000FFC1FFF28207D9F2D>I<FFFF1FFFE07FF8FFFF1F +FFE07FF8FFFF1FFFE07FF80FF000FE0007800FF800FE00078007F800FE00070007F8007F +00070003FC007F000E0003FC00FF800E0003FE00FF801E0001FE00FF801C0001FE01DFC0 +1C0001FF01DFC03C0000FF03DFE0380000FF838FE07800007F838FE07000007F8707F070 +00007FC707F0F000003FCF07F8E000003FCE03F8E000001FEE03F9C000001FFC01FDC000 +001FFC01FFC000000FFC01FF8000000FF800FF80000007F800FF00000007F0007F000000 +07F0007F00000003F0007E00000003E0003E00000001E0003C00000001C0001C00003520 +7E9F3A>119 D<7FFF807FFC7FFF807FFC7FFF807FFC03FE000F0001FE001E0000FF003C +0000FF807800007FC07800003FE0F000001FE1E000000FF3C000000FFF80000007FF0000 +0003FE00000001FE00000000FF00000000FF80000000FFC0000001FFC0000003DFE00000 +078FF00000078FF800000F07FC00001E03FC00003C01FE00007800FF0000F000FF8000E0 +007FC001E0003FC0FFFC01FFFFFFFC01FFFFFFFC01FFFF28207F9F2B>I +E /Fq 79 126 df<030600078F00078F00078F00078F00078F00078F007FFFC0FFFFE0FF +FFE07FFFC00F1E000F1E000F1E000F1E000F1E000F1E007FFFC0FFFFE0FFFFE07FFFC01E +3C001E3C001E3C001E3C001E3C001E3C000C1800131C7E9B18>35 +D<00C00001C00001C00001C00003F0000FFC003FFE007DCF0071C700E1C380E1C780E1C7 +80E1C780F1C00079C0003DC0001FE0000FF80003FC0001DE0001CF0001C70061C380F1C3 +80F1C380E1C380E1C70071C70079DE003FFE001FF80007E00001C00001C00001C00000C0 +0011247D9F18>I<3803007C07807C0780EE0F80EE0F00EE0F00EE1F00EE1E00EE1E00EE +3E007C3C007C3C00387C0000780000780000F80000F00001F00001E00001E00003E00003 +C00003C00007C0000783800787C00F87C00F0EE00F0EE01F0EE01E0EE01E0EE03E0EE03C +07C03C07C018038013247E9F18>I<387C7C7E3E0E0E0E1C1C38F8F0C0070E789B18>39 +D<007000F001E003C007800F001E001C00380038007000700070007000E000E000E000E0 +00E000E000E000E0007000700070007000380038001C001E000F00078003C001F000F000 +700C24799F18>I<6000F00078003C001E000F000780038001C001C000E000E000E000E0 +0070007000700070007000700070007000E000E000E000E001C001C0038007800F001E00 +3C007800F00060000C247C9F18>I<01C00001C00001C00001C000C1C180F1C780F9CF80 +7FFF001FFC0007F00007F0001FFC007FFF00F9CF80F1C780C1C18001C00001C00001C000 +01C00011147D9718>I<00600000F00000F00000F00000F00000F00000F00000F0007FFF +C0FFFFE0FFFFE07FFFC000F00000F00000F00000F00000F00000F00000F0000060001314 +7E9718>I<7FFF00FFFF80FFFF807FFF0011047D8F18>45 D<3078FCFC78300606778518> +I<01F00007FC000FFE001F1F001C07003803807803C07001C07001C0E000E0E000E0E000 +E0E000E0E000E0E000E0E000E0E000E0E000E0F001E07001C07001C07803C03803801C07 +001F1F000FFE0007FC0001F000131C7E9B18>48 D<01800380038007800F803F80FF80FB +80438003800380038003800380038003800380038003800380038003800380038003807F +FCFFFE7FFC0F1C7B9B18>I<03F0000FFE003FFF007C0F807003C0E001C0F000E0F000E0 +6000E00000E00000E00001C00001C00003C0000780000F00001E00003C0000780000F000 +01E00007C0000F80001E00E03C00E07FFFE0FFFFE07FFFE0131C7E9B18>I<07F8001FFE +003FFF007807807803C07801C03001C00001C00003C0000380000F0003FF0003FE0003FF +000007800003C00001C00000E00000E00000E0F000E0F000E0F001C0F003C07C07803FFF +001FFE0003F800131C7E9B18>I<001F00003F0000770000770000E70001E70001C70003 +87000787000707000E07001E07003C0700380700780700F00700FFFFF8FFFFF8FFFFF800 +0700000700000700000700000700000700007FF000FFF8007FF0151C7F9B18>I<1FFF80 +3FFF803FFF803800003800003800003800003800003800003800003800003BF8003FFE00 +3FFF003C07801803C00001C00000E00000E06000E0F000E0F000E0E001C07003C07C0F80 +3FFF001FFC0003F000131C7E9B18>I<007E0001FF0007FF800F83C01E03C01C03C03801 +80380000700000700000E1F800E7FE00FFFF00FE0780F803C0F001C0F000E0E000E0F000 +E07000E07000E07000E03801C03C03C01E07800FFF0007FE0001F800131C7E9B18>I<E0 +0000FFFFE0FFFFE0FFFFE0E003C0E00780000700000E00001E00001C0000380000380000 +700000700000E00000E00000E00001C00001C00001C00001C00003C00003800003800003 +8000038000038000038000038000131D7E9C18>I<03F8000FFE001FFF003E0F80380380 +7001C07001C07001C07001C03803803C07801FFF0007FC000FFE001F1F003C07807001C0 +F001E0E000E0E000E0E000E0E000E07001C07803C03E0F801FFF000FFE0003F800131C7E +9B18>I<03F0000FFC001FFE003C0F00780780700380E001C0E001C0E001C0E001E0E001 +E07001E07803E03C0FE01FFFE00FFEE003F0E00000E00001C00001C00001C03003807807 +80780F00783E003FFC001FF00007C000131C7E9B18>I<3078FCFC783000000000000000 +003078FCFC78300614779318>I<183C7E7E3C180000000000000000183C7E7E3E1E0E1C +3C78F060071A789318>I<000300000780001F80003F00007E0001FC0003F00007E0001F +C0003F00007E0000FC0000FC00007E00003F00001FC00007E00003F00001FC00007E0000 +3F00001F8000078000030011187D9918>I<7FFFC0FFFFE0FFFFE0FFFFE0000000000000 +000000000000FFFFE0FFFFE0FFFFE07FFFC0130C7E9318>I<600000F00000FC00007E00 +003F00001FC00007E00003F00001FC00007E00003F00001F80001F80003F00007E0001FC +0003F00007E0001FC0003F00007E0000FC0000F0000060000011187D9918>I<007C0001 +FE0007FF000F87801E03C03C1DC0387FC070FFE071E3E071C1E0E1C1E0E380E0E380E0E3 +80E0E380E0E380E0E380E0E1C1C071C1C071E3C070FF80387F003C1C001E00E00F83E007 +FFC001FF80007E00131C7E9B18>64 D<00700000F80000F80000D80000D80001DC0001DC +0001DC00018C00038E00038E00038E00038E000306000707000707000707000707000FFF +800FFF800FFF800E03800E03801C01C01C01C07F07F0FF8FF87F07F0151C7F9B18>I<FF +FC00FFFF00FFFF801C03C01C01C01C00E01C00E01C00E01C00E01C01E01C01C01C07C01F +FF801FFF001FFFC01C03C01C00E01C00F01C00701C00701C00701C00701C00F01C00E01C +03E0FFFFC0FFFF80FFFE00141C7F9B18>I<00F8E003FEE007FFE00F07E01E03E03C01E0 +3800E07000E07000E0700000E00000E00000E00000E00000E00000E00000E00000E00000 +7000007000E07000E03800E03C00E01E01C00F07C007FF8003FE0000F800131C7E9B18> +I<FFFFF0FFFFF0FFFFF01C00701C00701C00701C00701C00001C00001C0E001C0E001C0E +001FFE001FFE001FFE001C0E001C0E001C0E001C00001C00001C00381C00381C00381C00 +381C0038FFFFF8FFFFF8FFFFF8151C7F9B18>69 D<FFFFE0FFFFE0FFFFE01C00E01C00E0 +1C00E01C00E01C00001C00001C1C001C1C001C1C001FFC001FFC001FFC001C1C001C1C00 +1C1C001C00001C00001C00001C00001C00001C00001C0000FFC000FFC000FFC000131C7E +9B18>I<01F1C003FDC00FFFC01F0FC01C03C03803C03801C07001C07001C0700000E000 +00E00000E00000E00000E00000E00FF0E01FF0E00FF07001C07001C07003C03803C03803 +C01C07C01F0FC00FFFC003FDC001F1C0141C7E9B18>I<7F07F0FF8FF87F07F01C01C01C +01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01FFFC01FFFC01FFFC01C01C01C +01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C07F07F0FF8FF87F07F015 +1C7F9B18>I<7FFF00FFFF807FFF0001C00001C00001C00001C00001C00001C00001C000 +01C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C000 +01C00001C00001C0007FFF00FFFF807FFF00111C7D9B18>I<7F07F0FF87F87F07F01C03 +C01C07801C07001C0E001C1E001C3C001C38001C70001CF0001DF0001DF0001FB8001FB8 +001F1C001E1C001C0E001C0E001C07001C07001C03801C03801C01C07F03F0FF87F87F03 +F0151C7F9B18>75 D<7FE000FFE0007FE0000E00000E00000E00000E00000E00000E0000 +0E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E0070 +0E00700E00700E00700E00707FFFF0FFFFF07FFFF0141C7F9B18>I<FC01F8FE03F8FE03 +F83B06E03B06E03B06E03B06E03B8EE03B8EE0398CE0398CE039DCE039DCE039DCE038D8 +E038D8E038F8E03870E03870E03800E03800E03800E03800E03800E03800E0FE03F8FE03 +F8FE03F8151C7F9B18>I<7E07F0FF0FF87F07F01D81C01D81C01D81C01DC1C01CC1C01C +C1C01CE1C01CE1C01CE1C01C61C01C71C01C71C01C31C01C39C01C39C01C39C01C19C01C +19C01C1DC01C0DC01C0DC01C0DC07F07C0FF87C07F03C0151C7F9B18>I<0FF8003FFE00 +7FFF00780F00700700F00780E00380E00380E00380E00380E00380E00380E00380E00380 +E00380E00380E00380E00380E00380E00380E00380E00380F00780700700780F007FFF00 +3FFE000FF800111C7D9B18>I<FFFE00FFFF80FFFFC01C03C01C01E01C00E01C00701C00 +701C00701C00701C00701C00E01C01E01C03C01FFFC01FFF801FFE001C00001C00001C00 +001C00001C00001C00001C00001C0000FF8000FF8000FF8000141C7F9B18>I<7FF800FF +FE007FFF001C0F801C03801C03C01C01C01C01C01C01C01C03C01C03801C0F801FFF001F +FE001FFE001C0F001C07001C03801C03801C03801C03801C03801C039C1C039C1C039C7F +01F8FF81F87F00F0161C7F9B18>82 D<03F3801FFF803FFF807C0F80700780E00380E003 +80E00380E000007000007800003F00001FF00007FE0000FF00000F800003C00001C00000 +E00000E06000E0E000E0E001E0F001C0F80780FFFF80FFFE00E7F800131C7E9B18>I<7F +FFF8FFFFF8FFFFF8E07038E07038E07038E0703800700000700000700000700000700000 +700000700000700000700000700000700000700000700000700000700000700000700000 +700007FF0007FF0007FF00151C7F9B18>I<FF07F8FF07F8FF07F81C01C01C01C01C01C0 +1C01C00E03800E03800E03800E03800F0780070700070700070700070700038E00038E00 +038E00038E00018C0001DC0001DC0001DC0000D80000F80000F800007000151C7F9B18> +86 D<FE03F8FE03F8FE03F87000707000707000703800E03800E03800E03800E03800E0 +38F8E038F8E039DCE039DCE019DCC019DCC019DCC0198CC01D8DC01D8DC01D8DC01D8DC0 +0D8D800D05800F07800F07800E0380151C7F9B18>I<7F8FE07F9FE07F8FE00E07000F07 +00070E00078E00039C0003DC0001F80001F80000F00000F00000700000F00000F80001F8 +0001DC00039E00038E00070F000707000E07800E03801E03C07F07F0FF8FF87F07F0151C +7F9B18>I<FFF8FFF8FFF8E000E000E000E000E000E000E000E000E000E000E000E000E0 +00E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000FF +F8FFF8FFF80D24779F18>91 D<600000F00000F00000F800007800007C00003C00003C00 +003E00001E00001F00000F00000F00000F800007800007C00003C00003C00003E00001E0 +0001F00000F00000F800007800007800007C00003C00003E00001E00001E00001F00000F +00000F8000078000078000030011247D9F18>I<FFF8FFF8FFF800380038003800380038 +003800380038003800380038003800380038003800380038003800380038003800380038 +0038003800380038003800380038FFF8FFF8FFF80D247F9F18>I<018007C01FF07EFCF8 +3EE00E0F067C9B18>I<7FFF00FFFF80FFFF807FFF0011047D7F18>I<1FE0003FF8007FFC +00781E00300E0000070000070000FF0007FF001FFF007F0700780700E00700E00700E007 +00F00F00781F003FFFF01FFBF007E1F014147D9318>97 D<7E0000FE00007E00000E0000 +0E00000E00000E00000E00000E3E000EFF800FFFC00FC1E00F80E00F00700E00700E0038 +0E00380E00380E00380E00380E00380F00700F00700F80E00FC1E00FFFC00EFF80063E00 +151C809B18>I<01FE0007FF001FFF803E0780380300700000700000E00000E00000E000 +00E00000E00000E000007000007001C03801C03E03C01FFF8007FF0001FC0012147D9318 +>I<001F80003F80001F8000038000038000038000038000038003E3800FFB801FFF803C +1F80380F80700780700380E00380E00380E00380E00380E00380E0038070078070078038 +0F803C1F801FFFF00FFBF803E3F0151C7E9B18>I<01F00007FC001FFE003E0F00380780 +700380700380E001C0E001C0FFFFC0FFFFC0FFFFC0E000007000007001C03801C03E03C0 +1FFF8007FF0001FC0012147D9318>I<001F80007FC000FFE000E1E001C0C001C00001C0 +0001C0007FFFC0FFFFC0FFFFC001C00001C00001C00001C00001C00001C00001C00001C0 +0001C00001C00001C00001C00001C00001C0007FFF007FFF007FFF00131C7F9B18>I<01 +E1F007FFF80FFFF81E1E301C0E003807003807003807003807003807001C0E001E1E001F +FC001FF80039E0003800001C00001FFE001FFFC03FFFE07801F0700070E00038E00038E0 +0038E000387800F07E03F01FFFC00FFF8001FC00151F7F9318>I<7E0000FE00007E0000 +0E00000E00000E00000E00000E00000E3E000EFF800FFFC00FC1C00F80E00F00E00E00E0 +0E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E07FC3FCFFE7FE +7FC3FC171C809B18>I<03800007C00007C00007C0000380000000000000000000000000 +007FC000FFC0007FC00001C00001C00001C00001C00001C00001C00001C00001C00001C0 +0001C00001C00001C00001C00001C000FFFF00FFFF80FFFF00111D7C9C18>I<0038007C +007C007C003800000000000000000FFC1FFC0FFC001C001C001C001C001C001C001C001C +001C001C001C001C001C001C001C001C001C001C001C001C001C001C6038F078FFF07FE0 +3F800E277E9C18>I<FE0000FE0000FE00000E00000E00000E00000E00000E00000E3FF0 +0E7FF00E3FF00E07800E0F000E1E000E3C000E78000EF0000FF8000FFC000F9C000F0E00 +0E0F000E07000E03800E03C0FFC7F8FFC7F8FFC7F8151C7F9B18>I<7FE000FFE0007FE0 +0000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E0 +0000E00000E00000E00000E00000E00000E00000E00000E00000E00000E0007FFFC0FFFF +E07FFFC0131C7E9B18>I<7CE0E000FFFBF8007FFFF8001F1F1C001E1E1C001E1E1C001C +1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C +1C1C001C1C1C007F1F1F00FFBFBF807F1F1F001914819318>I<7E3E00FEFF807FFFC00F +C1C00F80E00F00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E +00E00E00E07FC3FCFFE7FE7FC3FC1714809318>I<01F0000FFE001FFF003E0F80380380 +7001C07001C0E000E0E000E0E000E0E000E0E000E0F001E07001C07803C03C07803E0F80 +1FFF000FFE0001F00013147E9318>I<7E3E00FEFF807FFFC00FC1E00F80E00F00700E00 +700E00380E00380E00380E00380E00380E00380F00700F00700F80E00FC1E00FFFC00EFF +800E3E000E00000E00000E00000E00000E00000E00000E00007FC000FFE0007FC000151E +809318>I<7F87E0FF9FF07FBFF803F87803F03003E00003C00003C00003800003800003 +80000380000380000380000380000380000380007FFE00FFFF007FFE0015147F9318> +114 D<07F7003FFF007FFF00780F00E00700E00700E007007C00007FE0001FFC0003FE00 +001F00600780E00380E00380F00380F80F00FFFF00FFFC00E7F00011147D9318>I<0180 +000380000380000380000380007FFFC0FFFFC0FFFFC00380000380000380000380000380 +000380000380000380000380000380400380E00380E00380E001C1C001FFC000FF80003E +0013197F9818>I<7E07E0FE0FE07E07E00E00E00E00E00E00E00E00E00E00E00E00E00E +00E00E00E00E00E00E00E00E00E00E00E00E01E00F03E007FFFC03FFFE01FCFC17148093 +18>I<7F8FF0FF8FF87F8FF01E03C00E03800E03800E0380070700070700070700038E00 +038E00038E00038E0001DC0001DC0001DC0000F80000F80000700015147F9318>I<FF8F +F8FF8FF8FF8FF83800E03800E03800E01C01C01C01C01C71C01CF9C01CF9C01CD9C01CD9 +C00DDD800DDD800DDD800D8D800F8F800F8F8007070015147F9318>I<7F8FF07F9FF07F +8FF0070700078E00039E0001DC0001F80000F80000700000F00000F80001DC00039E0003 +8E000707000F07807F8FF0FF8FF87F8FF015147F9318>I<7F8FF0FF8FF87F8FF00E01C0 +0E03800E0380070380070700070700038700038600038E0001CE0001CE0000CC0000CC00 +00DC0000780000780000780000700000700000700000F00000E00079E0007BC0007F8000 +3F00001E0000151E7F9318>I<3FFFF07FFFF07FFFF07001E07003C0700780000F00001E +00003C0000F80001F00003C0000780000F00701E00703C0070780070FFFFF0FFFFF0FFFF +F014147F9318>I<0007E0001FE0007FE000780000E00000E00000E00000E00000E00000 +E00000E00000E00000E00000E00000E00001E0007FC000FF8000FF80007FC00001E00000 +E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000780000 +7FE0001FE00007E013247E9F18>I<60F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0 +F0F0F0F0F0F0F0F0F0F0F0F0F0F0600424769F18>I<7C0000FF0000FFC00003C00000E0 +0000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000F000007F +C0003FE0003FE0007FC000F00000E00000E00000E00000E00000E00000E00000E00000E0 +0000E00000E00000E00003C000FFC000FF00007C000013247E9F18>I +E /Fr 4 107 df<FFFFFFC0FFFFFFC01A027C8B23>0 D<70F8F8F87005057C8D0D>I<00 +01FE00000007FF8000001E01E000007800780000E0001C00018000060003000003000600 +0001800C000000C00C000000C01800000060300000003030000000303000000030600000 +001860000000186000000018C00000000CC00000000CC00000000CC00000000CC0000000 +0CC00000000CC00000000CC00000000CC00000000C600000001860000000186000000018 +30000000303000000030300000003018000000600C000000C00C000000C0060000018003 +00000300018000060000E0001C000078007800001E01E0000007FF80000001FE0000262B +7DA02D>13 D<C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 +C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0022D7BA10D>106 D E /Fs +58 123 df<0001FF0000001FFFC000007F81E00000FC01E00001F807F00003F807F00007 +F007F00007F007F00007F007F00007F007F00007F001C00007F000000007F000000007F0 +00000007F03FF800FFFFFFF800FFFFFFF800FFFFFFF80007F003F80007F003F80007F003 +F80007F003F80007F003F80007F003F80007F003F80007F003F80007F003F80007F003F8 +0007F003F80007F003F80007F003F80007F003F80007F003F80007F003F80007F003F800 +07F003F80007F003F80007F003F80007F003F8007FFF3FFF807FFF3FFF807FFF3FFF8021 +2A7FA925>12 D<3C007F00FF80FF80FFC0FFC0FFC07FC03EC000C000C001800180018003 +00030006000E001C00380030000A157B8813>44 D<1C007F007F00FF80FF80FF807F007F +001C0009097B8813>46 D<000E00001E00007E0007FE00FFFE00FFFE00F8FE0000FE0000 +FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000 +FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000 +FE0000FE0000FE0000FE007FFFFE7FFFFE7FFFFE17277BA622>49 +D<00FF800007FFF0000FFFFC001E03FE003800FF807C003F80FE003FC0FF001FC0FF001F +E0FF000FE0FF000FE07E000FE03C001FE000001FE000001FC000001FC000003F8000003F +0000007E000000FC000000F8000001F0000003E00000078000000F0000001E0000003C00 +E0007000E000E000E001C001C0038001C0060001C00FFFFFC01FFFFFC03FFFFFC07FFFFF +C0FFFFFF80FFFFFF80FFFFFF801B277DA622>I<007F800003FFF00007FFFC000F80FE00 +1F007F003F807F003F803F803F803F803F803F801F803F801F003F8000007F0000007F00 +00007E000000FC000001F8000007F00000FFC00000FFC0000001F80000007E0000003F00 +00003F8000001FC000001FC000001FE000001FE03C001FE07E001FE0FF001FE0FF001FE0 +FF001FC0FF003FC0FE003F807C007F003F00FE001FFFFC0007FFF00000FF80001B277DA6 +22>I<00000E0000001E0000003E0000007E000000FE000000FE000001FE000003FE0000 +077E00000E7E00000E7E00001C7E0000387E0000707E0000E07E0000E07E0001C07E0003 +807E0007007E000E007E000E007E001C007E0038007E0070007E00E0007E00FFFFFFF8FF +FFFFF8FFFFFFF80000FE000000FE000000FE000000FE000000FE000000FE000000FE0000 +00FE00007FFFF8007FFFF8007FFFF81D277EA622>I<180003001F801F001FFFFE001FFF +FC001FFFF8001FFFF0001FFFC0001FFF00001C0000001C0000001C0000001C0000001C00 +00001C0000001C0000001C7FC0001DFFF8001F80FC001E003F0008003F0000001F800000 +1FC000001FC000001FE000001FE018001FE07C001FE0FE001FE0FE001FE0FE001FE0FE00 +1FC0FC001FC078003F8078003F803C007F001F01FE000FFFFC0003FFF00000FF80001B27 +7DA622>I<0007F800003FFE0000FFFF0001FC078003F00FC007C01FC00F801FC01F801F +C01F001FC03F000F803F0000007E0000007E0000007E000000FE020000FE1FF000FE3FFC +00FE603E00FE801F00FF801F80FF000FC0FF000FC0FE000FE0FE000FE0FE000FE0FE000F +E07E000FE07E000FE07E000FE07E000FE03E000FE03F000FC01F000FC01F001F800F801F +0007E07E0003FFFC0001FFF800003FC0001B277DA622>I<380000003E0000003FFFFFF0 +3FFFFFF03FFFFFF07FFFFFE07FFFFFC07FFFFF807FFFFF0070000E0070000E0070001C00 +E0003800E0007000E000E0000001E0000001C000000380000007800000070000000F0000 +001F0000001E0000003E0000003E0000007E0000007C0000007C000000FC000000FC0000 +00FC000000FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC0000 +00F80000007000001C297CA822>I<003FC00001FFF00003FFFC0007C07E000F003F001E +001F001E000F803E000F803E000F803F000F803F800F803FC00F803FF01F001FFC1E001F +FE3C000FFFF8000FFFE00007FFF80001FFFC0001FFFE0007FFFF000F0FFF801E03FFC03E +01FFC07C007FE07C001FE0F8000FE0F80007E0F80003E0F80003E0F80003E0F80003C07C +0003C07E0007803F000F001FC03F000FFFFC0003FFF800007FC0001B277DA622>I<007F +800001FFF00007FFF8000FC0FC001F803E003F001F007E001F807E001F807E000F80FE00 +0FC0FE000FC0FE000FC0FE000FE0FE000FE0FE000FE0FE000FE0FE000FE07E001FE07E00 +1FE03F003FE01F002FE00F80CFE007FF8FE001FF0FE000080FE000000FC000000FC00000 +0FC000001F803E001F807F001F807F003F007F003E007F007E007E00FC003E03F8001FFF +E0000FFF800001FE00001B277DA622>I<00000780000000000780000000000FC0000000 +000FC0000000000FC0000000001FE0000000001FE0000000003FF0000000003FF0000000 +003FF00000000077F80000000077F800000000F7FC00000000E3FC00000000E3FC000000 +01C1FE00000001C1FE00000003C1FF0000000380FF0000000380FF00000007007F800000 +07007F8000000F007FC000000E003FC000000E003FC000001C001FE000001C001FE00000 +3FFFFFF000003FFFFFF000003FFFFFF00000700007F80000700007F80000F00007FC0000 +E00003FC0000E00003FC0001C00001FE0001C00001FE0003C00001FF00FFFE003FFFFCFF +FE003FFFFCFFFE003FFFFC2E297EA833>65 D<FFFFFFF800FFFFFFFF00FFFFFFFFC003F8 +001FE003F8000FF003F80007F803F80003F803F80003FC03F80003FC03F80001FC03F800 +01FC03F80001FC03F80003FC03F80003F803F80003F803F80007F003F8000FF003F8001F +C003F800FF8003FFFFFE0003FFFFFFC003F8000FF003F80003F803F80001FC03F80001FE +03F80000FE03F80000FE03F80000FF03F80000FF03F80000FF03F80000FF03F80000FF03 +F80000FF03F80000FE03F80001FE03F80003FC03F80007FC03F8001FF8FFFFFFFFE0FFFF +FFFFC0FFFFFFFE0028297DA830>I<00007FE0030007FFFC07001FFFFF0F007FF00F9F00 +FF0001FF01FC0000FF03F800007F07F000003F0FE000001F1FC000001F1FC000000F3F80 +00000F3F800000077F800000077F800000077F00000000FF00000000FF00000000FF0000 +0000FF00000000FF00000000FF00000000FF00000000FF00000000FF000000007F000000 +007F800000007F800000073F800000073F800000071FC00000071FC000000E0FE000000E +07F000001C03F800003C01FC00007800FF0001F0007FF007C0001FFFFF800007FFFE0000 +007FF00028297CA831>I<FFFFFFFC0000FFFFFFFF8000FFFFFFFFE00003FC001FF80003 +FC0003FC0003FC0000FE0003FC00007F0003FC00003F8003FC00001FC003FC00001FC003 +FC00000FE003FC00000FE003FC000007F003FC000007F003FC000007F003FC000007F003 +FC000007F803FC000007F803FC000007F803FC000007F803FC000007F803FC000007F803 +FC000007F803FC000007F803FC000007F803FC000007F803FC000007F003FC000007F003 +FC000007F003FC00000FE003FC00000FE003FC00000FC003FC00001FC003FC00003F8003 +FC00007F0003FC0000FF0003FC0003FC0003FC001FF800FFFFFFFFF000FFFFFFFF8000FF +FFFFFC00002D297EA834>I<FFFFFFFFE0FFFFFFFFE0FFFFFFFFE003FC001FE003FC0007 +F003FC0001F003FC0001F003FC0000F003FC00007003FC00007003FC00007003FC01C078 +03FC01C03803FC01C03803FC01C03803FC03C00003FC03C00003FC0FC00003FFFFC00003 +FFFFC00003FFFFC00003FC0FC00003FC03C00003FC03C00003FC01C00E03FC01C00E03FC +01C00E03FC01C01C03FC00001C03FC00001C03FC00001C03FC00003C03FC00003803FC00 +007803FC0000F803FC0001F803FC0003F803FC001FF8FFFFFFFFF0FFFFFFFFF0FFFFFFFF +F027297EA82C>I<FFFFFFFFC0FFFFFFFFC0FFFFFFFFC003FC003FC003FC000FE003FC00 +03E003FC0001E003FC0001E003FC0000E003FC0000E003FC0000E003FC0000F003FC01C0 +7003FC01C07003FC01C07003FC01C00003FC03C00003FC03C00003FC0FC00003FFFFC000 +03FFFFC00003FFFFC00003FC0FC00003FC03C00003FC03C00003FC01C00003FC01C00003 +FC01C00003FC01C00003FC00000003FC00000003FC00000003FC00000003FC00000003FC +00000003FC00000003FC00000003FC000000FFFFFC0000FFFFFC0000FFFFFC000024297E +A82A>I<00007FE003000007FFFC0700001FFFFF0F00007FF00F9F0000FF0001FF0001FC +0000FF0003F800007F0007F000003F000FE000001F001FC000001F001FC000000F003F80 +00000F003F80000007007F80000007007F80000007007F0000000000FF0000000000FF00 +00000000FF0000000000FF0000000000FF0000000000FF0000000000FF0000000000FF00 +00000000FF0000FFFFF87F0000FFFFF87F8000FFFFF87F800000FF003F800000FF003F80 +0000FF001FC00000FF001FC00000FF000FE00000FF0007F00000FF0003F80000FF0001FC +0000FF0000FF0001FF00007FF007FF00001FFFFF9F000007FFFE0F0000007FF003002D29 +7CA835>I<FFFFF00FFFFFFFFFF00FFFFFFFFFF00FFFFF03FC00003FC003FC00003FC003 +FC00003FC003FC00003FC003FC00003FC003FC00003FC003FC00003FC003FC00003FC003 +FC00003FC003FC00003FC003FC00003FC003FC00003FC003FC00003FC003FC00003FC003 +FC00003FC003FFFFFFFFC003FFFFFFFFC003FFFFFFFFC003FC00003FC003FC00003FC003 +FC00003FC003FC00003FC003FC00003FC003FC00003FC003FC00003FC003FC00003FC003 +FC00003FC003FC00003FC003FC00003FC003FC00003FC003FC00003FC003FC00003FC003 +FC00003FC003FC00003FC003FC00003FC0FFFFF00FFFFFFFFFF00FFFFFFFFFF00FFFFF30 +297EA835>I<FFFFFCFFFFFCFFFFFC01FE0001FE0001FE0001FE0001FE0001FE0001FE00 +01FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE00 +01FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE00 +01FE0001FE0001FE0001FE00FFFFFCFFFFFCFFFFFC16297FA819>I<FFFFF001FFFCFFFF +F001FFFCFFFFF001FFFC03FC00001E0003FC00003C0003FC0000780003FC0000F00003FC +0001E00003FC0003C00003FC0007000003FC001E000003FC003C000003FC0078000003FC +00F0000003FC01E0000003FC0380000003FC07C0000003FC1FC0000003FC3FE0000003FC +7FF0000003FCFFF8000003FDE7F8000003FF83FC000003FF03FE000003FE01FF000003FC +00FF000003FC007F800003FC007FC00003FC003FE00003FC001FE00003FC000FF00003FC +000FF80003FC0007F80003FC0003FC0003FC0001FE0003FC0001FF0003FC0000FF0003FC +00007F80FFFFF00FFFFEFFFFF00FFFFEFFFFF00FFFFE2F297EA835>75 +D<FFFFFC0000FFFFFC0000FFFFFC000003FC00000003FC00000003FC00000003FC000000 +03FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003 +FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC +00000003FC00000003FC00000003FC0001C003FC0001C003FC0001C003FC0001C003FC00 +03C003FC00038003FC00038003FC00078003FC00078003FC000F8003FC000F8003FC001F +8003FC007F8003FC01FF00FFFFFFFF00FFFFFFFF00FFFFFFFF0022297EA828>I<FFFE00 +00003FFF80FFFE0000003FFF80FFFF0000007FFF8003FF0000007FE00003FF0000007FE0 +0003BF800000EFE00003BF800000EFE000039FC00001CFE000039FC00001CFE000038FE0 +00038FE000038FE000038FE000038FE000038FE0000387F000070FE0000387F000070FE0 +000383F8000E0FE0000383F8000E0FE0000381FC001C0FE0000381FC001C0FE0000381FC +001C0FE0000380FE00380FE0000380FE00380FE00003807F00700FE00003807F00700FE0 +0003803F80E00FE00003803F80E00FE00003803F80E00FE00003801FC1C00FE00003801F +C1C00FE00003800FE3800FE00003800FE3800FE000038007F7000FE000038007F7000FE0 +00038007F7000FE000038003FE000FE000038003FE000FE000038001FC000FE000038001 +FC000FE000038000F8000FE000FFFE00F803FFFF80FFFE00F803FFFF80FFFE007003FFFF +8039297DA840>I<FFFC00007FFFFFFE00007FFFFFFF00007FFF03FF800001C003FFC000 +01C003BFE00001C0039FE00001C0039FF00001C0038FF80001C00387FC0001C00383FE00 +01C00381FF0001C00380FF8001C003807F8001C003807FC001C003803FE001C003801FF0 +01C003800FF801C0038007FC01C0038003FC01C0038003FE01C0038001FF01C0038000FF +81C00380007FC1C00380003FE1C00380001FF1C00380000FF1C00380000FF9C003800007 +FDC003800003FFC003800001FFC003800000FFC0038000007FC0038000007FC003800000 +3FC0038000001FC0038000000FC00380000007C0FFFE000003C0FFFE000001C0FFFE0000 +01C030297EA835>I<0000FFC00000000FFFFC0000003F807F000000FE001FC00001F800 +07E00003F00003F00007E00001F8000FE00001FC001FC00000FE001FC00000FE003F8000 +007F003F8000007F007F8000007F807F0000003F807F0000003F807F0000003F80FF0000 +003FC0FF0000003FC0FF0000003FC0FF0000003FC0FF0000003FC0FF0000003FC0FF0000 +003FC0FF0000003FC0FF0000003FC0FF0000003FC07F0000003F807F8000007F807F8000 +007F803F8000007F003F8000007F001FC00000FE001FC00000FE000FE00001FC0007F000 +03F80003F80007F00001FC000FE00000FE001FC000003FC0FF0000000FFFFC00000000FF +C000002A297CA833>I<FFFFFFF800FFFFFFFF00FFFFFFFFC003FC003FE003FC0007F003 +FC0003F803FC0003FC03FC0001FC03FC0001FE03FC0001FE03FC0001FE03FC0001FE03FC +0001FE03FC0001FE03FC0001FE03FC0001FC03FC0003FC03FC0003F803FC0007F003FC00 +3FE003FFFFFF8003FFFFFE0003FC00000003FC00000003FC00000003FC00000003FC0000 +0003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC000000 +03FC00000003FC00000003FC00000003FC000000FFFFF00000FFFFF00000FFFFF0000027 +297EA82E>I<FFFFFFE00000FFFFFFFE0000FFFFFFFF800003FC003FE00003FC000FF000 +03FC0007F80003FC0003FC0003FC0001FC0003FC0001FE0003FC0001FE0003FC0001FE00 +03FC0001FE0003FC0001FE0003FC0001FE0003FC0001FC0003FC0003F80003FC0007F800 +03FC000FE00003FC003FC00003FFFFFE000003FFFFFE000003FC00FF800003FC003FC000 +03FC001FE00003FC000FF00003FC0007F80003FC0007F80003FC0007F80003FC0007F800 +03FC0007F80003FC0007F80003FC0007F80003FC0007F80003FC0007F80003FC0007F80E +03FC0007F80E03FC0003F80E03FC0001FC1CFFFFF000FE1CFFFFF0007FF8FFFFF0000FE0 +2F297EA832>82 D<00FF00C003FFE1C00FFFF9C01F80FFC03F003FC03E000FC07C0007C0 +7C0007C0FC0003C0FC0003C0FC0001C0FE0001C0FE0001C0FF000000FFC000007FFC0000 +7FFFE0003FFFF8001FFFFE001FFFFF0007FFFF8003FFFFC000FFFFC0000FFFE000007FE0 +00001FF000000FF0000007F0E00003F0E00003F0E00003F0E00003F0F00003E0F00003E0 +F80007E0FC0007C0FF000F80FFE01F80E3FFFF00E1FFFC00C01FF0001C297CA825>I<7F +FFFFFFFF807FFFFFFFFF807FFFFFFFFF807F807F807F807C007F800F8078007F80078078 +007F80078070007F800380F0007F8003C0F0007F8003C0E0007F8001C0E0007F8001C0E0 +007F8001C0E0007F8001C0E0007F8001C000007F80000000007F80000000007F80000000 +007F80000000007F80000000007F80000000007F80000000007F80000000007F80000000 +007F80000000007F80000000007F80000000007F80000000007F80000000007F80000000 +007F80000000007F80000000007F80000000007F80000000007F80000000007F80000000 +007F80000000FFFFFFC00000FFFFFFC00000FFFFFFC0002A287EA72F>I<FFFFF000FFFE +FFFFF000FFFEFFFFF000FFFE03FC0000038003FC0000038003FC0000038003FC00000380 +03FC0000038003FC0000038003FC0000038003FC0000038003FC0000038003FC00000380 +03FC0000038003FC0000038003FC0000038003FC0000038003FC0000038003FC00000380 +03FC0000038003FC0000038003FC0000038003FC0000038003FC0000038003FC00000380 +03FC0000038003FC0000038003FC0000038003FC0000038003FC0000038003FC00000380 +01FC0000070001FE0000070000FE00000E00007F00000E00003F00003C00001FC0007800 +000FF003F0000007FFFFE0000000FFFF800000001FFC00002F297EA834>I<FFFFF0007F +FFFFFFF0007FFFFFFFF0007FFF03FE000001C001FE0000038001FE0000038000FF000007 +0000FF0000070000FF80000F00007F80000E00007FC0000E00003FC0001C00003FE0001C +00001FE0003800001FE0003800001FF0007800000FF0007000000FF800F0000007F800E0 +000007FC00E0000003FC01C0000003FC01C0000003FE03C0000001FE0380000001FF0780 +000000FF0700000000FF87000000007F8E000000007F8E000000007FDE000000003FDC00 +0000003FFC000000001FF8000000001FF8000000000FF0000000000FF0000000000FF000 +00000007E00000000007E00000000003C00000000003C0000030297FA833>I<FFFFE0FF +FFE01FFFC0FFFFE0FFFFE01FFFC0FFFFE0FFFFE01FFFC003FC0003FC0000700003FC0003 +FC0000700003FE0003FE0000F00001FE0001FE0000E00001FE0001FE0000E00001FF0001 +FF0001E00000FF0001FF0001C00000FF0001FF0001C000007F8003FF80038000007F8003 +FF80038000007FC007FFC0078000003FC0073FC0070000003FC0073FC0070000003FE00F +3FE00F0000001FE00E1FE00E0000001FE00E1FE00E0000000FF01C0FF01C0000000FF01C +0FF01C0000000FF01C0FF81C00000007F83807F83800000007F83807F83800000007FC78 +07FC7800000003FC7003FC7000000003FC7003FC7000000003FEF003FEF000000001FEE0 +01FEE000000001FEE001FEE000000000FFC000FFC000000000FFC000FFC000000000FFC0 +00FFC0000000007F80007F80000000007F80007F80000000007F80007F80000000003F00 +003F00000000003F00003F00000000003F00003F00000000001E00001E00000000001E00 +001E00000042297FA845>I<7FFFF81FFFE07FFFF81FFFE07FFFF81FFFE001FF0000F000 +00FF8001E00000FFC001C000007FC003C000003FE0078000001FF00F0000001FF00E0000 +000FF81E00000007FC3C00000007FC3800000003FE7800000001FFF000000001FFE00000 +0000FFC0000000007FC0000000003FE0000000003FE0000000001FF0000000001FF80000 +00003FF8000000003FFC000000007BFE00000000F3FE00000001E1FF00000001C0FF8000 +0003C07FC0000007807FC000000F003FE000000E001FF000001E001FF000003C000FF800 +00380007FC0000780007FC0000F00003FE0001E00001FF00FFFF003FFFFCFFFF003FFFFC +FFFF003FFFFC2E297EA833>I<03FF80000FFFF0001F01FC003F80FE003F807F003F803F +003F803F801F003F8000003F8000003F8000003F8000003F80003FFF8001FC3F800FE03F +801F803F803F003F807E003F80FC003F80FC003F80FC003F80FC003F80FC005F807E00DF +803F839FFC1FFE0FFC03F803FC1E1B7E9A21>97 D<FFE00000FFE00000FFE000000FE000 +000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000 +000FE000000FE000000FE1FE000FE7FF800FFE07E00FF803F00FF001F80FE000FC0FE000 +FC0FE0007E0FE0007E0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE000 +7F0FE0007F0FE0007E0FE0007E0FE0007E0FE000FC0FE000FC0FF001F80FF803F00F9C0F +E00F0FFF800E01FC00202A7EA925>I<003FF00001FFFC0003F03E000FC07F001F807F00 +3F007F003F007F007F003E007E0000007E000000FE000000FE000000FE000000FE000000 +FE000000FE000000FE0000007E0000007E0000007F0000003F0003803F8003801F800700 +0FE00E0003F83C0001FFF800003FC000191B7E9A1E>I<00007FF000007FF000007FF000 +0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 +0007F0000007F0000007F0003F87F001FFF7F007F03FF00FC00FF01F8007F03F0007F03F +0007F07E0007F07E0007F07E0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE +0007F0FE0007F0FE0007F07E0007F07E0007F03F0007F03F0007F01F800FF00FC01FF007 +E07FFF01FFE7FF007F87FF202A7EA925>I<003FC00001FFF00003E07C000F803E001F80 +1F001F001F003F000F807E000F807E000FC07E000FC0FE0007C0FE0007C0FFFFFFC0FFFF +FFC0FE000000FE000000FE0000007E0000007E0000007F0000003F0001C01F0001C00F80 +038007C0070003F01E0000FFFC00003FE0001A1B7E9A1F>I<0007F8003FFC007E3E01FC +7F03F87F03F07F07F07F07F03E07F00007F00007F00007F00007F00007F00007F000FFFF +C0FFFFC0FFFFC007F00007F00007F00007F00007F00007F00007F00007F00007F00007F0 +0007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F0007FFF +807FFF807FFF80182A7EA915>I<007F80F001FFE3F807C0FE1C0F807C7C1F003E7C1F00 +3E103F003F003F003F003F003F003F003F003F003F003F003F001F003E001F003E000F80 +7C0007C0F80005FFE0000C7F8000180000001C0000001C0000001E0000001FFFF8001FFF +FF000FFFFFC007FFFFE003FFFFF00FFFFFF03E0007F07C0001F8F80000F8F80000F8F800 +00F8F80000F87C0001F07C0001F03F0007E00FC01F8007FFFF00007FF0001E287E9A22> +I<FFE00000FFE00000FFE000000FE000000FE000000FE000000FE000000FE000000FE000 +000FE000000FE000000FE000000FE000000FE000000FE000000FE07E000FE1FF800FE30F +C00FE40FE00FE807E00FF807F00FF007F00FF007F00FE007F00FE007F00FE007F00FE007 +F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007 +F00FE007F00FE007F00FE007F0FFFE3FFFFFFE3FFFFFFE3FFF202A7DA925>I<07000F80 +1FC03FE03FE03FE01FC00F8007000000000000000000000000000000FFE0FFE0FFE00FE0 +0FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE0 +0FE00FE0FFFEFFFEFFFE0F2B7EAA12>I<FFE00000FFE00000FFE000000FE000000FE000 +000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000 +000FE000000FE03FF80FE03FF80FE03FF80FE007000FE00E000FE03C000FE078000FE0F0 +000FE1E0000FE3C0000FE780000FEFC0000FFFE0000FFFE0000FF7F0000FE3F8000FC1FC +000FC1FC000FC0FE000FC07F000FC07F000FC03F800FC01FC00FC01FC0FFFC7FFCFFFC7F +FCFFFC7FFC1E2A7EA923>107 D<FFE0FFE0FFE00FE00FE00FE00FE00FE00FE00FE00FE0 +0FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE0 +0FE00FE00FE00FE00FE00FE00FE00FE00FE00FE0FFFEFFFEFFFE0F2A7EA912>I<FFC07F +001FC000FFC1FFC07FF000FFC307E0C1F8000FC407F101FC000FC803F200FC000FD803FE +00FE000FD003FC00FE000FD003FC00FE000FE003F800FE000FE003F800FE000FE003F800 +FE000FE003F800FE000FE003F800FE000FE003F800FE000FE003F800FE000FE003F800FE +000FE003F800FE000FE003F800FE000FE003F800FE000FE003F800FE000FE003F800FE00 +0FE003F800FE000FE003F800FE000FE003F800FE00FFFE3FFF8FFFE0FFFE3FFF8FFFE0FF +FE3FFF8FFFE0331B7D9A38>I<FFC07E00FFC1FF80FFC30FC00FC40FE00FC807E00FD807 +F00FD007F00FD007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007 +F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007 +F0FFFE3FFFFFFE3FFFFFFE3FFF201B7D9A25>I<003FE00001FFFC0003F07E000FC01F80 +1F800FC03F0007E03F0007E07E0003F07E0003F07E0003F0FE0003F8FE0003F8FE0003F8 +FE0003F8FE0003F8FE0003F8FE0003F8FE0003F87E0003F07E0003F03F0007E03F0007E0 +1F800FC00FC01F8007F07F0001FFFC00003FE0001D1B7E9A22>I<FFE1FE00FFE7FF80FF +FE0FE00FF803F00FF001F80FE001FC0FE000FC0FE000FE0FE000FE0FE0007F0FE0007F0F +E0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007E0FE000FE0FE000FE0F +E000FC0FE001FC0FF001F80FF803F00FFC0FE00FEFFF800FE1FC000FE000000FE000000F +E000000FE000000FE000000FE000000FE000000FE000000FE00000FFFE0000FFFE0000FF +FE000020277E9A25>I<FFC3E0FFC7F8FFCC7C0FD8FE0FD0FE0FD0FE0FF0FE0FE07C0FE0 +000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0 +000FE0000FE0000FE000FFFF00FFFF00FFFF00171B7E9A1B>114 +D<03FE300FFFF03E03F07800F07000F0F00070F00070F80070FE0000FFE0007FFF007FFF +C03FFFE01FFFF007FFF800FFF80007FC0000FCE0007CE0003CF0003CF00038F80038FC00 +70FF01E0E7FFC0C1FF00161B7E9A1B>I<00700000700000700000700000F00000F00000 +F00001F00003F00003F00007F0001FFFE0FFFFE0FFFFE007F00007F00007F00007F00007 +F00007F00007F00007F00007F00007F00007F00007F00007F00007F07007F07007F07007 +F07007F07007F07007F07003F0E001F8C000FFC0003F0014267FA51A>I<FFE07FF0FFE0 +7FF0FFE07FF00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE0 +07F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE0 +07F00FE007F00FE00FF00FE00FF007E017F003F067FF01FFC7FF007F87FF201B7D9A25> +I<FFFE07FFFFFE07FFFFFE07FF07F000E007F000E007F801E003F801C003F801C001FC03 +8001FC038001FE078000FE070000FF0F00007F0E00007F0E00003F9C00003F9C00003FFC +00001FF800001FF800000FF000000FF000000FF0000007E0000007E0000003C0000003C0 +00201B7F9A23>I<FFFC7FFC1FFCFFFC7FFC1FFCFFFC7FFC1FFC0FE00FE001C007F007E0 +038007F007E0038007F807F0078003F807F0070003F807F8070001FC0FF80E0001FC0FF8 +0E0001FE1FFC1E0000FE1CFC1C0000FE1CFE1C0000FF387E3C00007F387E3800007F787F +3800003FF03F7000003FF03F7000003FE01FF000001FE01FE000001FE01FE000000FC00F +C000000FC00FC000000FC00FC0000007800780000007800780002E1B7F9A31>I<FFFC1F +FEFFFC1FFEFFFC1FFE07F0078003F8070001FC0F0001FE1E0000FE3C00007F7800003FF8 +00003FF000001FE000000FE0000007F0000007F800000FF800001FFC00003DFE000038FF +0000787F0000F03F8001E03FC003C01FE003800FE0FFF03FFFFFF03FFFFFF03FFF201B7F +9A23>I<FFFE07FFFFFE07FFFFFE07FF07F000E007F000E007F801E003F801C003F801C0 +01FC038001FC038001FE078000FE070000FF0F00007F0E00007F0E00003F9C00003F9C00 +003FFC00001FF800001FF800000FF000000FF0000007F0000007E0000007E0000003C000 +0003C000000380000003800000078000380700007C070000FE0E0000FE0E0000FE1C0000 +FE3800007C7000003FE000000F80000020277F9A23>I<3FFFFF3FFFFF3F00FE3C01FE38 +03FC7803F87807F0700FF0700FE0701FC0003FC0003F80007F0000FF0000FE0001FC0703 +FC0703F80707F0070FF00F0FE00F1FC00E3FC01E7F803E7F00FEFFFFFEFFFFFE181B7E9A +1E>I E /Ft 81 125 df<001F83E000F06E3001C078780380F8780300F0300700700007 +0070000700700007007000070070000700700007007000FFFFFF80070070000700700007 +007000070070000700700007007000070070000700700007007000070070000700700007 +0070000700700007007000070070000700700007007000070070007FE3FF001D20809F1B +>11 D<003F0000E0C001C0C00381E00701E00701E0070000070000070000070000070000 +070000FFFFE00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E0 +0700E00700E00700E00700E00700E00700E00700E00700E07FC3FE1720809F19>I<003F +E000E0E001C1E00381E00700E00700E00700E00700E00700E00700E00700E00700E0FFFF +E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700 +E00700E00700E00700E00700E00700E00700E07FE7FE1720809F19>I<001F81F80000F0 +4F040001C07C06000380F80F000300F00F000700F00F0007007000000700700000070070 +0000070070000007007000000700700000FFFFFFFF000700700700070070070007007007 +000700700700070070070007007007000700700700070070070007007007000700700700 +070070070007007007000700700700070070070007007007000700700700070070070007 +007007007FE3FE3FF02420809F26>I<7038F87CFC7EFC7E743A04020402040208040804 +10081008201040200F0E7E9F17>34 D<70F8FCFC74040404080810102040060E7C9F0D> +39 D<0020004000800100020006000C000C001800180030003000300070006000600060 +00E000E000E000E000E000E000E000E000E000E000E000E0006000600060007000300030 +003000180018000C000C000600020001000080004000200B2E7DA112>I<800040002000 +100008000C00060006000300030001800180018001C000C000C000C000E000E000E000E0 +00E000E000E000E000E000E000E000E000C000C000C001C0018001800180030003000600 +06000C00080010002000400080000B2E7DA112>I<000600000006000000060000000600 +000006000000060000000600000006000000060000000600000006000000060000000600 +000006000000060000FFFFFFF0FFFFFFF000060000000600000006000000060000000600 +000006000000060000000600000006000000060000000600000006000000060000000600 +00000600001C207D9A23>43 D<70F8FCFC74040404080810102040060E7C840D>I<FFC0 +FFC00A027F8A0F>I<70F8F8F87005057C840D>I<000100030003000600060006000C000C +000C00180018001800300030003000600060006000C000C000C001800180018003000300 +03000600060006000C000C000C00180018001800300030003000600060006000C000C000 +C000102D7DA117>I<03F0000E1C001C0E00180600380700700380700380700380700380 +F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0 +F003C07003807003807003807807803807001806001C0E000E1C0003F000121F7E9D17> +I<018003800F80F380038003800380038003800380038003800380038003800380038003 +80038003800380038003800380038003800380038007C0FFFE0F1E7C9D17>I<03F0000C +1C00100E00200700400780800780F007C0F803C0F803C0F803C02007C00007C000078000 +0780000F00000E00001C0000380000700000600000C0000180000300000600400C004018 +00401000803FFF807FFF80FFFF80121E7E9D17>I<03F0000C1C00100E00200F00780F80 +780780780780380F80000F80000F00000F00000E00001C0000380003F000003C00000E00 +000F000007800007800007C02007C0F807C0F807C0F807C0F00780400780400F00200E00 +1C3C0003F000121F7E9D17>I<000600000600000E00000E00001E00002E00002E00004E +00008E00008E00010E00020E00020E00040E00080E00080E00100E00200E00200E00400E +00C00E00FFFFF0000E00000E00000E00000E00000E00000E00000E0000FFE0141E7F9D17 +>I<1803001FFE001FFC001FF8001FE00010000010000010000010000010000010000011 +F000161C00180E001007001007800003800003800003C00003C00003C07003C0F003C0F0 +03C0E00380400380400700200600100E000C380003E000121F7E9D17>I<007C00018200 +0701000E03800C07801C0780380300380000780000700000700000F1F000F21C00F40600 +F80700F80380F80380F003C0F003C0F003C0F003C0F003C07003C07003C0700380380380 +3807001807000C0E00061C0001F000121F7E9D17>I<4000007FFFC07FFF807FFF804001 +0080020080020080040000080000080000100000200000200000400000400000C00000C0 +0001C0000180000380000380000380000380000780000780000780000780000780000780 +00078000030000121F7D9D17>I<03F0000C0C0010060030030020018060018060018060 +01807001807803003E03003F06001FC8000FF00003F80007FC000C7E00103F00300F8060 +03804001C0C001C0C000C0C000C0C000C0C000806001802001001002000C0C0003F00012 +1F7E9D17>I<03F0000E18001C0C00380600380700700700700380F00380F00380F003C0 +F003C0F003C0F003C0F003C07007C07007C03807C0180BC00E13C003E3C0000380000380 +000380000700300700780600780E00700C002018001070000FC000121F7E9D17>I<70F8 +F8F8700000000000000000000070F8F8F87005147C930D>I<70F8F8F870000000000000 +0000000070F0F8F878080808101010202040051D7C930D>I<7FFFFFE0FFFFFFF0000000 +0000000000000000000000000000000000000000000000000000000000FFFFFFF07FFFFF +E01C0C7D9023>61 D<000100000003800000038000000380000007C0000007C0000007C0 +000009E0000009E0000009E0000010F0000010F0000010F0000020780000207800002078 +0000403C0000403C0000403C0000801E0000801E0000FFFE0001000F0001000F0001000F +00020007800200078002000780040003C00E0003C01F0007E0FFC03FFE1F207F9F22>65 +D<FFFFE0000F80380007801E0007801F0007800F0007800F8007800F8007800F8007800F +8007800F8007800F0007801F0007801E0007803C0007FFF00007803C0007801E0007800F +0007800F8007800780078007C0078007C0078007C0078007C0078007C00780078007800F +8007800F0007801F000F803C00FFFFF0001A1F7E9E20>I<000FC040007030C001C009C0 +038005C0070003C00E0001C01E0000C01C0000C03C0000C07C0000407C00004078000040 +F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8000000 +780000007C0000407C0000403C0000401C0000401E0000800E0000800700010003800200 +01C0040000703800000FC0001A217D9F21>I<FFFFE0000F803C0007801E000780070007 +800380078003C0078001E0078001E0078001F0078000F0078000F0078000F8078000F807 +8000F8078000F8078000F8078000F8078000F8078000F8078000F8078000F0078000F007 +8000F0078001E0078001E0078003C0078003800780070007800E000F803C00FFFFE0001D +1F7E9E23>I<FFFFFF000F800F0007800300078003000780010007800180078000800780 +008007800080078080800780800007808000078080000781800007FF8000078180000780 +800007808000078080000780800007800020078000200780002007800040078000400780 +0040078000C0078000C0078001800F800F80FFFFFF801B1F7E9E1F>I<FFFFFF000F800F +000780030007800300078001000780018007800080078000800780008007800080078080 +000780800007808000078080000781800007FF8000078180000780800007808000078080 +000780800007800000078000000780000007800000078000000780000007800000078000 +000FC00000FFFE0000191F7E9E1E>I<000FE0200078186000E004E0038002E0070001E0 +0F0000E01E0000601E0000603C0000603C0000207C00002078000020F8000000F8000000 +F8000000F8000000F8000000F8000000F8000000F8007FFCF80003E0780001E07C0001E0 +3C0001E03C0001E01E0001E01E0001E00F0001E0070001E0038002E000E0046000781820 +000FE0001E217D9F24>I<FFF8FFF80F800F8007800F0007800F0007800F0007800F0007 +800F0007800F0007800F0007800F0007800F0007800F0007800F0007800F0007FFFF0007 +800F0007800F0007800F0007800F0007800F0007800F0007800F0007800F0007800F0007 +800F0007800F0007800F0007800F0007800F000F800F80FFF8FFF81D1F7E9E22>I<FFFC +0FC007800780078007800780078007800780078007800780078007800780078007800780 +07800780078007800780078007800780078007800FC0FFFC0E1F7F9E10>I<FFFC0FFC0F +C003E0078001800780010007800200078004000780080007801000078020000780400007 +808000078100000783000007878000078F80000793C0000791E00007A1E00007C0F00007 +80F0000780780007803C0007803C0007801E0007801E0007800F00078007800780078007 +8007C00FC007E0FFFC3FFC1E1F7E9E23>75 D<FFFE000FC0000780000780000780000780 +000780000780000780000780000780000780000780000780000780000780000780000780 +0007800007800007800207800207800207800207800607800407800407800C07801C0F80 +7CFFFFFC171F7E9E1C>I<FF80001FF80F80001F800780001F0005C0002F0005C0002F00 +05C0002F0004E0004F0004E0004F000470008F000470008F000470008F000438010F0004 +38010F000438010F00041C020F00041C020F00041C020F00040E040F00040E040F00040E +040F000407080F000407080F000407080F000403900F000403900F000401E00F000401E0 +0F000401E00F000E00C00F001F00C01F80FFE0C1FFF8251F7E9E2A>I<FF803FF807C007 +C007C0038005E0010005E0010004F001000478010004780100043C0100043C0100041E01 +00040F0100040F010004078100040781000403C1000401E1000401E1000400F1000400F1 +000400790004003D0004003D0004001F0004001F0004000F0004000700040007000E0003 +001F000300FFE001001D1F7E9E22>I<001F800000F0F00001C0380007801E000F000F00 +0E0007001E0007803C0003C03C0003C07C0003E0780001E0780001E0F80001F0F80001F0 +F80001F0F80001F0F80001F0F80001F0F80001F0F80001F0F80001F0780001E07C0003E0 +7C0003E03C0003C03C0003C01E0007800E0007000F000F0007801E0001C0380000F0F000 +001F80001C217D9F23>I<FFFFE0000F80780007801C0007801E0007800F0007800F8007 +800F8007800F8007800F8007800F8007800F8007800F0007801E0007801C000780780007 +FFE000078000000780000007800000078000000780000007800000078000000780000007 +800000078000000780000007800000078000000FC00000FFFC0000191F7E9E1F>I<001F +800000F0F00001C0380007801E000F000F000E0007001E0007803C0003C03C0003C07C00 +03E07C0003E0780001E0F80001F0F80001F0F80001F0F80001F0F80001F0F80001F0F800 +01F0F80001F0F80001F0780001E0780001E07C0003E03C0003C03C0F03C01E1087800E20 +C7000F20CF0007A0FE0001E0F80000F0F010001FF0100000701000007830000038700000 +3FF000003FE000001FE000000FC0000007801C297D9F23>I<FFFF80000F80F000078078 +0007803C0007801E0007801E0007801F0007801F0007801F0007801F0007801E0007801E +0007803C00078078000780F00007FF80000781C0000780E0000780F00007807000078078 +00078078000780780007807C0007807C0007807C0007807C0407807E0407803E040FC01E +08FFFC0F10000003E01E207E9E21>I<07E0800C1980100780300380600180600180E001 +80E00080E00080E00080F00000F000007800007F00003FF0001FFC000FFE0003FF00001F +800007800003C00003C00001C08001C08001C08001C08001C0C00180C00380E00300F006 +00CE0C0081F80012217D9F19>I<7FFFFFE0780F01E0600F0060400F0020400F0020C00F +0030800F0010800F0010800F0010800F0010000F0000000F0000000F0000000F0000000F +0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F +0000000F0000000F0000000F0000000F0000000F0000001F800007FFFE001C1F7E9E21> +I<FFFC3FF80FC007C0078003800780010007800100078001000780010007800100078001 +000780010007800100078001000780010007800100078001000780010007800100078001 +00078001000780010007800100078001000780010007800100038002000380020001C002 +0001C0040000E008000070180000382000000FC0001D207E9E22>I<FFF003FE1F8000F8 +0F0000600F800060078000400780004003C0008003C0008003C0008001E0010001E00100 +01F0010000F0020000F0020000F806000078040000780400003C0800003C0800003C0800 +001E1000001E1000001F3000000F2000000F20000007C0000007C0000007C00000038000 +0003800000038000000100001F207F9E22>I<FFF07FF81FF01F800FC007C00F00078003 +800F00078001000F0007C00100078007C00200078007C00200078007C0020003C009E004 +0003C009E0040003C009E0040003E010F00C0001E010F0080001E010F0080001F0207808 +0000F02078100000F02078100000F0403C10000078403C20000078403C20000078C03E20 +00003C801E4000003C801E4000003C801E4000001F000F8000001F000F8000001F000F80 +00001E00078000000E00070000000E00070000000C000300000004000200002C207F9E2F +>I<7FF83FF80FE00FC007C0070003C0020001E0040001F00C0000F0080000781000007C +1000003C2000003E4000001E4000000F8000000F8000000780000003C0000007E0000005 +E0000009F0000018F8000010780000207C0000603C0000401E0000801F0001800F000100 +0780020007C0070003C01F8007E0FFE01FFE1F1F7F9E22>I<7FFFF87C00F87000F06001 +E04001E0C003C0C003C0800780800F80800F00001E00001E00003C00003C0000780000F8 +0000F00001E00001E00003C00403C0040780040F80040F000C1E000C1E00083C00183C00 +18780038F801F8FFFFF8161F7D9E1C>90 D<FEFEC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 +C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FEFE072D7CA10D>I<0804 +10082010201040204020804080408040B85CFC7EFC7E7C3E381C0F0E7B9F17>I<FEFE06 +060606060606060606060606060606060606060606060606060606060606060606060606 +06060606FEFE072D7FA10D>I<081020204040808080B8FCFC7C38060E7D9F0D>96 +D<1FE000303000781800781C00300E00000E00000E00000E0000FE00078E001E0E00380E +00780E00F00E10F00E10F00E10F01E10781E103867200F83C014147E9317>I<0E0000FE +00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E3E000E +C3800F01C00F00E00E00E00E00700E00700E00780E00780E00780E00780E00780E00780E +00700E00700E00E00F00E00D01C00CC300083E0015207F9F19>I<03F80E0C1C1E381E38 +0C70007000F000F000F000F000F000F00070007000380138011C020E0C03F010147E9314 +>I<000380003F8000038000038000038000038000038000038000038000038000038000 +038003E380061B801C0780380380380380700380700380F00380F00380F00380F00380F0 +0380F003807003807003803803803807801C07800E1B8003E3F815207E9F19>I<03F000 +0E1C001C0E00380700380700700700700380F00380F00380FFFF80F00000F00000F00000 +7000007000003800801800800C010007060001F80011147F9314>I<007C00C6018F038F +07060700070007000700070007000700FFF0070007000700070007000700070007000700 +0700070007000700070007000700070007007FF01020809F0E>I<0000E003E3300E3C30 +1C1C30380E00780F00780F00780F00780F00780F00380E001C1C001E380033E000200000 +2000003000003000003FFE001FFF800FFFC03001E0600070C00030C00030C00030C00030 +6000603000C01C038003FC00141F7F9417>I<0E0000FE00000E00000E00000E00000E00 +000E00000E00000E00000E00000E00000E00000E3E000E43000E81800F01C00F01C00E01 +C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01 +C00E01C0FFE7FC16207F9F19>I<1C003E003E003E001C00000000000000000000000000 +0E007E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E00 +0E00FFC00A1F809E0C>I<00E001F001F001F000E0000000000000000000000000007007 +F000F0007000700070007000700070007000700070007000700070007000700070007000 +7000700070007000706070F060F0C061803F000C28829E0E>I<0E0000FE00000E00000E +00000E00000E00000E00000E00000E00000E00000E00000E00000E0FF00E03C00E03000E +02000E04000E08000E10000E30000E70000EF8000F38000E1C000E1E000E0E000E07000E +07800E03800E03C00E03E0FFCFF815207F9F18>I<0E00FE000E000E000E000E000E000E +000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E +000E000E000E000E000E00FFE00B20809F0C>I<0E1F01F000FE618618000E81C81C000F +00F00E000F00F00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00 +E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E0 +0E000E00E00E00FFE7FE7FE023147F9326>I<0E3E00FE43000E81800F01C00F01C00E01 +C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01 +C00E01C0FFE7FC16147F9319>I<01F800070E001C03803801C03801C07000E07000E0F0 +00F0F000F0F000F0F000F0F000F0F000F07000E07000E03801C03801C01C0380070E0001 +F80014147F9317>I<0E3E00FEC3800F01C00F00E00E00E00E00F00E00700E00780E0078 +0E00780E00780E00780E00780E00700E00F00E00E00F01E00F01C00EC3000E3E000E0000 +0E00000E00000E00000E00000E00000E00000E0000FFE000151D7F9319>I<03E0800619 +801C05803C0780380380780380700380F00380F00380F00380F00380F00380F003807003 +807803803803803807801C0B800E138003E3800003800003800003800003800003800003 +80000380000380003FF8151D7E9318>I<0E78FE8C0F1E0F1E0F0C0E000E000E000E000E +000E000E000E000E000E000E000E000E000E00FFE00F147F9312>I<1F9030704030C010 +C010C010E00078007F803FE00FF00070803880188018C018C018E030D0608F800D147E93 +12>I<020002000200060006000E000E003E00FFF80E000E000E000E000E000E000E000E +000E000E000E000E080E080E080E080E080610031001E00D1C7F9B12>I<0E01C0FE1FC0 +0E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C0 +0E01C00E01C00E03C00603C0030DC001F1FC16147F9319>I<FF83F81E01E01C00C00E00 +800E00800E008007010007010003820003820003820001C40001C40001EC0000E80000E8 +0000700000700000700000200015147F9318>I<FF9FE1FC3C0780701C0300601C038020 +0E0380400E0380400E03C0400707C0800704C0800704E080038861000388710003C87300 +01D0320001D03A0000F03C0000E01C0000E01C0000601800004008001E147F9321>I<7F +C3FC0F01E00701C007018003810001C20000E40000EC00007800003800003C00007C0000 +4E000087000107000303800201C00601E01E01E0FF07FE1714809318>I<FF83F81E01E0 +1C00C00E00800E00800E008007010007010003820003820003820001C40001C40001EC00 +00E80000E800007000007000007000002000002000004000004000004000F08000F08000 +F100006200003C0000151D7F9318>I<3FFF380E200E201C40384078407000E001E001C0 +0380078007010E011E011C0338027006700EFFFE10147F9314>I<FFFFFFFFFFF02C0180 +8C2D>124 D E /Fu 7 120 df<FFFFFFFFFFFFF0FFFFFFFFFFFFF0FFFFFFFFFFFFF0FFFF +FFFFFFFFF0007FF00001FFF0007FF000003FF8007FF000000FF8007FF0000007F8007FF0 +000003F8007FF0000001F8007FF0000000F8007FF0000000F8007FF000000078007FF000 +000078007FF000000078007FF000000078007FF00078007C007FF00078003C007FF00078 +003C007FF00078003C007FF00078003C007FF000780000007FF000F80000007FF000F800 +00007FF001F80000007FF007F80000007FFFFFF80000007FFFFFF80000007FFFFFF80000 +007FFFFFF80000007FF007F80000007FF001F80000007FF000F80000007FF000F8000000 +7FF000780000007FF00078000F007FF00078000F007FF00078000F007FF00078001E007F +F00078001E007FF00000001E007FF00000001E007FF00000003E007FF00000003E007FF0 +0000003C007FF00000003C007FF00000007C007FF00000007C007FF0000000FC007FF000 +0001FC007FF0000003F8007FF0000007F8007FF000000FF8007FF000003FF8007FF00003 +FFF8FFFFFFFFFFFFF8FFFFFFFFFFFFF0FFFFFFFFFFFFF0FFFFFFFFFFFFF0383B7CBA40> +69 D<3FFFFFFFFFFFFFC03FFFFFFFFFFFFFC03FFFFFFFFFFFFFC03FFFFFFFFFFFFFC03F +F8007FF001FFC07FC0007FF0003FE07F80007FF0001FE07F00007FF0000FE07E00007FF0 +0007E07C00007FF00003E07C00007FF00003E07C00007FF00003E07800007FF00001E078 +00007FF00001E07800007FF00001E07800007FF00001E0F000007FF00000F0F000007FF0 +0000F0F000007FF00000F0F000007FF00000F0F000007FF00000F00000007FF000000000 +00007FF00000000000007FF00000000000007FF00000000000007FF00000000000007FF0 +0000000000007FF00000000000007FF00000000000007FF00000000000007FF000000000 +00007FF00000000000007FF00000000000007FF00000000000007FF00000000000007FF0 +0000000000007FF00000000000007FF00000000000007FF00000000000007FF000000000 +00007FF00000000000007FF00000000000007FF00000000000007FF00000000000007FF0 +0000000000007FF00000000000007FF00000000000007FF00000000000007FF000000000 +00007FF00000000000007FF00000000000007FF00000000000007FF00000000000007FF0 +000000000FFFFFFFFF8000000FFFFFFFFF8000000FFFFFFFFF8000000FFFFFFFFF80003C +3A7DB943>84 D<7FFFFFF801FFFFFC007FFFFFF801FFFFFC007FFFFFF801FFFFFC007FFF +FFF801FFFFFC00003FFC000007F80000003FFE000003E00000001FFF000007C00000000F +FF000007C000000007FF80000F8000000007FFC0001F0000000003FFC0003E0000000001 +FFE0003E0000000001FFF0007C0000000000FFF800F800000000007FF800F80000000000 +3FFC01F000000000003FFE03E000000000001FFE07C000000000000FFF07C00000000000 +0FFF8F80000000000007FFDF00000000000003FFFE00000000000003FFFE000000000000 +01FFFC00000000000000FFF8000000000000007FF8000000000000007FFC000000000000 +003FFE000000000000001FFE000000000000001FFF000000000000000FFF800000000000 +001FFF800000000000003FFFC00000000000003FFFE00000000000007DFFE00000000000 +00F8FFF0000000000001F0FFF8000000000001F07FFC000000000003E03FFC0000000000 +07C03FFE00000000000F801FFF00000000000F800FFF00000000001F0007FF8000000000 +3E0007FFC0000000007C0003FFE0000000007C0001FFE000000000F80001FFF000000001 +F00000FFF800000001E000007FF800000003E000003FFC00000007C000003FFE0000000F +8000001FFE0000000F8000000FFF0000001F0000000FFF8000007F80000007FFC000FFFF +FE0003FFFFFFC0FFFFFE0003FFFFFFC0FFFFFE0003FFFFFFC0FFFFFE0003FFFFFFC0423B +7DBA49>88 D<003FFE00000001FFFFE0000007FFFFF800000FE007FC00000FF001FE0000 +1FF800FF00001FF8007F80001FF8007FC0001FF8003FC0000FF0003FE00007E0003FE000 +03C0003FE0000000003FE0000000003FE0000000003FE0000000003FE0000000FFFFE000 +001FFFFFE000007FF83FE00003FF803FE00007FC003FE0000FF0003FE0001FE0003FE000 +3FE0003FE0007FC0003FE0007FC0003FE000FF80003FE000FF80003FE000FF80003FE000 +FF80003FE000FF80007FE0007FC0007FE0007FC000DFE0003FE0039FF0001FF80F0FFFE0 +07FFFE0FFFE001FFF807FFE0003FE000FFE02B267DA52F>97 D<000000003F800000003F +FF800000003FFF800000003FFF800000003FFF8000000001FF8000000000FF8000000000 +FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000 +FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000 +FF8000000000FF8000000000FF800000FF80FF80000FFFF0FF80003FFFFCFF8000FFC03F +FF8001FE000FFF8003FC0003FF8007F80001FF800FF00000FF801FF00000FF803FE00000 +FF803FE00000FF807FE00000FF807FC00000FF807FC00000FF807FC00000FF80FFC00000 +FF80FFC00000FF80FFC00000FF80FFC00000FF80FFC00000FF80FFC00000FF80FFC00000 +FF80FFC00000FF80FFC00000FF807FC00000FF807FC00000FF807FC00000FF803FE00000 +FF803FE00000FF801FE00000FF800FF00001FF8007F00003FF8003F80007FF8001FE001F +FFC000FF807EFFFE007FFFF8FFFE000FFFE0FFFE0001FF00FFFE2F3C7DBB36>100 +D<01FC03F000FFFC0FFC00FFFC1FFF00FFFC3C3F80FFFC707F8007FCE0FFC003FCC0FFC0 +03FD80FFC003FD80FFC003FF807F8003FF003F0003FF001E0003FF00000003FE00000003 +FE00000003FE00000003FE00000003FE00000003FE00000003FE00000003FE00000003FE +00000003FE00000003FE00000003FE00000003FE00000003FE00000003FE00000003FE00 +000003FE00000003FE00000003FE00000003FE00000003FE000000FFFFFC0000FFFFFC00 +00FFFFFC0000FFFFFC000022267DA528>114 D<FFFFE0FFFFC03FFF80FFFFE0FFFFC03F +FF80FFFFE0FFFFC03FFF80FFFFE0FFFFC03FFF8007FE0007F80001F00003FE0007F80001 +E00003FE0003FC0001E00003FF0003FC0003E00001FF0003FC0003C00001FF8003FE0007 +C00000FF8007FE0007800000FF8007FF0007800000FFC007FF000F8000007FC00FFF000F +0000007FE00F7F801F0000003FE01F7F801E0000003FE01E3FC01E0000003FF01E3FC03E +0000001FF03E3FC03C0000001FF03C1FE07C0000000FF87C1FE0780000000FF8780FF078 +0000000FFC780FF0F800000007FCF80FF0F000000007FCF007F9F000000003FFF007F9E0 +00000003FFE003FDE000000003FFE003FFE000000001FFE003FFC000000001FFC001FFC0 +00000000FFC001FF8000000000FF8000FF8000000000FF8000FF80000000007F8000FF00 +000000007F00007F00000000003F00007E00000000003E00003E00000000001E00003C00 +000041267EA546>119 D E end +%%EndProlog +%%BeginSetup +%%Feature: *Resolution 300dpi +TeXDict begin + +%%EndSetup +%%Page: 1 1 +1 0 bop 0 668 a Fu(T)51 687 y(E)103 668 y(Xdra)m(w)p +0 720 1950 17 v 1335 769 a Ft(P)o(ostScript)15 b(Dra)o(wings)g(from)f +(T)1890 778 y(E)1916 769 y(X)1730 823 y(Edition)i(2.0)1647 +877 y(Decem)o(b)q(er)g(1995)0 2521 y Fs(P)n(eter)22 b(Kabal)p +0 2545 1950 9 v eop +%%Page: 2 2 +2 1 bop 0 1080 a Ft(Cop)o(yrigh)o(t)226 1079 y(c)214 +1080 y Fr(\015)15 b Ft(1993-95)f(P)o(eter)g(Kabal)0 1341 +y(This)g(is)g(edition)g(2.0)f(of)g(the)g(do)q(cumen)o(tation)h(for)f +(the)g(T)971 1351 y(E)997 1341 y(Xdra)o(w)f(macros)h(for)g(the)g(T)1463 +1351 y(E)1489 1341 y(X)g(t)o(yp)q(esetting)g(program.)0 +1603 y(P)o(eter)i(Kabal)0 1665 y(Departmen)o(t)f(of)h(Electrical)i +(Engineering)0 1727 y(McGill)g(Univ)o(ersit)o(y)0 1789 +y(3480)d(Univ)o(ersit)o(y)0 1852 y(Mon)o(treal,)g(Queb)q(ec)0 +1914 y(Canada)30 b(H3A)7 b(2A7)0 2051 y Fq(kabal@TSP.EE.McGill.CA)0 +2312 y Ft(P)o(ermission)13 b(is)g(gran)o(ted)f(to)f(mak)o(e)h(and)h +(distribute)h(v)o(erbatim)e(copies)h(of)f(this)h(man)o(ual)g(pro)o +(vided)g(the)f(cop)o(yrigh)o(t)0 2375 y(notice)k(and)f(this)h(p)q +(ermission)h(notice)e(are)g(preserv)o(ed)h(on)f(all)h(copies.)0 +2512 y(P)o(ermission)f(is)f(gran)o(ted)f(to)h(cop)o(y)g(and)g +(distribute)h(mo)q(di\014ed)h(v)o(ersions)e(of)f(this)i(man)o(ual)f +(under)h(the)f(conditions)0 2574 y(for)e(v)o(erbatim)g(cop)o(ying,)h +(pro)o(vided)h(that)d(the)i(en)o(tire)g(resulting)h(deriv)o(ed)f(w)o +(ork)f(is)h(distributed)h(under)f(the)g(terms)0 2636 +y(of)i(a)g(p)q(ermission)h(notice)g(iden)o(tical)h(to)e(this)g(one.)p +eop +%%Page: 1 3 +1 2 bop 0 -83 a Ft(Chapter)15 b(1:)k(In)o(tro)q(duction)1447 +b(1)0 158 y Fp(1)41 b(In)n(tro)r(duction)62 345 y Ft(T)87 +355 y(E)113 345 y(X)22 b(is)h(a)e(p)q(o)o(w)o(erful)i(t)o(yp)q +(esetting)f(program)f(whic)o(h)i(allo)o(ws)f(for)g(complex)h(text)e(la) +o(y)o(outs)h(but)g(b)o(y)g(itself)0 407 y(lac)o(ks)f(a)g(general)g +(graphics)g(capabilit)o(y)l(.)39 b(Ho)o(w)o(ev)o(er,)21 +b(when)g(coupled)h(with)g(an)f(appropriate)f(prin)o(ter)i(driv)o(er)0 +470 y(program,)15 b(external)j(graphics)f(\014les)g(can)g(b)q(e)g +(inserted)h(in)o(to)e(the)h(prin)o(ted)h(do)q(cumen)o(t.)24 +b(In)17 b(this)g(mo)q(de,)g(T)1843 479 y(E)1869 470 y(X)f(is)0 +532 y(instructed)d(to)f(lea)o(v)o(e)h(space)g(for)f(a)g(dra)o(wing.)19 +b(The)13 b(dra)o(wing)f(is)h(inserted)h(b)o(y)e(the)h(prin)o(ter)g +(driv)o(er)g(program.)18 b(The)0 594 y(T)25 604 y(E)51 +594 y(Xdra)o(w)d(macros)f(describ)q(ed)k(here)e(generate)g(the)f +(external)h(graphics)h(\014le)f(from)f(within)i(T)1619 +604 y(E)1645 594 y(X)e(and)h(generate)0 656 y(the)d(instructions)g(to)f +(the)h(the)g(prin)o(t)g(driv)o(er)g(program)e(to)h(p)q(osition)i(the)e +(graphics)i(at)e(the)g(appropriate)h(p)q(osition)0 719 +y(on)i(the)g(page.)62 856 y(T)87 866 y(E)113 856 y(Xdra)o(w)10 +b(consists)g(of)g(a)g(set)h(of)e(T)635 866 y(E)661 856 +y(X)h(macros)g(that)g(create)g(line)i(dra)o(wings)e(and)h(other)f +(\014gures.)18 b(The)11 b(dra)o(wing)0 918 y(primitiv)o(es)17 +b(include)i(solid)e(lines,)h(patterned)e(lines,)i(Bezier)f(curv)o(es,)f +(circles)i(and)e(arro)o(ws.)22 b(Other)16 b(commands)0 +980 y(allo)o(w)e(for)e(the)i(\014lling)h(of)e(a)g(region)g(with)h(a)f +(gra)o(y)f(lev)o(el.)21 b(The)13 b(dra)o(wing)h(commands)f(generate)g +(P)o(ostScript)g(co)q(de.)0 1043 y(This)j(limits)h(T)256 +1052 y(E)281 1043 y(Xdra)o(w)e(to)g(systems)g(whic)o(h)h(use)g(P)o +(ostScript)f(prin)o(ters.)21 b(T)1296 1052 y(E)1322 1043 +y(Xdra)o(w)15 b(also)g(pro)o(vides)h(commands)0 1105 +y(to)i(p)q(osition)h(T)260 1115 y(E)286 1105 y(X)f(text,)g(including)j +(mathematics,)e(on)f(the)h(dra)o(wing.)29 b(The)18 b(\014nal)i(dra)o +(wing,)e(with)h(text)f(and)0 1167 y(graphics,)d(can)h(b)q(e)g(p)q +(ositioned)g(on)f(the)h(page)f(lik)o(e)h(an)o(y)f(other)g(T)1117 +1177 y(E)1142 1167 y(X)g(b)q(o)o(x.)62 1304 y(The)i(basic)h(T)298 +1314 y(E)323 1304 y(Xdra)o(w)e(macros)g(for)g(T)723 1314 +y(E)749 1304 y(X)g(use)h(the)g Fq(\\special)f Ft(syn)o(tax)f +(recognized)j(b)o(y)f(the)g(prin)o(ter)g(driv)o(er)0 +1366 y(program)d Fq(dvips)p Ft(.)20 b(Ho)o(w)o(ev)o(er,)14 +b(when)i(in)o(v)o(ok)o(ed)f(as)g(a)g(LaT)985 1376 y(E)1011 +1366 y(X2e)g(pac)o(k)m(age,)g(the)h(T)1389 1376 y(E)1414 +1366 y(Xdra)o(w)f(macros)g(can)g(b)q(e)h(used)0 1429 +y(with)h(an)o(y)g(of)f(the)h(P)o(ostScript)g(prin)o(ter)g(driv)o(er)g +(programs)f(supp)q(orted)h(b)o(y)g(the)g(standard)f Fq(graphics)g +Ft(pac)o(k)m(age)0 1491 y(for)f(LaT)146 1501 y(E)171 +1491 y(X2e.)62 1628 y(The)c(basic)g(T)285 1638 y(E)311 +1628 y(Xdra)o(w)f(macros)f(pro)o(vide)i(only)g(simple)h(dra)o(wing)f +(commands.)18 b(Ho)o(w)o(ev)o(er,)10 b(T)1618 1638 y(E)1644 +1628 y(Xdra)o(w)f(pro)o(vides)0 1690 y(a)k(dra)o(wing)h(segmen)o(t)f +(en)o(vironmen)o(t)h(whic)o(h)g(allo)o(ws)g(parameter)f(c)o(hanges)h +(and)f(co)q(ordinate)h(scaling)h(c)o(hanges)f(to)0 1752 +y(b)q(e)i(k)o(ept)g(lo)q(cal)h(to)e(the)h(dra)o(wing)f(segmen)o(t.)22 +b(This)16 b(facilit)o(y)l(,)h(together)e(with)h(T)1349 +1762 y(E)1374 1752 y(X's)g(macro)f(capabilities)j(allo)o(ws)0 +1815 y(one)e(to)e(mo)q(dularize)j(dra)o(wing)f(units)g(and)f(extend)h +(T)922 1824 y(E)948 1815 y(Xdra)o(w)f(b)o(y)g(building)j(more)d +(complex)h(graphics)g(en)o(tities)0 1877 y(from)e(simpler)j(elemen)o +(ts.)0 2101 y Fs(1.1)33 b(Distribution)17 b(information)62 +2238 y Ft(The)e(T)180 2248 y(E)205 2238 y(Xdra)o(w)f(routines)h(are)f +(pro)o(vided)h(free)f(of)g(c)o(harge)g(without)g(w)o(arran)o(t)o(y)f +(of)h(an)o(y)g(kind.)20 b(Note)14 b(that)g(the)0 2300 +y(T)25 2310 y(E)51 2300 y(Xdra)o(w)k(routines)h(are)g(cop)o(yrigh)o +(ted.)31 b(They)19 b(ma)o(y)f(b)q(e)i(distributed)g(freely)g(pro)o +(vided)f(that)g(the)f(recipien)o(ts)0 2363 y(also)d(acquire)i(the)e +(righ)o(t)h(to)f(distribute)h(them)g(freely)l(.)22 b(The)15 +b(notices)h(to)f(this)h(e\013ect)f(m)o(ust)g(b)q(e)i(preserv)o(ed)e +(when)0 2425 y(the)g(source)h(\014les)g(are)f(distributed.)p +eop +%%Page: 2 4 +2 3 bop 0 -83 a Ft(2)1745 b(T)1793 -73 y(E)1819 -83 y(Xdra)o(w)p +eop +%%Page: 3 5 +3 4 bop 0 -83 a Ft(Chapter)15 b(2:)k(Using)d(the)g(T)464 +-73 y(E)489 -83 y(Xdra)o(w)f(Commands)1068 b(3)0 158 +y Fp(2)41 b(Using)14 b(the)h(T)468 174 y(E)511 158 y(Xdra)n(w)g +(Commands)62 360 y Ft(The)k(main)f(T)300 369 y(E)326 +360 y(Xdra)o(w)f(macros)g(\(commands\))h(are)f(de\014ned)j(in)f(the)f +(\014le)h(`)p Fq(texdraw.tex)p Ft('.)26 b(These)19 b(macros)0 +422 y(ma)o(y)c(b)q(e)i(used)g(directly)h(in)f(T)513 432 +y(E)538 422 y(X.)f(The)h(\014le)g(`)p Fq(texdraw.sty)p +Ft(')d(pro)o(vides)i(an)h(in)o(terface)f(for)g(use)g(with)h(LaT)1835 +432 y(E)1860 422 y(X2e.)0 484 y(The)e(follo)o(wing)h(sections)g +(describ)q(e)h(the)e(basic)h(commands)f(for)g(T)1143 +494 y(E)1168 484 y(Xdra)o(w.)0 734 y Fs(2.1)33 b(Accessing)14 +b(T)455 748 y(E)490 734 y(Xdra)n(w)62 874 y Ft(The)19 +b(form)e(of)h(the)g(user)g(command)g(to)f(run)i(the)f(T)965 +884 y(E)990 874 y(X)g(program)f(dep)q(ends)j(on)e(whic)o(h)h(v)o +(ersion)f(of)g(T)1842 884 y(E)1867 874 y(X)g(is)0 937 +y(b)q(eing)f(used,)f(and)f(whic)o(h)i(other)e(macro)g(pac)o(k)m(ages)g +(are)g(preloaded)i(as)e(format)f(\014les.)22 b(T)o(ypically)l(,)17 +b(installations)0 999 y(ha)o(v)o(e)g(at)g(least)g(t)o(w)o(o)f(v)o +(ersions)i(of)f(T)615 1009 y(E)640 999 y(X)g(|)h(plain)h(T)895 +1009 y(E)921 999 y(X)e(whic)o(h)h(includes)i(basic)e(t)o(yp)q(esetting) +f(macros)g(\(usually)0 1061 y(in)o(v)o(ok)o(ed)h(as)f(`)p +Fq(tex)p Ft('\))e(and)j(LaT)524 1071 y(E)550 1061 y(X2e)f(whic)o(h)h +(includes)i(the)d(LaT)1109 1071 y(E)1135 1061 y(X2e)g(t)o(yp)q +(esetting)h(macros)e(\(usually)j(in)o(v)o(ok)o(ed)0 1123 +y(as)14 b(`)p Fq(latex)p Ft('\).)k(An)d(older)g(v)o(ersion)g(of)f(LaT) +718 1133 y(E)744 1123 y(X,)g(v)o(ersion)h(2.09,)e(ma)o(y)h(also)h(b)q +(e)g(a)o(v)m(ailable.)21 b(The)15 b(T)1639 1133 y(E)1665 +1123 y(Xdra)o(w)f(macros)0 1186 y(can)h(b)q(e)h(used)g(with)g(plain)g +(T)491 1195 y(E)517 1186 y(X)f(and)g(with)h(either)g(v)o(ersion)f(of)g +(LaT)1169 1195 y(E)1195 1186 y(X.)62 1325 y(F)l(or)e(use)g(with)h +(plain)g(T)456 1335 y(E)482 1325 y(X,)f(the)g(user)g(m)o(ust)g(read)g +(in)h(the)f(T)1074 1335 y(E)1100 1325 y(Xdra)o(w)f(macros)h(from)f(the) +h(\014le)i(`)p Fq(texdraw.tex)p Ft('.)120 1455 y Fq(\\input)23 +b(texdraw)285 b(\045)24 b(Read)f(in)h(the)g(TeXdraw)e(macros)144 +1507 y(...)120 1559 y(\\btexdraw)168 1611 y(...)500 b(\045)24 +b(TeXdraw)f(commands)g(to)g(generate)g(a)h(drawing)120 +1663 y(\\etexdraw)62 1792 y Ft(F)l(or)j(use)h(with)g(LaT)439 +1802 y(E)465 1792 y(X)g(v)o(ersion)f(2.09,)j(the)d(user)h(reads)g(in)g +(the)g(T)1330 1802 y(E)1355 1792 y(Xdra)o(w)f(macros)g(from)g(the)h +(\014le)0 1854 y(`)p Fq(texdraw.tex)p Ft(')13 b(and)i(optionally)i +(de\014nes)f(the)f Fq(\\begin{texdraw})e Ft(/)i Fq(\\end{texdraw})f +Ft(en)o(vironmen)o(t.)120 1984 y Fq(\\documentstyle[11pt]{artic)o(le}) +45 b(\045)23 b(Article)g(style)h(with)f(the)g(11pt)h(size)f(options)120 +2036 y(...)120 2088 y(\\input)g(texdraw)285 b(\045)24 +b(Read)f(in)h(the)g(TeXdraw)e(macros)120 2139 y +(\\newenvironment{texdraw}{\\)o(leavevm)o(ode\\btex)o(draw}{\\)o +(etexdra)o(w})144 2191 y(...)120 2243 y(\\begin{texdraw})168 +2295 y(...)500 b(\045)24 b(TeXdraw)f(commands)g(to)g(generate)g(a)h +(drawing)120 2347 y(\\end{texdraw})120 2399 y(...)120 +2451 y(\\end{document})62 2583 y Ft(F)l(or)c(use)h(with)h(LaT)419 +2593 y(E)444 2583 y(X2e,)g(the)f(user)g(m)o(ust)f(load)h(the)g +Fq(texdraw)e Ft(pac)o(k)m(age)i(\(\014le)g(`)p Fq(texdraw.sty)p +Ft('\).)34 b(This)0 2645 y(pac)o(k)m(age)18 b(\014le)g(de\014nes)h(the) +f Fq(\\begin{texdraw})d Ft(/)i Fq(\\end{texdraw})f Ft(en)o(vironmen)o +(t,)i(brings)g(in)h(the)e(standard)p eop +%%Page: 4 6 +4 5 bop 0 -83 a Ft(4)1745 b(T)1793 -73 y(E)1819 -83 y(Xdra)o(w)0 +158 y Fq(graphics)16 b Ft(pac)o(k)m(age)i(and)f(reads)h(in)g(the)f +(\014le)i(`)p Fq(texdraw.tex)p Ft(')c(con)o(taining)j(the)f +(de\014nitions)j(of)d(the)g(T)1793 168 y(E)1819 158 y(Xdra)o(w)0 +221 y(macros.)120 353 y Fq(\\documentclass[11pt]{artic)o(le})45 +b(\045)23 b(Article)g(class)h(with)f(the)g(11pt)h(size)f(option)120 +405 y(\\usepackage{texdraw})260 b(\045)23 b(TeXdraw)g(commands)120 +508 y(\\begin{document})144 560 y(...)120 612 y(\\begin{texdraw})168 +664 y(...)500 b(\045)24 b(TeXdraw)f(commands)g(to)g(generate)g(a)h +(drawing)120 716 y(\\end{texdraw})144 768 y(...)120 820 +y(\\end{document})62 952 y Ft(As)15 b(the)g(T)232 962 +y(E)257 952 y(Xdra)o(w)f(commands)g(are)h(pro)q(cessed)g(b)o(y)g(T)994 +962 y(E)1019 952 y(X,)f(an)h(in)o(termediate)g(P)o(ostScript)g(\014le)g +(is)g(generated.)0 1014 y(The)i(in)o(termediate)g(P)o(ostScript)f(has)h +(a)f(name)h(of)f(the)g(form)g(`)p Fo(name)p Fq(.ps1)p +Ft('.)23 b(The)17 b(name)f(part)g(is)h(deriv)o(ed)h(from)0 +1076 y(the)d(name)f(of)g(the)h(main)g(T)465 1086 y(E)491 +1076 y(X)f(\014le)i(b)q(eing)g(pro)q(cessed.)k(If)15 +b(more)f(than)g(one)h(dra)o(wing)f(is)i(pro)q(duced,)f(the)g(digit)g +(in)0 1139 y(the)g(\014le)i(name)e(extension)h(is)f(incremen)o(ted.)772 +1122 y Fn(1)62 1281 y Ft(The)f(T)179 1291 y(E)204 1281 +y(Xdra)o(w)f(commands)g(to)f(pro)q(duce)i(a)f(dra)o(wing)g(are)g +(inserted)h(b)q(et)o(w)o(een)g Fq(\\btexdraw)e Ft(and)h +Fq(\\etexdraw)0 1343 y Ft(commands,)g(or)g(for)g(LaT)434 +1353 y(E)460 1343 y(X,)g(b)q(et)o(w)o(een)h Fq(\\begin{texdraw})e +Ft(and)h Fq(\\end{texdraw})f Ft(commands.)19 b(This)c(results)0 +1406 y(in)20 b(a)e(T)123 1415 y(E)148 1406 y(X)h(b)q(o)o(x)g(of)f +(appropriate)h(size)g(con)o(taining)h(the)e(dra)o(wing)h(generated)g(b) +o(y)f(the)h(T)1552 1415 y(E)1577 1406 y(Xdra)o(w)g(commands.)0 +1468 y(The)c(T)118 1478 y(E)144 1468 y(Xdra)o(w)g(b)q(o)o(x)g(can)g(b)q +(e)h(p)q(ositioned)h(in)f(a)e(do)q(cumen)o(t)i(lik)o(e)g(an)o(y)f +(other)g(T)1355 1478 y(E)1381 1468 y(X)g(b)q(o)o(x.)62 +1610 y(The)j Fq(\\centertexdraw{...})c Ft(macro)i(cen)o(ters)h(the)g(b) +q(o)o(x)g(generated)g(b)o(y)g(T)1389 1620 y(E)1415 1610 +y(Xdra)o(w.)25 b(The)17 b(v)o(ertical)h(space)0 1673 +y(tak)o(en)i(up)h(is)g(equal)h(to)e(the)g(v)o(ertical)h(size)h(of)e +(the)h(dra)o(wing.)36 b(The)21 b Fq(\\centertexdraw)d +Ft(macro)i(is)h(normally)0 1735 y(used)d(in)g(v)o(ertical)f(mo)q(de)h +(\(b)q(et)o(w)o(een)f(paragraphs\).)24 b(A)17 b Fq(\\par)g +Ft(command)g(\(a)f(blank)i(line)h(will)g(do)e(also\))g(b)q(efore)0 +1797 y(a)j Fq(\\centertexdraw)f Ft(command)h(will)j(terminate)d +(horizon)o(tal)h(mo)q(de)g(and)g(return)f(to)g(v)o(ertical)h(mo)q(de.) +37 b(F)l(or)0 1859 y(LaT)76 1869 y(E)102 1859 y(X,)15 +b(a)f(structured)i(equiv)m(alen)o(t)g(to)f(the)g Fq +(\\centertexdraw{...})e Ft(command)i(is)h(sho)o(wn)f(b)q(elo)o(w.)120 +1991 y Fq(\\begin{center})120 2043 y(\\begin{texdraw})168 +2095 y(...)120 2147 y(\\end{texdraw})120 2199 y(\\end{center})62 +2331 y Ft(The)i Fq(\\everytexdraw)d Ft(command)i(can)g(b)q(e)g(used)h +(to)e(de\014ne)j(a)d(set)h(of)g(T)1319 2341 y(E)1344 +2331 y(Xdra)o(w)f(commands)h(that)g(will)h(b)q(e)0 2393 +y(executed)e(at)e(the)h(b)q(eginning)i(of)d(ev)o(ery)h(T)719 +2403 y(E)744 2393 y(Xdra)o(w)f(dra)o(wing.)20 b(It)14 +b(is)g(in)o(v)o(ok)o(ed)g(as)f Fq(\\everytexdraw{)h(...})p +Ft(,)f(with)0 2456 y(the)i(desired)i(T)258 2465 y(E)283 +2456 y(Xdra)o(w)e(commands)g(as)g(argumen)o(ts.)p 0 2526 +600 2 v 21 2565 a Fn(1)62 2581 y Ft(After)21 b(the)h(nin)o(th)g(P)o +(ostScript)f(\014le,)i(the)f(name)f(of)g(the)g(in)o(termediate)h(P)o +(ostScript)f(\014le)i(tak)o(es)d(the)i(form)62 2644 y(`)p +Fo(name)p Fq(.p10)p Ft(',)14 b(with)h(the)h(n)o(um)o(b)q(er)f +(increasing)i(from)d(10)h(with)g(eac)o(h)h(\014le.)p +eop +%%Page: 5 7 +5 6 bop 0 -83 a Ft(Chapter)15 b(2:)k(Using)d(the)g(T)464 +-73 y(E)489 -83 y(Xdra)o(w)f(Commands)1068 b(5)0 158 +y Fq(\\btexdraw)240 221 y Ft(Start)14 b(a)h(T)419 230 +y(E)445 221 y(Xdra)o(w)f(dra)o(wing.)20 b(The)15 b(dra)o(wing)h(is)f +(terminated)h(with)f(an)g Fq(\\etexdraw)f Ft(command.)0 +305 y Fq(\\etexdraw)240 368 y Ft(End)h(a)f(T)398 377 +y(E)423 368 y(Xdra)o(w)g(dra)o(wing)h(started)e(with)i(a)f +Fq(\\btexdraw)f Ft(command.)20 b(The)15 b(resulting)g(T)1793 +377 y(E)1819 368 y(Xdra)o(w)240 430 y(dra)o(wing)i(is)h(placed)h(in)f +(a)f(b)q(o)o(x)g(with)h(heigh)o(t)f(equal)h(to)f(the)h(heigh)o(t)f(of)g +(the)h(dra)o(wing)f(and)g(width)240 492 y(equal)f(to)f(the)g(width)h +(of)e(the)i(dra)o(wing.)j(The)d(depth)g(of)e(the)i(b)q(o)o(x)f(is)h +(zero.)0 577 y Fq(\\begin{texdraw})240 639 y Ft(Start)h(a)h(T)425 +649 y(E)450 639 y(Xdra)o(w)f(dra)o(wing.)28 b(The)18 +b(dra)o(wing)g(is)h(terminated)f(with)g(an)g Fq(\\end{texdraw})e +Ft(com-)240 702 y(mand.)k(This)c(command)f(is)h(for)e(use)i(with)f(LaT) +1068 711 y(E)1094 702 y(X.)0 786 y Fq(\\end{texdraw})240 +849 y Ft(End)k(a)g(T)407 858 y(E)433 849 y(Xdra)o(w)f(dra)o(wing)h +(started)f(with)i(a)e Fq(\\begin{texdraw})f Ft(command.)32 +b(The)19 b(resulting)240 911 y(T)265 921 y(E)291 911 +y(Xdra)o(w)12 b(dra)o(wing)h(is)g(placed)i(in)f(a)e(b)q(o)o(x)h(with)h +(heigh)o(t)f(equal)h(to)e(the)i(heigh)o(t)f(of)g(the)g(dra)o(wing)g +(and)240 973 y(width)i(equal)f(to)g(the)g(width)h(of)e(the)h(dra)o +(wing.)20 b(The)14 b(depth)h(of)e(the)i(b)q(o)o(x)e(is)i(zero.)k(This)c +(command)240 1036 y(is)h(for)e(use)i(with)f(LaT)613 1045 +y(E)639 1036 y(X.)0 1120 y Fq(\\centertexdraw{)e(...)i(})240 +1183 y Ft(Cen)o(ter)e(a)g(T)447 1192 y(E)472 1183 y(Xdra)o(w)g(b)q(o)o +(x)g(horizon)o(tally)l(.)20 b(The)14 b(argumen)o(t)e(con)o(tains)i(T) +1460 1192 y(E)1485 1183 y(Xdra)o(w)f(commands.)19 b(The)240 +1245 y(resulting)j(b)q(o)o(x)g(has)f(the)g(horizon)o(tal)h(size)g +Fq(\\hsize)f Ft(and)g(heigh)o(t)h(equal)g(to)f(the)g(heigh)o(t)h(of)f +(the)240 1307 y(dra)o(wing.)0 1392 y Fq(\\everytexdraw{)13 +b(...)i(})240 1454 y Ft(Sp)q(ecify)d(T)418 1464 y(E)444 +1454 y(Xdra)o(w)d(commands)i(to)e(b)q(e)j(executed)f(at)f(the)g(b)q +(eginning)j(of)d(ev)o(ery)g(T)1612 1464 y(E)1638 1454 +y(Xdra)o(w)f(dra)o(wing.)0 1674 y Fs(2.2)33 b(Command)14 +b(syn)n(tax)62 1811 y Ft(Generally)g(T)291 1821 y(E)317 +1811 y(Xdra)o(w)f(commands)f(that)h(tak)o(e)f(a)h(single)i(argumen)o(t) +d(need)i(a)f(terminating)g(blank)h(or)f(newline)0 1873 +y(after)19 b(the)h(argumen)o(t.)32 b(Argumen)o(ts)19 +b(that)g(are)g(self-delimiti)q(ng,)k(suc)o(h)d(as)f(co)q(ordinates)h +(within)h(paren)o(theses)0 1935 y(and)14 b(text)f(within)i(braces,)f +(do)g(not)f(need)i(the)e(terminating)i(blank.)20 b(Ho)o(w)o(ev)o(er,)12 +b(ev)o(en)j(when)f(not)f(needed)i(b)o(y)f(the)0 1998 +y(de\014ning)21 b(syn)o(tax)d(of)h(the)g(command,)g(blanks)h(follo)o +(wing)g(command)f(argumen)o(ts)f(are)h(allo)o(w)o(ed)g(and)g(ignored)0 +2060 y(within)d(the)g(T)245 2070 y(E)270 2060 y(Xdra)o(w)f(en)o +(vironmen)o(t.)62 2197 y(On)j(en)o(tering)f(the)g(T)422 +2207 y(E)447 2197 y(Xdra)o(w)f(en)o(vironmen)o(t,)h(T)896 +2207 y(E)922 2197 y(X)f(is)i(in)f(in)o(ternal)h(v)o(ertical)f(mo)q(de)g +(\(v)o(ertical)g(mo)q(de)g(inside)0 2259 y(a)k Fq(\\vbox)p +Ft(\).)36 b(In)22 b(this)f(mo)q(de,)i(spaces)e(can)g(b)q(e)h(placed)g +(freely)g(b)q(et)o(w)o(een)f(commands.)37 b(Ho)o(w)o(ev)o(er,)22 +b(an)o(y)e(other)0 2321 y(extraneous)13 b(input)i(that)e(generates)h +(output)f(that)g(is)i(not)e(part)g(of)g(the)h(T)1260 +2331 y(E)1286 2321 y(Xdra)o(w)f(en)o(vironmen)o(t)h(is)g(disallo)o(w)o +(ed.)62 2458 y(Blank)i(lines)g(are)e(in)o(terpreted)i(as)e(paragraph)g +(breaks,)g(equiv)m(alen)o(t)i(to)e(a)h Fq(\\par)f Ft(command.)19 +b(The)c(T)1793 2468 y(E)1819 2458 y(Xdra)o(w)0 2521 y(macro)j +Fq(\\centertexdraw)f Ft(is)i(de\014ned)h(with)g(the)e +Fq(\\long)h Ft(attribute)f(to)g(allo)o(w)h Fq(\\par)g +Ft(commands)f(and)h(blank)0 2583 y(lines)e(to)f(b)q(e)g(in)o(tersp)q +(ersed)h(b)q(et)o(w)o(een)f(T)678 2593 y(E)704 2583 y(Xdra)o(w)f +(commands.)22 b(The)16 b Fq(\\btexdraw)f Ft(and)h Fq(\\etexdraw)e +Ft(commands)0 2645 y(also)h(allo)o(w)h Fq(\\par)e Ft(command)h(and)h +(blank)g(lines)g(to)f(b)q(e)h(included.)p eop +%%Page: 6 8 +6 7 bop 0 -83 a Ft(6)1745 b(T)1793 -73 y(E)1819 -83 y(Xdra)o(w)0 +158 y Fs(2.3)33 b(T)156 172 y(E)191 158 y(Xdra)n(w)15 +b(co)r(ordinates)62 297 y Ft(The)j(T)183 306 y(E)209 +297 y(Xdra)o(w)f(co)q(ordinate)h(system)g(has)f(increasing)i +Fo(x)i Ft(to)c(the)h(righ)o(t)g(and)g(increasing)h Fo(y)j +Ft(up)o(w)o(ard.)27 b(The)0 359 y(co)q(ordinates)14 b(\(without)g(the)g +(unit\))h(are)e(\015oating)h(p)q(oin)o(t)h(n)o(um)o(b)q(ers.)k(In)o +(teger)14 b(v)m(alues)h(can)g(b)q(e)f(written)g(without)g(a)0 +421 y(decimal)f(p)q(oin)o(t.)20 b(The)12 b(size)g(of)g(the)g(dra)o +(wing)g(is)g(determined)h(b)o(y)f(the)g(maxim)o(um)g(excursions)g(of)g +(the)g(co)q(ordinates)0 483 y(sp)q(eci\014ed)17 b(in)f(T)261 +493 y(E)287 483 y(Xdra)o(w)e(commands.)840 853 y @beginspecial +0 @hoffset 0 @voffset @setspecial +%%BeginDocument: texdraw.ps1 +50 dict begin +/mv {stroke moveto} def +/lv {lineto} def +/st {currentpoint stroke moveto} def +/sl {st setlinewidth} def +/sd {st 0 setdash} def +/sg {st setgray} def +/bs {gsave} def /es {stroke grestore} def +/fl {gsave setgray fill grestore + currentpoint newpath moveto} def +/fp {gsave setgray fill grestore st} def +/cv {curveto} def +/cr {gsave currentpoint newpath 3 -1 roll 0 360 arc + stroke grestore} def +/fc {gsave setgray currentpoint newpath + 3 -1 roll 0 360 arc fill grestore} def +/ar {gsave currentpoint newpath 5 2 roll arc stroke grestore} def +/el {gsave /svm matrix currentmatrix def + currentpoint translate scale newpath 0 0 1 0 360 arc + svm setmatrix stroke grestore} def +/fe {gsave setgray currentpoint translate scale newpath + 0 0 1 0 360 arc fill grestore} def +/av {/hhwid exch 2 div def /hlen exch def + /ah exch def /tipy exch def /tipx exch def + currentpoint /taily exch def /tailx exch def + /dx tipx tailx sub def /dy tipy taily sub def + /alen dx dx mul dy dy mul add sqrt def + /blen alen hlen sub def + gsave tailx taily translate dy dx atan rotate + (V) ah ne {blen 0 gt {blen 0 lineto} if} {alen 0 lineto} ifelse + stroke blen hhwid neg moveto alen 0 lineto blen hhwid lineto + (T) ah eq {closepath} if + (W) ah eq {gsave 1 setgray fill grestore closepath} if + (F) ah eq {fill} {stroke} ifelse + grestore tipx tipy moveto} def +0.24 0.24 scale +1 setlinecap 1 setlinejoin +3 setlinewidth [] 0 setdash +0 0 moveto +0 240 (T) 48 24 av +0 0 mv +240 0 (T) 48 24 av +stroke end showpage +%%EndDocument + @endspecial 828 574 a Fo(y)1110 863 y(x)62 991 y Ft(Consider)i(the)f +(follo)o(wing)h(example)g(of)f(T)777 1001 y(E)803 991 +y(Xdra)o(w)f(commands)h(to)g(dra)o(w)f(a)h(simple)i(\014gure.)120 +1119 y Fq(\\centertexdraw{)168 1171 y(\\drawdim)22 b(cm)48 +b(\\linewd)23 b(0.02)168 1223 y(\\move\(2)g(2\))g(\\lvec\(3)g(3\))h +(\\lvec\(2)f(4\))g(\\lvec\(1)g(3\))h(\\lvec\(2)f(2\))168 +1275 y(\\textref)f(h:C)i(v:C)f(\\htext\(2)g(3\){$\\sum)g(\\rho_n$})120 +1327 y(})856 1635 y @beginspecial -28 @hoffset -57 @voffset +@setspecial +%%BeginDocument: texdraw.ps2 +50 dict begin +/mv {stroke moveto} def +/lv {lineto} def +/st {currentpoint stroke moveto} def +/sl {st setlinewidth} def +/sd {st 0 setdash} def +/sg {st setgray} def +/bs {gsave} def /es {stroke grestore} def +/fl {gsave setgray fill grestore + currentpoint newpath moveto} def +/fp {gsave setgray fill grestore st} def +/cv {curveto} def +/cr {gsave currentpoint newpath 3 -1 roll 0 360 arc + stroke grestore} def +/fc {gsave setgray currentpoint newpath + 3 -1 roll 0 360 arc fill grestore} def +/ar {gsave currentpoint newpath 5 2 roll arc stroke grestore} def +/el {gsave /svm matrix currentmatrix def + currentpoint translate scale newpath 0 0 1 0 360 arc + svm setmatrix stroke grestore} def +/fe {gsave setgray currentpoint translate scale newpath + 0 0 1 0 360 arc fill grestore} def +/av {/hhwid exch 2 div def /hlen exch def + /ah exch def /tipy exch def /tipx exch def + currentpoint /taily exch def /tailx exch def + /dx tipx tailx sub def /dy tipy taily sub def + /alen dx dx mul dy dy mul add sqrt def + /blen alen hlen sub def + gsave tailx taily translate dy dx atan rotate + (V) ah ne {blen 0 gt {blen 0 lineto} if} {alen 0 lineto} ifelse + stroke blen hhwid neg moveto alen 0 lineto blen hhwid lineto + (T) ah eq {closepath} if + (W) ah eq {gsave 1 setgray fill grestore closepath} if + (F) ah eq {fill} {stroke} ifelse + grestore tipx tipy moveto} def +0.24 0.24 scale +1 setlinecap 1 setlinejoin +3 setlinewidth [] 0 setdash +0 0 moveto +2 sl +236 236 mv +354 354 lv +236 472 lv +118 354 lv +236 236 lv +stroke end showpage +%%EndDocument + @endspecial 926 1496 a Fm(P)977 1529 y Fl(\032)1001 +1536 y Fk(n)62 1773 y Ft(This)17 b(dra)o(wing)f(uses)g(units)h(of)e +(cen)o(timetres,)h(with)h(a)e(line)j(width)e(of)g(0.02)f(cm.)22 +b(The)16 b Fo(x)j Ft(co)q(ordinate)d(ranges)0 1836 y(b)q(et)o(w)o(een)f +(1)g(and)g(3)g(while)h(the)f Fo(y)k Ft(co)q(ordinate)c(ranges)g(b)q(et) +o(w)o(een)g(2)g(and)g(4.)k(When)d(included)h(in)o(to)e(a)g(do)q(cumen)o +(t,)0 1898 y(the)20 b(size)g(of)g(the)f(dra)o(wing)h(is)g(2)f(cm)h(b)o +(y)g(2)f(cm.)34 b(The)19 b(dra)o(wing)h(is)g(placed)h(in)g(a)e(T)1471 +1908 y(E)1496 1898 y(X)h(b)q(o)o(x,)h(with)f(the)f(lo)o(w)o(er)0 +1960 y(lefthand)f(corner)g(of)f(the)h(b)q(o)o(x)f(corresp)q(onding)i +(to)e(T)924 1970 y(E)949 1960 y(Xdra)o(w)g(co)q(ordinate)h +Fq(\(1)d(2\))j Ft(and)f(the)h(upp)q(er)h(righ)o(thand)0 +2022 y(corner)d(at)f Fq(\(3)g(4\))p Ft(.)21 b(The)16 +b Fq(\\centertexdraw)e Ft(command)i(cen)o(ters)g(the)f(dra)o(wing)h +(horizon)o(tally)l(.)23 b(The)16 b Fq(\\textref)0 2085 +y Ft(command)d(con)o(trols)f(the)h(cen)o(tering)h(of)e(the)h(text.)19 +b(The)13 b(text)f(in)i(this)f(dra)o(wing)g(is)g(cen)o(tered)g(\(b)q +(oth)g(horizon)o(tally)0 2147 y(and)i(v)o(ertically\))h(at)f(the)g(co)q +(ordinate)h Fq(\(2)f(3\))p Ft(.)0 2382 y Fs(2.4)33 b(Co)r(ordinate)15 +b(sp)r(eci\014cation)62 2521 y Ft(Co)q(ordinates)h(are)f(sp)q +(eci\014ed)j(within)f(paren)o(theses,)e(with)h(blanks)g(\(but)g(no)f +(comma\))g(b)q(et)o(w)o(een)h(the)f(v)m(alues.)0 2583 +y(Leading)h(blanks)f(and)g(trailing)h(blanks)g(are)e(p)q(ermitted)i +(within)g(the)f(paren)o(theses.)20 b(The)15 b(co)q(ordinates)g(refer)g +(to)0 2645 y(units,)20 b(whic)o(h)f(are)f(sp)q(eci\014ed)j(b)o(y)d(the) +h Fq(\\drawdim)e Ft(command.)30 b(The)19 b(default)g(is)g(inc)o(hes,)h +(but)f(an)o(y)f(v)m(alid)i(T)1890 2655 y(E)1916 2645 +y(X)p eop +%%Page: 7 9 +7 8 bop 0 -83 a Ft(Chapter)15 b(2:)k(Using)d(the)g(T)464 +-73 y(E)489 -83 y(Xdra)o(w)f(Commands)1068 b(7)0 158 +y(dimension)16 b(unit)g(can)e(b)q(e)i(sp)q(eci\014ed.)21 +b(Sym)o(b)q(olic)16 b(sp)q(eci\014cation)h(of)d(sa)o(v)o(ed)g(co)q +(ordinate)h(v)m(alues)h(will)g(b)q(e)f(discused)0 221 +y(later)g(\(see)g(Section)h(3.3)f([Sa)o(ving)g(p)q(ositions],)g(page)g +(18\).)0 378 y Fq(\\drawdim)f Fo(dim)240 440 y Ft(Set)j(the)h(units)g +(to)e Fo(dim)p Ft(.)27 b(The)18 b(argumen)o(t)e Fo(dim)i +Ft(can)g(b)q(e)g(an)o(y)f(v)m(alid)i(T)1458 450 y(E)1483 +440 y(X)f(dimension)h(unit.)27 b(The)240 502 y(units)16 +b(are)g(used)g(to)f(in)o(terpret)h(co)q(ordinate)g(v)m(alues.)23 +b(Examples)16 b(of)f(v)m(alid)j(units:)j Fq(cm)p Ft(,)15 +b Fq(mm)p Ft(,)h Fq(in)p Ft(,)f Fq(pt)p Ft(,)240 564 +y(and)g Fq(bp)p Ft(.)62 712 y(Examples)h(of)f(co)q(ordinate)g(and)h +(scaling)g(sp)q(eci\014cations:)0 859 y Fq(\\drawdim)e({cm})h +(\\move\(2)f(2\))240 921 y Ft(Set)j(the)g(units)h(to)e(cen)o(timetres,) +i(mo)o(v)o(e)e(to)g(a)h(p)q(osition)h(2)f(cm)g(to)f(the)h(righ)o(t)g +(and)g(2)g(cm)g(up)h(from)240 983 y(the)d(origin)h(of)f(the)g(dra)o +(wing)g(co)q(ordinate)h(system.)0 1065 y Fq(\\drawdim)e(bp)240 +1128 y Ft(Set)h(the)h(units)f(to)g(big)h(p)q(oin)o(ts.)0 +1210 y Fq(\\lvec)e(\()h(2.2)g(+5.5\))g(\\lvec\(2.3)f(-2\))g +(\\lvec\(2.2)g(5.4)h(\))240 1272 y Ft(Examples)h(of)e(acceptable)j(co)q +(ordinate)e(sp)q(eci\014cations.)0 1487 y Fs(2.5)33 b(Line)16 +b(v)n(ectors)62 1624 y Ft(T)87 1634 y(E)113 1624 y(Xdra)o(w)10 +b(implemen)o(ts)h(mo)o(v)o(es,)g(line)h(v)o(ectors)e(and)g(arro)o(w)g +(v)o(ectors.)17 b(There)11 b(are)f(b)q(oth)h(absolute)g(and)f(relativ)o +(e)0 1686 y(motion)i(v)o(ersions)h(of)e(these)i(v)o(ector)e(commands.) +19 b(T)883 1696 y(E)909 1686 y(Xdra)o(w)11 b(main)o(tains)i(a)f(curren) +o(t)g(p)q(osition.)20 b(Lines)13 b(are)f(dra)o(wn)0 1748 +y(from)i(the)h(curren)o(t)f(p)q(osition)i(to)e(a)h(new)g(co)q +(ordinate,)f(with)i(the)e(new)h(co)q(ordinate)g(b)q(ecoming)h(the)f +(new)g(curren)o(t)0 1811 y(p)q(osition.)23 b(An)16 b(explicit)i(mo)o(v) +o(e)d(can)h(b)q(e)g(used)g(to)g(establish)g(a)g(new)g(curren)o(t)g(p)q +(osition.)22 b(The)16 b(p)q(osition)h Fq(\(0)e(0\))g +Ft(is)0 1873 y(used)h(if)f(there)h(is)f(no)h(mo)o(v)o(e)e(to)h(an)g +(initial)i(curren)o(t)e(p)q(osition.)62 2010 y(The)f +Fq(\\move)f Ft(and)g Fq(\\rmove)g Ft(commands)g(establish)i(a)e(new)g +(curren)o(t)h(p)q(osition)g(without)f(dra)o(wing)h(a)f(line.)21 +b(The)0 2072 y Fq(\\lvec)14 b Ft(and)i Fq(\\rlvec)e Ft(commands)h(dra)o +(w)f(a)h(line)i(from)e(the)g(curren)o(t)g(p)q(osition)h(to)f(a)f(new)i +(p)q(osition,)g(whic)o(h)g(then)0 2135 y(b)q(ecomes)c(the)f(new)g +(curren)o(t)g(p)q(osition.)19 b(The)12 b Fq(\\avec)e +Ft(and)h Fq(\\ravec)f Ft(commands)h(dra)o(w)f(a)h(line)i(with)e(an)g +(arro)o(whead)0 2197 y(from)j(the)h(curren)o(t)g(p)q(osition)h(to)e(a)h +(new)g(co)q(ordinate,)g(whic)o(h)h(then)f(b)q(ecomes)h(the)f(new)g +(curren)o(t)g(p)q(osition.)21 b(The)0 2259 y(tip)16 b(of)f(the)h(arro)o +(w)e(is)i(at)e(the)i(new)g(curren)o(t)f(p)q(osition.)22 +b(The)15 b(direction)i(of)e(the)h(arro)o(w)e(follo)o(ws)h(the)h +(direction)g(of)0 2321 y(the)d(line.)21 b(Since)15 b(this)e(direction)i +(is)f(unde\014ned)h(for)d(zero)h(length)h(v)o(ectors,)f(these)g(are)g +(not)g(allo)o(w)o(ed)g(for)g Fq(\\avec)f Ft(or)0 2384 +y Fq(\\ravec)p Ft(.)23 b(Zero)16 b(length)h(arro)o(w)e(v)o(ectors)h +(will)i(generate)f(a)f(P)o(ostScript)g(prin)o(t)h(error:)22 +b Fq(undefinedresult)p Ft(.)g(F)l(or)0 2446 y(an)o(y)14 +b(non-zero)h(length)h(v)o(ector,)d(the)i(full)h(size)g(arro)o(whead)e +(is)h(dra)o(wn,)f(ev)o(en)h(if)g(that)f(arro)o(whead)g(is)h(longer)g +(than)0 2508 y(the)g(line)i(length.)62 2645 y(The)f(absolute)f(motion)g +(v)o(ersions)h(of)e(these)i(commands)f(sp)q(ecify)h(the)g(co)q +(ordinate)f(of)g(the)g(\014nal)h(p)q(osition.)p eop +%%Page: 8 10 +8 9 bop 0 -83 a Ft(8)1745 b(T)1793 -73 y(E)1819 -83 y(Xdra)o(w)0 +158 y Fq(\\move)14 b(\()p Fo(x)19 b(y)t Fq(\))240 221 +y Ft(Mo)o(v)o(e)14 b(to)h(co)q(ordinate)g Fq(\()p Fo(x)k(y)t +Fq(\))p Ft(.)g(The)d(new)f(curren)o(t)g(p)q(osition)h(is)g +Fq(\()p Fo(x)i(y)t Fq(\))p Ft(.)0 307 y Fq(\\lvec)c(\()p +Fo(x)19 b(y)t Fq(\))240 370 y Ft(Dra)o(w)c(a)h(line)i(from)d(the)h +(curren)o(t)g(p)q(osition)h(to)f(co)q(ordinate)h Fq(\()p +Fo(x)h(y)t Fq(\))p Ft(.)k(The)16 b(new)h(curren)o(t)f(p)q(osition)240 +432 y(is)g Fq(\()p Fo(x)i(y)t Fq(\))p Ft(.)0 519 y Fq(\\avec)c(\()p +Fo(x)19 b(y)t Fq(\))240 581 y Ft(Dra)o(w)c(a)i(line)h(with)f(an)g(arro) +o(whead)e(from)h(the)h(curren)o(t)g(p)q(osition)g(to)f +Fq(\()p Fo(x)i(y)t Fq(\))p Ft(.)24 b(The)17 b(new)g(curren)o(t)240 +643 y(p)q(osition)f(is)g Fq(\()p Fo(x)i(y)t Fq(\))p Ft(.)i(The)15 +b(arro)o(whead)f(is)i(aligned)h(with)e(the)g(line,)i(with)e(the)h(tip)f +(at)g Fq(\()p Fo(x)j(y)t Fq(\))p Ft(.)62 792 y(The)k(relativ)o(e)h +(motion)f(v)o(ersions)g(of)f(these)i(commands)e(in)o(terpret)i(the)f +(co)q(ordinates)g(as)g(displacemen)o(ts)0 855 y(relativ)o(e)f(to)e(the) +i(curren)o(t)f(p)q(osition.)36 b(Giv)o(en)20 b(the)h(displacemen)o(ts)g +Fq(\()p Fo(dx)e(dy)t Fq(\))h Ft(as)g(a)f(parameter,)i(eac)o(h)f(of)g +(the)0 917 y(relativ)o(e)c(motion)f(commands)g(mo)o(v)o(es)f +Fo(dx)19 b Ft(units)d(in)g(the)f Fo(x)j Ft(direction)f(and)e +Fo(dy)k Ft(units)d(in)g(the)g Fo(y)j Ft(direction.)0 +1078 y Fq(\\rmove)14 b(\()p Fo(dx)19 b(dy)t Fq(\))240 +1140 y Ft(Mo)o(v)o(e)h(from)g(the)g(curren)o(t)h(p)q(osition,)i +Fo(dx)h Ft(units)d(in)g(the)g Fo(x)j Ft(direction)e(and)f +Fo(dy)j Ft(units)e(in)f(the)g Fo(y)240 1203 y Ft(direction.)g(The)16 +b(\014nal)g(p)q(osition)g(b)q(ecomes)g(the)f(new)g(curren)o(t)g(p)q +(osition.)0 1289 y Fq(\\rlvec)f(\()p Fo(dx)19 b(dy)t +Fq(\))240 1352 y Ft(Dra)o(w)14 b(a)h(line)i(from)e(the)g(curren)o(t)h +(p)q(osition,)g Fo(dx)j Ft(units)d(in)g(the)f Fo(x)k +Ft(direction)d(and)g Fo(dy)k Ft(units)c(in)g(the)240 +1414 y Fo(y)j Ft(direction.)i(The)16 b(\014nal)g(p)q(osition)g(b)q +(ecomes)g(the)f(new)g(curren)o(t)h(p)q(osition.)0 1501 +y Fq(\\ravec)e(\()p Fo(dx)19 b(dy)t Fq(\))240 1563 y +Ft(Dra)o(w)c(a)h(line)i(with)f(an)f(arro)o(whead)f(from)h(the)g(curren) +o(t)h(p)q(osition,)g Fo(dx)j Ft(units)d(in)g(the)f Fo(x)k +Ft(direction)240 1625 y(and)e Fo(y)j Ft(units)d(in)g(the)f +Fo(y)k Ft(direction.)28 b(The)18 b(\014nal)g(p)q(osition)g(b)q(ecomes)g +(the)g(new)f(curren)o(t)g(p)q(osition.)240 1687 y(The)e(arro)o(whead)g +(is)g(aligned)i(with)e(the)h(line,)g(with)g(the)f(tip)h(at)e(the)i(new) +f(curren)o(t)g(p)q(osition.)62 1837 y(Lines)e(can)e(b)q(e)h(customized) +g(with)g(commands)f(to)f(c)o(hange)h(the)h(line)g(width,)h(line)g +(pattern)d(and)i(line)g(gra)o(y)f(lev)o(el)0 1899 y(rendition.)21 +b(In)16 b(addition,)g(commands)f(for)g(c)o(hanging)g(the)g(t)o(yp)q(e)h +(and)f(size)h(of)f(the)g(arro)o(whead)g(are)f(a)o(v)m(ailable.)0 +2060 y Fq(\\linewd)g Fo(width)240 2123 y Ft(Set)19 b(the)g(line)h +(width)g(to)e Fo(width)h Ft(units.)31 b(Initially)22 +b Fo(width)d Ft(is)g(0.01)f(inc)o(hes)i(\(corresp)q(onding)f(to)f(3)240 +2185 y(pixels)f(at)d(300)h(pixels)h(to)f(the)g(inc)o(h\).)0 +2271 y Fq(\\lpatt)f(\()p Fo(pattern)p Fq(\))240 2334 +y Ft(Set)21 b(lines)h(to)e(ha)o(v)o(e)h(the)f(pattern)h +Fq(\()p Fo(pattern)p Fq(\))p Ft(.)36 b(A)20 b(pattern)h(is)g(a)f +(sequence)i(of)f(on/o\013)e(lengths)240 2396 y(separated)e(b)o(y)g +(blanks)g(and)h(enclosed)g(in)g(paren)o(theses.)25 b(The)17 +b(lengths)h(alternately)g(sp)q(ecify)g(the)240 2458 y(length)g(of)f(a)h +(dash)f(and)h(the)g(length)g(of)f(a)g(gap)h(b)q(et)o(w)o(een)f(dashes.) +28 b(Eac)o(h)17 b(length)h(is)g(in)o(terpreted)240 2521 +y(using)c(the)g(curren)o(t)f(scaling)i(and)e(dra)o(wing)h(units.)20 +b(The)13 b(pattern)g(is)h(used)g(cyclically)l(.)23 b(The)13 +b(empt)o(y)240 2583 y(pattern)k(signi\014es)i(a)e(solid)i(line.)28 +b(The)18 b(initial)i(line)f(pattern)e(is)h(a)f(solid)i(line,)g(corresp) +q(onding)g(to)240 2645 y(the)c(empt)o(y)g(pattern)g Fq(\\lpatt)f(\(\))p +Ft(.)p eop +%%Page: 9 11 +9 10 bop 0 -83 a Ft(Chapter)15 b(2:)k(Using)d(the)g(T)464 +-73 y(E)489 -83 y(Xdra)o(w)f(Commands)1068 b(9)0 158 +y Fq(\\setgray)14 b Fo(lev)o(el)240 221 y Ft(Set)19 b(the)g(gra)o(y)f +(lev)o(el)i(of)e(lines.)32 b(Gra)o(y)18 b(lev)o(els)i(are)f(real)g(v)m +(alues)h(from)e(0)g(\(blac)o(k\))h(through)g(in)o(ter-)240 +283 y(mediate)e(v)m(alues)g(\(gra)o(y\))e(to)h(1)g(\(white\).)23 +b(The)17 b(initial)i(gra)o(y)c(lev)o(el)j(is)f(0)f(corresp)q(onding)h +(to)f(blac)o(k.)0 477 y Fq(\\arrowheadtype)d(t:)p Fo(t)o(yp)q(e)240 +539 y Ft(Set)k(the)h(arro)o(whead)e(t)o(yp)q(e)h(to)g +Fo(t)o(yp)q(e)p Ft(,)g(where)h Fo(t)o(yp)q(e)i Ft(is)d(one)h(of)f +Fq(F)p Ft(,)g Fq(T)p Ft(,)g Fq(W)p Ft(,)g Fq(V)p Ft(,)g(or)g +Fq(H)p Ft(.)26 b(There)17 b(are)g(t)o(w)o(o)240 601 y(kinds)i(of)e +(arro)o(wheads.)27 b(The)18 b(\014rst)f(kind)i(is)f(a)f(triangle.)29 +b(There)18 b(are)f(3)g(v)m(arian)o(ts:)25 b(t)o(yp)q(e)18 +b Fq(T)g Ft(is)g(an)240 664 y(empt)o(y)e(triangle,)h(t)o(yp)q(e)g +Fq(F)f Ft(is)h(a)f(\014lled)j(triangle)e(\(using)g(the)g(curren)o(t)f +(gra)o(y)f(lev)o(el)j(for)e(lines\),)i(t)o(yp)q(e)240 +726 y Fq(W)e Ft(is)g(a)g(triangle)h(\014lled)h(with)e(white.)23 +b(The)17 b(second)f(kind)h(of)f(arro)o(whead)f(is)i(an)f(op)q(en)g +(ended)i(V)l(ee.)240 788 y(There)c(are)f(2)h(v)m(arian)o(ts:)19 +b(t)o(yp)q(e)13 b Fq(V)h Ft(has)f(the)h(stem)f(con)o(tin)o(ue)i(to)e +(the)g(tip,)i(t)o(yp)q(e)e Fq(H)h Ft(has)f(the)h(stem)f(stop)240 +851 y(at)i(the)g(base)g(of)g(the)g(arro)o(whead.)k(The)c(initial)j +(arro)o(whead)c(t)o(yp)q(e)h(is)h Fq(T)p Ft(.)0 982 y +Fq(\\arrowheadsize)d(l:)p Fo(length)j Fq(w:)p Fo(width)240 +1045 y Ft(Set)j(the)h(arro)o(whead)e(size)i(to)f(b)q(e)h +Fo(length)g Ft(units)g(long)g(and)f Fo(width)h Ft(units)g(wide.)33 +b(The)20 b(width)f(is)240 1107 y(measured)d(across)e(the)i(\\base")f +(of)g(the)h(arro)o(whead.)j(The)d(initial)i(arro)o(whead)c(size)j(has)e +(a)g Fo(length)240 1169 y Ft(of)g(0.16)f(inc)o(hes)i(and)f(a)g +Fo(width)h Ft(of)f(0.08)f(inc)o(hes.)62 1363 y(Note)h(that)f(the)i +(lines)g(whic)o(h)g(outline)h(the)e(arro)o(whead)f(will)j(b)q(e)f(dra)o +(wn)e(with)i(the)f(same)g(line)i(pattern)d(used)0 1426 +y(for)j(the)h(stem.)28 b(Normally)l(,)19 b(arro)o(w)e(v)o(ectors)g(are) +h(dra)o(wn)f(with)h(the)g(line)i(pattern)e(set)f(for)h(a)f(solid)i +(line.)30 b(Note)0 1488 y(that)14 b(the)g(\014ll)i(lev)o(el)g(used)f +(for)f(the)g Fq(F)g Ft(v)m(arian)o(t)h(of)f(the)g(arro)o(whead)g(uses)g +(the)h(same)f(gra)o(y)f(lev)o(el)j(as)e(used)h(for)f(lines.)0 +1550 y(The)k(di\013erence)g(b)q(et)o(w)o(een)g(the)f +Fq(T)h Ft(v)m(arian)o(t)f(and)h(the)f Fq(W)g Ft(v)m(arian)o(t)h(only)g +(sho)o(ws)e(up)i(if)g(the)f(arro)o(whead)g(is)h(placed)0 +1612 y(o)o(v)o(er)c(non-white)i(areas)f(of)g(the)g(dra)o(wing.)20 +b(The)15 b Fq(W)g Ft(v)m(arian)o(t)g(obliterates)h(the)f(area)g(under)h +(the)f(arro)o(whead.)62 1772 y(Examples)h(of)f(line)i(parameter)d(and)h +(arro)o(whead)g(settings)g(are)g(sho)o(wn)g(in)h(the)f(follo)o(wing)h +(co)q(de.)120 1921 y Fq(\\centertexdraw{)168 1972 y(\\drawdim)22 +b(in)168 2024 y(\\linewd)h(0.03)g(\\setgray)g(0.6)g(\\arrowheadtype)f +(t:F)i(\\avec\(0)e(0.5\))168 2076 y(\\linewd)h(0.01)g(\\setgray)g(0)71 +b(\\arrowheadtype)22 b(t:V)i(\\avec\(0.5)e(0.5\))168 +2128 y(\\linewd)h(0.015)g(\\lpatt\(0.067)f(0.1\))h(\\lvec)h(\(1)f(0\)) +168 2180 y(\\linewd)g(0.02)g(\\lpatt\(\))g(\\arrowheadtype)f(t:T)h +(\\avec\(1.5)g(0.5\))168 2232 y(\\arrowheadtype)f(t:H)h(\\avec\(2.0)g +(0.5\))168 2284 y(\\setgray)f(0.4)i(\\arrowheadtype)e(t:W)h +(\\avec\(3.0)g(0\))120 2336 y(})525 2645 y @beginspecial +0 @hoffset 0 @voffset @setspecial +%%BeginDocument: texdraw.ps3 +50 dict begin +/mv {stroke moveto} def +/lv {lineto} def +/st {currentpoint stroke moveto} def +/sl {st setlinewidth} def +/sd {st 0 setdash} def +/sg {st setgray} def +/bs {gsave} def /es {stroke grestore} def +/fl {gsave setgray fill grestore + currentpoint newpath moveto} def +/fp {gsave setgray fill grestore st} def +/cv {curveto} def +/cr {gsave currentpoint newpath 3 -1 roll 0 360 arc + stroke grestore} def +/fc {gsave setgray currentpoint newpath + 3 -1 roll 0 360 arc fill grestore} def +/ar {gsave currentpoint newpath 5 2 roll arc stroke grestore} def +/el {gsave /svm matrix currentmatrix def + currentpoint translate scale newpath 0 0 1 0 360 arc + svm setmatrix stroke grestore} def +/fe {gsave setgray currentpoint translate scale newpath + 0 0 1 0 360 arc fill grestore} def +/av {/hhwid exch 2 div def /hlen exch def + /ah exch def /tipy exch def /tipx exch def + currentpoint /taily exch def /tailx exch def + /dx tipx tailx sub def /dy tipy taily sub def + /alen dx dx mul dy dy mul add sqrt def + /blen alen hlen sub def + gsave tailx taily translate dy dx atan rotate + (V) ah ne {blen 0 gt {blen 0 lineto} if} {alen 0 lineto} ifelse + stroke blen hhwid neg moveto alen 0 lineto blen hhwid lineto + (T) ah eq {closepath} if + (W) ah eq {gsave 1 setgray fill grestore closepath} if + (F) ah eq {fill} {stroke} ifelse + grestore tipx tipy moveto} def +0.24 0.24 scale +1 setlinecap 1 setlinejoin +3 setlinewidth [] 0 setdash +0 0 moveto +9 sl +0.6 sg +150 150 (F) 48 24 av +3 sl +0 sg +300 150 (V) 48 24 av +4 sl +[20 30] sd +450 0 lv +6 sl +[] sd +600 150 (T) 48 24 av +750 150 (H) 48 24 av +0.4 sg +900 0 (W) 48 24 av +stroke end showpage +%%EndDocument + @endspecial 558 2523 a(t:F)753 2544 y(t:V)999 2523 y(t:T)1203 +2544 y(t:H)1293 2645 y(t:W)p eop +%%Page: 10 12 +10 11 bop 0 -83 a Ft(10)1722 b(T)1793 -73 y(E)1819 -83 +y(Xdra)o(w)0 158 y Fs(2.6)33 b(T)156 172 y(E)191 158 +y(X)15 b(text)62 296 y Ft(T)l(ext)i(ma)o(y)g(b)q(e)g(sup)q(erimp)q +(osed)i(on)e(the)h(dra)o(wing.)25 b(The)17 b(text)g(argumen)o(t)f(of)h +(the)g Fq(\\htext)g Ft(command)f(is)i(in)0 358 y(horizon)o(tal)12 +b(mo)q(de.)20 b(This)12 b(text)g(can)g(b)q(e)h(ordinary)g(text,)e(math) +h(mo)q(de)h(expressions,)g(or)e(ev)o(en)i(more)f(complicated)0 +420 y(b)q(o)o(xes)17 b(consisting)h(of)e(tables)i(and)f(the)g(lik)o(e.) +26 b(The)17 b(resulting)h(T)1111 430 y(E)1137 420 y(X)f(text)f(is)i +(placed)g(in)f(a)g(b)q(o)o(x.)25 b(The)17 b(reference)0 +483 y(p)q(oin)o(t)11 b(of)g(the)f(b)q(o)o(x)h(can)g(b)q(e)g(c)o(hosen)h +(to)e(b)q(e)h(one)g(of)f(nine)i(lo)q(cations:)19 b(horizon)o(tally)11 +b(left,)h(cen)o(ter)f(or)f(righ)o(t;)i(v)o(ertically)0 +545 y(top,)i(cen)o(ter)i(or)e(b)q(ottom.)19 b(The)d Fq(\\htext)e +Ft(command)h(tak)o(es)g(one)g(of)g(t)o(w)o(o)f(forms.)0 +709 y Fq(\\htext)g(\()p Fo(x)k(y)t Fq(\){)p Fo(text)q +Fq(})0 771 y(\\htext)c({)p Fo(text)q Fq(})240 833 y Ft(The)19 +b(\014rst)g(form)f(of)h(this)g(command)g(places)h(the)f(T)1150 +843 y(E)1176 833 y(X)g(text)f Fo(text)i Ft(horizon)o(tally)g(with)f +(the)g(text)240 896 y(reference)12 b(p)q(oin)o(t)f(at)g(the)g(co)q +(ordinate)h Fq(\()p Fo(x)18 b(y)t Fq(\))p Ft(.)g(The)11 +b(new)h(curren)o(t)f(p)q(osition)h(is)g Fq(\()p Fo(x)18 +b(y)t Fq(\))p Ft(.)g(The)11 b(second)240 958 y(form)f(of)f(this)i +(command)f(places)i(the)e(T)903 968 y(E)928 958 y(X)h(text)f +Fo(text)g Ft(horizon)o(tally)i(with)e(the)h(text)e(reference)i(p)q(oin) +o(t)240 1020 y(at)k(the)g(curren)o(t)g(p)q(osition.)21 +b(The)15 b(text)g(reference)h(p)q(oin)o(t)g(is)f(set)g(with)h(the)f +Fq(\\textref)f Ft(command.)62 1171 y(T)l(ext)j(can)g(b)q(e)h(placed)g +(v)o(ertically)g(using)g(the)f Fq(\\vtext)f Ft(command.)25 +b(The)17 b(text)f(argumen)o(t)g(is)i(in)g(horizon)o(tal)0 +1233 y(mo)q(de.)j(The)16 b(T)260 1243 y(E)286 1233 y(X)f(text)g(is)i +(placed)f(in)h(a)e(b)q(o)o(x)h(and)f(then)h(rotated)f(coun)o(terclo)q +(c)o(kwise.)22 b(The)16 b(reference)g(p)q(oin)o(t)g(is)0 +1295 y(the)e(p)q(oin)o(t)g(in)g(the)g(b)q(o)o(x,)g Fo(b)q(efore)i +Ft(rotation)d(of)g(the)h(text.)19 b(Not)13 b(all)h(P)o(ostScript)g +(prin)o(ter)g(driv)o(ers)g(supp)q(ort)f(v)o(ertical)0 +1358 y(text.)0 1521 y Fq(\\vtext)h(\(x)h(y\){)p Fo(text)q +Fq(})0 1584 y(\\vtext)f({)p Fo(text)q Fq(})240 1646 y +Ft(The)23 b(\014rst)f(form)g(of)h(this)g(command)f(places)i(the)f(T) +1180 1656 y(E)1205 1646 y(X)g(text)f Fo(text)i Ft(v)o(ertically)g(with) +f(the)f(text)240 1708 y(reference)g(p)q(oin)o(t)g(at)f(the)g(co)q +(ordinate)h Fq(\()p Fo(x)c(y)t Fq(\))p Ft(.)38 b(The)22 +b(new)g(curren)o(t)f(p)q(osition)h(is)g Fq(\()p Fo(x)d(y)t +Fq(\))p Ft(.)38 b(The)240 1770 y(second)13 b(form)e(of)g(this)i +(command)f(places)h(the)f(T)1057 1780 y(E)1082 1770 y(X)g(text)g +Fo(text)g Ft(v)o(ertically)h(with)g(the)f(text)f(reference)240 +1833 y(p)q(oin)o(t)17 b(at)f(the)h(curren)o(t)f(p)q(osition.)26 +b(In)17 b(b)q(oth)g(cases,)f(the)h(T)1252 1842 y(E)1278 +1833 y(X)f(text)h(is)g(placed)h(in)f(a)f(b)q(o)o(x)h(and)g(the)240 +1895 y(b)q(o)o(x)d(is)g(rotated)f(coun)o(terclo)q(c)o(kwise)j(b)o(y)d +(90)h(degrees)g(ab)q(out)g(the)g(text)g(reference)g(p)q(oin)o(t.)20 +b(The)14 b(text)240 1957 y(reference)i(p)q(oin)o(t)g(is)f(set)g(with)h +(the)f Fq(\\textref)f Ft(command.)62 2108 y(T)l(ext)i(can)g(b)q(e)g +(placed)h(at)e(an)h(arbitrary)f(angle)h(using)g(the)g +Fq(\\rtext)f Ft(command.)21 b(The)16 b(text)f(argumen)o(t)g(is)h(in)0 +2170 y(horizon)o(tal)d(mo)q(de.)19 b(The)12 b(T)465 2180 +y(E)491 2170 y(X)g(text)g(is)g(placed)i(in)f(a)f(b)q(o)o(x)g(and)g +(then)h(rotated)e(coun)o(terclo)q(c)o(kwise.)20 b(The)12 +b(reference)0 2232 y(p)q(oin)o(t)i(is)g(the)g(p)q(oin)o(t)g(in)g(the)g +(b)q(o)o(x,)f Fo(b)q(efore)k Ft(rotation)c(of)g(the)g(text.)19 +b(Not)13 b(all)i(P)o(ostScript)e(prin)o(ter)h(driv)o(ers)g(supp)q(ort)0 +2295 y(rotated)g(text.)0 2458 y Fq(\\rtext)g(td:)p Fo(angle)k +Fq(\(x)d(y\){)p Fo(text)q Fq(})0 2521 y(\\rtext)f(td:)p +Fo(angle)k Fq({)p Fo(text)q Fq(})240 2583 y Ft(The)i(\014rst)f(form)f +(of)h(this)h(command)f(places)h(the)g(T)1153 2593 y(E)1178 +2583 y(X)g(text)f Fo(text)g Ft(at)g(an)g(angle)h(with)g(the)f(text)240 +2645 y(reference)j(p)q(oin)o(t)g(at)f(the)g(co)q(ordinate)h +Fq(\()p Fo(x)c(y)t Fq(\))p Ft(.)38 b(The)22 b(new)g(curren)o(t)f(p)q +(osition)h(is)g Fq(\()p Fo(x)d(y)t Fq(\))p Ft(.)38 b(The)p +eop +%%Page: 11 13 +11 12 bop 0 -83 a Ft(Chapter)15 b(2:)k(Using)d(the)g(T)464 +-73 y(E)489 -83 y(Xdra)o(w)f(Commands)1046 b(11)240 158 +y(second)23 b(form)e(of)h(this)h(command)f(places)i(the)e(T)1129 +168 y(E)1155 158 y(X)g(text)g Fo(text)h Ft(at)e(an)i(angle)f(with)h +(the)f(text)240 221 y(reference)f(p)q(oin)o(t)g(at)f(the)h(curren)o(t)f +(p)q(osition.)37 b(In)21 b(b)q(oth)f(cases,)i(the)e(T)1491 +230 y(E)1517 221 y(X)g(text)g(is)h(placed)h(in)f(a)240 +283 y(b)q(o)o(x)15 b(and)g(the)g(b)q(o)o(x)f(is)i(rotated)e(coun)o +(terclo)q(c)o(kwise)i(b)o(y)e Fo(angle)k Ft(degrees)d(ab)q(out)g(the)g +(text)f(reference)240 345 y(p)q(oin)o(t.)20 b(The)c(text)e(reference)i +(p)q(oin)o(t)g(is)g(set)f(with)g(the)h Fq(\\textref)e +Ft(command.)62 525 y(The)19 b(reference)g(p)q(oin)o(t)f(for)g +(subsequen)o(t)g(T)807 535 y(E)833 525 y(X)g(text)g(in)h(a)f +Fq(\\htext)p Ft(,)f Fq(\\vtext)h Ft(or)f Fq(\\rtext)h +Ft(command)g(is)g(set)0 587 y(with)e(the)f Fq(\\textref)f +Ft(command.)0 795 y Fq(\\textref)g(h:)p Fo(h-ref)24 b +Fq(v:)p Fo(v-ref)240 857 y Ft(Set)17 b(the)h(text)e(reference)i(p)q +(oin)o(t)g(for)f(subsequen)o(t)h(text)e(commands.)26 +b(The)18 b(horizon)o(tal)f(reference)240 920 y(p)q(oin)o(t)f +Fo(h-ref)25 b Ft(is)16 b(one)f(of)h Fq(L)p Ft(,)f Fq(C)g +Ft(or)g Fq(R)g Ft(\(left,)h(cen)o(ter)f(or)g(righ)o(t\).)21 +b(The)16 b(v)o(ertical)g(reference)g(p)q(oin)o(t)g Fo(v-ref)240 +982 y Ft(is)k(one)f(of)g Fq(T)p Ft(,)h Fq(C)f Ft(or)f +Fq(B)h Ft(\(top,)h(cen)o(ter)f(or)f(b)q(ottom\).)31 b(F)l(or)19 +b(rotated)f(text,)h(the)h(reference)g(p)q(oin)o(t)f(is)240 +1044 y(determined)f(b)q(efore)f(rotation.)24 b(The)17 +b(initial)i(text)d(reference)i(p)q(oin)o(t)f(corresp)q(onds)g(to)f +Fq(\\textref)240 1106 y(h:L)f(v:B)p Ft(.)92 2029 y @beginspecial +220 @hoffset 96 @voffset @setspecial +%%BeginDocument: texdraw.ps4 +50 dict begin +/mv {stroke moveto} def +/lv {lineto} def +/st {currentpoint stroke moveto} def +/sl {st setlinewidth} def +/sd {st 0 setdash} def +/sg {st setgray} def +/bs {gsave} def /es {stroke grestore} def +/fl {gsave setgray fill grestore + currentpoint newpath moveto} def +/fp {gsave setgray fill grestore st} def +/cv {curveto} def +/cr {gsave currentpoint newpath 3 -1 roll 0 360 arc + stroke grestore} def +/fc {gsave setgray currentpoint newpath + 3 -1 roll 0 360 arc fill grestore} def +/ar {gsave currentpoint newpath 5 2 roll arc stroke grestore} def +/el {gsave /svm matrix currentmatrix def + currentpoint translate scale newpath 0 0 1 0 360 arc + svm setmatrix stroke grestore} def +/fe {gsave setgray currentpoint translate scale newpath + 0 0 1 0 360 arc fill grestore} def +/av {/hhwid exch 2 div def /hlen exch def + /ah exch def /tipy exch def /tipx exch def + currentpoint /taily exch def /tailx exch def + /dx tipx tailx sub def /dy tipy taily sub def + /alen dx dx mul dy dy mul add sqrt def + /blen alen hlen sub def + gsave tailx taily translate dy dx atan rotate + (V) ah ne {blen 0 gt {blen 0 lineto} if} {alen 0 lineto} ifelse + stroke blen hhwid neg moveto alen 0 lineto blen hhwid lineto + (T) ah eq {closepath} if + (W) ah eq {gsave 1 setgray fill grestore closepath} if + (F) ah eq {fill} {stroke} ifelse + grestore tipx tipy moveto} def +0.24 0.24 scale +1 setlinecap 1 setlinejoin +3 setlinewidth [] 0 setdash +0 0 moveto +bs +bs +-450 0 mv +6 0 fc +es +bs +-720 0 mv +6 0 fc +es +bs +-180 0 mv +6 0 fc +es +bs +-450 90 mv +6 0 fc +es +bs +-450 -90 mv +6 0 fc +es +bs +-720 -90 mv +6 0 fc +es +-720 -90 mv +-720 90 lv +bs +6 0 fc +es +-180 90 lv +bs +6 0 fc +es +-180 -90 lv +bs +6 0 fc +es +-720 -90 lv +es +bs +bs +450 0 mv +6 0 fc +es +bs +259 -191 mv +6 0 fc +es +bs +641 191 mv +6 0 fc +es +bs +386 64 mv +6 0 fc +es +bs +514 -64 mv +6 0 fc +es +bs +323 -255 mv +6 0 fc +es +323 -255 mv +195 -127 lv +bs +6 0 fc +es +577 255 lv +bs +6 0 fc +es +705 127 lv +bs +6 0 fc +es +323 -255 lv +es +stroke end showpage +%%EndDocument + @endspecial 400 1612 a(Horizon)o(tal)g(T)l(ext)473 1676 +y Fq(h:C)24 b(v:C)96 1644 y(h:L)f(v:C)588 b(h:R)23 b(v:C)473 +1522 y(h:C)h(v:T)473 1766 y(h:C)g(v:B)96 1734 y(h:L)f(v:B)96 +1554 y(h:L)g(v:T)588 b(h:R)23 b(v:T)851 1734 y(h:R)g(v:B)1444 +1617 y + gsave currentpoint currentpoint translate 45 neg rotate neg exch neg +exch translate + 1444 1617 a -133 w Ft(Rotated)15 b(T)l(ext)1444 +1617 y + currentpoint grestore moveto + 1444 1617 a 1470 1643 a + gsave currentpoint currentpoint translate 45 neg rotate neg exch neg +exch translate + 1470 1643 a 1386 1671 +a Fq(h:C)24 b(v:C)1470 1643 y + currentpoint grestore moveto + 1470 1643 a 1249 1838 a + gsave currentpoint currentpoint translate 45 neg rotate neg exch neg +exch translate + +1249 1838 a 1082 1852 a Fq(h:L)f(v:C)1249 1838 y + currentpoint grestore moveto + 1249 +1838 a 1665 1422 a + gsave currentpoint currentpoint translate 45 neg rotate neg exch neg +exch translate + 1665 1422 a 14 x Fq(h:R)g(v:C)1665 +1422 y + currentpoint grestore moveto + 1665 1422 a 1380 1553 a + gsave currentpoint currentpoint translate 45 neg rotate neg exch neg +exch translate + 1380 1553 a -84 w Fq(h:C)h(v:T)1380 +1553 y + currentpoint grestore moveto + 1380 1553 a 1534 1707 a + gsave currentpoint currentpoint translate 45 neg rotate neg exch neg +exch translate + 1534 1707 a 1450 1735 +a Fq(h:C)g(v:B)1534 1707 y + currentpoint grestore moveto + 1534 1707 a 1313 1902 a + gsave currentpoint currentpoint translate 45 neg rotate neg exch neg +exch translate + 1313 +1902 a 1146 1916 a Fq(h:L)f(v:B)1313 1902 y + currentpoint grestore moveto + 1313 1902 +a 1185 1774 a + gsave currentpoint currentpoint translate 45 neg rotate neg exch neg +exch translate + 1185 1774 a 1018 1788 a Fq(h:L)g(v:T)1185 +1774 y + currentpoint grestore moveto + 1185 1774 a 1601 1358 a + gsave currentpoint currentpoint translate 45 neg rotate neg exch neg +exch translate + 1601 1358 a 14 x Fq(h:R)g(v:T)1601 +1358 y + currentpoint grestore moveto + 1601 1358 a 1729 1486 a + gsave currentpoint currentpoint translate 45 neg rotate neg exch neg +exch translate + 1729 1486 a 14 x Fq(h:R)g(v:B)1729 +1486 y + currentpoint grestore moveto + 1729 1486 a 62 2182 a Ft(The)18 b(fon)o(t)f(used)h(to)f(render)h +(the)g(text)f(is)h(determined)h(as)e(for)g(an)o(y)g(other)g(T)1392 +2191 y(E)1418 2182 y(X)h(text.)26 b(Normally)18 b(the)g(fon)o(t)0 +2244 y(used)h(outside)f(of)g(T)346 2254 y(E)371 2244 +y(Xdra)o(w)g(is)g(in)h(e\013ect.)28 b(If)18 b(desired,)i(other)d(fon)o +(ts)g(can)h(b)q(e)h(sp)q(eci\014ed)h(as)e(part)f(of)h(the)g(text.)0 +2306 y(An)o(y)d(fon)o(t)g(c)o(hanges)g(within)h(a)f(T)563 +2316 y(E)589 2306 y(Xdra)o(w)f(text)h(command)g(remain)h(lo)q(cal)g(to) +f(that)f(command.)62 2458 y(Only)g(the)f(co)q(ordinate)h(of)e(the)h +(text)f(reference)i(p)q(oin)o(t)f(in)h(a)f Fq(\\htext)p +Ft(,)f Fq(\\vtext)g Ft(or)g Fq(\\rtext)g Ft(command)h(is)g(used)0 +2521 y(in)k(calculating)g(the)f(size)h(of)e(the)h(dra)o(wing.)21 +b(This)c(means)f(that)f(text)g(itself)i(can)f(spill)h(outside)g(of)e +(the)h(dra)o(wing)0 2583 y(area)i(determined)i(b)o(y)f(T)435 +2593 y(E)461 2583 y(Xdra)o(w.)30 b(The)19 b(area)f(of)g(the)h(dra)o +(wing)g(can)g(b)q(e)g(increased)h(to)f(include)i(the)e(text)f(b)o(y)0 +2645 y(issuing)e(additional)h Fq(\\move)e Ft(commands.)p +eop +%%Page: 12 14 +12 13 bop 0 -83 a Ft(12)1722 b(T)1793 -73 y(E)1819 -83 +y(Xdra)o(w)120 158 y Fq(\\centertexdraw{)430 210 y(\\avec\(-0.75)23 +b(-0.25\))g(\\textref)f(h:R)i(v:C)f(\\htext{H-text})168 +262 y(\\move\(0)g(0\))g(\\avec\(-0.75)g(+0.25\))g(\\textref)f(h:R)i +(v:B)f(\\htext{H-text})168 314 y(\\move\(0)g(0\))g(\\avec\(0)g(+0.5\)) +143 b(\\textref)22 b(h:L)i(v:T)f(\\vtext{V-text})168 +366 y(\\move\(0)g(0\))g(\\avec\(+0.75)g(+0.25\))g(\\textref)f(h:L)i +(v:B)f(\\htext{H-text})168 418 y(\\move\(0)g(0\))g(\\avec\(+0.75)g +(-0.25\))g(\\textref)f(h:L)i(v:C)f(\\htext{H-text})120 +470 y(})62 598 y Ft(Sup)q(erimp)q(osed)f(on)d(this)g(example)h(is)g(a)f +(shaded)h(region)f(sho)o(wing)g(the)h(limits)g(of)f(the)g(T)1642 +608 y(E)1668 598 y(Xdra)o(w)f(b)q(o)o(x)h(as)0 660 y(determined)e(b)o +(y)e(the)g(co)q(ordinates)g(sp)q(eci\014ed.)629 1097 +y @beginspecial 83 @hoffset 22 @voffset @setspecial +%%BeginDocument: texdraw.ps5 +50 dict begin +/mv {stroke moveto} def +/lv {lineto} def +/st {currentpoint stroke moveto} def +/sl {st setlinewidth} def +/sd {st 0 setdash} def +/sg {st setgray} def +/bs {gsave} def /es {stroke grestore} def +/fl {gsave setgray fill grestore + currentpoint newpath moveto} def +/fp {gsave setgray fill grestore st} def +/cv {curveto} def +/cr {gsave currentpoint newpath 3 -1 roll 0 360 arc + stroke grestore} def +/fc {gsave setgray currentpoint newpath + 3 -1 roll 0 360 arc fill grestore} def +/ar {gsave currentpoint newpath 5 2 roll arc stroke grestore} def +/el {gsave /svm matrix currentmatrix def + currentpoint translate scale newpath 0 0 1 0 360 arc + svm setmatrix stroke grestore} def +/fe {gsave setgray currentpoint translate scale newpath + 0 0 1 0 360 arc fill grestore} def +/av {/hhwid exch 2 div def /hlen exch def + /ah exch def /tipy exch def /tipx exch def + currentpoint /taily exch def /tailx exch def + /dx tipx tailx sub def /dy tipy taily sub def + /alen dx dx mul dy dy mul add sqrt def + /blen alen hlen sub def + gsave tailx taily translate dy dx atan rotate + (V) ah ne {blen 0 gt {blen 0 lineto} if} {alen 0 lineto} ifelse + stroke blen hhwid neg moveto alen 0 lineto blen hhwid lineto + (T) ah eq {closepath} if + (W) ah eq {gsave 1 setgray fill grestore closepath} if + (F) ah eq {fill} {stroke} ifelse + grestore tipx tipy moveto} def +0.24 0.24 scale +1 setlinecap 1 setlinejoin +3 setlinewidth [] 0 setdash +0 0 moveto +-225 -75 mv +-225 150 lv +225 150 lv +225 -75 lv +0.9 fl +0 0 mv +-225 -75 (T) 48 24 av +0 0 mv +-225 75 (T) 48 24 av +0 0 mv +0 150 (T) 48 24 av +0 0 mv +225 75 (T) 48 24 av +0 0 mv +225 -75 (T) 48 24 av +stroke end showpage +%%EndDocument + @endspecial -9 w(H-text)620 932 y(H-text)974 857 y + gsave currentpoint currentpoint translate 90 neg rotate neg exch neg +exch translate + 974 +857 a 31 x Ft(V-text)974 857 y + currentpoint grestore moveto + 974 857 a 1199 932 a Ft(H-text)1199 +1097 y(H-text)0 1335 y Fs(2.7)33 b(Circles,)15 b(ellipses)h(and)f(arcs) +62 1473 y Ft(T)87 1483 y(E)113 1473 y(Xdra)o(w)h(supplies)i(commands)e +(to)g(generate)g(circles,)i(ellipses)g(and)f(arcs.)23 +b(There)16 b(are)g(t)o(w)o(o)f(forms)h(of)g(the)0 1536 +y(circle)h(command.)22 b(The)16 b Fq(\\lcir)f Ft(command)g(dra)o(ws)g +(a)g(circle)j(of)d(giv)o(en)h(radius.)22 b(The)16 b Fq(\\fcir)f +Ft(command)h(dra)o(ws)0 1598 y(a)h(\014lled)i(circle.)28 +b(In)18 b(the)f(latter)g(case,)h(the)f(circle)i(is)f(\014lled)h(b)o(y)e +(a)g(sp)q(eci\014ed)j(gra)o(y)c(lev)o(el.)27 b(F)l(or)17 +b(the)g(\014lled)j(circle,)0 1660 y(the)d(line)i(de\014ning)f(the)f +(circumference)i(of)d(the)h(circle)h(is)g(not)e(dra)o(wn.)25 +b(Note)16 b(that)h(the)g(gra)o(y)e(lev)o(el)k(area)d(\014lled)0 +1723 y(in)h(b)o(y)g(the)f Fq(\\fcir)g Ft(command)g(is)h(opaque,)g(ev)o +(en)g(if)g(the)f(\014ll)i(is)f(c)o(hosen)g(to)f(b)q(e)h(white.)24 +b(F)l(or)16 b(either)h(form)f(of)g(the)0 1785 y(circle)h(command,)e +(the)g(dra)o(wing)g(size)h(is)g(increased)g(if)g(necessary)f(to)g(con)o +(tain)g(the)g(circle.)62 1923 y(The)c Fq(\\lellip)f Ft(command)h +(generates)f(an)h(ellipse)i(sp)q(eci\014ed)g(b)o(y)e(the)g(radius)g(of) +f(the)h(ellipse)i(in)f(the)f Fo(x)j Ft(direction)0 1986 +y(and)k(the)g(radius)h(of)e(the)h(ellipse)i(in)f(the)f +Fo(y)k Ft(direction.)29 b(The)19 b(ellipse)h(is)e(symmetrical)h(ab)q +(out)f(horizon)o(tal)g(and)0 2048 y(v)o(ertical)g(lines)h(dra)o(wn)f +(through)f(the)h(curren)o(t)f(p)q(oin)o(t.)28 b(The)18 +b Fq(\\fellip)e Ft(command)i(dra)o(ws)f(a)g(\014lled)j(ellipse.)29 +b(In)0 2110 y(the)16 b(latter)g(case,)g(the)g(ellipse)j(is)e(\014lled)h +(b)o(y)e(a)g(sp)q(eci\014ed)i(gra)o(y)d(lev)o(el.)24 +b(F)l(or)16 b(the)g(\014lled)i(ellipse,)g(the)f(line)g(de\014ning)0 +2172 y(the)e(b)q(oundary)g(of)f(the)h(ellipse)i(is)e(not)g(dra)o(wn.)k +(F)l(or)14 b(either)h(form)f(of)g(the)h(ellipse)i(command,)e(the)f(dra) +o(wing)h(size)0 2235 y(is)h(increased)g(if)g(necessary)f(to)g(con)o +(tain)g(the)g(ellipse.)62 2373 y(The)g Fq(\\larc)f Ft(command)h +(generates)g(a)f(coun)o(terclo)q(c)o(kwise)i(arc)f(sp)q(eci\014ed)i(b)o +(y)e(a)f(start)g(angle)h(in)h(degrees)f(and)0 2435 y(an)h(end)g(angle)h +(in)g(degrees.)22 b(The)16 b(cen)o(ter)g(of)f(the)h(arc)g(is)g(the)g +(curren)o(t)g(p)q(osition.)23 b(Only)17 b(the)f(arc)g(is)g(dra)o(wn,)f +(not)0 2498 y(the)j(line)i(joining)g(the)e(cen)o(ter)h(to)e(the)i(b)q +(eginning)h(of)e(the)h(arc.)29 b(Note)18 b(that)f(the)i +Fq(\\larc)e Ft(command)i(do)q(es)f(not)0 2560 y(a\013ect)c(the)i(size)g +(of)f(the)g(dra)o(wing.)p eop +%%Page: 13 15 +13 14 bop 0 -83 a Ft(Chapter)15 b(2:)k(Using)d(the)g(T)464 +-73 y(E)489 -83 y(Xdra)o(w)f(Commands)1046 b(13)0 158 +y Fq(\\lcir)14 b(r:)p Fo(radius)240 221 y Ft(Dra)o(w)j(a)h(circle)j +(with)d(cen)o(ter)h(at)f(the)h(curren)o(t)f(p)q(osition.)31 +b(The)19 b(radius)g(is)g(sp)q(eci\014ed)h(b)o(y)f Fo(radius)p +Ft(.)240 283 y(This)d(command)g(dra)o(ws)f(a)g(line)j(along)e(the)f +(circumference)j(of)d(the)h(circle.)23 b(The)16 b(dra)o(wing)g(size)g +(is)240 345 y(increased)g(if)g(necessary)f(to)g(con)o(tain)g(the)h +(circle.)0 498 y Fq(\\fcir)e(f:)p Fo(lev)o(el)19 b Fq(r:)p +Fo(radius)240 560 y Ft(Dra)o(w)h(a)g(\014lled)j(circle)g(with)e(cen)o +(ter)g(at)f(the)h(curren)o(t)g(p)q(osition.)38 b(The)21 +b(radius)h(is)f(sp)q(eci\014ed)i(b)o(y)240 622 y Fo(radius)p +Ft(.)28 b(The)18 b(circle)i(is)e(pain)o(ted)h(with)f(the)g(gra)o(y)e +(lev)o(el)j(sp)q(eci\014ed)h(b)o(y)e Fo(lev)o(el)p Ft(.)29 +b(A)18 b(gra)o(y)f(lev)o(el)i(of)e(1)240 684 y(corresp)q(onds)g(to)f +(white,)h(with)g(decreasing)g(v)m(alues)h(getting)e(dark)o(er.)23 +b(The)17 b(lev)o(el)h(0)e(is)h(full)h(blac)o(k.)240 747 +y(This)k(command)f(do)q(es)h(not)f(dra)o(w)f(a)i(line)h(along)e(the)g +(circumference.)40 b(The)22 b(dra)o(wing)f(size)h(is)240 +809 y(increased)16 b(if)g(necessary)f(to)g(con)o(tain)g(the)h(circle.)0 +961 y Fq(\\lellip)e(rx:)p Fo(x-radius)k Fq(ry:)p Fo(y-radius)240 +1024 y Ft(Dra)o(w)i(an)g(ellipse)j(with)e(cen)o(ter)g(at)f(the)h +(curren)o(t)g(p)q(osition.)37 b(The)21 b(radius)g(in)h(the)f +Fo(x)j Ft(direction)240 1086 y(is)19 b(sp)q(eci\014ed)i(b)o(y)e +Fo(x-radius)p Ft(.)32 b(The)19 b(radius)g(in)h(the)f +Fo(y)k Ft(direction)d(is)f(sp)q(eci\014ed)i(b)o(y)e Fo(y-radius)p +Ft(.)32 b(The)240 1148 y(dra)o(wing)15 b(size)h(is)g(increased)g(if)g +(necessary)f(to)g(con)o(tain)g(the)h(ellipse.)0 1300 +y Fq(\\fellip)e(f:)p Fo(lev)o(el)k Fq(rx:)p Fo(x-radius)g +Fq(ry:)p Fo(y-radius)240 1363 y Ft(Dra)o(w)c(a)h(\014lled)i(ellipse)h +(with)e(cen)o(ter)f(at)g(the)g(curren)o(t)h(p)q(osition.)21 +b(The)16 b(radius)g(in)g(the)f Fo(x)k Ft(direction)240 +1425 y(is)g(sp)q(eci\014ed)i(b)o(y)e Fo(x-radius)p Ft(.)32 +b(The)19 b(radius)g(in)h(the)f Fo(y)k Ft(direction)d(is)f(sp)q +(eci\014ed)i(b)o(y)e Fo(y-radius)p Ft(.)32 b(The)240 +1487 y(ellipse)16 b(is)e(pain)o(ted)h(with)f(the)g(gra)o(y)e(lev)o(el)j +(sp)q(eci\014ed)h(b)o(y)e Fo(lev)o(el)p Ft(.)20 b(A)14 +b(gra)o(y)f(lev)o(el)i(of)e(1)h(corresp)q(onds)g(to)240 +1550 y(white,)i(with)g(decreasing)h(v)m(alues)g(getting)e(dark)o(er.)21 +b(The)16 b(lev)o(el)h(0)f(is)g(full)h(blac)o(k.)22 b(This)16 +b(command)240 1612 y(do)q(es)h(not)f(dra)o(w)g(a)g(line)i(along)e(the)h +(b)q(oundary)g(of)f(the)g(ellipse.)26 b(The)17 b(dra)o(wing)f(size)i +(is)f(increased)240 1674 y(if)f(necessary)f(to)g(con)o(tain)g(the)g +(ellipse.)0 1826 y Fq(\\larc)f(r:)p Fo(radius)k Fq(sd:)p +Fo(start-angle)f Fq(ed:)p Fo(end-angle)240 1889 y Ft(Dra)o(w)9 +b(a)h(coun)o(terclo)q(c)o(kwise)h(arc.)18 b(The)11 b(cen)o(ter)f(of)g +(the)g(arc)g(is)h(at)e(the)i(curren)o(t)f(p)q(osition.)19 +b(The)10 b(radius)240 1951 y(is)j(sp)q(eci\014ed)i(b)o(y)e +Fo(radius)p Ft(.)19 b(The)13 b(start)f(and)h(end)g(angles)h(\(in)f +(degrees\))f(are)h(sp)q(eci\014ed)i(b)o(y)d Fo(start-angle)240 +2013 y Ft(and)j Fo(end-angle)p Ft(.)22 b(This)15 b(command)g(do)q(es)h +(not)f(a\013ect)f(the)i(limits)g(\(size\))g(of)e(the)i(dra)o(wing.)62 +2228 y(As)f(an)h(example,)f(the)h(follo)o(wing)f(commands)g(dra)o(w)g +(a)g(\014lled)i(circle,)f(and)g(sup)q(erimp)q(ose)g(an)g(arc.)120 +2387 y Fq(\\centertexdraw{)168 2439 y(\\linewd)23 b(0.02)168 +2491 y(\\fcir)g(f:0.7)g(r:1)168 2543 y(\\larc)g(r:1)g(sd:45)h(ed:135) +168 2595 y(\\lvec)f(\(+0.707)g(+0.707\))g(\\move)g(\(0)g(0\))h(\\lvec)f +(\(-0.707)g(+0.707\))120 2647 y(})p eop +%%Page: 14 16 +14 15 bop 0 -83 a Ft(14)1722 b(T)1793 -73 y(E)1819 -83 +y(Xdra)o(w)675 575 y @beginspecial 72 @hoffset 72 @voffset +@setspecial +%%BeginDocument: texdraw.ps6 +50 dict begin +/mv {stroke moveto} def +/lv {lineto} def +/st {currentpoint stroke moveto} def +/sl {st setlinewidth} def +/sd {st 0 setdash} def +/sg {st setgray} def +/bs {gsave} def /es {stroke grestore} def +/fl {gsave setgray fill grestore + currentpoint newpath moveto} def +/fp {gsave setgray fill grestore st} def +/cv {curveto} def +/cr {gsave currentpoint newpath 3 -1 roll 0 360 arc + stroke grestore} def +/fc {gsave setgray currentpoint newpath + 3 -1 roll 0 360 arc fill grestore} def +/ar {gsave currentpoint newpath 5 2 roll arc stroke grestore} def +/el {gsave /svm matrix currentmatrix def + currentpoint translate scale newpath 0 0 1 0 360 arc + svm setmatrix stroke grestore} def +/fe {gsave setgray currentpoint translate scale newpath + 0 0 1 0 360 arc fill grestore} def +/av {/hhwid exch 2 div def /hlen exch def + /ah exch def /tipy exch def /tipx exch def + currentpoint /taily exch def /tailx exch def + /dx tipx tailx sub def /dy tipy taily sub def + /alen dx dx mul dy dy mul add sqrt def + /blen alen hlen sub def + gsave tailx taily translate dy dx atan rotate + (V) ah ne {blen 0 gt {blen 0 lineto} if} {alen 0 lineto} ifelse + stroke blen hhwid neg moveto alen 0 lineto blen hhwid lineto + (T) ah eq {closepath} if + (W) ah eq {gsave 1 setgray fill grestore closepath} if + (F) ah eq {fill} {stroke} ifelse + grestore tipx tipy moveto} def +0.24 0.24 scale +1 setlinecap 1 setlinejoin +3 setlinewidth [] 0 setdash +0 0 moveto +6 sl +300 0.7 fc +300 45 135 ar +212 212 lv +0 0 mv +-212 212 lv +stroke end showpage +%%EndDocument + @endspecial 62 712 a(Note)18 b(that)g(for)g(the)g(arc)h(command,)f +(the)h(resulting)g(\014gure)g(can)g(spill)h(outside)f(of)f(the)h(T)1644 +722 y(E)1669 712 y(Xdra)o(w)f(b)q(o)o(x)g(as)0 774 y(determined)13 +b(b)o(y)e(the)h(maxim)o(um)f(excursions)i(of)e(the)g(co)q(ordinates.)19 +b(Extra)11 b(mo)o(v)o(es)g(can)g(b)q(e)i(used)f(to)f(comp)q(ensate)0 +837 y(for)k(the)g(size)h(of)f(the)g(arc.)0 1049 y Fs(2.8)33 +b(Bezier)15 b(curv)n(es)62 1186 y Ft(Bezier)i(curv)o(es)e(in)i(T)419 +1196 y(E)444 1186 y(Xdra)o(w)e(use)h(4)f(reference)h(co)q(ordinates,)g +(t)o(w)o(o)e(as)h(the)h(end)g(p)q(oin)o(ts)g(and)f(t)o(w)o(o)g(others)g +(to)0 1248 y(con)o(trol)g(the)g(shap)q(e)h(of)f(the)g(curv)o(e.)21 +b(Let)15 b(the)g(4)g(p)q(oin)o(ts)h(b)q(e)g Fq(\()p Fo(x0)i(y0)t +Fq(\))p Ft(,)c Fq(\()p Fo(x1)19 b(y1)t Fq(\))p Ft(,)14 +b Fq(\()p Fo(x2)k(y2)t Fq(\))d Ft(and)g Fq(\()p Fo(x3)j(y3)t +Fq(\))p Ft(.)i(The)0 1310 y(curv)o(e)f(starts)e(out)i(tangen)o(t)f(to)g +(the)g(line)j(joining)f(the)e(\014rst)h(t)o(w)o(o)e(p)q(oin)o(ts)i(and) +g(ends)g(up)h(tangen)o(t)d(to)h(the)h(line)0 1373 y(joining)14 +b(the)g(second)g(t)o(w)o(o)e(p)q(oin)o(ts.)20 b(The)13 +b(con)o(trol)g(p)q(oin)o(ts)h(\\pull")h(at)e(the)g(curv)o(e)h(to)e(con) +o(trol)i(the)f(curv)m(ature.)20 b(The)0 1435 y(amoun)o(t)14 +b(of)h(pull)i(increases)f(with)g(the)f(distance)h(of)f(the)g(con)o +(trol)g(p)q(oin)o(t)h(from)e(the)h(endp)q(oin)o(t.)62 +1572 y(As)h(the)h(parameter)e Fl(\026)i Ft(v)m(aries)g(from)e(0)h(to)g +(1,)f(the)i(co)q(ordinates)f(of)g(the)g(Bezier)i(curv)o(e)e(are)g(giv)o +(en)h(b)o(y)f(a)g(pair)0 1634 y(of)f(parametric)g(cubic)i(equations,) +398 1715 y Fo(x)p Ft(\()p Fl(\026)p Ft(\))12 b(=)h(\(1)d +Fr(\000)g Fl(\026)p Ft(\))686 1696 y Fn(3)705 1715 y +Fo(x0)g Ft(+)g(3)p Fl(\026)p Ft(\(1)g Fr(\000)g Fl(\026)p +Ft(\))998 1696 y Fn(2)1017 1715 y Fo(x1)g Ft(+)g(3)p +Fl(\026)1169 1696 y Fn(2)1188 1715 y Ft(\(1)g Fr(\000)g +Fl(\026)p Ft(\))p Fo(x2)g Ft(+)g Fl(\026)1458 1696 y +Fn(3)1477 1715 y Fo(x3)398 1790 y(y)p Ft(\()p Fl(\026)p +Ft(\))i(=)h(\(1)d Fr(\000)g Fl(\026)p Ft(\))686 1771 +y Fn(3)705 1790 y Fo(y0)g Ft(+)g(3)p Fl(\026)p Ft(\(1)g +Fr(\000)g Fl(\026)p Ft(\))998 1771 y Fn(2)1017 1790 y +Fo(y1)g Ft(+)g(3)p Fl(\026)1169 1771 y Fn(2)1188 1790 +y Ft(\(1)g Fr(\000)g Fl(\026)p Ft(\))p Fo(y2)g Ft(+)g +Fl(\026)1458 1771 y Fn(3)1477 1790 y Fo(y3)15 b Fl(:)0 +1938 y Fq(\\clvec)f(\()p Fo(x1)19 b(y1)t Fq(\)\()p Fo(x2)e(y2)t +Fq(\)\()p Fo(x3)h(y3)t Fq(\))240 2001 y Ft(Dra)o(w)9 +b(a)i(Bezier)h(curv)o(e)f(from)f(the)g(curren)o(t)h(p)q(osition)h(to)e +(the)g(co)q(ordinate)i Fq(\()p Fo(x3)18 b(y3)t Fq(\))10 +b Ft(whic)o(h)h(b)q(ecomes)240 2063 y(the)h(new)g(curren)o(t)g(p)q +(osition.)20 b(The)13 b(co)q(ordinates)f Fq(\()p Fo(x1)18 +b(y1)t Fq(\))11 b Ft(and)i Fq(\()p Fo(x2)18 b(y2)t Fq(\))11 +b Ft(serv)o(e)h(as)g(con)o(trol)g(p)q(oin)o(ts)240 2125 +y(for)h(the)h(curv)o(e.)20 b(Only)15 b(the)f(last)g(co)q(ordinate)g +(giv)o(en)h(is)f(used)h(to)e(up)q(date)i(the)f(size)h(of)e(the)h(dra)o +(wing.)0 2271 y(Note)h(that)g(only)h(3)f(co)q(ordinate)h(pairs)g(are)f +(sp)q(eci\014ed.)23 b(The)16 b(other)f(p)q(oin)o(t)h(is)g(the)g(curren) +o(t)f(p)q(osition)i(b)q(efore)f(the)0 2334 y Fq(\\clvec)f +Ft(command)i(is)g(executed.)24 b(Only)17 b(the)g(last)f(co)q(ordinate)h +(sp)q(eci\014ed)h(in)f(the)g Fq(\\clvec)e Ft(command)i(is)f(used)0 +2396 y(to)j(determine)h(the)f(exten)o(t)g(of)g(the)g(dra)o(wing.)32 +b(While)20 b(the)f(Bezier)i(curv)o(e)e(passes)g(through)g(the)g(old)h +(curren)o(t)0 2458 y(p)q(osition)c(and)f(the)g(new)g(curren)o(t)g(p)q +(osition,)h(in)g(general)f(the)g(curv)o(e)g(will)i(not)e(reac)o(h)f +(the)h(in)o(termediate)h(con)o(trol)0 2521 y(p)q(oin)o(ts.)26 +b(The)17 b(curv)o(e)g(is)h(alw)o(a)o(ys)e(en)o(tirely)i(enclosed)h(b)o +(y)e(the)g(con)o(v)o(ex)g(quadrilateral)h(de\014ned)g(b)o(y)f(the)h(t)o +(w)o(o)d(end)0 2583 y(p)q(oin)o(ts)h(and)f(the)g(t)o(w)o(o)f(con)o +(trol)h(p)q(oin)o(ts.)20 b(Note)15 b(that)f(the)h(curv)o(e)g(ma)o(y)g +(pass)g(outside)h(the)f(limits)h(of)f(the)g(dra)o(wing)0 +2645 y(as)g(determined)h(b)o(y)f(the)h(end)g(p)q(oin)o(t)f(of)g(the)g +(curv)o(e.)p eop +%%Page: 15 17 +15 16 bop 0 -83 a Ft(Chapter)15 b(2:)k(Using)d(the)g(T)464 +-73 y(E)489 -83 y(Xdra)o(w)f(Commands)1046 b(15)62 158 +y(A)16 b(simple)g(Bezier)h(curv)o(e)e(is)h(pro)q(duced)g(b)o(y)f(the)g +(follo)o(wing)h(example.)120 293 y Fq(\\btexdraw)168 +345 y(\\move)23 b(\(0)g(0\))168 396 y(\\clvec)g(\(0)g(1\)\(1)h(0\)\(1)f +(1\))120 448 y(\\etexdraw)62 583 y Ft(This)17 b(example)h(is)f(the)f +(righ)o(tmost)f(of)i(the)f(follo)o(wing)h(Bezier)h(curv)o(es.)24 +b(The)16 b(dra)o(wings)g(also)h(sho)o(w)f(the)g(end)0 +645 y(p)q(oin)o(ts)g(and)f(the)g(con)o(trol)g(p)q(oin)o(ts)h(for)e(eac) +o(h)i(curv)o(e.)200 1048 y @beginspecial 150 @hoffset +1 @voffset @setspecial +%%BeginDocument: texdraw.ps7 +50 dict begin +/mv {stroke moveto} def +/lv {lineto} def +/st {currentpoint stroke moveto} def +/sl {st setlinewidth} def +/sd {st 0 setdash} def +/sg {st setgray} def +/bs {gsave} def /es {stroke grestore} def +/fl {gsave setgray fill grestore + currentpoint newpath moveto} def +/fp {gsave setgray fill grestore st} def +/cv {curveto} def +/cr {gsave currentpoint newpath 3 -1 roll 0 360 arc + stroke grestore} def +/fc {gsave setgray currentpoint newpath + 3 -1 roll 0 360 arc fill grestore} def +/ar {gsave currentpoint newpath 5 2 roll arc stroke grestore} def +/el {gsave /svm matrix currentmatrix def + currentpoint translate scale newpath 0 0 1 0 360 arc + svm setmatrix stroke grestore} def +/fe {gsave setgray currentpoint translate scale newpath + 0 0 1 0 360 arc fill grestore} def +/av {/hhwid exch 2 div def /hlen exch def + /ah exch def /tipy exch def /tipx exch def + currentpoint /taily exch def /tailx exch def + /dx tipx tailx sub def /dy tipy taily sub def + /alen dx dx mul dy dy mul add sqrt def + /blen alen hlen sub def + gsave tailx taily translate dy dx atan rotate + (V) ah ne {blen 0 gt {blen 0 lineto} if} {alen 0 lineto} ifelse + stroke blen hhwid neg moveto alen 0 lineto blen hhwid lineto + (T) ah eq {closepath} if + (W) ah eq {gsave 1 setgray fill grestore closepath} if + (F) ah eq {fill} {stroke} ifelse + grestore tipx tipy moveto} def +0.24 0.24 scale +1 setlinecap 1 setlinejoin +3 setlinewidth [] 0 setdash +0 0 moveto +bs +[10] sd +-600 0 mv +6 0 fc +-600 300 lv +6 0 fc +-300 300 lv +6 0 fc +-300 0 lv +6 0 fc +[] sd +-600 0 mv +-600 300 -300 300 -300 0 cv +es +bs +[10] sd +0 0 mv +6 0 fc +150 240 lv +6 0 fc +450 240 lv +6 0 fc +300 0 lv +6 0 fc +[] sd +0 0 mv +150 300 450 300 300 0 cv +es +bs +[10] sd +600 0 mv +6 0 fc +600 300 lv +6 0 fc +900 0 lv +6 0 fc +900 300 lv +6 0 fc +[] sd +600 0 mv +600 300 900 0 900 300 cv +es +stroke end showpage +%%EndDocument + @endspecial 177 1056 a(0)177 756 y(1)348 b(2)548 1056 +y(3)206 b(0)927 816 y(1)348 b(2)1148 1056 y(3)206 b(0)1377 +756 y(1)1748 1056 y(2)1748 756 y(3)0 1341 y Fs(2.9)33 +b(Fill)17 b(commands)62 1486 y Ft(P)o(ostScript)23 b(deals)g(with)g +(paths)f(consisting)h(of)f(line)j(segmen)o(ts.)41 b(The)23 +b(paths)f(can)h(b)q(e)g(closed)g(and)g(the)0 1548 y(in)o(terior)17 +b(of)e(the)h(closed)h(region)g(\014lled.)24 b(F)l(rom)16 +b(T)843 1558 y(E)868 1548 y(Xdra)o(w,)g(paths)g(start)f(with)h(a)g +Fq(\\move)f Ft(or)h Fq(\\rmove)f Ft(command)0 1610 y(and)k(con)o(tin)o +(ue)h(with)g Fq(\\lvec)p Ft(,)f Fq(\\rlvec)f Ft(or)h +Fq(\\clvec)f Ft(commands.)32 b(The)19 b(T)1299 1620 y(E)1325 +1610 y(Xdra)o(w)f(\014ll)j(commands)e(close)h(the)0 1673 +y(path)g(and)g(\014ll)i(the)e(in)o(terior)h(of)f(the)g(closed)h +(region.)35 b(Closing)21 b(the)g(path)f(means)g(that)f(e\013ectiv)o +(ely)i(another)0 1735 y Fq(\\lvec)14 b Ft(line)j(is)f(dra)o(wn)e(from)h +(the)g(last)g(p)q(oin)o(t)g(sp)q(eci\014ed)i(to)e(the)g(initial)i(p)q +(oin)o(t.)k(T)1403 1745 y(E)1428 1735 y(Xdra)o(w)15 b(pro)o(vides)g(t)o +(w)o(o)f(forms)0 1797 y(of)g(the)g(\014ll)i(command.)j(The)c +Fq(\\ifill)e Ft(\014lls)j(the)e(in)o(terior)h(of)e(the)i(region)f(with) +h(the)f(giv)o(en)h(gra)o(y)e(lev)o(el.)21 b(The)14 b(lines)0 +1859 y(de\014ning)j(the)e(path)g(are)g(not)g(dra)o(wn.)20 +b(The)15 b Fq(\\lfill)g Ft(command)g(\014lls)i(the)e(region)h +(de\014ned)g(b)o(y)g(the)f(closed)h(path)0 1922 y(and)f(dra)o(ws)f(a)h +(line)h(along)f(the)g(enclosing)h(path.)k(Note)15 b(for)f(b)q(oth)h +(forms)f(of)g(the)h(\014ll)h(command,)f(the)g(gra)o(y)f(lev)o(el)0 +1984 y(used)i(for)e(\014lling)k(is)d(opaque,)g(ev)o(en)h(if)f(the)h +(gra)o(y)e(lev)o(el)i(is)g(c)o(hosen)g(to)e(b)q(e)i(white.)0 +2169 y Fq(\\lfill)e(f:)p Fo(lev)o(el)240 2231 y Ft(Close)i(the)f +(curren)o(t)h(path,)f(dra)o(w)g(the)g(line)j(around)d(the)h(path)f +(using)h(the)g(curren)o(t)f(grey)h(lev)o(el)h(for)240 +2293 y(lines)f(and)e(pain)o(t)h(the)f(in)o(terior)h(of)e(the)i(region)f +(with)h(sp)q(eci\014ed)h(gra)o(y)d(lev)o(el)j Fo(lev)o(el)p +Ft(.)21 b(Gra)o(y)13 b(lev)o(els)i(are)240 2356 y(real)h(v)m(alues)g +(from)e(0)h(\(blac)o(k\))g(through)g(in)o(termediate)h(v)m(alues)g +(\(gra)o(ys\))e(to)g(1)h(\(white\).)0 2458 y Fq(\\ifill)f(f:)p +Fo(lev)o(el)240 2521 y Ft(Close)j(the)g(curren)o(t)g(path)f(and)h(pain) +o(t)g(the)g(in)o(terior)g(of)g(the)g(region)g(with)g(gra)o(y)f(lev)o +(el)i Fo(lev)o(el)p Ft(.)26 b(The)240 2583 y(line)18 +b(around)d(the)h(path)g(is)h(not)e(dra)o(wn.)22 b(Gra)o(y)15 +b(lev)o(els)i(are)e(real)i(v)m(alues)g(from)e(0)h(\(blac)o(k\))f +(through)240 2645 y(in)o(termediate)h(v)m(alues)g(\(gra)o(ys\))e(to)g +(1)h(\(white\).)p eop +%%Page: 16 18 +16 17 bop 0 -83 a Ft(16)1722 b(T)1793 -73 y(E)1819 -83 +y(Xdra)o(w)62 158 y(The)14 b(follo)o(wing)h(example)f(dra)o(ws)f(a)h +(\\\015ag")e(with)j(the)e(in)o(terior)i(\014lled)g(in.)20 +b(The)14 b(path)g(around)g(the)f(b)q(oundary)0 221 y(is)j(giv)o(en)f +(in)i(a)d(clo)q(c)o(kwise)j(order)e(to)g(de\014ne)h(a)f(closed)h(path.) +k(W)l(e)15 b(could)h(tak)o(e)f(adv)m(an)o(tage)g(of)f(the)i(fact)e +(that)h(the)0 283 y(\014ll)i(command)e(will)i(close)e(an)h(op)q(en)f +(path)g(to)g(eliminate)i(one)e(of)g(the)g Fq(\\lvec)g +Ft(commands.)120 409 y Fq(\\centertexdraw{)120 461 y(\\move)23 +b(\(0.5)g(0\))120 513 y(\\lvec)g(\(0)h(0.5\))f(\\clvec)g(\(0.5)g +(0.85\)\(1)g(0.65\)\(1.5)g(1\))120 565 y(\\lvec)g(\(2)h(0.5\))f +(\\clvec)g(\(1.5)g(0.15\)\(1)g(0.35\)\(0.5)g(0\))120 +617 y(\\lfill)g(f:0.8)120 669 y(})675 1039 y @beginspecial +0 @hoffset 0 @voffset @setspecial +%%BeginDocument: texdraw.ps8 +50 dict begin +/mv {stroke moveto} def +/lv {lineto} def +/st {currentpoint stroke moveto} def +/sl {st setlinewidth} def +/sd {st 0 setdash} def +/sg {st setgray} def +/bs {gsave} def /es {stroke grestore} def +/fl {gsave setgray fill grestore + currentpoint newpath moveto} def +/fp {gsave setgray fill grestore st} def +/cv {curveto} def +/cr {gsave currentpoint newpath 3 -1 roll 0 360 arc + stroke grestore} def +/fc {gsave setgray currentpoint newpath + 3 -1 roll 0 360 arc fill grestore} def +/ar {gsave currentpoint newpath 5 2 roll arc stroke grestore} def +/el {gsave /svm matrix currentmatrix def + currentpoint translate scale newpath 0 0 1 0 360 arc + svm setmatrix stroke grestore} def +/fe {gsave setgray currentpoint translate scale newpath + 0 0 1 0 360 arc fill grestore} def +/av {/hhwid exch 2 div def /hlen exch def + /ah exch def /tipy exch def /tipx exch def + currentpoint /taily exch def /tailx exch def + /dx tipx tailx sub def /dy tipy taily sub def + /alen dx dx mul dy dy mul add sqrt def + /blen alen hlen sub def + gsave tailx taily translate dy dx atan rotate + (V) ah ne {blen 0 gt {blen 0 lineto} if} {alen 0 lineto} ifelse + stroke blen hhwid neg moveto alen 0 lineto blen hhwid lineto + (T) ah eq {closepath} if + (W) ah eq {gsave 1 setgray fill grestore closepath} if + (F) ah eq {fill} {stroke} ifelse + grestore tipx tipy moveto} def +0.24 0.24 scale +1 setlinecap 1 setlinejoin +3 setlinewidth [] 0 setdash +0 0 moveto +150 0 mv +0 150 lv +150 255 300 195 450 300 cv +600 150 lv +450 45 300 105 150 0 cv +0.8 fp +stroke end showpage +%%EndDocument + @endspecial 62 1176 a Ft(In)15 b(T)143 1186 y(E)169 +1176 y(Xdra)o(w,)e(the)i Fq(\\move)f Ft(command)g(alw)o(a)o(ys)g +(terminates)g(an)o(y)g(previous)i(paths)e(and)g(starts)g(a)g(new)g +(path.)0 1238 y(Commands)g(that)g(c)o(hange)h(line)h(parameters)e +(\(e.g.)19 b Fq(\\setgray)14 b Ft(or)g Fq(\\lpatt)p Ft(\))f(also)i +(terminate)g(paths)f(and)h(start)0 1301 y(new)i(paths.)24 +b(The)17 b(circle,)h(ellipse)h(and)e(arc)f(commands)g(do)h(not)f +(a\013ect)g(the)h(de\014nition)h(of)e(the)h(curren)o(t)f(path.)0 +1363 y(The)i Fq(\\avec)e Ft(command)h(is)h(not)f(appropriate)g(for)g +(de\014ning)i(a)e(path)g(to)g(b)q(e)h(\014lled.)28 b(It)18 +b(ends)f(a)g(subpath)h(at)f(its)0 1425 y(tail)f(and)g(b)q(egins)g(a)g +(new)f(subpath)h(at)f(its)h(tip.)21 b(Filling)c(a)e(region)h(de\014ned) +h(b)o(y)e(a)h(path)f(with)h(subpaths)f(is)h(more)0 1487 +y(complicated)h(in)f(that)e(eac)o(h)h(subpath)h(is)g(closed)g(b)q +(efore)f(\014lling.)p eop +%%Page: 17 19 +17 18 bop 0 -83 a Ft(Chapter)15 b(3:)k(Dra)o(wing)c(Segmen)o(ts)g(and)g +(Scaling)1061 b(17)0 158 y Fp(3)41 b(Dra)n(wing)15 b(Segmen)n(ts)g(and) +g(Scaling)62 335 y Ft(T)87 344 y(E)113 335 y(Xdra)o(w)d(pro)o(vides)i +(individuall)q(y)i(scaled)e(segmen)o(ts)f(whic)o(h)h(can)f(b)q(e)h +(used)f(to)g(create)g(relo)q(catable)h(dra)o(wing)0 397 +y(mo)q(dules.)0 611 y Fs(3.1)33 b(Dra)n(wing)15 b(segmen)n(ts)62 +748 y Ft(A)g(T)136 757 y(E)161 748 y(Xdra)o(w)f(dra)o(wing)g(segmen)o +(t)g(allo)o(ws)h(for)f(lo)q(cal)h(mo)q(di\014cations)h(of)e(parameters) +f(and)i(relativ)o(e)g(p)q(osition-)0 810 y(ing.)33 b(A)20 +b(T)185 820 y(E)211 810 y(Xdra)o(w)f(segmen)o(t)g(is)h(delimited)i(b)o +(y)d(a)g Fq(\\bsegment)g Ft(command)g(and)h(an)f Fq(\\esegment)f +Ft(command.)0 872 y(Inside)h(the)f(segmen)o(t,)g(the)f(initial)j +(curren)o(t)e(p)q(osition)g(is)h Fq(\(0)14 b(0\))p Ft(.)27 +b(An)o(y)18 b(c)o(hanges)g(to)f(parameters)g(suc)o(h)h(as)f(the)0 +934 y(gra)o(y)12 b(lev)o(el)i(and)f(the)f(line)j(width,)e(remain)h(lo)q +(cal)f(to)f(the)h(segmen)o(t.)19 b(Segmen)o(ts)12 b(are)h(implemen)o +(ted)h(in)g(T)1774 944 y(E)1799 934 y(X)f(using)0 997 +y(a)i Fq(\\begingroup)f Ft(and)h Fq(\\endgroup)p Ft(.)k(Segmen)o(ts)c +(can)g(b)q(e)h(nested.)0 1153 y Fq(\\bsegment)240 1216 +y Ft(Start)22 b(a)g(dra)o(wing)h(segmen)o(t.)42 b(The)23 +b(co)q(ordinate)g(system)f(is)i(shifted)f(suc)o(h)g(that)f(the)h +(curren)o(t)240 1278 y(p)q(osition)d(corresp)q(onds)g(to)f(the)g(co)q +(ordinate)h Fq(\(0)15 b(0\))p Ft(.)32 b(Changes)19 b(to)f(scaling,)j(p) +q(osition)g(and)e(line)240 1340 y(parameters)14 b(sta)o(y)h(lo)q(cal)h +(to)e(the)i(dra)o(wing)f(segmen)o(t.)0 1422 y Fq(\\esegment)240 +1484 y Ft(End)25 b(a)f(dra)o(wing)g(segmen)o(t.)47 b(The)25 +b(curren)o(t)f(p)q(osition)h(in)h(e\013ect)e(b)q(efore)h(the)f(corresp) +q(onding)240 1547 y Fq(\\bsegment)d Ft(command)h(is)h(restored.)41 +b(The)23 b(scaling)g(and)g(line)h(parameter)d(v)m(alues)j(rev)o(ert)e +(to)240 1609 y(those)15 b(in)h(e\013ect)f(b)q(efore)g(the)h(corresp)q +(onding)g Fq(\\bsegment)e Ft(command)h(w)o(as)f(in)o(v)o(ok)o(ed.)0 +1823 y Fs(3.2)33 b(Dra)n(wing)15 b(paths)62 1960 y Ft(Certain)h(subtle) +h(in)o(teractions)f(o)q(ccur)g(b)q(et)o(w)o(een)h(dra)o(wing)e(segmen)o +(ts)h(and)g(\014ll)h(op)q(erations.)22 b(In)17 b(P)o(ostScript,)0 +2022 y(lines)e(are)f(dra)o(wn)f(b)o(y)h(\014rst)f(de\014ning)j(a)d +(path,)h(then)g(later)g(stroking)f(the)h(path)g(to)f(dra)o(w)g(the)h +(line.)21 b(In)14 b(T)1780 2032 y(E)1806 2022 y(Xdra)o(w,)0 +2084 y(this)j(stroking)g(o)q(ccurs)g(when)g(the)g(line)h(is)f +(terminated,)g(sa)o(y)f(b)o(y)h(a)f Fq(\\move)g Ft(command.)24 +b(P)o(ostScript)17 b(paths)f(are)0 2146 y(in)o(terrupted)k(b)o(y)l(,)f +(but)g(con)o(tin)o(ue)h(after)e(a)g(dra)o(wing)h(segmen)o(t.)30 +b(This)20 b(means)f(that)f(a)g(path)h(started)f(b)q(efore)h(a)0 +2209 y(segmen)o(t)13 b(ma)o(y)f(not)h(b)q(e)h(strok)o(ed)f(\(dra)o +(wn\))f(un)o(til)j(after)d(the)i(segmen)o(t)e(ends.)20 +b(Consider)14 b(the)f(follo)o(wing)h(example.)120 2335 +y Fq(\\move)23 b(\(0)h(0\))120 2387 y(\\lvec)f(\(1)h(1\))120 +2439 y(\\bsegment)168 2491 y(\\move)f(\(-0.25)g(-0.25\))168 +2543 y(\\fcir)g(f:0.8)g(r:0.5)120 2595 y(\\esegment)120 +2647 y(\\move)g(\(0)h(0\))p eop +%%Page: 18 20 +18 19 bop 0 -83 a Ft(18)1722 b(T)1793 -73 y(E)1819 -83 +y(Xdra)o(w)62 158 y(A)12 b(P)o(ostScript)f(path)g(is)g(started)g(at)f +Fq(\(0)15 b(0\))c Ft(and)h(con)o(tin)o(ues)f(with)h(a)f(line)i(to)d +Fq(\(1)15 b(1\))p Ft(.)k(This)11 b(path)h(is)f(in)o(terrupted)0 +221 y(b)o(y)16 b(the)g(segmen)o(t.)22 b(The)17 b(\014lled)h(circle)f +(is)g(dra)o(wn)f(next.)22 b(After)16 b(the)g(segmen)o(t,)g(the)g(path)g +(con)o(tin)o(ues)g(and)h(is)f(not)0 283 y(strok)o(ed)i(un)o(til)h(the)f +Fq(\\move)d(\(0)g(0\))j Ft(command)g(after)f(the)i(end)g(of)e(the)i +(segmen)o(t.)28 b(This)19 b(means)f(that)g(the)g(line)0 +345 y(app)q(ears)d(on)g(top)g(of)g(the)g(\014lled)i(region.)62 +483 y(If)d(the)g(\014ll)h(op)q(eration)f(is)h(to)e(co)o(v)o(er)g(the)h +(line,)h(the)f(path)f(m)o(ust)h(b)q(e)g(strok)o(ed)f(b)q(efore)h(the)g +(\014ll)h(op)q(eration.)20 b(F)l(rom)0 545 y(T)25 555 +y(E)51 545 y(Xdra)o(w,)12 b(the)g(mo)o(v)o(e)g(commands)h +Fq(\\move)f Ft(and)h Fq(\\rmove)p Ft(,)f(and)h(the)f(end)i(T)1278 +555 y(E)1303 545 y(Xdra)o(w)e(command)h Fq(\\etexdraw)e +Ft(ter-)0 608 y(minate)i(a)f(path)h(and)g(cause)g(it)f(to)g(b)q(e)i +(strok)o(ed.)k(Within)c(a)e(segmen)o(t,)g(the)h(end)h(segmen)o(t)e +(command)g Fq(\\esegment)0 670 y Ft(also)17 b(terminates)g(and)g(strok) +o(es)f(a)h(path.)25 b(In)18 b(the)f(example)h(ab)q(o)o(v)o(e,)e(the)h +(line)i(can)e(b)q(e)h(strok)o(ed)e(b)o(y)h(inserting)h(a)0 +732 y(mo)o(v)o(e)13 b(command)g(\(suc)o(h)g(as)g(a)g +Fq(\\rmove)i(\(0)f(0\))g Ft(whic)o(h)g(do)q(es)f(not)g(a\013ect)g(the)h +(p)q(osition\),)g(b)q(efore)f(the)h(start)e(of)h(the)0 +795 y(segmen)o(t.)0 1029 y Fs(3.3)33 b(Sa)n(ving)16 b(p)r(ositions)62 +1167 y Ft(The)21 b Fq(\\savecurrpos)f Ft(command)h(sa)o(v)o(es)f(the)h +(curren)o(t)g(p)q(osition.)38 b(The)21 b(sa)o(v)o(ed)f(p)q(osition)i +(is)g(an)f(absolute)0 1229 y(p)q(osition,)16 b(not)f(one)g(relativ)o(e) +h(to)e(a)h(segmen)o(t.)20 b(The)15 b(p)q(osition)h(sa)o(ving)f(mec)o +(hanism)h(is)g(global;)f(the)h(p)q(osition)g(can)0 1291 +y(b)q(e)g(sa)o(v)o(ed)e(within)j(a)e(nested)g(segmen)o(t)g(and)g(then)h +(used)g(outside)f(of)g(the)g(segmen)o(t.)20 b(The)15 +b Fo(x)j Ft(and)e Fo(y)j Ft(co)q(ordinates)0 1354 y(of)g(the)h(p)q +(osition)h(are)f(sa)o(v)o(ed)f(separately)h(as)g(named)g(co)q +(ordinates.)34 b(The)20 b(names)g(are)f(of)h(the)g(form)f +Fq(*)p Fo(name)s Ft(,)0 1416 y(with)e(the)g(leading)h +Fq(*)e Ft(b)q(eing)i(obligatory)l(.)24 b(A)17 b(companion)g(command,)g +Fq(\\savepos)p Ft(,)e(sa)o(v)o(es)h(a)g(giv)o(en)i(co)q(ordinate)0 +1478 y(\(relativ)o(e)d(to)g(the)g(curren)o(t)g(segmen)o(t\))g(as)g(an)g +(absolute)g(sym)o(b)q(olic)i(p)q(osition.)0 1643 y Fq(\\savecurrpos)d +(\(*)p Fo(p)o(x)k Fq(*)p Fo(p)o(y)t Fq(\))240 1706 y +Ft(Sa)o(v)o(e)d(the)g(curren)o(t)g(p)q(osition)h(as)f(the)g(absolute)h +(p)q(osition)g(referenced)g(b)o(y)g Fq(\(*)p Fo(p)o(x)i +Fq(*)p Fo(p)o(y)t Fq(\))p Ft(.)0 1795 y Fq(\\savepos)c(\()p +Fo(x)k(y)t Fq(\)\(*)p Fo(p)o(x)g Fq(*)p Fo(p)o(y)t Fq(\))240 +1857 y Ft(Sa)o(v)o(e)d(the)h(co)q(ordinate)g(p)q(osition)h +Fq(\()p Fo(x)h(y)t Fq(\))d Ft(as)g(the)h(absolute)g(p)q(osition)h +(referenced)f(b)o(y)g Fq(\(*)p Fo(p)o(x)i Fq(*)p Fo(p)o(y)t +Fq(\))p Ft(.)240 1919 y(The)f(co)q(ordinate)g Fq(\()p +Fo(x)h(y)t Fq(\))f Ft(is)g(in)o(terpreted)g(in)h(the)f(normal)f +(fashion)h(as)g(a)f(co)q(ordinate)h(relativ)o(e)h(to)240 +1982 y(the)d(curren)o(t)g(segmen)o(t,)g(using)h(the)f(curren)o(t)g +(scaling)h(factors)e(and)i(dra)o(wing)f(unit.)62 2133 +y(The)21 b(sym)o(b)q(olic)g(names)g(used)g(to)e(sp)q(ecify)j(a)e(sa)o +(v)o(ed)g(p)q(osition)h(can)g(consist)f(of)g(an)o(y)g(c)o(haracters)g +(that)f(are)0 2196 y(not)f(sp)q(ecial)i(to)e(T)319 2205 +y(E)344 2196 y(X,)g(but)h(m)o(ust)f(start)f(with)h(a)g +Fq(*)h Ft(c)o(haracter.)28 b(The)19 b(sym)o(b)q(olic)g(names)f(can)h(b) +q(e)g(used)g(as)f(the)0 2258 y Fo(x)k Ft(and/or)d Fo(y)k +Ft(co)q(ordinate)c(in)h(an)o(y)f(command)g(that)g(needs)g(a)g(co)q +(ordinate.)32 b(Sym)o(b)q(olic)21 b(co)q(ordinates)f(are)e(not)0 +2320 y(normally)i(used)f(with)h(relativ)o(e)g(motion)f(commands)g(suc)o +(h)g(as)g Fq(\\rlvec)f Ft(or)h Fq(\\rmove)p Ft(.)31 b(If)19 +b(used)h(with)f(relativ)o(e)0 2382 y(motion,)c(the)g(corresp)q(onding)h +(displacemen)o(t)h(is)f(equal)f(to)g(the)g(sym)o(b)q(olic)i(co)q +(ordinate)e(v)m(alue.)62 2521 y(On)j(exit)f(from)f(a)h(segmen)o(t,)g +(the)g(p)q(osition)h(and)f(graphics)g(state)f(on)h(en)o(try)g(is)g +(restored.)25 b(An)o(y)17 b(c)o(hanges)g(to)0 2583 y(line)j(t)o(yp)q +(es,)e(scaling)h(and)f(p)q(osition)h(are)e(discarded.)29 +b(Ho)o(w)o(ev)o(er,)18 b(it)g(is)g(sometimes)g(useful)h(alter)f(the)g +(p)q(osition)0 2645 y(on)h(exit)g(from)f(a)g(segmen)o(t.)30 +b(The)19 b Fq(\\savepos)e Ft(command)i(allo)o(ws)f(for)g(the)h(sa)o +(ving)g(of)f(a)g(p)q(osition)i(within)g(the)p eop +%%Page: 19 21 +19 20 bop 0 -83 a Ft(Chapter)15 b(3:)k(Dra)o(wing)c(Segmen)o(ts)g(and)g +(Scaling)1061 b(19)0 158 y(segmen)o(t.)34 b(This)21 b(p)q(osition)g +(can)f(b)q(e)h(restored)f(after)f(the)h Fq(\\esegment)f +Ft(with)i(a)f Fq(\\move)f Ft(command)h(using)h(the)0 +221 y(sa)o(v)o(ed)16 b(sym)o(b)q(olic)h(p)q(osition.)24 +b(This)17 b(approac)o(h)e(can)i(b)q(e)f(used)h(to)f(build)i(mo)q(dules) +f(whic)o(h)g(op)q(erate)f(in)h(a)f(manner)0 283 y(analogous)f(to)f(the) +i(basic)g(relativ)o(e)f(motion)g(line)i(v)o(ector)e(commands.)62 +420 y(The)i(follo)o(wing)g(example)g(de\014nes)h(a)e(macro)g(whic)o(h)h +(dra)o(ws)f(a)g(b)q(o)o(x)g(0.75)g(inc)o(hes)h(wide)h(b)o(y)e(0.5)g +(inc)o(hes)h(high)0 482 y(con)o(taining)d(cen)o(tered)h(text.)j(On)d +(lea)o(ving)f(the)g(macro)f(the)g(p)q(osition)i(will)g(b)q(e)g(set)e +(at)g(a)g(p)q(oin)o(t)h(on)g(the)g(righ)o(thand)0 544 +y(side)i(of)f(the)g(b)q(o)o(x.)120 671 y Fq(\\def\\tbox)23 +b(#1{\\bsegment)478 723 y(\\lvec)g(\(0)h(+0.25\))94 b(\\lvec)24 +b(\(0.75)f(+0.25\))478 775 y(\\lvec)g(\(0.75)g(-0.25\))g(\\lvec)h(\(0)f +(-0.25\))g(\\lvec)g(\(0)h(0\))478 827 y(\\textref)f(h:C)g(v:C)h +(\\htext)f(\(0.375)g(0\){#1})478 879 y(\\savepos)g(\(0.75)g(0\)\(*ex)g +(*ey\))430 930 y(\\esegment)430 982 y(\\move)g(\(*ex)h(*ey\)})62 +1109 y Ft(With)12 b(this)f(de\014nition,)j(w)o(e)d(can)g(treat)f +Fq(\\tbox)g Ft(in)i(the)g(same)f(w)o(a)o(y)f(as)g(the)i(basic)g(v)o +(ector)e(commands,)h(stringing)0 1171 y(them)k(together)g(to)f(form)h +(a)f(blo)q(c)o(k)i(diagram)f(as)g(in)h(this)g(example.)120 +1298 y Fq(\\centertexdraw{)168 1350 y(\\ravec)23 b(\(1)g(0\))h +(\\tbox{$H\(z\)$})e(\\ravec)h(\(1)h(0\))120 1402 y(})563 +1618 y @beginspecial 0 @hoffset 18 @voffset @setspecial +%%BeginDocument: texdraw.ps9 +50 dict begin +/mv {stroke moveto} def +/lv {lineto} def +/st {currentpoint stroke moveto} def +/sl {st setlinewidth} def +/sd {st 0 setdash} def +/sg {st setgray} def +/bs {gsave} def /es {stroke grestore} def +/fl {gsave setgray fill grestore + currentpoint newpath moveto} def +/fp {gsave setgray fill grestore st} def +/cv {curveto} def +/cr {gsave currentpoint newpath 3 -1 roll 0 360 arc + stroke grestore} def +/fc {gsave setgray currentpoint newpath + 3 -1 roll 0 360 arc fill grestore} def +/ar {gsave currentpoint newpath 5 2 roll arc stroke grestore} def +/el {gsave /svm matrix currentmatrix def + currentpoint translate scale newpath 0 0 1 0 360 arc + svm setmatrix stroke grestore} def +/fe {gsave setgray currentpoint translate scale newpath + 0 0 1 0 360 arc fill grestore} def +/av {/hhwid exch 2 div def /hlen exch def + /ah exch def /tipy exch def /tipx exch def + currentpoint /taily exch def /tailx exch def + /dx tipx tailx sub def /dy tipy taily sub def + /alen dx dx mul dy dy mul add sqrt def + /blen alen hlen sub def + gsave tailx taily translate dy dx atan rotate + (V) ah ne {blen 0 gt {blen 0 lineto} if} {alen 0 lineto} ifelse + stroke blen hhwid neg moveto alen 0 lineto blen hhwid lineto + (T) ah eq {closepath} if + (W) ah eq {gsave 1 setgray fill grestore closepath} if + (F) ah eq {fill} {stroke} ifelse + grestore tipx tipy moveto} def +0.24 0.24 scale +1 setlinecap 1 setlinejoin +3 setlinewidth [] 0 setdash +0 0 moveto +300 0 (T) 48 24 av +bs +300 75 lv +525 75 lv +525 -75 lv +300 -75 lv +300 0 lv +es +525 0 mv +825 0 (T) 48 24 av +stroke end showpage +%%EndDocument + @endspecial 925 1555 a Fl(H)t Ft(\()p Fl(z)r Ft(\))0 +1839 y Fs(3.4)33 b(Scaling)16 b(co)r(ordinates)62 1976 +y Ft(There)i(are)g(t)o(w)o(o)f(scale)h(factors)f(a)o(v)m(ailable,)j +(the)e(unit)h(scale)f(factor)f(and)h(the)h(segmen)o(t)e(scale)i +(factor.)27 b(The)0 2038 y(o)o(v)o(erall)11 b(scale)g(factor)e(is)i +(the)g(pro)q(duct)g(of)f(these)h(t)o(w)o(o.)17 b(There)10 +b(are)h(absolute)g(and)f(relativ)o(e)h(v)o(ersions)g(of)f(commands)0 +2101 y(to)15 b(c)o(hange)g(these)g(scale)h(factors.)62 +2238 y(The)g(unit)g(scale)h(factor)d(is)i(normally)g(used)h(to)e +(a\013ect)f(global)j(scale)f(c)o(hanges.)21 b(Changes)15 +b(to)g(the)h(unit)g(scale)0 2300 y(factor)e(remains)i(lo)q(cal)g(to)f +(a)g(segmen)o(t,)f(but)h(propagate)f(to)h(inferior)h(segmen)o(ts.)j +(The)d(default)g(v)m(alue)g(is)g(unit)o(y)l(.)62 2437 +y(The)j(segmen)o(t)f(scale)h(factor)f(is)h(used)g(for)f(lo)q(cal)i +(scale)f(c)o(hanges.)30 b(It)18 b(remains)h(lo)q(cal)h(to)e(a)g(segmen) +o(t.)30 b(The)0 2499 y(segmen)o(t)15 b(scale)h(factor)f(is)h(reset)g +(to)f(unit)o(y)h(on)f(en)o(try)h(in)o(to)f(eac)o(h)h(segmen)o(t.)21 +b(This)16 b(means)f(that)g(c)o(hanges)h(to)f(the)0 2562 +y(segmen)o(t)g(scale)h(factor)e(do)h(not)g(propagate)f(to)h(inferior)h +(segmen)o(ts.)p eop +%%Page: 20 22 +20 21 bop 0 -83 a Ft(20)1722 b(T)1793 -73 y(E)1819 -83 +y(Xdra)o(w)0 158 y Fq(\\setunitscale)13 b Fo(scale)240 +221 y Ft(Set)f(the)h(unit)g(scaling)g(to)e Fo(scale)p +Ft(.)20 b(The)12 b(argumen)o(t)g Fo(scale)j Ft(is)e(a)f(real)h(n)o(um)o +(b)q(er)f(whic)o(h)h(is)g(used)g(to)e(scale)240 283 y(co)q(ordinate)j +(v)m(alues.)21 b(The)14 b(o)o(v)o(erall)g(scaling)h(factor)e(is)h(the)g +(pro)q(duct)g(of)g(the)g(unit)g(scale)h(factor)e(and)240 +345 y(the)i(segmen)o(t)g(scale)h(factor.)0 441 y Fq(\\relunitscale)d +Fo(v)m(alue)240 503 y Ft(Adjust)h(the)g(unit)g(scale)h(factor)e(b)o(y)g +(m)o(ultiplying)j(b)o(y)e Fo(v)m(alue)p Ft(.)21 b(This)14 +b(has)g(the)g(e\013ect)f(of)h(m)o(ultiplying)240 566 +y(the)h(o)o(v)o(erall)g(scale)g(factor)f(b)o(y)h(the)g(same)f(factor.) +19 b(The)c(o)o(v)o(erall)g(scaling)h(factor)e(is)h(the)g(pro)q(duct)g +(of)240 628 y(the)g(unit)h(scale)g(factor)e(and)i(the)f(segmen)o(t)g +(scale)h(factor.)0 724 y Fq(\\setsegscale)e Fo(scale)240 +786 y Ft(Set)19 b(the)f(segmen)o(t)g(scale)h(factor.)29 +b(The)18 b(argumen)o(t)g Fo(scale)k Ft(is)d(a)f(real)h(n)o(um)o(b)q(er) +f(whic)o(h)i(is)f(used)g(to)240 849 y(scale)d(co)q(ordinate)g(v)m +(alues.)21 b(The)16 b(o)o(v)o(erall)f(scale)h(factor)f(is)g(the)h(pro)q +(duct)g(of)e(the)i(unit)g(scale)g(factor)240 911 y(and)f(the)h(segmen)o +(t)e(scale)i(factor.)0 1007 y Fq(\\relsegscale)e Fo(v)m(alue)240 +1069 y Ft(Adjust)i(the)g(segmen)o(t)f(scale)h(factor)f(b)o(y)h(m)o +(ultiplying)i(b)o(y)e Fo(v)m(alue)p Ft(.)22 b(This)17 +b(has)e(the)h(e\013ect)g(of)f(m)o(ulti-)240 1131 y(plying)i(the)e +(curren)o(t)g(o)o(v)o(erall)g(scale)h(factor)e(b)o(y)h(the)h(same)e +(factor.)19 b(The)d(o)o(v)o(erall)f(scaling)h(factor)e(is)240 +1194 y(the)h(pro)q(duct)h(of)f(the)g(unit)h(scale)g(factor)e(and)h(the) +h(segmen)o(t)e(scale)i(factor.)62 1352 y(In)e(addition)f(to)f(the)h +(unit)g(scale)h(factor)d(and)i(the)g(segmen)o(t)f(scale)h(factor,)f +(the)h(scaling)h(can)e(b)q(e)i(con)o(trolled)f(b)o(y)0 +1414 y(the)f(c)o(hoice)h(of)f(dra)o(wing)g(units)h(with)g(the)f +(command)g Fq(\\drawdim)f Ft(\(see)i(Section)g(2.4)e([Co)q(ordinate)h +(sp)q(eci\014cation],)0 1476 y(page)j(6\).)0 1635 y Fq(\\drawdim)f(cm)h +(\\setunitscale)e(2.54)240 1697 y Ft(Set)k(the)g(units)h(to)f(cen)o +(timetres)g(scaled)h(b)o(y)f(2.54.)24 b(T)l(ogether)17 +b(these)g(commands)g(are)g(e\013ectiv)o(ely)240 1759 +y(the)e(same)g(as)g Fq(\\drawdim)f(in)p Ft(.)62 1918 +y(The)k(segmen)o(t)g(scale)h(can)f(b)q(e)g(used)h(to)e(allo)o(w)h +(scale)h(c)o(hanges)f(in)h(segmen)o(ts)e(so)h(that)f(v)m(alues)i(are)f +(in)g(more)0 1980 y(con)o(v)o(enien)o(t)g(units.)28 b(F)l(or)18 +b(example)g(supp)q(ose)h(dimensions)g(in)g(a)e(segmen)o(t)g(are)h(m)o +(ultiples)h(of)f(one)f(third)i(of)e(an)0 2042 y(inc)o(h.)26 +b(The)18 b(segmen)o(t)e(scale)i(can)f(b)q(e)h(set)f(once)g(to)g(mak)o +(e)f(1)h(dra)o(wing)g(unit)h(equal)f(0.3333)f(inc)o(hes.)26 +b(F)l(rom)17 b(that)0 2104 y(p)q(oin)o(t)f(on,)e(co)q(ordinates)i(can)f +(b)q(e)h(sp)q(eci\014ed)i(with)d(in)o(teger)g(v)m(alues.)62 +2246 y(The)g(follo)o(wing)f(example)h(de\014nes)h(a)d(macro)h(to)f(dra) +o(w)h(a)g(rectangular)g(b)q(o)o(x)g(whic)o(h)h(is)f(t)o(wice)h(as)e +(wide)i(as)f(it)g(is)0 2308 y(high.)21 b(The)15 b(width)h(is)g(sp)q +(eci\014ed)h(as)e(an)g(argumen)o(t.)120 2439 y Fq(\\def\\mybox)22 +b(#1{\\bsegment)502 2491 y(\\setsegscale)g(#1)502 2543 +y(\\lvec)h(\(0)h(+0.25\))f(\\lvec)g(\(1)g(+0.25\))g(\\lvec)h(\(1)f +(-0.25\))502 2595 y(\\lvec)g(\(0)h(-0.25\))f(\\lvec)g(\(0)g(0\))454 +2647 y(\\esegment})p eop +%%Page: 21 23 +21 22 bop 0 -83 a Ft(Chapter)15 b(3:)k(Dra)o(wing)c(Segmen)o(ts)g(and)g +(Scaling)1061 b(21)0 158 y Fs(3.5)33 b(Dra)n(wing)15 +b(size)62 295 y Ft(The)i(e\013ectiv)o(e)g(size)g(of)f(the)h(dra)o(wing) +f(is)h(determined)h(b)o(y)e(the)g(maxim)o(um)h(excursions)g(of)f(the)h +(co)q(ordinates)0 358 y(supplied)22 b(to)d(T)269 367 +y(E)295 358 y(Xdra)o(w)g(commands.)33 b(The)20 b(minim)o(um)h(and)f +(maxim)o(um)f(scaled)i Fo(x)i Ft(and)d Fo(y)j Ft(co)q(ordinates)d(are)0 +420 y(tallied.)28 b(Note)17 b(that)g Fq(\\move)f Ft(commands)h(con)o +(tribute)h(to)f(the)g(determination)i(of)d(the)i(calculated)h(size)f +(of)f(the)0 482 y(dra)o(wing,)h(ev)o(en)g(though)f(they)h(do)g(not)f +(generate)h(visible)i(lines.)29 b(The)18 b(circle)h(and)f(ellipse)i +(commands)d(add)h(a)0 544 y(comp)q(ensation)g(for)e(the)h(radii)h(of)f +(circles)h(and)g(ellipses.)27 b(The)17 b(\014nal)h(T)1231 +554 y(E)1257 544 y(Xdra)o(w)e(dra)o(wing)h(is)h(placed)g(in)g(a)e(T) +1890 554 y(E)1916 544 y(X)0 607 y(b)q(o)o(x)k(with)g(lo)o(w)o(er)g +(lefthand)g(corner)g(corresp)q(onding)h(to)e Fq(\()p +Fo(x)p Ft(-min)i Fo(y)p Ft(-min)p Fq(\))g Ft(and)f(upp)q(er)h(righ)o +(thand)f(corner)g(at)0 669 y Fq(\()p Fo(x)p Ft(-max)15 +b Fo(y)p Ft(-max)p Fq(\))p Ft(.)62 806 y(T)l(ext)k(generated)f(b)o(y)g +Fq(\\htext)p Ft(,)h Fq(\\vtext)e Ft(or)h Fq(\\rtext)g +Ft(can)g(spill)j(outside)e(the)f(b)q(o)o(x)h(as)f(determined)i(ab)q(o)o +(v)o(e.)0 868 y(Only)e(the)f(text)f(reference)i(p)q(oin)o(t)f(is)h +(guaran)o(teed)e(to)g(b)q(e)i(in)f(the)g(dra)o(wing)g(b)q(o)o(x.)25 +b(Arcs)17 b(can)g(also)f(spill)j(outside)0 930 y(the)d(dra)o(wing)f(b)q +(o)o(x.)22 b(Note)15 b(also)h(that)f(the)g(widths)i(of)e(lines,)i(and)f +(the)g(sizes)g(of)f(arro)o(wheads)g(do)h(not)f(a\013ect)g(the)0 +993 y(size)h(of)f(the)h(dra)o(wing.)k(The)c(calculated)h(size)f(of)f +(the)g(dra)o(wing)h(will)h(nev)o(er)e(b)q(e)h(larger)g(than)f(the)g +(actual)h(size)g(of)0 1055 y(the)h(dra)o(wing.)23 b(In)18 +b(extreme)e(cases)h(in)g(whic)o(h)g(text)f(or)g(lines)j(extend)e(far)f +(outside)h(the)f(dra)o(wing,)h(extra)f Fq(\\move)0 1117 +y Ft(commands)h(should)h(b)q(e)f(used)h(to)e(establish)i(the)g(size)f +(of)g(the)g(dra)o(wing)g(so)g(that)f(the)h(T)1528 1127 +y(E)1553 1117 y(Xdra)o(w)g(b)q(o)o(x)g(includes)0 1180 +y(all)f(of)f(the)g(dra)o(wing.)62 1316 y(T)87 1326 y(E)113 +1316 y(Xdra)o(w)e(pro)o(vides)h(the)f Fq(\\drawbb)g Ft(command)h(to)e +(dra)o(w)h(a)h(b)q(o)o(x)f(whic)o(h)i(indicates)g(the)e(e\013ectiv)o(e) +h(size)h(of)e(the)0 1379 y(dra)o(wing.)26 b(Whenev)o(er)17 +b Fq(\\drawbb)f Ft(is)i(in)o(v)o(ok)o(ed,)f(a)g(ruled)h(b)q(o)o(x)f(is) +h(dra)o(wn)e(around)i(the)f(dra)o(wing)g(as)f(it)i(has)f(b)q(een)0 +1441 y(sized)h(up)f(to)e(that)h(p)q(oin)o(t.)24 b(Normally)17 +b Fq(\\drawbb)f Ft(is)h(in)o(v)o(ok)o(ed)f(just)h(b)q(efore)f(the)h +(end)g(of)f(a)g(dra)o(wing)h(to)e(indicate)0 1503 y(the)g(e\013ectiv)o +(e)h(size)g(of)f(the)g(\014nal)h(dra)o(wing.)0 1665 y +Fq(\\drawbb)72 b Ft(Dra)o(w)16 b(a)i(ruled)h(b)q(o)o(x)e(around)h(the)g +(e\013ectiv)o(e)g(size)h(of)e(a)g(dra)o(wing)h(pro)q(duced)h(b)o(y)e(T) +1679 1675 y(E)1705 1665 y(Xdra)o(w)g(com-)240 1727 y(mands.)0 +1952 y Fs(3.6)33 b(Initial)17 b(curren)n(t)g(p)r(osition)62 +2089 y Ft(The)c(\014rst)g(op)q(eration)g(in)h(a)e(dra)o(wing)h(should)h +(b)q(e)g(a)e(mo)o(v)o(e)h(to)f(establish)i(the)f(curren)o(t)g(p)q +(osition.)20 b(The)13 b(curren)o(t)0 2151 y(p)q(osition)19 +b(can)f(b)q(e)h(established)g(explicitly)i(through)d(a)g +Fq(\\move)f Ft(command)h(or)f(a)h(text)f(p)q(ositioning)j(command)0 +2213 y(suc)o(h)f(as)g Fq(\\htext)f Ft(with)i(a)f(co)q(ordinate.)32 +b(Ho)o(w)o(ev)o(er,)19 b(if)g(an)g(attempt)f(is)i(made)f(to)g(use)g(a)g +(dra)o(wing)g(command)0 2275 y(whic)o(h)e(needs)g(a)e(curren)o(t)h(p)q +(osition)i(and)e(none)g(has)g(b)q(een)h(established,)h(T)1288 +2285 y(E)1313 2275 y(Xdra)o(w)e(implicitly)j(sets)d(the)g(initial)0 +2338 y(curren)o(t)c(p)q(osition)h(to)e Fq(\(0)k(0\))p +Ft(.)k(The)12 b(size)h(of)e(the)h(T)841 2347 y(E)867 +2338 y(Xdra)o(w)f(\014gure)h(is)h(normally)f(determined)i(from)d(the)h +(sequence)0 2400 y(of)h(co)q(ordinates)h(sp)q(eci\014ed,)i(but)e(will)i +(include)g(the)d(implicit)k(initial)f(p)q(osition)e(in)h(case)f +(another)f(initial)j(p)q(osition)0 2462 y(has)f(not)g(b)q(een)h +(explicitly)i(sp)q(eci\014ed.)p eop +%%Page: 22 24 +22 23 bop 0 -83 a Ft(22)1722 b(T)1793 -73 y(E)1819 -83 +y(Xdra)o(w)p eop +%%Page: 23 25 +23 24 bop 0 -83 a Ft(Chapter)15 b(4:)k(Using)d(T)385 +-73 y(E)411 -83 y(Xdra)o(w)e(with)i(LaT)737 -73 y(E)762 +-83 y(X)1109 b(23)0 158 y Fp(4)41 b(Using)14 b(T)340 +174 y(E)383 158 y(Xdra)n(w)h(with)g(LaT)934 174 y(E)977 +158 y(X)62 346 y Ft(The)21 b(LaT)237 356 y(E)263 346 +y(X)f(t)o(yp)q(esetting)h(system)f(uses)g(a)h(structured)f(approac)o(h) +g(to)g(declaring)i(t)o(yp)q(esetting)e(en)o(viron-)0 +408 y(men)o(ts.)27 b(F)l(or)17 b(LaT)318 418 y(E)344 +408 y(X2e,)h(the)g Fq(texdraw)f Ft(pac)o(k)m(age)g(de\014nes)i(the)f +Fq(texdraw)f Ft(en)o(vironmen)o(t.)28 b(The)18 b(T)1715 +418 y(E)1740 408 y(Xdra)o(w)f(en-)0 470 y(vironmen)o(t)g(is)f(started)g +(with)h(a)f Fq(\\begin{texdraw})e Ft(command)i(and)h(terminated)g(with) +f(an)h Fq(\\end{texdraw})0 533 y Ft(command.)j(All)c(of)f(the)g(basic)h +(T)568 542 y(E)594 533 y(Xdra)o(w)e(commands)h(can)h(b)q(e)f(used)h +(within)h(the)e Fq(texdraw)f Ft(en)o(vironmen)o(t.)62 +670 y(As)h(an)h(example,)f(a)g(LaT)497 679 y(E)523 670 +y(X2e)g(v)m(arian)o(t)g(of)g(an)g(earlier)h(example)g(can)f(b)q(e)h +(constructed)g(as)e(follo)o(ws.)120 796 y Fq(\\documentclass{article}) +120 848 y(\\usepackage{texdraw})144 900 y(...)120 952 +y(\\begin{document})144 1004 y(...)120 1056 y +(\\newcommand{\\tbox}[1]{\045)192 1108 y(\\bsegment)239 +1160 y(\\lvec)23 b(\(0)h(+0.25\))95 b(\\lvec)23 b(\(0.75)g(+0.25\))239 +1212 y(\\lvec)g(\(0.75)h(-0.25\))f(\\lvec)g(\(0)g(-0.25\))h(\\lvec)f +(\(0)g(0\))239 1263 y(\\textref)g(h:C)h(v:C)f(\\htext)g(\(0.375)g +(0\){#1})239 1315 y(\\savepos)g(\(0.75)g(0\)\(*ex)g(*ey\))192 +1367 y(\\esegment)192 1419 y(\\move)g(\(*ex)g(*ey\)})120 +1471 y(\\begin{center})120 1523 y(\\begin{texdraw})168 +1575 y(\\ravec)g(\(1)g(0\))h(\\tbox{$H\(z\)$})e(\\ravec)h(\(1)h(0\))120 +1627 y(\\end{texdraw})120 1679 y(\\end{center})144 1730 +y(...)120 1782 y(\\end{document})62 1909 y Ft(This)17 +b(example)f(illustrates)h(the)f(use)g(of)f(the)h(LaT)921 +1919 y(E)947 1909 y(X)g(command)f Fq(\\newcommand)g Ft(as)g(an)h +(alternativ)o(e)g(to)f(the)0 1971 y(plain)21 b(T)143 +1981 y(E)169 1971 y(X)f(command)f Fq(\\def)p Ft(.)34 +b(Instead)20 b(of)f(the)h(basic)h(T)1025 1981 y(E)1050 +1971 y(Xdra)o(w)f(command)f Fq(\\centertexdraw)p Ft(,)g(a)g(nested)0 +2034 y(com)o(bination)d(of)f(the)g(LaT)465 2043 y(E)491 +2034 y(X)g(cen)o(tering)h(en)o(vironmen)o(t)f(and)g(the)h(T)1189 +2043 y(E)1214 2034 y(Xdra)o(w)f(en)o(vironmen)o(t)g(is)h(used.)0 +2259 y Fs(4.1)33 b(P)n(ostScript)16 b(prin)n(ter)h(driv)n(ers)62 +2396 y Ft(The)24 b Fq(texdraw)f Ft(pac)o(k)m(age)h(uses)g(the)g(prin)o +(ter)h(driv)o(er)f(in)o(terface)g(pro)o(vided)h(b)o(y)f(the)g(standard) +f(LaT)1847 2406 y(E)1873 2396 y(X2e)0 2458 y Fq(graphics)d +Ft(pac)o(k)m(age.)37 b(An)o(y)22 b(options)f(to)f(the)h +Fq(texdraw)g Ft(pac)o(k)m(age)g(are)f(passed)i(to)e(the)h +Fq(graphics)f Ft(pac)o(k)m(age.)0 2521 y(Sp)q(eci\014cally)l(,)25 +b(the)20 b(name)h(of)f(the)h(P)o(ostScript)f(driv)o(er)h(to)f(b)q(e)h +(used)g(can)g(b)q(e)g(sp)q(eci\014ed)i(as)d(an)g(option)h(to)f(the)0 +2583 y Fq(texdraw)13 b Ft(pac)o(k)m(age.)20 b(With)14 +b(no)g(explicit)i(prin)o(ter)e(driv)o(er)h(option,)f(the)g(default)h +(prin)o(ter)f(driv)o(er)g(asso)q(ciated)h(with)0 2645 +y(the)g Fq(graphics)f Ft(pac)o(k)m(age)i(is)f(used.)p +eop +%%Page: 24 26 +24 25 bop 0 -83 a Ft(24)1722 b(T)1793 -73 y(E)1819 -83 +y(Xdra)o(w)62 158 y(The)18 b Fq(texdraw)e Ft(pac)o(k)m(age)h(can)g(b)q +(e)h(used)f(with)h(an)o(y)f(of)f(the)h(prin)o(ter)h(driv)o(ers)f(supp)q +(orted)h(b)o(y)f(the)g Fq(graphics)0 221 y Ft(pac)o(k)m(age)k(that)g +(allo)o(w)g(for)g(the)g(imp)q(ortation)h(of)f(P)o(ostScript)g(graphics) +g(\014les,)j(viz.,)f Fq(dvips)p Ft(,)e Fq(xdvi)p Ft(,)h +Fq(dvi2ps)p Ft(,)0 283 y Fq(dvialw)p Ft(,)j Fq(dvilaser)p +Ft(,)g Fq(dvipsone)p Ft(,)f Fq(dviwindo)p Ft(,)h Fq(dvitops)p +Ft(,)g Fq(oztex)p Ft(,)g Fq(psprint)p Ft(,)g Fq(textures)p +Ft(,)g Fq(pctexps)p Ft(,)g(and)0 345 y Fq(pctexwin)p +Ft(.)g(Not)17 b(all)h(of)f(these)h(driv)o(ers)f(supp)q(ort)h(the)f +(text)g(rotation)f(needed)j(for)e(the)g(T)1566 355 y(E)1591 +345 y(Xdra)o(w)g(commands)0 407 y Fq(\\vtext)d Ft(and)i +Fq(\\rtext)p Ft(.)j(Of)c(the)g(driv)o(ers)h(listed)g(ab)q(o)o(v)o(e,)e +(only)i(the)f(follo)o(wing)h(supp)q(ort)f(supp)q(ort)h(text)e +(rotation:)0 470 y Fq(dvips)p Ft(,)g Fq(xdvi)p Ft(,)g +Fq(dvi2ps)p Ft(,)g Fq(dvitops)p Ft(,)g Fq(textures)p +Ft(,)g(and)h Fq(pctexps)p Ft(.)p eop +%%Page: 25 27 +25 26 bop 0 -83 a Ft(Chapter)15 b(5:)k(More)c(Details)1417 +b(25)0 158 y Fp(5)41 b(More)15 b(Details)62 372 y Ft(The)h(\014rst)f +(part)f(of)h(this)h(c)o(hapter)f(o\013ers)f(some)h(suggestions)h(for)e +(strategies)h(to)g(isolate)g(errors)g(in)h(T)1802 382 +y(E)1827 372 y(X)g(and)0 434 y(T)25 444 y(E)51 434 y(Xdra)o(w)f(input.) +22 b(The)16 b(second)g(part)f(of)g(this)h(c)o(hapter)g(discusses)h +(implemen)o(tational)g(issues.)22 b(An)16 b(a)o(w)o(areness)0 +496 y(of)f(these)g(issues)h(is)g(useful)g(if)g(T)538 +506 y(E)563 496 y(Xdra)o(w)f(is)h(to)e(b)q(e)i(extended.)0 +768 y Fs(5.1)33 b(Errors)15 b(while)i(using)e(T)695 782 +y(E)731 768 y(Xdra)n(w)62 911 y Ft(T)87 920 y(E)113 911 +y(X)j(input)g(is)g(notoriously)g(di\016cult)i(to)d(debug.)28 +b(If)18 b(T)1035 920 y(E)1060 911 y(X)g(rep)q(orts)f(errors,)h(so)f(m)o +(uc)o(h)h(the)f(b)q(etter.)28 b(If)18 b(the)0 973 y(cause)i(is)h(not)e +(immediately)j(ob)o(vious,)e(consider)h(using)g(a)e(binary)i(searc)o(h) +f(strategy)l(,)f(remo)o(ving)h(sections)g(of)0 1035 y(co)q(de)f(with)g +(the)f(premature)g(insertion)i(of)e(the)g Fq(\\bye)g +Ft(\(or)g Fq(\\end{document})e Ft(for)i(LaT)1538 1045 +y(E)1564 1035 y(X\))g(command)g(\(with)0 1097 y(the)e(appropriate)f +(closing)i(of)e(an)o(y)g(op)q(en)h(groups)f(and)h(the)f(lik)o(e\).)22 +b(Other)16 b(strategies)e(include)k(the)e(insertion)g(of)0 +1160 y Fq(\\message{I)e(am)h(here})h Ft(at)g(appropriate)g(places.)25 +b(T)l(ry)17 b(using)g Fq(\\tracingmacros=1)p Ft(.)22 +b(Man)o(y)16 b(problems)h(turn)0 1222 y(out)11 b(to)g(b)q(e)h(due)h(to) +e(an)g(incorrect)h(n)o(um)o(b)q(er)g(of)f(macro)g(argumen)o(ts)g(or)g +(incorrectly)h(delimited)i(macro)d(argumen)o(ts.)0 1284 +y(The)16 b Fq(\\tracingmacros=1)d Ft(option)i(writes)h(the)f(macro)g +(argumen)o(ts)f(and)i(macro)f(expansions)h(to)f(the)g(T)1817 +1294 y(E)1843 1284 y(X)g(log)0 1346 y(\014le.)62 1489 +y(Certain)20 b(errors)e(ma)o(y)h(not)g(manifest)h(themselv)o(es)g(un)o +(til)g(w)o(ell)h(after)d(the)i(o\013ending)g(command.)32 +b(F)l(or)19 b(in-)0 1551 y(stance,)14 b(if)i(a)e(closing)i(paren)o +(thesis)f(is)g(missing)h(from)e(a)g(T)991 1561 y(E)1017 +1551 y(Xdra)o(w)g(co)q(ordinate,)h(T)1424 1561 y(E)1449 +1551 y(X)g(con)o(tin)o(ues)g(searc)o(hing)h(for)0 1613 +y(the)j(paren)o(thesis.)30 b(If)19 b(one)g(is)g(found,)h(p)q(erhaps)f +(man)o(y)f(lines)i(later,)g(the)e(T)1314 1623 y(E)1340 +1613 y(Xdra)o(w)g(error)g(message)g Fq(invalid)0 1676 +y(coordinate)c Ft(will)j(b)q(e)f(prin)o(ted)f(at)g(this)h(later)f(p)q +(oin)o(t.)62 1818 y(All)h(input)g(in)g(the)f(T)413 1828 +y(E)438 1818 y(Xdra)o(w)g(en)o(vironmen)o(t)g(should)h(b)q(e)f(in)o +(tended)h(for)f(in)o(terpretation)g(b)o(y)f(T)1682 1828 +y(E)1708 1818 y(Xdra)o(w)g(com-)0 1880 y(mands.)41 b(T)208 +1890 y(E)234 1880 y(Xdra)o(w)22 b(places)h(text)f(inside)i(a)e(zero)g +(size)i(b)q(o)o(x)e(\(the)g(text)g(itself)h(extends)g(outside)g(the)g +(b)q(o)o(x\).)0 1942 y(Extraneous)15 b(input)j(manifests)e(itself)h(as) +e(a)h(non-zero)g(size)h(T)1068 1952 y(E)1094 1942 y(Xdra)o(w)e(text)h +(b)q(o)o(x.)22 b(This)17 b(causes)f(the)g(T)1793 1952 +y(E)1819 1942 y(Xdra)o(w)0 2005 y(text)e(and)h(the)g(P)o(ostScript)f +(graphics)i(to)e(b)q(e)h(displaced)i(from)d(one)g(another.)20 +b(An)15 b(error)f(message)g(is)h(issued)h(if)f(a)0 2067 +y(non-zero)i(width)g(T)341 2077 y(E)367 2067 y(Xdra)o(w)e(text)i(b)q(o) +o(x)f(is)h(detected.)25 b(If)17 b(this)g(error)e(message)i(app)q(ears,) +f(lo)q(ok)h(for)f(unin)o(tended)0 2129 y(c)o(haracter)e(sequences)j +(amongst)d(the)h(commands)g(to)g(T)971 2139 y(E)996 2129 +y(Xdra)o(w.)62 2271 y(Sev)o(eral)20 b(T)248 2281 y(E)274 +2271 y(Xdra)o(w)f(commands)h(pass)f(their)h(argumen)o(ts)f(\\ra)o(w")f +(to)h(the)h(P)o(ostScript)g(\014le.)34 b(That)19 b(means)0 +2334 y(that)14 b(in)o(v)m(alid)j(argumen)o(ts)d(can)h(generate)g(P)o +(ostScript)f(errors)h(when)g(the)g(do)q(cumen)o(t)g(is)g(prin)o(ted.)21 +b(F)l(or)14 b(instance)0 2396 y(the)j(argumen)o(t)f(of)h(the)g +Fq(\\setgray)e Ft(command)i(is)h(passed)f(straigh)o(t)f(through)g(to)h +(the)g(P)o(ostScript)f(\014le.)26 b(If)18 b(this)0 2458 +y(argumen)o(t)j(is)i(non-n)o(umeric,)i(a)c(P)o(ostScript)h(error)f +(results.)41 b(Not)22 b(all)h(P)o(ostScript)f(prin)o(ters)g(rep)q(ort)g +(errors)0 2521 y(bac)o(k)c(to)g(the)g(user.)30 b(The)18 +b(prin)o(t)h(ma)o(y)e(just)h(stop)g(prematurely)l(.)30 +b(One)19 b(approac)o(h)f(to)g(debugging)h(is)g(to)f(use)g(a)0 +2583 y(P)o(ostScript)13 b(preview)o(er)g(on)g(a)g(w)o(orkstation.)18 +b(That)12 b(w)o(a)o(y)l(,)h(one)g(can)g(determine)h(at)f(whic)o(h)h(p)q +(oin)o(t)f(in)h(the)f(dra)o(wing)0 2645 y(the)i(P)o(ostScript)g(error)g +(o)q(ccurs.)p eop +%%Page: 26 28 +26 27 bop 0 -83 a Ft(26)1722 b(T)1793 -73 y(E)1819 -83 +y(Xdra)o(w)0 158 y Fs(5.2)33 b(Extending)17 b(T)472 172 +y(E)507 158 y(Xdra)n(w)62 314 y Ft(T)87 323 y(E)113 314 +y(Xdra)o(w)i(is)h(implemen)o(ted)h(using)g(a)e(com)o(bination)h(of)g(T) +1098 323 y(E)1123 314 y(X)g(commands)f(and)h(P)o(ostScript)g(co)q(de.) +33 b(This)0 376 y(section)16 b(discusses)g(some)f(of)g(the)g(implemen)o +(tational)i(issues)f(as)f(they)g(relate)g(to)g(extending)h(T)1646 +386 y(E)1672 376 y(Xdra)o(w.)62 531 y(T)87 541 y(E)113 +531 y(Xdra)o(w)e(as)g(implemen)o(ted,)i(o\013ers)d(a)h(basic)h(set)g +(of)f(dra)o(wing)g(features.)19 b(These)c(are)f(adequate)h(for)f +(certain)0 593 y(tasks)h(suc)o(h)h(as)f(pro)q(ducing)i(blo)q(c)o(k)g +(diagrams.)k(There)16 b(are)f(di\013eren)o(t)h(approac)o(hes)g(to)f +(extending)i(T)1737 603 y(E)1762 593 y(Xdra)o(w)f(to)0 +656 y(include)h(other)e(functions.)20 b(In)15 b(some)g(cases,)f(the)h +(desired)h(functionalit)o(y)g(can)f(b)q(e)g(ac)o(hiev)o(ed)h(b)o(y)f +(writing)g(a)f(T)1890 665 y(E)1916 656 y(X)0 718 y(macro)h(whic)o(h)h +(builds)h(on)f(top)f(of)g(the)g(existing)i(T)870 728 +y(E)895 718 y(Xdra)o(w)e(commands.)20 b(As)c(these)f(extensions)h(b)q +(ecome)g(more)0 780 y(complex,)22 b(the)f(limitations)g(of)f(T)595 +790 y(E)621 780 y(X)g(for)g(computations)g(b)q(ecome)h(increasingly)h +(eviden)o(t.)36 b(In)21 b(other)f(cases,)0 842 y(access)d(to)g +(di\013eren)o(t)g(features)g(of)g(P)o(ostScript)g(is)h(desired.)27 +b(The)18 b(appropriate)f(approac)o(h)g(w)o(ould)g(b)q(e)h(to)f(write)0 +905 y(new)e(P)o(ostScript)g(pro)q(cedures)h(whic)o(h)g(can)g(b)q(e)g +(accessed)f(b)o(y)h(T)1088 915 y(E)1113 905 y(X)f(macros.)62 +1060 y(Included)i(with)d(T)374 1070 y(E)399 1060 y(Xdra)o(w)g(is)g(a)g +(set)f(of)h(macros)f(for)g(directly)i(accessing)g(P)o(ostScript)f +(functions.)20 b(These)14 b(are)0 1122 y(describ)q(ed)j(in)f(an)f(app)q +(endix)i(\(see)e(App)q(endix)j(A)d([P)o(ostScript)g(Commands],)e(page)j +(31\).)62 1278 y(T)87 1287 y(E)113 1278 y(Xdra)o(w)9 +b(also)i(comes)f(with)g(a)g(to)q(olb)q(o)o(x)g(of)g(routines)h(for)e +(handling)j(m)o(uc)o(h)e(of)g(the)h(user)f(in)o(terface,)h(con)o(v)o +(erting)0 1340 y(b)q(et)o(w)o(een)j(di\013eren)o(t)g(co)q(ordinate)g +(represen)o(tations)g(and)g(the)g(lik)o(e.)20 b(The)14 +b(macros)f(for)g(co)q(ordinate)i(deco)q(ding)g(and)0 +1402 y(for)i(computations)h(in)o(v)o(olving)h(co)q(ordinates)f(are)f +(describ)q(ed)j(in)e(an)g(app)q(endix)h(\(see)f(App)q(endix)i(B)d([T) +1793 1412 y(E)1819 1402 y(Xdra)o(w)0 1464 y(T)l(o)q(olb)q(o)o(x],)e +(page)g(35\).)0 1836 y Fj(5.2.1)30 b(Scaling)62 1992 +y Ft(The)17 b(scaling)h(commands)f(pro)o(vided)h(in)g(T)804 +2001 y(E)829 1992 y(Xdra)o(w)e(are)h(designed)h(to)f(a\013ect)f(only)h +(the)g(co)q(ordinate)h(v)m(alues)0 2054 y(sp)q(eci\014ed)c(in)f +(commands.)19 b(F)l(or)11 b(instance,)i(c)o(hanging)f(the)g +Fq(\\setunitscale)f Ft(v)m(alue)i(c)o(hanges)f(the)g(in)o(terpretation) +0 2116 y(of)k(the)h(co)q(ordinate)g(in)g(an)g Fq(\\avec)d(\()p +Fo(x)k(y)t Fq(\))f Ft(command,)f(but)h(do)q(es)g(not)f(c)o(hange)h(the) +f(line)j(width)e(or)f(arro)o(whead)0 2178 y(sizes)j(in)f(e\013ect.)28 +b(None)18 b(of)g(the)g(T)589 2188 y(E)614 2178 y(Xdra)o(w)f(scaling)i +(commands)f(a\013ect)f(the)h(size)h(of)e(T)1517 2188 +y(E)1543 2178 y(X)h(text)f(pro)q(duced)i(b)o(y)l(,)0 +2241 y(for)f(instance,)h(the)f Fq(\\htext)g Ft(command.)29 +b(Scale)19 b(c)o(hanges)f(will)i(ho)o(w)o(ev)o(er)d(a\013ect)h(the)g(p) +q(ositioning)i(of)e(text)g(for)0 2303 y(subsequen)o(t)e(commands.)62 +2458 y(The)c(line)i(parameters)d(are)h(c)o(hanged)g(only)h(if)f(the)g +(corresp)q(onding)h(commands)f(to)f(c)o(hange)i(them)f(are)f(issued.)0 +2521 y(If)h(the)g Fq(\\linewd)e Ft(command)i(is)g(giv)o(en,)g(the)g +(curren)o(t)f(co)q(ordinate)h(scaling)h(is)f(used)g(to)f(determine)i +(the)e(line)j(width.)0 2583 y(T)l(o)k(ac)o(hiev)o(e)g(a)g(b)q(eha)o +(viour)h(more)e(lik)o(e)i(a)f(global)h(scaling,)g(whenev)o(er)f(the)h +(scale)f(factor)f(is)i(c)o(hanged,)f(the)g(line)0 2645 +y(parameters)c(should)j(b)q(e)e(set)g(again.)p eop +%%Page: 27 29 +27 28 bop 0 -83 a Ft(Chapter)15 b(5:)k(More)c(Details)1417 +b(27)0 158 y Fj(5.2.2)30 b(Resolution)62 307 y Ft(T)87 +317 y(E)113 307 y(Xdra)o(w)13 b(scales)h(co)q(ordinates)g(b)q(efore)g +(passing)g(them)g(to)f(P)o(ostScript.)19 b(Keeping)d(trac)o(k)c(of)i +(the)g(co)q(ordinate)0 369 y(scaling)19 b(is)f(necessary)l(,)g(in)h(an) +o(y)e(ev)o(en)o(t,)h(to)f(allo)o(w)h(T)896 379 y(E)922 +369 y(Xdra)o(w)f(to)g(compute)h(the)f(maxim)o(um)h(excursions)h(of)e +(the)0 431 y(co)q(ordinates.)24 b(T)288 441 y(E)313 431 +y(Xdra)o(w)16 b(uses)h(pixel)h(units)f(in)g(its)g(P)o(ostScript)f(co)q +(de.)24 b(One)17 b(pixel)h(unit)g(is)e(equal)i(to)d(1/300)g(of)0 +494 y(an)e(inc)o(h.)21 b(T)201 503 y(E)226 494 y(Xdra)o(w)13 +b(issues)h(P)o(ostScript)f(commands)h(with)f(in)o(teger)h(v)m(alued)h +(pixel)g(co)q(ordinates.)20 b(This)14 b(sets)f(the)0 +556 y(p)q(ositioning)i(resolution)f(for)f(T)533 566 y(E)559 +556 y(Xdra)o(w.)18 b(The)c(passing)g(of)f(in)o(teger)h(v)m(alued)h(co)q +(ordinates)e(whic)o(h)i(corresp)q(ond)f(to)0 618 y(the)i(device)h +(resolution)f(k)o(eeps)g(lines)h(aligned)h(with)e(the)f(device)i(grid;) +f(parallel)h(lines)h(of)d(the)h(same)f(width)h(will)0 +681 y(b)q(e)g(rendered)g(with)g(the)f(same)g(width.)62 +829 y(The)i(p)q(osition)h(sa)o(ving)e(mec)o(hanism)h(in)h(T)787 +839 y(E)812 829 y(Xdra)o(w)e(\(see)h(Section)g(3.3)f([Sa)o(ving)g(p)q +(ositions],)h(page)g(18\))f(asso-)0 891 y(ciates)g(the)f(pixel)i(co)q +(ordinates)e(of)g(a)g(p)q(osition)h(with)g(the)f(sp)q(eci\014ed)i +(name.)62 1040 y(T)87 1050 y(E)113 1040 y(Xdra)o(w)g(uses)i(the)f +(limited)i(real)e(n)o(um)o(b)q(er)g(represen)o(tation)h(pro)o(vided)f +(b)o(y)g(T)1440 1050 y(E)1466 1040 y(X.)g(These)g(op)q(erations)g(are)0 +1102 y(based)i(on)f(the)h(represen)o(tation)f(of)h(dimensions)h(as)e +(real-v)m(alued)i(n)o(um)o(b)q(ers)f(of)f(p)q(oin)o(ts.)34 +b(In)o(ternally)20 b(in)h(T)1878 1112 y(E)1903 1102 y(X,)0 +1164 y(dimensions)e(are)d(stored)h(32-bit)g(v)m(alues,)h(normalized)h +(so)d(that)h(1)f(pt)h(corresp)q(onds)h(to)e(the)h(scaled)h(p)q(oin)o(t) +f(\(sp\))0 1227 y(v)m(alue)d(of)e(65536.)18 b(Dimensions)13 +b(with)g(magnitudes)g(b)q(et)o(w)o(een)g(0.000015)e(pt)h(and)h(32767)e +(pt)i(can)g(b)q(e)g(represen)o(ted.)0 1289 y(This)k(is)g(also)g(the)g +(dynamic)h(range)e(of)g(the)h(T)793 1299 y(E)818 1289 +y(Xdra)o(w)g(pixel)h(co)q(ordinates)f(passed)g(to)f(P)o(ostScript.)24 +b(T)1793 1299 y(E)1819 1289 y(Xdra)o(w)0 1351 y(m)o(ust)17 +b(con)o(v)o(ert)f(from)g(user)i(supplied)h(co)q(ordinates)f(using)g +(the)f(scaling)h(factor)e(\(whic)o(h)i(itself)g(consists)g(of)e(t)o(w)o +(o)0 1414 y(comp)q(onen)o(ts,)d(the)g(unit)h(scale)g(and)f(the)g +(segmen)o(t)g(scale\))g(and)g(a)g(pixel)i(con)o(v)o(ersion)e(factor.)18 +b(The)13 b(use)h(of)e(limited)0 1476 y(precision)j(real)e(n)o(um)o(b)q +(ers)h(in)g(these)f(computations)g(can)h(cause)f(accum)o(ulation)h(of)f +(error)f(when)i(relativ)o(e)g(scaling)0 1538 y(is)i(used)f(rep)q +(eatedly)l(.)0 1850 y Fj(5.2.3)30 b(T)-5 b(ext)15 b(placemen)n(t)62 +1998 y Ft(While)j(in)f(the)f(T)354 2008 y(E)380 1998 +y(Xdra)o(w)g(en)o(vironmen)o(t,)g(T)828 2008 y(E)853 +1998 y(X)h(text)f(is)g(placed)i(in)f(a)f(T)1307 2008 +y(E)1332 1998 y(X)h(b)q(o)o(x)f(while)i(P)o(ostScript)e(co)q(de)g(is)0 +2061 y(written)e(to)e(the)i(in)o(termediate)g(\014le.)21 +b(A)o(t)13 b(the)g(end)h(of)g(the)f(T)1017 2070 y(E)1043 +2061 y(Xdra)o(w)g(en)o(vironmen)o(t,)g(the)h(size)g(of)f(the)h(dra)o +(wing)f(is)0 2123 y(determined.)24 b(A)16 b(T)333 2133 +y(E)358 2123 y(X)g(b)q(o)o(x)g(of)g(this)h(size)f(is)h(created.)22 +b(The)17 b(T)1071 2133 y(E)1096 2123 y(X)f Fq(\\special)f +Ft(mec)o(hanism)i(is)g(used)f(to)g(instruct)0 2185 y(the)e(P)o +(ostScript)g(driv)o(er)g(program)f(to)h(p)q(osition)h(the)f(P)o +(ostScript)g(dra)o(wing)g(from)f(the)i(in)o(termediate)f(\014le)i(in)f +(this)0 2247 y(area.)23 b(Next,)17 b(the)f(text)g(generated)h(b)o(y)f +(T)719 2257 y(E)745 2247 y(Xdra)o(w)g(is)h(p)q(ositioned)h(and)f +(placed)h(in)f(the)g(b)q(o)o(x.)23 b(Note)17 b(that)e(when)0 +2310 y(the)i(do)q(cumen)o(t)h(is)f(prin)o(ted,)h(the)f(P)o(ostScript)g +(dra)o(wing)g(is)h(placed)g(on)f(the)g(page)g(b)q(efore)g(the)h(T)1679 +2320 y(E)1704 2310 y(X)f(text;)g(T)1890 2320 y(E)1916 +2310 y(X)0 2372 y(text)e(will)i(app)q(ear)e(on)g(top)g(of)g(graphics.) +62 2521 y(The)k(rotation)e(of)g(text)h(is)h(carried)f(out)g(with)g +(in-line)j(P)o(ostScript)d(co)q(de)h(whic)o(h)g(do)q(es)f(not)g(app)q +(ear)g(in)h(the)0 2583 y(in)o(termediate)c(P)o(ostScript)f(\014le.)20 +b(This)15 b(co)q(de)f(is)h(sen)o(t)f(to)f(the)h(P)o(ostScript)g(driv)o +(er)g(with)h(a)f Fq(\\special)e Ft(command.)0 2645 y(This)k(P)o +(ostScript)f(co)q(de)h(is)f(em)o(b)q(edded)i(in)f(the)f(dvi)h(\(device) +h(indep)q(enden)o(t\))g(\014le)f(that)f(T)1527 2655 y(E)1552 +2645 y(X)g(pro)q(duces.)p eop +%%Page: 28 30 +28 29 bop 0 -83 a Ft(28)1722 b(T)1793 -73 y(E)1819 -83 +y(Xdra)o(w)0 158 y Fj(5.2.4)30 b(The)15 b(in)n(termediate)g(P)n +(ostScript)h(\014le)62 295 y Ft(The)c(in)o(termediate)g(P)o(ostScript)f +(\014le)h(consists)f(of)g(a)g(header,)h(a)f(b)q(o)q(dy)h(and)f(a)g +(trailer)h(follo)o(wing)g(Encapsulated)0 358 y(P)o(ostScript)g(File)h +(\(EPSF\))e(standards.)19 b(The)12 b(header)h(sets)e(up)i(P)o +(ostScript)f(de\014nitions)i(and)e(default)h(parameter)0 +420 y(v)m(alues.)29 b(The)18 b(trailer)h(includes)h(the)e +Fq(BoundingBox)e Ft(information)i(whic)o(h)h(giv)o(es)f(the)g(co)q +(ordinates)h(in)f(default)0 482 y(P)o(ostScript)d(units)h(\(72)e(p)q +(er)h(inc)o(h\))h(for)f(the)g(lo)o(w)o(er)f(lefthand)i(corner)f(and)h +(the)f(upp)q(er)h(righ)o(thand)f(corner)g(of)g(the)0 +544 y(dra)o(wing.)k(The)12 b(b)q(o)q(dy)h(of)f(the)g(in)o(termediate)h +(P)o(ostScript)f(\014le)h(con)o(tains)g(the)f(P)o(ostScript)g(commands) +g(generated)0 607 y(b)o(y)j(T)88 616 y(E)114 607 y(Xdra)o(w.)62 +744 y(Man)o(y)d(mo)o(v)o(es)f(in)i(T)394 753 y(E)419 +744 y(Xdra)o(w)f(serv)o(e)g(only)g(to)g(p)q(osition)h(text)f(or)f(to)h +(reset)g(sa)o(v)o(ed)f(p)q(ositions.)20 b(T)1648 753 +y(E)1674 744 y(Xdra)o(w)11 b(bu\013ers)0 806 y(mo)o(v)o(e)h(commands)g +(in)i(order)e(to)g(b)q(e)i(able)f(to)f(collapse)i(runs)f(of)f(mo)o(v)o +(es.)19 b(Only)14 b(the)e(last)h(mo)o(v)o(e)f(of)g(a)h(run)g(of)f(mo)o +(v)o(es)0 868 y(is)i(actually)g(written)g(to)f(the)g(P)o(ostScript)h +(\014le.)20 b(Ho)o(w)o(ev)o(er)12 b(the)i(in)o(termediate)g(mo)o(v)o +(es)f(still)i(a\013ect)e(the)g(size)i(of)e(the)0 930 +y(dra)o(wing.)29 b(The)18 b(expunging)i(of)d(mo)o(v)o(es)h(means)g +(that)f(the)i(P)o(ostScript)e(\014le)j Fq(BoundingBox)c +Ft(information)j(ma)o(y)0 993 y(indicate)e(a)e(dra)o(wing)g(size)h +(larger)f(than)g(the)g(P)o(ostScript)g(commands)g(themselv)o(es)h(w)o +(ould)g(w)o(arran)o(t.)62 1130 y(Dra)o(wing)22 b(segmen)o(ts)h(in)g(T) +539 1139 y(E)565 1130 y(Xdra)o(w)f(sho)o(w)g(up)i(in)f(the)g(P)o +(ostScript)g(\014le)h(as)e(sa)o(v)o(es)g(and)h(restores)f(of)h(the)0 +1192 y(P)o(ostScript)d(graphics)h(state.)33 b(Segmen)o(t)20 +b(starts)f(are)h(bu\013ered)h(and)f(only)h(written)f(out)g(if)g +(necessary)l(.)35 b(This)0 1254 y(w)o(a)o(y)14 b(\\empt)o(y")h(segmen)o +(ts)g(do)g(not)g(generate)g(output)g(to)g(the)g(P)o(ostScript)h +(\014le.)21 b(These)16 b(empt)o(y)f(segmen)o(ts)g(arise)0 +1316 y(if)22 b(a)f(segmen)o(t)f(con)o(tains)i(only)f(mo)o(v)o(es)g(and) +g(text)g(commands.)38 b(The)21 b(mo)o(v)o(es)f(inside)j(the)f(segmen)o +(t)e(are)h(not)0 1379 y(needed)16 b(since)h(they)e(are)g(lo)q(cal)h(to) +f(the)g(segmen)o(t,)f(and)i(the)f(text)g(commands)g(do)g(not)f +(generate)h(output)g(to)g(the)0 1441 y(P)o(ostScript)g(\014le.)62 +1578 y(If)h(T)133 1588 y(E)158 1578 y(Xdra)o(w)f(is)h(used)f(only)h +(for)f(mo)o(v)o(es)f(and)h(text,)g(no)g(in)o(termediate)h(P)o +(ostScript)f(\014le)h(will)h(b)q(e)f(created.)0 1798 +y Fs(5.3)33 b(Ho)n(w)14 b(T)304 1812 y(E)339 1798 y(Xdra)n(w)h(merges)f +(graphics)i(and)g(text)62 1935 y Ft(T)87 1945 y(E)113 +1935 y(Xdra)o(w)f(creates)g(a)g(b)q(o)o(x)g(whic)o(h)i(is)f(the)f(same) +h(size)g(as)f(the)h(graphic.)21 b(The)16 b(prin)o(ter)f(driv)o(er)h +(will)h(place)g(the)0 1998 y(P)o(ostScript)h(graphic)h(in)o(to)g(this)f +(space.)30 b(An)o(y)19 b(T)852 2007 y(E)877 1998 y(X)g(text)e +(generated)i(b)o(y)f(the)h(T)1411 2007 y(E)1436 1998 +y(Xdra)o(w)f(commands)g(will)i(b)q(e)0 2060 y(sup)q(erimp)q(osed)d(on)e +(this)h(graphic.)62 2197 y(The)c(LaT)228 2207 y(E)254 +2197 y(X2e)f(fron)o(t-end)h(for)f(T)627 2207 y(E)653 +2197 y(Xdra)o(w)g(is)h(enabled)h(b)o(y)f(including)i(the)e +Fq(texdraw)e Ft(pac)o(k)m(age.)19 b(The)12 b Fq(texdraw)0 +2259 y Ft(pac)o(k)m(age)21 b(automatically)g(in)o(v)o(ok)o(es)g(the)f +(standard)h Fq(graphics)e Ft(pac)o(k)m(age)i(distributed)h(with)g(LaT) +1720 2269 y(E)1745 2259 y(X2e.)37 b(The)0 2321 y Fq(graphics)18 +b Ft(pac)o(k)m(age)h(has)g(supp)q(ort)g(for)f(a)h(n)o(um)o(b)q(er)g(of) +g(di\013eren)o(t)g(prin)o(ter)g(driv)o(ers,)h(including)i(a)c(n)o(um)o +(b)q(er)i(for)0 2384 y(P)o(ostScript)c(prin)o(ters.)22 +b(An)o(y)15 b(options)h(to)g(the)g Fq(texdraw)e Ft(pac)o(k)m(age)i(are) +g(passed)g(on)g(to)f(the)h Fq(graphics)e Ft(pac)o(k)m(age.)0 +2446 y(Suc)o(h)i(an)f(option)g(can)h(b)q(e)g(used)f(to)g(select)h(a)f +(driv)o(er)g(other)g(than)g(the)h(default)f(one.)62 2583 +y(Within)20 b(the)f Fq(graphics)e Ft(pac)o(k)m(age,)i(the)g(driv)o(er)g +(option)f(is)h(used)g(to)f(select)i(de\014nitions)g(for)e(the)h(lo)o +(w-lev)o(el)0 2645 y(macros)11 b(whic)o(h)i(generate)e(the)h +Fq(\\special)f Ft(commands)h(needed)h(to)e(request)h(insertion)h(of)f +(a)f(graphics)i(\014le)g(and)f(to)p eop +%%Page: 29 31 +29 30 bop 0 -83 a Ft(Chapter)15 b(5:)k(More)c(Details)1417 +b(29)0 158 y(rotate)12 b(text.)225 142 y Fn(1)263 158 +y Ft(T)288 168 y(E)313 158 y(Xdra)o(w)h(uses)h(the)f(user-lev)o(el)j +(macros)c(de\014ned)j(b)o(y)f(the)f Fq(graphics)g Ft(pac)o(k)m(age)g +(\(see)h(Section)g(4.1)0 221 y([P)o(ostScript)d(prin)o(ter)g(driv)o +(ers],)h(page)f(23\).)18 b(When)12 b(not)f(used)h(with)g(the)f(LaT)1302 +230 y(E)1328 221 y(X2e)g(fron)o(t-end,)h(T)1648 230 y(E)1673 +221 y(Xdra)o(w)f(de\014nes)0 283 y(v)o(ersions)k(of)g(these)h(macros)e +(that)g(are)h(suitable)i(for)d(use)i(with)f(the)h Fq(dvips)e +Ft(prin)o(ter)i(driv)o(er.)p 0 2589 600 2 v 21 2627 a +Fn(1)62 2644 y Ft(Not)f(all)h(P)o(ostScript)f(driv)o(ers)h(supp)q(ort)f +(text)g(rotation.)p eop +%%Page: 30 32 +30 31 bop 0 -83 a Ft(30)1722 b(T)1793 -73 y(E)1819 -83 +y(Xdra)o(w)p eop +%%Page: 31 33 +31 32 bop 0 -83 a Ft(App)q(endix)17 b(A:)e(P)o(ostScript)g(Commands) +1190 b(31)0 158 y Fp(App)r(endix)13 b(A)41 b(P)n(ostScript)15 +b(Commands)62 341 y Ft(This)i(app)q(endix)g(describ)q(es)h(a)d(set)g +(of)h(macros)f(for)g(accessing)h(some)g(of)f(the)h(P)o(ostScript)g +(builtin)i(functions.)0 403 y(Eac)o(h)13 b(of)f(these)h(macros)f +(issues)h(a)g(single)h(P)o(ostScript)e(command.)19 b(The)13 +b(extra)f(services)i(pro)o(vided)f(b)o(y)g(T)1793 413 +y(E)1819 403 y(Xdra)o(w)0 465 y(are)20 b(the)h(in)o(terpretation)f(of)h +(co)q(ordinates)f(in)i(user)e(units)h(relativ)o(e)h(to)d(the)i(curren)o +(t)f(dra)o(wing)h(segmen)o(t)f(and)0 528 y(the)c(writing)g(of)f(a)h(p)q +(ending)h(T)525 537 y(E)551 528 y(Xdra)o(w)e(mo)o(v)o(e)g(to)g(the)h(P) +o(ostScript)f(\014le.)23 b(This)16 b(last)g(op)q(eration)g(establishes) +h(the)0 590 y(curren)o(t)f(p)q(oin)o(t)h(in)g(P)o(ostScript.)24 +b(The)16 b(user)h(of)f(these)g(commands)h(should)g(b)q(e)g(familiar)g +(with)g(the)g(concepts)f(of)0 652 y(path)h(construction)h(and)g +(\014lling)i(in)e(P)o(ostScript.)27 b(F)l(urther)17 b(details)i(on)e +(the)h(P)o(ostScript)f(functions)i(used)f(can)0 714 y(found)h(in)h(the) +e Fo(P)o(ostScript)h(Language)f(Reference)i(Man)o(ual,)g(Second)f +(Edition)p Ft(,)h(Adob)q(e)g(Systems,)f(Addison-)0 777 +y(W)l(esley)l(,)d(1990.)62 914 y(These)g(macros)e(are)h(distributed)i +(in)f(\014le)g(`)p Fq(txdps.tex)p Ft('.)62 1051 y(The)i +Fq(\\PSsetlinecap)e Ft(and)h Fq(\\PSsetlinejoin)f Ft(commands)h(con)o +(trol)g(the)g(w)o(a)o(y)g(line)i(ends)f(and)f(line)j(joins)0 +1113 y(are)15 b(rendered.)22 b(The)15 b(default)h(v)m(alues)h(set)e(b)o +(y)g(T)823 1123 y(E)849 1113 y(Xdra)o(w)g(\(round)g(caps)g(and)h(round) +g(join\))f(are)g(appropriate)h(for)0 1175 y(most)e(dra)o(wings.)20 +b(Changes)15 b(to)g(these)g(parameters)f(apply)i(to)f(the)g(curren)o(t) +g(and)h(subsequen)o(t)g(paths.)0 1335 y Fq(\\PSsetlinecap)d +Fo(t)o(yp)q(e)240 1397 y Ft(Set)j(the)h(line)h(cap)f(parameter.)22 +b(The)17 b(v)m(alue)g Fq(0)g Ft(giv)o(es)f(a)g(butt)h(cap;)f +Fq(1)h Ft(giv)o(es)f(a)g(round)h(cap;)g(and)f Fq(2)240 +1459 y Ft(giv)o(es)f(a)g(pro)s(jecting)g(square)g(cap.)20 +b(The)c(initial)h(v)m(alue)g(is)e(corresp)q(onds)h(to)e(a)h(round)h +(cap.)0 1544 y Fq(\\PSsetlinejoin)d Fo(t)o(yp)q(e)240 +1607 y Ft(Set)h(the)h(line)h(join)f(parameter.)k(The)14 +b(v)m(alue)i Fq(0)e Ft(giv)o(es)g(a)g(miter)h(join;)g +Fq(1)f Ft(giv)o(es)g(a)g(round)h(join;)g(and)f Fq(2)240 +1669 y Ft(giv)o(es)h(a)g(b)q(ev)o(el)i(join.)j(The)15 +b(initial)j(v)m(alue)e(corresp)q(onds)g(to)e(a)h(round)h(join.)62 +1817 y(P)o(ostScript)k(paths)f(and)h(\014ll)h(op)q(erations)f(can)f(b)q +(e)i(con)o(trolled)f(b)o(y)f(a)h(n)o(um)o(b)q(er)g(of)f(functions.)34 +b(By)19 b(design,)0 1880 y(T)25 1889 y(E)51 1880 y(Xdra)o(w)13 +b(alw)o(a)o(ys)g(main)o(tains)h(a)g(de\014ned)h(P)o(ostScript)f(curren) +o(t)g(p)q(oin)o(t.)20 b(Some)13 b(of)h(the)g(follo)o(wing)h(macros)e +(cause)0 1942 y(the)h(P)o(ostScript)g(curren)o(t)g(p)q(oin)o(t)h(to)e +(b)q(ecome)i(unde\014ned.)22 b(The)14 b(P)o(ostScript)g(curren)o(t)g(p) +q(oin)o(t)h(m)o(ust)e(b)q(e)i(set)f(again)0 2004 y(\(sa)o(y)g(with)i(a) +f Fq(\\PSmoveto)f Ft(command\))g(b)q(efore)i(in)o(v)o(oking)g(basic)f +(T)1149 2014 y(E)1175 2004 y(Xdra)o(w)g(commands.)0 2164 +y Fq(\\PSstroke)240 2226 y Ft(Strok)o(e)g(a)g(P)o(ostScript)g(path.)21 +b(The)15 b(curren)o(t)h(path)f(is)h(strok)o(ed)f(with)g(the)h(curren)o +(t)f(gra)o(y)g(lev)o(el)i(\(set)240 2288 y(with)c Fq(\\setgray)p +Ft(\))d(and)j(the)f(curren)o(t)g(line)i(pattern)e(\(set)f(with)i +Fq(\\lpatt)p Ft(\).)18 b(The)12 b(P)o(ostScript)g(curren)o(t)240 +2351 y(p)q(oin)o(t)k(b)q(ecomes)f(unde\014ned.)0 2436 +y Fq(\\PSnewpath)240 2498 y Ft(Establish)h(a)f(new)g(path.)20 +b(The)c(P)o(ostScript)f(curren)o(t)g(p)q(oin)o(t)g(b)q(ecomes)h +(unde\014ned.)0 2583 y Fq(\\PSclosepath)240 2645 y Ft(Close)f(a)g +(subpath.)21 b(A)15 b(new)g(subpath)h(is)f(started.)p +eop +%%Page: 32 34 +32 33 bop 0 -83 a Ft(32)1722 b(T)1793 -73 y(E)1819 -83 +y(Xdra)o(w)0 158 y Fq(\\PSfill)72 b Ft(Fill)14 b(a)d(region)i +(de\014ned)g(b)o(y)f(a)g(path.)19 b(Eac)o(h)12 b(subpath)g(is)h(closed) +g(and)f(the)g(enclosed)i(regions)e(pain)o(ted)240 221 +y(with)h(the)f(curren)o(t)h(gra)o(y)e(lev)o(el.)20 b(The)13 +b(P)o(ostScript)f(curren)o(t)h(p)q(oin)o(t)f(b)q(ecomes)i(unde\014ned.) +20 b(The)13 b(gra)o(y)240 283 y(lev)o(el)k(can)e(b)q(e)h(set)f(with)g +(the)h(T)767 293 y(E)792 283 y(Xdra)o(w)f(command)g Fq(\\setgray)p +Ft(.)62 435 y(The)g(follo)o(wing)g(line)h(commands)e(in)o(terpret)g(co) +q(ordinates)h(relativ)o(e)f(to)g(the)g(curren)o(t)g(T)1557 +445 y(E)1583 435 y(Xdra)o(w)f(scaling)j(and)0 497 y(dra)o(wing)f +(segmen)o(t.)20 b(The)15 b(sp)q(eci\014ed)i(co)q(ordinate)f(a\013ects)e +(the)i(dra)o(wing)f(size)h(as)f(determined)h(b)o(y)f(T)1726 +507 y(E)1752 497 y(Xdra)o(w.)0 663 y Fq(\\PSlineto)f(\()p +Fo(x)k(y)t Fq(\))240 726 y Ft(Add)g(a)g(line)h(segmen)o(t)e(to)g(the)h +(curren)o(t)g(path.)27 b(This)18 b(command)g(is)g(iden)o(tical)h(to)e +(the)h(T)1793 735 y(E)1819 726 y(Xdra)o(w)240 788 y(command)e +Fq(\\lvec)p Ft(.)21 b(The)c(P)o(ostScript)e(curren)o(t)h(p)q(oin)o(t)h +(m)o(ust)e(b)q(e)i(de\014ned)g(b)q(efore)g(this)f(command)240 +850 y(is)g(issued.)0 940 y Fq(\\PSmoveto)e(\()p Fo(x)k(y)t +Fq(\))240 1002 y Ft(Mo)o(v)o(e)i(to)h(the)g(co)q(ordinate)g(sp)q +(eci\014ed)i(b)o(y)e Fq(\()p Fo(x)d(y)t Fq(\))p Ft(.)38 +b(The)21 b(P)o(ostScript)g(curren)o(t)g(p)q(oin)o(t)g(b)q(ecomes)240 +1065 y(de\014ned.)62 1217 y(The)d(follo)o(wing)g(macros)f(pro)o(vide)i +(access)e(to)g(the)h(general)g(arc)f(commands)h(in)g(P)o(ostScript.)27 +b(The)18 b(co)q(ordi-)0 1279 y(nates)d(are)g(in)o(terpreted)i(relativ)o +(e)f(to)f(the)g(curren)o(t)h(T)910 1289 y(E)935 1279 +y(Xdra)o(w)f(scaling)i(and)e(dra)o(wing)h(segmen)o(t.)k(The)c(sp)q +(eci\014ed)0 1341 y(co)q(ordinate)g(a\013ects)e(the)h(dra)o(wing)g +(size)i(as)d(determined)j(b)o(y)e(T)1083 1351 y(E)1108 +1341 y(Xdra)o(w.)0 1508 y Fq(\\PSarc)f(r:)p Fo(radius)k +Fq(sd:)p Fo(start-angle)e Fq(ed:)p Fo(end-angle)j Fq(\()p +Fo(x)f(y)t Fq(\))240 1570 y Ft(Dra)o(w)12 b(a)h(coun)o(terclo)q(c)o +(kwise)h(arc.)19 b(The)13 b(cen)o(ter)g(of)g(the)g(arc)g(is)h(at)e(the) +h(giv)o(en)h(p)q(osition.)20 b(The)13 b(radius)240 1632 +y(is)g(sp)q(eci\014ed)i(b)o(y)e Fo(radius)p Ft(.)19 b(The)13 +b(start)f(and)h(end)g(angles)h(\(in)f(degrees\))f(are)h(sp)q(eci\014ed) +i(b)o(y)d Fo(start-angle)240 1694 y Ft(and)i Fo(end-angle)p +Ft(.)21 b(If)14 b(the)f(P)o(ostScript)h(curren)o(t)f(p)q(oin)o(t)h(is)h +(de\014ned,)g(this)f(command)f(also)h(dra)o(ws)f(the)240 +1757 y(line)k(from)e(the)h(curren)o(t)f(p)q(oin)o(t)h(to)f(the)h(b)q +(eginning)h(of)e(the)h(arc.)k(The)c(line)h(and)f(arc)f(b)q(ecome)i +(part)240 1819 y(of)e(the)g(curren)o(t)g(path.)20 b(The)15 +b(curren)o(t)g(p)q(oin)o(t)h(b)q(ecomes)g(de\014ned.)0 +1909 y Fq(\\PSarcn)e(r:)p Fo(radius)k Fq(sd:)p Fo(start-angle)e +Fq(ed:)p Fo(end-angle)j Fq(\()p Fo(x)f(y)t Fq(\))240 +1971 y Ft(Dra)o(w)g(a)g(clo)q(c)o(kwise)i(arc.)31 b(The)19 +b(cen)o(ter)g(of)f(the)h(arc)g(is)g(at)g(the)g(giv)o(en)g(p)q(osition.) +32 b(The)19 b(radius)g(is)240 2033 y(sp)q(eci\014ed)f(b)o(y)e +Fo(radius)p Ft(.)23 b(The)17 b(start)d(and)j(end)f(angles)h(\(in)f +(degrees\))h(are)e(sp)q(eci\014ed)j(b)o(y)e Fo(start-angle)240 +2096 y Ft(and)e Fo(end-angle)p Ft(.)21 b(If)14 b(the)f(P)o(ostScript)h +(curren)o(t)f(p)q(oin)o(t)h(is)h(de\014ned,)g(this)f(command)f(also)h +(dra)o(ws)f(the)240 2158 y(line)k(from)e(the)h(curren)o(t)f(p)q(oin)o +(t)h(to)f(the)h(b)q(eginning)h(of)e(the)h(arc.)k(The)c(line)h(and)f +(arc)f(b)q(ecome)i(part)240 2220 y(of)e(the)g(curren)o(t)g(path.)20 +b(The)15 b(curren)o(t)g(p)q(oin)o(t)h(b)q(ecomes)g(de\014ned.)62 +2372 y(The)j(macro)e Fq(\\writeps)g Ft(pro)o(vides)h(the)g(general)h +(facilit)o(y)g(to)e(write)i(arbitrary)e(P)o(ostScript)h(commands)g(to)0 +2435 y(the)13 b(P)o(ostScript)f(\014le.)20 b(This)13 +b(macro)f(is)h(used)g(b)o(y)f(the)h(preceding)h(commands)e(and)h(b)o(y) +f(the)h(T)1571 2444 y(E)1596 2435 y(Xdra)o(w)f(commands)0 +2497 y(themselv)o(es.)20 b(This)13 b(facilit)o(y)g(has)f(to)g(b)q(e)h +(used)h(with)e(care)h(since)g(c)o(hanges)g(in)g(p)q(osition)h(or)e +(scaling)h(resulting)h(from)0 2559 y(the)h(P)o(ostScript)g(commands)g +(are)g(not)g(kno)o(wn)g(to)f(T)906 2569 y(E)932 2559 +y(Xdra)o(w.)p eop +%%Page: 33 35 +33 34 bop 0 -83 a Ft(App)q(endix)17 b(A:)e(P)o(ostScript)g(Commands) +1190 b(33)0 158 y Fq(\\writeps)14 b({<)p Fo(ps-commands)p +Fq(>})240 221 y Ft(W)l(rite)25 b(P)o(ostScript)f(commands)g(to)f(the)i +(in)o(termediate)g(P)o(ostScript)f(\014le.)48 b(Before)25 +b(the)f(com-)240 283 y(mands)15 b(are)g(inserted,)h(an)o(y)f(p)q +(ending)i(T)929 293 y(E)955 283 y(Xdra)o(w)e(mo)o(v)o(e)f(is)i(written) +f(to)g(the)g(P)o(ostScript)g(\014le.)22 b(The)240 345 +y(P)o(ostScript)15 b(scaling)h(giv)o(es)g(300)e(units/inc)o(h.)p +eop +%%Page: 34 36 +34 35 bop 0 -83 a Ft(34)1722 b(T)1793 -73 y(E)1819 -83 +y(Xdra)o(w)p eop +%%Page: 35 37 +35 36 bop 0 -83 a Ft(App)q(endix)17 b(B:)e(T)293 -73 +y(E)319 -83 y(Xdra)o(w)f(T)l(o)q(olb)q(o)o(x)1280 b(35)0 +158 y Fp(App)r(endix)13 b(B)41 b(T)500 174 y(E)543 158 +y(Xdra)n(w)15 b(T)-7 b(o)r(olb)r(o)n(x)62 329 y Ft(This)14 +b(app)q(endix)g(describ)q(es)h(some)d(of)g(the)h(macros)f(supplied)j +(with)f(T)1242 339 y(E)1267 329 y(Xdra)o(w)e(whic)o(h)i(can)f(b)q(e)g +(used)h(to)e(de\014ne)0 392 y(additional)17 b(commands)e(for)g +(creating)g(dra)o(wings.)21 b(The)15 b(macros)g(describ)q(ed)i(here)f +(w)o(ork)f(in)h(the)f(user)h(sp)q(eci\014ed)0 454 y(co)q(ordinate)e +(system.)19 b(Some)14 b(of)f(these)h(to)q(olb)q(o)o(x)g(macros)f(are)g +(used)h(b)o(y)g(the)g(T)1331 464 y(E)1356 454 y(Xdra)o(w)f(commands)h +(themselv)o(es,)0 516 y(others)h(are)g(supplied)i(in)f(an)f(auxiliary)i +(\014le)f(`)p Fq(txdtools.tex)p Ft('.)0 725 y Fs(B.1)33 +b(Co)r(ordinate)15 b(parsing)62 862 y Ft(The)g(co)q(ordinate)g(parsing) +h(macro)e Fq(\\getpos)f Ft(is)j(useful)g(for)e(creating)h(new)g +(commands.)k(This)d(macro)e(tak)o(es)0 924 y(care)19 +b(of)f(stripping)i(leading)g(and)f(trailing)h(blanks)g(from)e(co)q +(ordinates)h(sp)q(eci\014ed)i(b)q(et)o(w)o(een)e(paren)o(theses.)31 +b(In)0 986 y(addition,)21 b(sym)o(b)q(olic)f(co)q(ordinates)g(are)e +(translated)h(to)g(the)g(corresp)q(onding)h(relativ)o(e)g(co)q +(ordinate)f(using)h(the)0 1049 y(segmen)o(t)15 b(o\013set)f(and)h +(scaling)i(in)f(e\013ect.)62 1186 y(The)g(macro)e Fq(\\currentpos)g +Ft(returns)h(the)g(relativ)o(e)h(co)q(ordinates)f(of)g(the)g(curren)o +(t)g(p)q(osition.)21 b(The)16 b(returned)0 1248 y(v)m(alues)f(are)f +(relativ)o(e)h(to)e(the)i(curren)o(t)f(segmen)o(t)g(and)g(the)g(curren) +o(t)g(scaling.)21 b(The)14 b(macro)g Fq(\\cossin)f Ft(returns)h(the)0 +1310 y(real-v)m(alued)21 b(cosine)e(and)g(sine)h(of)e(the)h(direction)g +(of)g(the)f(line)j(joining)e(t)o(w)o(o)f(p)q(oin)o(ts.)30 +b(The)19 b(macro)f Fq(\\vectlen)0 1372 y Ft(returns)d(the)g(length)h +(of)f(a)g(v)o(ector.)k(The)c(results)h(app)q(ear)f(as)g(the)h(v)m(alue) +g(of)f(user)g(supplied)j(macro)c(names.)0 1526 y Fq(\\getpos)g(\()p +Fo(x)k(y)t Fq(\)\\)p Fo(mx)s Fq(\\)p Fo(m)o(y)240 1589 +y Ft(Deco)q(de)e(co)q(ordinate)h(v)m(alues.)23 b(The)16 +b(co)q(ordinates)g(sp)q(eci\014ed)i(b)o(y)e Fq(\()p Fo(x)i(y)t +Fq(\))e Ft(are)f(deco)q(ded.)23 b(Sym)o(b)q(olic)240 +1651 y(co)q(ordinates)18 b(are)g(translated)f(to)g(the)h(corresp)q +(onding)h(relativ)o(e)f(co)q(ordinate)h(using)f(the)g(curren)o(t)240 +1713 y(segmen)o(t)13 b(o\013set)f(and)h(scaling.)21 b(The)13 +b(resulting)h(c)o(haracter)f(strings)g(represen)o(ting)h(the)f(real-v)m +(alued)240 1776 y(co)q(ordinates)j(are)e(assigned)i(to)f(the)g(macros)f +(sp)q(eci\014ed)k(b)o(y)d Fq(\\)p Fo(mx)j Ft(and)d Fq(\\)p +Fo(m)o(y)t Ft(.)0 1855 y Fq(\\currentpos)f(\\)p Fo(mx)s +Fq(\\)p Fo(m)o(y)240 1917 y Ft(Return)20 b(the)g(co)q(ordinates)h(of)e +(the)h(curren)o(t)g(p)q(osition.)34 b(The)21 b(co)q(ordinates)f(are)f +(relativ)o(e)i(to)e(the)240 1979 y(curren)o(t)h(segmen)o(t)f(o\013set)g +(and)h(scaling.)34 b(The)20 b(resulting)h(c)o(haracter)e(strings)h +(represen)o(ting)g(the)240 2042 y(real-v)m(alued)d(co)q(ordinates)f +(are)f(assigned)g(to)g(the)g(macros)g(sp)q(eci\014ed)i(b)o(y)e +Fq(\\)p Fo(mx)j Ft(and)e Fq(\\)p Fo(m)o(y)t Ft(.)0 2121 +y Fq(\\cossin)e(\()p Fo(x1)19 b(y1)t Fq(\)\()p Fo(x2)e(y2)t +Fq(\)\\)p Fo(cosa)p Fq(\\)p Fo(sina)240 2183 y Ft(Return)g(the)f +(cosine)h(and)f(sine)h(of)f(the)g(direction)h(of)f(a)g(v)o(ector)f +(joining)i(t)o(w)o(o)e(p)q(oin)o(ts.)23 b(The)16 b(cosine)240 +2246 y(and)d(sine)h(of)f(the)g(angle)h(of)f(the)g(v)o(ector)f(whic)o(h) +i(go)q(es)f(from)g Fq(\()p Fo(x1)18 b(y1)t Fq(\))12 b +Ft(to)h Fq(\()p Fo(x2)18 b(y2)t Fq(\))p Ft(.)g(The)c(c)o(haracter)240 +2308 y(strings)f(represen)o(ting)g(these)g(real-v)m(alued)i(quan)o +(tities)e(are)g(assigned)g(to)f(the)h(macros)f(sp)q(eci\014ed)j(b)o(y) +240 2370 y Fq(\\)p Fo(cosa)g Ft(and)g Fq(\\)p Fo(sina)p +Ft(.)0 2449 y Fq(\\vectlen)f(\()p Fo(x1)k(y1)t Fq(\)\()p +Fo(x2)g(y2)t Fq(\)\\)p Fo(len)240 2512 y Ft(Return)c(the)g(length)g(of) +f(a)g(v)o(ector)g(joining)i(t)o(w)o(o)d(p)q(oin)o(ts.)20 +b(The)14 b(length)g(of)f(the)h(v)o(ector)e(is)i(relativ)o(e)h(to)240 +2574 y(the)d(curren)o(t)h(scaling.)20 b(The)12 b(c)o(haracter)g(string) +g(represen)o(ting)h(the)f(real-v)m(alued)j(length)e(is)f(assigned)240 +2636 y(to)j(the)g(macro)f(sp)q(eci\014ed)k(b)o(y)d Fq(\\)p +Fo(len)p Ft(.)p eop +%%Page: 36 38 +36 37 bop 0 -83 a Ft(36)1722 b(T)1793 -73 y(E)1819 -83 +y(Xdra)o(w)0 158 y Fs(B.2)33 b(Real)15 b(arithmetic)62 +303 y Ft(The)k(T)184 312 y(E)210 303 y(Xdra)o(w)f(to)q(olb)q(o)o(x)h +(supplies)i(macros)d(to)h(p)q(erform)f(real)i(arithmetic)f(on)g(co)q +(ordinate)g(v)m(alues.)33 b(The)0 365 y(result)16 b(app)q(ears)f(as)g +(the)g(v)m(alue)h(of)f(a)g(user)g(supplied)j(macro)c(name.)0 +549 y Fq(\\realadd)g({)p Fo(v)m(alue1)t Fq(})i({)p Fo(v)m(alue2)t +Fq(})f(\\)p Fo(sum)240 611 y Ft(Add)h(t)o(w)o(o)f(real)h(quan)o +(tities,)g(assigning)g(the)g(resultan)o(t)f(c)o(haracter)g(string)h +(represen)o(ting)g(the)g(sum)240 673 y(to)f(the)g(macro)f +Fq(\\)p Fo(sum)p Ft(.)0 775 y Fq(\\realmult)g({)p Fo(v)m(alue1)t +Fq(})h({)p Fo(v)m(alue2)t Fq(})h(\\)p Fo(pro)q(d)240 +837 y Ft(Multiply)i(t)o(w)o(o)e(real)g(quan)o(tities,)i(assigning)f +(the)g(resultan)o(t)f(c)o(haracter)g(string)h(represen)o(ting)g(the)240 +899 y(pro)q(duct)f(to)e(the)h(macro)g Fq(\\)p Fo(pro)q(d)r +Ft(.)0 1001 y Fq(\\realdiv)f({)p Fo(v)m(alue1)t Fq(})i({)p +Fo(v)m(alue2)t Fq(})f(\\)p Fo(result)240 1063 y Ft(Divide)22 +b(t)o(w)o(o)d(real)j(quan)o(tities,)g(assigning)f(the)g(resultan)o(t)g +(c)o(haracter)f(string)h(represen)o(ting)g(the)240 1126 +y(result)16 b(of)e Fo(v)m(alue1)t Ft(/)p Fo(v)m(alue2)21 +b Ft(to)14 b(the)h(macro)g Fq(\\)p Fo(result)q Ft(.)0 +1415 y Fs(B.3)33 b(Arro)n(w)15 b(curv)n(e)62 1560 y Ft(This)h(example)h +(illustrates)f(the)g(use)g(of)f(the)g(T)868 1569 y(E)894 +1560 y(Xdra)o(w)g(to)q(olb)q(o)o(x)g(routines)h(to)f(do)h(computations) +f(with)h(the)0 1622 y(co)q(ordinates.)k(The)c(problem)f(will)i(b)q(e)f +(tac)o(kled)g(in)g(t)o(w)o(o)e(parts.)19 b(First,)14 +b(w)o(e)h(will)i(pro)q(duce)f(a)f(macro)f(to)h(place)h(an)0 +1684 y(arro)o(whead)g(on)g(a)g(Bezier)i(curv)o(e.)24 +b(Then)17 b(giv)o(en)g(this)g(macro,)f(w)o(e)g(will)j(pro)q(duce)e(a)f +(macro)g(whic)o(h)i(can)e(dra)o(w)g(a)0 1747 y(\\wiggly")f(line)i(from) +d(the)i(curren)o(t)f(p)q(osition)h(to)f(a)f(giv)o(en)i(co)q(ordinate.) +675 2189 y @beginspecial 0 @hoffset 3 @voffset @setspecial +%%BeginDocument: texdraw.p10 +50 dict begin +/mv {stroke moveto} def +/lv {lineto} def +/st {currentpoint stroke moveto} def +/sl {st setlinewidth} def +/sd {st 0 setdash} def +/sg {st setgray} def +/bs {gsave} def /es {stroke grestore} def +/fl {gsave setgray fill grestore + currentpoint newpath moveto} def +/fp {gsave setgray fill grestore st} def +/cv {curveto} def +/cr {gsave currentpoint newpath 3 -1 roll 0 360 arc + stroke grestore} def +/fc {gsave setgray currentpoint newpath + 3 -1 roll 0 360 arc fill grestore} def +/ar {gsave currentpoint newpath 5 2 roll arc stroke grestore} def +/el {gsave /svm matrix currentmatrix def + currentpoint translate scale newpath 0 0 1 0 360 arc + svm setmatrix stroke grestore} def +/fe {gsave setgray currentpoint translate scale newpath + 0 0 1 0 360 arc fill grestore} def +/av {/hhwid exch 2 div def /hlen exch def + /ah exch def /tipy exch def /tipx exch def + currentpoint /taily exch def /tailx exch def + /dx tipx tailx sub def /dy tipy taily sub def + /alen dx dx mul dy dy mul add sqrt def + /blen alen hlen sub def + gsave tailx taily translate dy dx atan rotate + (V) ah ne {blen 0 gt {blen 0 lineto} if} {alen 0 lineto} ifelse + stroke blen hhwid neg moveto alen 0 lineto blen hhwid lineto + (T) ah eq {closepath} if + (W) ah eq {gsave 1 setgray fill grestore closepath} if + (F) ah eq {fill} {stroke} ifelse + grestore tipx tipy moveto} def +0.24 0.24 scale +1 setlinecap 1 setlinejoin +3 setlinewidth [] 0 setdash +0 0 moveto +0 0 mv +420 30 -120 -30 300 0 cv +300 0 mv +bs +285 -1 mv +300 0 (W) 48 24 av +es +bs +300 0 mv +270 420 330 -120 300 300 cv +300 300 mv +bs +301 285 mv +300 300 (W) 48 24 av +es +es +bs +300 0 mv +690 450 210 -150 600 300 cv +600 300 mv +bs +590 289 mv +600 300 (W) 48 24 av +es +es +bs +300 0 mv +720 30 180 -30 600 0 cv +600 0 mv +bs +585 -1 mv +600 0 (W) 48 24 av +es +es +stroke end showpage +%%EndDocument + @endspecial 975 1869 a(tip)g(at)e Fq(\(1)24 b(1\))54 +b Ft(tip)16 b(at)e Fq(\(2)24 b(1\))1275 2169 y Ft(tip)16 +b(at)e Fq(\(2)24 b(0\))62 2334 y Ft(The)18 b(\014rst)g(macro,)f +Fq(\\cavec)p Ft(,)h(uses)g(the)g Fq(\\cossin)f Ft(command)h(to)f +(determine)i(the)f(the)g(cosine)g(and)h(sine)f(of)0 2396 +y(the)e(angle)h(of)f(the)h(line)h(joining)f(the)f(second)h(con)o(trol)f +(p)q(oin)o(t)h(to)f(the)g(end)h(p)q(oin)o(t)g(of)f(the)g(Bezier)i(curv) +o(e.)23 b(Recall)0 2458 y(that)15 b(the)h(Bezier)h(curv)o(e)f(is)g +(tangen)o(t)f(to)g(this)h(line)h(at)e(the)h(end)h(p)q(oin)o(t.)22 +b(After)15 b(dra)o(wing)h(the)f(Bezier)i(curv)o(e,)f(the)0 +2521 y(scaling)f(is)g(set)g(lo)q(cally)h(to)e(absolute)g(units)i(of)e +(0.05)f(inc)o(hes.)21 b(W)l(e)14 b(go)g(bac)o(k)g(do)o(wn)g(the)h(line) +h(from)e(the)g(end)h(p)q(oin)o(t)0 2583 y(b)o(y)g(0.05)f(inc)o(hes)j +(and)e(dra)o(w)g(an)g(arro)o(w)f(v)o(ector)g(to)h(the)g(end)h(p)q(oin)o +(t)g(from)e(there.)20 b(This)c(arro)o(w)e(v)o(ector)g(is)i(mostly)0 +2645 y(arro)o(whead,)e(with)h(little)i(or)e(no)g(tail.)p +eop +%%Page: 37 39 +37 38 bop 0 -83 a Ft(App)q(endix)17 b(B:)e(T)293 -73 +y(E)319 -83 y(Xdra)o(w)f(T)l(o)q(olb)q(o)o(x)1280 b(37)120 +158 y Fq(\\def\\cavec)22 b(\(#1)i(#2\)\(#3)f(#4\)\(#5)g(#6\){)168 +210 y(\\clvec)g(\(#1)g(#2\)\(#3)g(#4\)\(#5)g(#6\))168 +262 y(\\cossin)g(\(#3)g(#4\)\(#5)g(#6\)\\cosa\\sina)168 +314 y(\\rmove)g(\(0)g(0\))168 366 y(\\bsegment)215 418 +y(\\drawdim)g(in)h(\\setsegscale)e(0.05)215 470 y(\\move)i(\({-\\cosa}) +e(-\\sina\))47 b(\\avec)23 b(\(0)h(0\))168 522 y(\\esegment})62 +649 y Ft(Note)19 b(the)g(use)h(of)f(macros)f(as)h(argumen)o(ts)g(to)f +(a)h Fq(\\move)g Ft(command.)31 b(Min)o(us)20 b(signs)g(are)f(put)g(in) +h(fron)o(t)e(of)0 712 y(the)d(macros.)k(Ho)o(w)o(ev)o(er,)14 +b(the)h(v)m(alue)h(of)e(the)h(macro)g Fq(\\cosa)f Ft(or)g +Fq(\\sina)g Ft(could)i(b)q(e)g(negativ)o(e.)k(F)l(ortunately)l(,)14 +b(T)1890 722 y(E)1916 712 y(X)0 774 y(accepts)g(t)o(w)o(o)f(min)o(us)i +(signs)g(in)g(a)f(ro)o(w)f(and)i(in)o(terprets)f(the)g(result)h(as)f(p) +q(ositiv)o(e.)20 b(Note)14 b(that)g(the)g Fq(\\rmove)g(\(0)h(0\))0 +836 y Ft(command)h(b)q(efore)g(the)g(b)q(eginning)j(of)c(the)h(segmen)o +(t)g(ensures)h(that)e(the)h(Bezier)h(curv)o(e)g(is)f(strok)o(ed)g(b)q +(efore)g(the)0 899 y(arro)o(whead)e(is)i(dra)o(wn.)62 +1037 y(The)h(second)f(macro)g Fq(\\caw)f Ft(builds)j(on)e +Fq(\\cavec)p Ft(.)22 b(The)17 b(goal)f(is)g(to)g(pro)q(duce)h(a)f +(wiggly)g(v)o(ector)g(that)f(can)h(b)q(e)0 1099 y(used)g(as)f(a)f(p)q +(oin)o(ter)i(in)g(a)f(dra)o(wing.)20 b(Consider)c(the)f(follo)o(wing)h +(symmetrical)g(normalized)g(Bezier)g(curv)o(e.)120 1227 +y Fq(\\centertexdraw{)22 b(\\move)h(\(0)h(0\))f(\\cavec)g(\(1.4)h +(0.1\)\(-0.4)e(-0.1\)\(1)h(0\))h(})62 1365 y Ft(This)13 +b(curv)o(e)f(has)f(the)h(appropriate)g(wiggle.)20 b(No)o(w)11 +b(w)o(e)g(w)o(an)o(t)g(to)g(b)q(e)i(able)f(to)g(dra)o(w)f(this)h(curv)o +(e,)g(appropriately)0 1428 y(scaled)i(and)f(rotated.)18 +b(The)13 b(macro)f Fq(\\caw)g Ft(needs)i(to)e(do)h(computations)g(on)f +(the)h(co)q(ordinates.)20 b(First,)12 b Fq(\\caw)h Ft(uses)0 +1490 y(the)h(macros)f Fq(\\getpos)g Ft(and)h Fq(\\currentpos)e +Ft(to)h(get)h(the)f(p)q(ositions)i(of)f(the)g(end)g(and)g(start)f(of)g +(the)h(curv)o(e.)19 b(Next,)0 1552 y(the)e(length)g(of)f(the)h(v)o +(ector)f(is)h(calculated)h(using)f(the)g(macro)f Fq(\\vectlen)p +Ft(.)22 b(A)17 b(lo)q(cal)h(macro)e Fq(\\rotatecoord)e +Ft(is)0 1614 y(used)j(to)f(rotate)f(a)h(co)q(ordinate)h(pair)f(ab)q +(out)h(the)f(origin,)h(using)g(the)g(cosine)g(and)g(sine)g(of)f(the)g +(rotation)g(angle.)0 1677 y(The)i(v)o(ector)f(length)h(is)g(used)h(to)e +(scale)h(the)g(normalized)g(curv)o(e.)28 b(The)18 b(remaining)g(co)q +(de)h(dra)o(ws)e(the)g(rotated,)0 1739 y(normalized)f(curv)o(e.)120 +1867 y Fq(\\def\\caw)23 b(\(#1)g(#2\){)168 1919 y(\\currentpos)f +(\\xa\\ya)168 1971 y(\\cossin)h(\({\\xa})g(\\ya\)\(#1)g +(#2\)\\cosa\\sina)120 2074 y(\045)h(The)f(nominal)g(wiggly)g(curve)g +(is)h(\(0)f(0\))h(\(1+dx)f(dy\))h(\(-dx)f(-dy\))g(\(1)h(0\))120 +2126 y(\045)g(Find)f(the)g(rotated)g(offset)g(\(dx)h(dy\))f(->)h(\(du)f +(dv\))168 2178 y(\\rotatecoord)f(\(0.4)h(0.1\)\\cosa\\sina)f(\\du\\dv) +120 2282 y(\045)i(calculate)e(the)i(length)f(of)g(the)h(vector)168 +2334 y(\\vectlen)e(\({\\xa})i(\\ya\)\(#1)e(#2\)\\len)120 +2438 y(\045)i(draw)f(the)g(curve)h(in)f(normalized)g(units)168 +2489 y(\\bsegment)215 2541 y(\\setsegscale)g({\\len})215 +2593 y(\\realadd)g(\\cosa)g(\\du)h(\\tmpa)47 b(\\realadd)23 +b(\\sina)g(\\dv)g(\\tmpb)215 2645 y(\\cavec)g(\({\\tmpa})g +(\\tmpb\)\({-\\du})f(-\\dv\)\({\\cosa})g(\\sina\))p eop +%%Page: 38 40 +38 39 bop 0 -83 a Ft(38)1722 b(T)1793 -73 y(E)1819 -83 +y(Xdra)o(w)168 158 y Fq(\\esegment)168 210 y(\\move)23 +b(\(#1)g(#2\)})120 314 y(\045)h(rotate)f(a)g(coordinate)g(\(x)h(y\))120 +366 y(\045)g(arguments:)e(\(x)i(y\))f(cosa)h(sina)f(x')h(y')120 +418 y(\045)48 b(x')23 b(=)h(cosa)f(*)h(x)g(-)f(sina)h(*)f(y;)48 +b(y')23 b(=)h(sina)g(*)f(x)h(+)g(cosa)f(*)h(y)120 470 +y(\\def\\rotatecoord)e(\(#1)h(#2\)#3#4#5#6{)168 522 y(\\getpos)g(\(#1)g +(#2\)\\xarg\\yarg)168 573 y(\\realmult)f(\\xarg)i({#3})f(\\tmpa)47 +b(\\realmult)23 b(\\yarg)g({#4})g(\\tmpb)168 625 y(\\realadd)f(\\tmpa)i +({-\\tmpb})e(#5)168 677 y(\\realmult)g(\\xarg)i({#4})f(\\tmpa)47 +b(\\realmult)23 b(\\yarg)g({#3})g(\\tmpb)168 729 y(\\realadd)f(\\tmpa)i +(\\tmpb)f(#6})62 866 y Ft(Finally)l(,)17 b(the)e(new)g(macro)g(can)g(b) +q(e)h(used)g(as)f(follo)o(ws.)120 993 y Fq(\\centertexdraw{)168 +1045 y(\\arrowheadtype)22 b(t:W)168 1096 y(\\move)h(\(0)g(0\))168 +1148 y(\\cavec)g(\(1.4)g(0.1\)\(-0.4)g(-0.1\)\(1)g(0\))168 +1200 y(\\move)g(\(1)g(0\))h(\\caw)f(\(1)h(1\))g(\\htext{tip)e(at)i +(\\tt)f(\(1)h(1\)})168 1252 y(\\move)f(\(1)g(0\))h(\\caw)f(\(2)h(1\))g +(\\htext{tip)e(at)i(\\tt)f(\(2)h(1\)})168 1304 y(\\move)f(\(1)g(0\))h +(\\caw)f(\(2)h(0\))g(\\htext{tip)e(at)i(\\tt)f(\(2)h(0\)})120 +1408 y(})62 1545 y Ft(Note)17 b(that)f(the)h(Bezier)i(curv)o(e)e(in)h +(the)f(macro)f Fq(\\cavec)g Ft(lies)i(b)q(elo)o(w)g(the)f(arro)o +(whead.)25 b(The)17 b(example)h(then)0 1607 y(dra)o(ws)c(an)i(arro)o +(whead)e(of)h(t)o(yp)q(e)g Fq(W)g Ft(to)f(erase)h(the)h(part)e(of)h +(the)g(line)i(b)q(elo)o(w)f(the)f(arro)o(whead.)p eop +%%Page: 39 41 +39 40 bop 0 -83 a Ft(App)q(endix)17 b(C:)e(Examples)1445 +b(39)0 158 y Fp(App)r(endix)13 b(C)41 b(Examples)62 345 +y Ft(This)16 b(app)q(endix)h(sho)o(ws)e(examples)h(of)e(the)i(use)f(of) +g(T)975 355 y(E)1000 345 y(Xdra)o(w.)0 570 y Fs(C.1)32 +b(Blo)r(c)n(k)16 b(diagram)g(of)e(a)h(lattice)h(\014lter)62 +707 y Ft(The)h(blo)q(c)o(k)g(diagram)e(of)h(a)g(lattice)h(\014lter)f +(uses)h(a)f(library)g(of)g(extended)h(commands)f(built)i(from)d(the)h +(basic)0 769 y(T)25 779 y(E)51 769 y(Xdra)o(w)e(commands.)163 +1250 y @beginspecial 4 @hoffset 43 @voffset @setspecial +%%BeginDocument: texdraw.p11 +50 dict begin +/mv {stroke moveto} def +/lv {lineto} def +/st {currentpoint stroke moveto} def +/sl {st setlinewidth} def +/sd {st 0 setdash} def +/sg {st setgray} def +/bs {gsave} def /es {stroke grestore} def +/fl {gsave setgray fill grestore + currentpoint newpath moveto} def +/fp {gsave setgray fill grestore st} def +/cv {curveto} def +/cr {gsave currentpoint newpath 3 -1 roll 0 360 arc + stroke grestore} def +/fc {gsave setgray currentpoint newpath + 3 -1 roll 0 360 arc fill grestore} def +/ar {gsave currentpoint newpath 5 2 roll arc stroke grestore} def +/el {gsave /svm matrix currentmatrix def + currentpoint translate scale newpath 0 0 1 0 360 arc + svm setmatrix stroke grestore} def +/fe {gsave setgray currentpoint translate scale newpath + 0 0 1 0 360 arc fill grestore} def +/av {/hhwid exch 2 div def /hlen exch def + /ah exch def /tipy exch def /tipx exch def + currentpoint /taily exch def /tailx exch def + /dx tipx tailx sub def /dy tipy taily sub def + /alen dx dx mul dy dy mul add sqrt def + /blen alen hlen sub def + gsave tailx taily translate dy dx atan rotate + (V) ah ne {blen 0 gt {blen 0 lineto} if} {alen 0 lineto} ifelse + stroke blen hhwid neg moveto alen 0 lineto blen hhwid lineto + (T) ah eq {closepath} if + (W) ah eq {gsave 1 setgray fill grestore closepath} if + (F) ah eq {fill} {stroke} ifelse + grestore tipx tipy moveto} def +0.24 0.24 scale +1 setlinecap 1 setlinejoin +3 setlinewidth [] 0 setdash +0 0 moveto +bs +0 0 mv +90 0 lv +6 0 fc +90 120 lv +90 0 mv +90 -120 lv +es +bs +90 120 mv +576 120 (F) 24 12 av +600 120 mv +24 cr +bs +588 120 mv +612 120 lv +600 108 mv +600 132 lv +es +624 120 mv +720 120 (F) 24 12 av +90 -120 mv +210 -120 (F) 24 12 av +bs +210 -75 lv +300 -75 lv +300 -165 lv +210 -165 lv +210 -120 lv +es +300 -120 mv +576 -120 (F) 24 12 av +600 -120 mv +24 cr +bs +588 -120 mv +612 -120 lv +600 -132 mv +600 -108 lv +es +624 -120 mv +720 -120 (F) 24 12 av +360 120 mv +6 0 fc +583 -103 (F) 24 12 av +360 -120 mv +6 0 fc +583 103 (F) 24 12 av +120 126 mv +es +bs +900 120 mv +1386 120 (F) 24 12 av +1410 120 mv +24 cr +bs +1398 120 mv +1422 120 lv +1410 108 mv +1410 132 lv +es +1434 120 mv +1590 120 (F) 24 12 av +900 -120 mv +1020 -120 (F) 24 12 av +bs +1020 -75 lv +1110 -75 lv +1110 -165 lv +1020 -165 lv +1020 -120 lv +es +1110 -120 mv +1386 -120 (F) 24 12 av +1410 -120 mv +24 cr +bs +1398 -120 mv +1422 -120 lv +1410 -132 mv +1410 -108 lv +es +1434 -120 mv +1530 -120 (F) 24 12 av +1170 120 mv +6 0 fc +1393 -103 (F) 24 12 av +1170 -120 mv +6 0 fc +1393 103 (F) 24 12 av +930 126 mv +es +stroke end showpage +%%EndDocument + @endspecial 74 1082 a Fl(x)p Ft(\()p Fl(n)p Ft(\))729 +926 y Fi(+)769 1003 y Fh(\000)402 1208 y Fl(z)425 1191 +y Fg(\000)p Fn(1)729 1224 y Fi(+)769 1147 y Fh(\000)249 +915 y Fl(f)271 922 y Fn(0)290 915 y Ft(\()p Fl(n)p Ft(\))466 +b Fl(f)841 922 y Fn(1)860 915 y Ft(\()p Fl(n)p Ft(\))250 +1242 y Fl(b)270 1249 y Fn(0)288 1242 y Ft(\()p Fl(n)p +Ft(\))j Fl(b)840 1249 y Fn(1)858 1242 y Ft(\()p Fl(n)p +Ft(\))616 1003 y Fl(K)655 1010 y Fn(1)616 1161 y Fl(K)655 +1168 y Fn(1)964 960 y Fr(\001)8 b(\001)g(\001)964 1200 +y(\001)g(\001)g(\001)1539 926 y Fi(+)1579 1003 y Fh(\000)1789 +962 y Fl(e)p Ft(\()p Fl(n)p Ft(\))1212 1208 y Fl(z)1235 +1191 y Fg(\000)p Fn(1)1539 1224 y Fi(+)1579 1147 y Fh(\000)1033 +915 y Fl(f)1055 922 y Fk(P)t Fg(\000)p Fn(1)1125 915 +y Ft(\()p Fl(n)p Ft(\))436 b Fl(f)1646 922 y Fk(P)1674 +915 y Ft(\()p Fl(n)p Ft(\))1034 1242 y Fl(b)1054 1249 +y Fk(P)t Fg(\000)p Fn(1)1124 1242 y Ft(\()p Fl(n)p Ft(\))j +Fl(b)1646 1249 y Fk(P)1673 1242 y Ft(\()p Fl(n)p Ft(\))1426 +1003 y Fl(K)1465 1010 y Fk(P)1426 1161 y Fl(K)1465 1168 +y Fk(P)62 1437 y Ft(The)16 b(blo)q(c)o(k)g(diagram)f(uses)h(a)f(\\dela) +o(y")g(blo)q(c)o(k.)22 b(This)16 b(is)g(de\014ned)h(as)e(a)g(segmen)o +(t)g(whic)o(h)h(lea)o(v)o(es)g(the)f(curren)o(t)0 1499 +y(p)q(osition)21 b(at)e(the)h(end)h(of)e(this)i(blo)q(c)o(k.)34 +b(A)20 b(second)h(macro,)f Fq(\\bdot)p Ft(,)g(dra)o(ws)f(a)g(\\big")h +(dot)g(whic)o(h)h(is)f(used)h(to)0 1562 y(mark)e(junctions)h(of)f +(lines.)34 b(The)20 b Fq(\\Ttext)f Ft(command)g(cen)o(ters)g(text)g(ab) +q(o)o(v)o(e)g(a)g(giv)o(en)h(p)q(oin)o(t.)33 b(The)20 +b(o\013set)f(to)0 1624 y(p)q(osition)d(the)e(text)h(is)g(lo)q(cal)g(to) +f(a)h(segmen)o(t,)f(resulting)h(in)h(no)e(c)o(hange)h(to)f(the)h +(curren)o(t)f(p)q(oin)o(t.)21 b(Similar)16 b(macros)0 +1686 y(to)e(p)q(osition)i(text)f(b)q(elo)o(w)g(a)g(p)q(oin)o(t)g(\()p +Fq(\\Btext)p Ft(\),)e(to)h(the)h(left)h(of)e(a)h(p)q(oin)o(t)g(\()p +Fq(\\Ltext)p Ft(\))e(and)j(to)e(the)h(righ)o(t)f(of)h(a)f(p)q(oin)o(t)0 +1748 y(\()p Fq(\\Rtext)p Ft(\))g(are)h(used)g(in)h(the)g(\014nal)g(dra) +o(wing.)120 1875 y Fq(\\def\\delay)22 b({\\bsegment)454 +1927 y(\\setsegscale)g(0.3)454 1979 y(\\lvec)h(\(0)h(+0.5\))f(\\lvec)g +(\(1)h(+0.5\))f(\\lvec)g(\(1)h(-0.5\))454 2031 y(\\lvec)f(\(0)h(-0.5\)) +f(\\lvec)g(\(0)h(0\))454 2083 y(\\textref)f(h:C)g(v:C)48 +b(\\htext)23 b(\(0.5)g(0\){$z^{-1}$})454 2134 y(\\savepos)g(\(1)g +(0\)\(*ex)g(*ey\))406 2186 y(\\esegment)406 2238 y(\\move)h(\(*ex)f +(*ey\)})120 2290 y(\\def\\bdot)g({\\fcir)g(f:0)g(r:0.02)g(})120 +2342 y(\\def\\Ttext)f(#1{\\bsegment)502 2394 y(\\textref)h(h:C)g(v:B)47 +b(\\htext)23 b(\(0)h(+0.06\){#1})454 2446 y(\\esegment})62 +2583 y Ft(Sev)o(eral)19 b(of)f(the)h(blo)q(c)o(k)g(diagram)f(elemen)o +(ts)i(scale)f(with)g(the)f(size)i(of)e(the)g(summing)h(no)q(des.)31 +b(The)18 b(radius)0 2645 y(of)e(the)h(circles)i(for)d(the)h(summing)g +(no)q(des)h(is)f(de\014ned)h(as)f(the)g(macro)f Fq(\\cradius)p +Ft(.)23 b(The)18 b(summing)f(no)q(des)g(will)p eop +%%Page: 40 42 +40 41 bop 0 -83 a Ft(40)1722 b(T)1793 -73 y(E)1819 -83 +y(Xdra)o(w)0 158 y(ha)o(v)o(e)15 b(enclosed)j(plus)f(signs,)f +(appropriately)g(scaled.)23 b(The)16 b(plus)h(sign)f(is)g(dra)o(wn)g(b) +o(y)g(the)g(macro)f Fq(\\pluss)p Ft(.)21 b(The)0 221 +y(macro)15 b Fq(\\pcir)g Ft(dra)o(ws)g(b)q(oth)h(the)g(circle)h(and)f +(the)g(plus)g(sign.)22 b(The)16 b(incoming)h(lines)g(to)e(a)h(summing)g +(no)q(de)g(will)0 283 y(b)q(e)f(lab)q(elled)h(with)f(plus)g(or)e(min)o +(us)i(signs)f(\(c)o(haracters)f(this)h(time\),)g(placed)h(at)f(the)g +(appropriate)g(p)q(osition)h(with)0 345 y(resp)q(ect)d(to)e(the)i(cen)o +(ter)f(of)g(the)g(summing)h(no)q(de.)19 b(These)12 b(p)q(ositions)g +(are)f(giv)o(en)h(in)g(terms)e(of)h(compass)g(directions.)0 +407 y(The)k(macro)g Fq(\\putwnw)f Ft(places)i(text)f(w)o(est)f(b)o(y)i +(north-w)o(est)e(relativ)o(e)i(to)e(the)i(cen)o(ter)f(of)g(the)g +(summing)h(no)q(de.)120 539 y Fq(\\def\\cradius)22 b({0.08})120 +591 y(\\def\\pluss)g({\\bsegment)478 643 y(\\setsegscale)g({\\cradius}) +478 694 y(\\move)h(\(-0.5)g(0\))h(\\lvec)f(\(+0.5)g(0\))478 +746 y(\\move)g(\(0)h(-0.5\))f(\\lvec)g(\(0)h(+0.5\))430 +798 y(\\esegment})120 850 y(\\def\\pcir)f({\\lcir)g(r:{\\cradius})f +(\\pluss})120 902 y(\\def\\puttext)g(\(#1)i(#2\)#3{\\bsegment)717 +954 y(\\setsegscale)e({\\cradius})717 1006 y(\\textref)g(h:C)i(v:C)f +(\\htext)g(\(#1)h(#2\){#3})669 1058 y(\\esegment})120 +1110 y(\\def\\putwnw)e(#1{\\puttext)h(\(-1.7)g(+1.2\){#1}})62 +1251 y Ft(The)17 b(blo)q(c)o(k)g(diagram)f(has)h(v)o(ectors)e(arriving) +j(and)e(departing)h(from)f(the)g(summing)h(no)q(des)h(\(circles\).)24 +b(One)0 1314 y(could)c(calculate)g(the)f(p)q(oin)o(ts)g(of)f(in)o +(tersection)i(of)e(the)h(lines)h(with)g(the)e(circles,)j(and)e(then)g +(en)o(ter)g(the)g(v)m(alues)0 1376 y(in)o(to)e(the)g(T)199 +1386 y(E)225 1376 y(Xdra)o(w)g(co)q(de.)26 b(Ho)o(w)o(ev)o(er,)16 +b(in)i(this)g(example,)g(w)o(e)f(implemen)o(t)i(an)e(automated)f(pro)q +(cedure.)27 b(Tw)o(o)0 1438 y(macros)12 b(are)g(needed,)i(an)f(arro)o +(w)e(v)o(ector)h(to)f(a)i(circle)h(\()p Fq(\\avectoc)p +Ft(\))d(and)h(an)h(arro)o(w)e(v)o(ector)h(lea)o(ving)h(from)f(a)g +(circle)0 1500 y(\()p Fq(\\avecfrc)p Ft(\).)17 b(The)d(macros)f(will)i +(calculate)f(the)g(p)q(oin)o(t)g(of)f(in)o(tersection)h(with)g(the)f +(circle)i(and)f(start)e(or)h(end)h(the)0 1563 y(v)o(ector)g(at)h(the)g +(in)o(tersection)h(p)q(oin)o(t.)62 1704 y(The)c(arro)o(w)f(macros)g +(use)h(scaling)g(and)g(relativ)o(e)h(p)q(ositioning)g(inside)h(of)d(a)g +(dra)o(wing)h(segmen)o(t.)18 b(In)13 b(the)f(case)f(of)0 +1767 y(the)i(macro)g Fq(\\avectoc)p Ft(,)f(a)h(mo)o(v)o(e)g(is)h(made)f +(to)g(the)g(\014nal)i(p)q(oin)o(t)f(\(cen)o(ter)f(of)g(the)g(circle\),) +i(then)e(within)i(a)e(dra)o(wing)0 1829 y(segmen)o(t,)i(a)g(scaled)i +(mo)o(v)o(e)e(is)h(made)g(bac)o(k)f(to)o(w)o(ards)f(the)i(initial)i(p)q +(oin)o(t)e(to)f(determine)i(the)f(in)o(tersection)g(p)q(oin)o(t)0 +1891 y(with)g(the)f(circle.)120 2022 y Fq(\\def\\avectoc)22 +b(\(#1)i(#2\){\\currentpos)d(\\xa\\ya)621 2074 y(\\cossin)i(\({\\xa})g +(\\ya\)\(#1)g(#2\)\\cosa\\sina)621 2126 y(\\savepos)g(\(#1)g(#2\)\(*tx) +g(*ty\))621 2178 y(\\bsegment)669 2230 y(\\move)g(\(*tx)g(*ty\))669 +2282 y(\\setsegscale)f({\\cradius})669 2334 y(\\rmove)h(\({-\\cosa})g +(-\\sina\))669 2386 y(\\savecurrpos)f(\(*ex)h(*ey\))621 +2438 y(\\esegment)621 2489 y(\\avec)g(\(*ex)h(*ey\))621 +2541 y(\\move)f(\(#1)h(#2\)})120 2593 y(\\def\\avecfrc)e(\(#1)i +(#2\){\\currentpos)d(\\xa\\ya)621 2645 y(\\cossin)i(\({\\xa})g +(\\ya\)\(#1)g(#2\)\\cosa\\sina)p eop +%%Page: 41 43 +41 42 bop 0 -83 a Ft(App)q(endix)17 b(C:)e(Examples)1445 +b(41)621 158 y Fq(\\bsegment)669 210 y(\\setsegscale)22 +b({\\cradius})669 262 y(\\move)h(\({\\cosa})g(\\sina\))669 +314 y(\\savecurrpos)f(\(*ex)h(*ey\))621 366 y(\\esegment)621 +418 y(\\move)g(\(*ex)h(*ey\))621 470 y(\\avec)f(\(#1)h(#2\)})62 +618 y Ft(Ha)o(ving)12 b(de\014ned)h(these)f(macros,)f(w)o(e)h(are)f +(ready)h(to)f(dra)o(w)g(the)h(blo)q(c)o(k)g(diagram.)19 +b(The)12 b(\014rst)f(and)h(last)f(sections)0 680 y(of)h(the)h(lattice)g +(\014lter)h(are)e(v)o(ery)g(similar,)i(di\013ering)g(mainly)g(in)f(the) +g(text)f(lab)q(els.)21 b(With)13 b(more)f(e\013ort,)g(co)q(de)h(could)0 +743 y(b)q(e)j(shared)f(b)q(et)o(w)o(een)h(the)f(commands)g(used)h(to)e +(dra)o(w)h(these)g(blo)q(c)o(ks.)120 881 y Fq(\\centertexdraw{)120 +933 y(\\drawdim)23 b(in)120 985 y(\\arrowheadtype)f(t:F)47 +b(\\arrowheadsize)22 b(l:0.08)h(w:0.04)120 1037 y(\\def\\pl)g +({$\\scriptscriptstyle)e(+$})i(\\def\\mn)g({$\\scriptscriptstyle)f(-$}) +120 1140 y(\\move)h(\(0)h(+0.63\))f(\\move)g(\(0)h(-0.60\))f(\\move)g +(\(0)g(0\))h(\045)g(compensate)e(for)i(the)f(text)g(size)120 +1244 y(\045)h(Input)f(to)g(the)h(first)f(stage)120 1296 +y(\\bsegment)168 1348 y(\\Ltext{$x\(n\)$})168 1400 y(\\lvec)g(\(0.3)g +(0\))h(\\bdot)f(\\lvec)g(\(0.3)g(+0.4\))h(\\move)f(\(0.3)g(0\))h +(\\lvec)f(\(0.3)g(-0.4\))168 1452 y(\\savepos)f(\(0.3)i(0\)\(*ex)f +(*ey\))120 1504 y(\\esegment)120 1555 y(\\move)g(\(*ex)g(*ey\))120 +1659 y(\045)h(first)f(lattice)g(stage)120 1711 y(\\bsegment)168 +1763 y(\\move)g(\(0)g(+0.4\))48 b(\\avectoc)22 b(\(1.7)i(+0.4\))168 +1815 y(\\pcir)f(\\putwnw{\\pl})f(\\puts{\\mn})168 1867 +y(\\avecfrc)g(\(2.1)i(+0.4\))168 1919 y(\\move)f(\(0)g(-0.4\))48 +b(\\avec)23 b(\(0.4)g(-0.4\))g(\\delay)g(\\avectoc)g(\(1.7)g(-0.4\))168 +1971 y(\\pcir)g(\\putwsw{\\pl})f(\\putn{\\mn})168 2022 +y(\\avecfrc)g(\(2.1)i(-0.4\))168 2074 y(\\move)f(\(0.9)g(+0.4\))47 +b(\\bdot)g(\\avectoc)23 b(\(1.7)g(-0.4\))168 2126 y(\\move)g(\(0.9)g +(-0.4\))47 b(\\bdot)g(\\avectoc)23 b(\(1.7)g(+0.4\))168 +2178 y(\\move)g(\(0.1)g(+0.42\))g(\\Ttext)g({$f_0\(n\)$})168 +2230 y(\\move)g(\(2.0)g(+0.42\))g(\\Ttext)g({$f_1\(n\)$})168 +2282 y(\\move)g(\(0.1)g(-0.4\))47 b(\\Btext)23 b({$b_0\(n\)$})168 +2334 y(\\move)g(\(2.0)g(-0.4\))47 b(\\Btext)23 b({$b_1\(n\)$})168 +2386 y(\\textref)f(h:L)i(v:B)47 b(\\htext)23 b(\(1.15)g(+0.2\){$K_1$}) +168 2438 y(\\textref)f(h:L)i(v:T)47 b(\\htext)23 b(\(1.15)g +(-0.2\){$K_1$})168 2489 y(\\savepos)f(\(2.1)i(0\)\(*ex)f(*ey\))120 +2541 y(\\esegment)120 2593 y(\\move)g(\(*ex)g(*ey\))p +eop +%%Page: 42 44 +42 43 bop 0 -83 a Ft(42)1722 b(T)1793 -73 y(E)1819 -83 +y(Xdra)o(w)120 158 y Fq(\045)24 b(center)f(section)120 +210 y(\\bsegment)168 262 y(\\textref)f(h:C)i(v:C)f(\\htext)g(\(0.3)h +(+0.4\){$\\cdots$})168 314 y(\\htext)f(\(0.3)g(-0.4\){$\\cdots$})168 +366 y(\\savepos)f(\(0.6)i(0\)\(*ex)f(*ey\))120 418 y(\\esegment)120 +470 y(\\move)g(\(*ex)g(*ey\))120 573 y(\045)h(last)f(lattice)g(stage) +120 625 y(\\bsegment)168 677 y(\\move)g(\(0)g(+0.4\))48 +b(\\avectoc)22 b(\(1.7)i(+0.4\))168 729 y(\\pcir)f(\\putwnw{\\pl})f +(\\puts{\\mn})168 781 y(\\avecfrc)g(\(2.3)i(+0.4\))f(\\Rtext{$e\(n\)$}) +168 833 y(\\move)g(\(0)g(-0.4\))48 b(\\avec)23 b(\(0.4)g(-0.4\))g +(\\delay)g(\\avectoc)g(\(1.7)g(-0.4\))168 885 y(\\pcir)g +(\\putwsw{\\pl})f(\\putn{\\mn})168 937 y(\\avecfrc)g(\(2.1)i(-0.4\))168 +989 y(\\move)f(\(0.9)g(+0.4\))47 b(\\bdot)g(\\avectoc)23 +b(\(1.7)g(-0.4\))168 1040 y(\\move)g(\(0.9)g(-0.4\))47 +b(\\bdot)g(\\avectoc)23 b(\(1.7)g(+0.4\))168 1092 y(\\move)g(\(0.1)g +(+0.42\))g(\\Ttext)g({$f_{P-1}\(n\)$})168 1144 y(\\move)g(\(2.0)g +(+0.42\))g(\\Ttext)g({$f_P\(n\)$})168 1196 y(\\move)g(\(0.1)g(-0.4\))47 +b(\\Btext)23 b({$b_{P-1}\(n\)$})168 1248 y(\\move)g(\(2.0)g(-0.4\))47 +b(\\Btext)23 b({$b_P\(n\)$})168 1300 y(\\textref)f(h:L)i(v:B)47 +b(\\htext)23 b(\(1.15)g(+0.2\){$K_P$})168 1352 y(\\textref)f(h:L)i(v:T) +47 b(\\htext)23 b(\(1.15)g(-0.2\){$K_P$})120 1404 y(\\esegment)120 +1456 y(})62 1638 y Ft(The)c(macros)g(used)g(in)h(this)f(example)h(are)f +(similar)h(to)e(the)h(blo)q(c)o(k)h(diagram)f(macros)f(de\014ned)i(in)g +(the)f(\014le)0 1701 y(`)p Fq(blockdiagram.tex)p Ft('.)0 +2338 y Fs(C.2)32 b(Filter)18 b(resp)r(onse)c(graph)62 +2521 y Ft(This)k(example)g(sho)o(ws)f(the)h(resp)q(onse)f(of)g(a)g +(canonical)i(\014lter.)27 b(T)1201 2530 y(E)1227 2521 +y(Xdra)o(w)16 b(is)i(not)f(w)o(ell)h(suited)h(for)d(general)0 +2583 y(purp)q(ose)k(graphing)g(|)g(it)f(has)h(no)f(co)q(ordinate)h +(translation)f(facilit)o(y)i(nor)e(do)q(es)g(it)h(ha)o(v)o(e)f +(separate)g Fo(x)j Ft(and)e Fo(y)0 2645 y Ft(scaling.)h(Nonetheless,)16 +b(for)e(certain)i(simple)h(graphs,)d(T)976 2655 y(E)1002 +2645 y(Xdra)o(w)g(is)i(adequate.)p eop +%%Page: 43 45 +43 44 bop 0 -83 a Ft(App)q(endix)17 b(C:)e(Examples)1445 +b(43)615 492 y @beginspecial 0 @hoffset 23 @voffset @setspecial +%%BeginDocument: texdraw.p12 +50 dict begin +/mv {stroke moveto} def +/lv {lineto} def +/st {currentpoint stroke moveto} def +/sl {st setlinewidth} def +/sd {st 0 setdash} def +/sg {st setgray} def +/bs {gsave} def /es {stroke grestore} def +/fl {gsave setgray fill grestore + currentpoint newpath moveto} def +/fp {gsave setgray fill grestore st} def +/cv {curveto} def +/cr {gsave currentpoint newpath 3 -1 roll 0 360 arc + stroke grestore} def +/fc {gsave setgray currentpoint newpath + 3 -1 roll 0 360 arc fill grestore} def +/ar {gsave currentpoint newpath 5 2 roll arc stroke grestore} def +/el {gsave /svm matrix currentmatrix def + currentpoint translate scale newpath 0 0 1 0 360 arc + svm setmatrix stroke grestore} def +/fe {gsave setgray currentpoint translate scale newpath + 0 0 1 0 360 arc fill grestore} def +/av {/hhwid exch 2 div def /hlen exch def + /ah exch def /tipy exch def /tipx exch def + currentpoint /taily exch def /tailx exch def + /dx tipx tailx sub def /dy tipy taily sub def + /alen dx dx mul dy dy mul add sqrt def + /blen alen hlen sub def + gsave tailx taily translate dy dx atan rotate + (V) ah ne {blen 0 gt {blen 0 lineto} if} {alen 0 lineto} ifelse + stroke blen hhwid neg moveto alen 0 lineto blen hhwid lineto + (T) ah eq {closepath} if + (W) ah eq {gsave 1 setgray fill grestore closepath} if + (F) ah eq {fill} {stroke} ifelse + grestore tipx tipy moveto} def +0.24 0.24 scale +1 setlinecap 1 setlinejoin +3 setlinewidth [] 0 setdash +0 0 moveto +0 0 mv +0 420 (F) 24 12 av +0 0 mv +660 0 (F) 24 12 av +0 0 mv +bs +0 15 lv +es +bs +240 0 mv +240 15 lv +es +bs +360 0 mv +360 15 lv +es +bs +480 0 mv +480 15 lv +es +7 sl +0 300 mv +120 300 lv +132 299 lv +144 296 lv +156 292 lv +168 285 lv +180 277 lv +192 267 lv +204 256 lv +216 243 lv +228 228 lv +240 212 lv +252 195 lv +264 176 lv +276 157 lv +288 136 lv +300 115 lv +312 93 lv +324 70 lv +336 47 lv +348 23 lv +360 0 lv +570 0 lv +stroke end showpage +%%EndDocument + @endspecial 1299 406 a Fl(!)603 440 y Ft(0)841 430 y +Fl(\031)p 822 451 65 2 v 822 492 a Ft(2)p Fl(N)952 430 +y(!)980 437 y Fk(s)1081 430 y Fl(\031)p 1074 451 42 2 +v 1074 492 a(N)62 681 y Ft(In)19 b(this)g(example,)h(macro)d +Fq(\\ticklab)h Ft(places)h(a)f(lab)q(elled)j(axis)e(tic)o(k)f(at)g(a)g +(giv)o(en)h(p)q(osition.)30 b(The)19 b(data)e(is)0 743 +y(sp)q(eci\014ed)k(in)f(a)e(straigh)o(tforw)o(ard)f(manner,)j(ha)o +(ving)f(b)q(een)h(scaled)g(b)q(eforehand)f(to)g(giv)o(e)g(the)g +(desired)h(asp)q(ect)0 806 y(ratio)15 b(for)f(the)i(graph.)120 +933 y Fq(\\centertexdraw{)120 985 y(\\arrowheadtype)22 +b(t:F)47 b(\\arrowheadsize)22 b(l:0.08)h(w:0.04)120 1037 +y(\\def\\ds)g({\\displaystyle})120 1088 y(\\def\\ticklab)f(\(#1)i +(#2\)#3{\\move\(#1)e(#2\))669 1140 y(\\bsegment)717 1192 +y(\\lvec)h(\(0)g(0.05\))717 1244 y(\\textref)f(h:C)i(v:T)f(\\htext)g +(\(0)h(-0.05\){#3})669 1296 y(\\esegment})120 1348 y(\\def\\Rtext)e +(#1{\\bsegment)502 1400 y(\\textref)h(h:L)g(v:C)g(\\htext)h(\(+0.08)f +(0\){#1})454 1452 y(\\esegment})120 1555 y(\\move)g(\(2.4)g(-0.3\))95 +b(\045)24 b(move)f(to)h(set)f(the)h(size)120 1659 y(\\move)f(\(0)h(0\)) +120 1711 y(\045)g(Axes)120 1763 y(\\avec)f(\(0)h(+1.4\))120 +1815 y(\\move)f(\(0)h(0\))f(\\avec)h(\(2.2)f(0\))g(\\Rtext{$\\omega$}) +120 1867 y(\\ticklab)g(\(0)g(0\))72 b({0})120 1919 y(\\ticklab)23 +b(\(0.8)g(0\))h({$\\ds)f({\\pi)g(\\over)g(2N})h($})120 +1971 y(\\ticklab)f(\(1.2)g(0\))h({$\\omega_s$})120 2022 +y(\\ticklab)f(\(1.6)g(0\))h({$\\ds)f({\\pi)g(\\over)g(N})h($})120 +2126 y(\\linewd)f(0.025)120 2178 y(\\move)g(\(0)h(1\))120 +2230 y(\\lvec)f(\(0.4)g(1\))120 2282 y(\\lvec)g(\(0.44)g(0.998\))120 +2334 y(\\lvec)g(\(0.48)g(0.988\))120 2386 y(\\lvec)g(\(0.52)g(0.973\)) +120 2438 y(\\lvec)g(\(0.56)g(0.951\))144 2489 y(...)120 +2541 y(\\lvec)g(\(1.08)g(0.233\))120 2593 y(\\lvec)g(\(1.12)g(0.156\)) +120 2645 y(\\lvec)g(\(1.16)g(0.078\))p eop +%%Page: 44 46 +44 45 bop 0 -83 a Ft(44)1722 b(T)1793 -73 y(E)1819 -83 +y(Xdra)o(w)120 158 y Fq(\\lvec)23 b(\(1.20)g(0\))120 +210 y(\\lvec)g(\(1.9)g(0\))120 262 y(})0 479 y Fs(C.3)32 +b(Geometric)16 b(construction)62 616 y Ft(This)j(example)h(sho)o(ws)d +(a)i(geometric)f(construction)h(whic)o(h)g(places)g(an)g(ellipse)i +(tangen)o(t)c(to)h(an)g(enclosing)0 678 y(circle.)34 +b(The)20 b(size)h(of)e(the)g(ellipse)j(is)e(determined)h(from)e +(geometric)g(considerations.)34 b(Macros)18 b(are)i(used)g(to)0 +740 y(mo)q(dularize)i(the)e(co)q(de.)36 b(The)20 b(example)h(alters)g +(the)f(unit)h(scale)g(factor.)34 b(This)21 b(allo)o(ws)f(the)g(dra)o +(wing)h(to)e(b)q(e)0 803 y(carried)d(out)f(in)h(units)f(normalized)i +(to)e(the)g(radius)h(of)e(the)i(circle.)504 1792 y @beginspecial +113 @hoffset 113 @voffset @setspecial +%%BeginDocument: texdraw.p13 +50 dict begin +/mv {stroke moveto} def +/lv {lineto} def +/st {currentpoint stroke moveto} def +/sl {st setlinewidth} def +/sd {st 0 setdash} def +/sg {st setgray} def +/bs {gsave} def /es {stroke grestore} def +/fl {gsave setgray fill grestore + currentpoint newpath moveto} def +/fp {gsave setgray fill grestore st} def +/cv {curveto} def +/cr {gsave currentpoint newpath 3 -1 roll 0 360 arc + stroke grestore} def +/fc {gsave setgray currentpoint newpath + 3 -1 roll 0 360 arc fill grestore} def +/ar {gsave currentpoint newpath 5 2 roll arc stroke grestore} def +/el {gsave /svm matrix currentmatrix def + currentpoint translate scale newpath 0 0 1 0 360 arc + svm setmatrix stroke grestore} def +/fe {gsave setgray currentpoint translate scale newpath + 0 0 1 0 360 arc fill grestore} def +/av {/hhwid exch 2 div def /hlen exch def + /ah exch def /tipy exch def /tipx exch def + currentpoint /taily exch def /tailx exch def + /dx tipx tailx sub def /dy tipy taily sub def + /alen dx dx mul dy dy mul add sqrt def + /blen alen hlen sub def + gsave tailx taily translate dy dx atan rotate + (V) ah ne {blen 0 gt {blen 0 lineto} if} {alen 0 lineto} ifelse + stroke blen hhwid neg moveto alen 0 lineto blen hhwid lineto + (T) ah eq {closepath} if + (W) ah eq {gsave 1 setgray fill grestore closepath} if + (F) ah eq {fill} {stroke} ifelse + grestore tipx tipy moveto} def +0.24 0.24 scale +1 setlinecap 1 setlinejoin +3 setlinewidth [] 0 setdash +0 0 moveto +3 sl +450 cr +-472 0 mv +472 0 lv +0 -472 mv +0 472 lv +0 0 mv +318 318 lv +6 0 fc +318 -318 mv +6 0 fc +225 0 mv +bs +196 362 el +6 0 fc +225 67 mv +bs +bs +225 44 mv +225 90 lv +es +421 67 (V) 24 12 av +bs +421 44 mv +421 90 lv +es +225 67 (V) 24 12 av +323 67 mv +es +bs +bs +-113 0 mv +-67 0 lv +es +-90 0 mv +-90 362 (V) 24 12 av +bs +-113 362 mv +-67 362 lv +es +-90 0 (V) 24 12 av +-90 181 mv +es +es +stroke end showpage +%%EndDocument + @endspecial 1303 993 a(X)932 1360 y(O)1179 1370 y Fl(\014)1205 +1377 y Fn(2)1225 1224 y Fr(j)p Fl(\014)1264 1231 y Fn(1)1282 +1224 y Ft(+)p Fl(\014)1343 1231 y Fn(3)1361 1224 y Fr(j)719 +1150 y(j)p Fl(\014)758 1157 y Fn(1)776 1150 y Fr(\000)p +Fl(\014)837 1157 y Fn(3)856 1150 y Fr(j)120 1919 y Fq(\\centertexdraw{) +120 1971 y(\\arrowheadtype)22 b(t:V)h(\\arrowheadsize)f(l:0.08)h +(w:0.04)120 2022 y(\\linewd)g(0.01)120 2074 y(\\setunitscale)f(1.5)286 +b(\045)24 b(circle)f(will)g(have)g(radius)g(1.5)h(inches)120 +2178 y(\\def\\Btext)e(#1{\\bsegment)502 2230 y(\\textref)h(h:C)g(v:T)g +(\\htext)h(\(0)f(-0.04\){#1})454 2282 y(\\esegment})120 +2334 y(\\def\\Ttext)f(#1{\\bsegment)502 2386 y(\\textref)h(h:C)g(v:B)g +(\\htext)h(\(0)f(+0.04\){#1})454 2438 y(\\esegment})120 +2489 y(\\def\\Ltext)f(#1{\\bsegment)502 2541 y(\\textref)h(h:R)g(v:C)g +(\\htext)h(\(-0.04)f(0\){#1})454 2593 y(\\esegment})120 +2645 y(\\def\\bdot)g({\\fcir)g(f:0)g(r:0.0133)g(})p eop +%%Page: 45 47 +45 46 bop 0 -83 a Ft(App)q(endix)17 b(C:)e(Examples)1445 +b(45)120 158 y Fq(\\def\\vtick)22 b({\\bsegment)454 210 +y(\\move)h(\(0)h(-0.05\))f(\\lvec)g(\(0)h(+0.05\))406 +262 y(\\esegment})120 314 y(\\def\\htick)e({\\bsegment)454 +366 y(\\move)h(\(-0.05)g(0\))h(\\lvec)f(\(+0.05)g(0\))406 +418 y(\\esegment})120 470 y(\\def\\Hlen)g(#1#2{\\bsegment)526 +522 y(\\vtick)g(\\avec)g(\({#1})g(0\))h(\\vtick)f(\\avec)g(\(0)g(0\)) +526 573 y(\\relsegscale)f(0.5)526 625 y(\\move)h(\({#1})g(0\))h +(\\Ttext)f({#2})478 677 y(\\esegment})120 729 y(\\def\\Vlen)g +(#1#2{\\bsegment)526 781 y(\\htick)g(\\avec)g(\(0)g({#1}\))h(\\htick)f +(\\avec)g(\(0)g(0\))526 833 y(\\relsegscale)f(0.5)526 +885 y(\\move)h(\(0)g({#1}\))h(\\Ltext)f({#2})478 937 +y(\\esegment})120 1040 y(\\lcir)g(r:1)596 b(\045)24 b(circle)120 +1092 y(\\move)f(\(-1.05)g(0\))h(\\lvec)f(\()h(1.05)f(0\))71 +b(\045)24 b(axes)120 1144 y(\\move)f(\(0)h(-1.05\))f(\\lvec)g(\(0)47 +b(1.05\))120 1248 y(\\move)23 b(\(0)h(0\))f(\\lvec)h(\(0.707)f(0.707\)) +g(\\bdot)120 1300 y(\\rmove)g(\(0.02)g(0.02\))g(\\textref)g(h:L)h(v:B)f +(\\htext)g({X})120 1352 y(\\move)g(\(0.707)g(-0.707\))g(\\bdot)120 +1404 y(\\textref)g(h:R)g(v:T)h(\\htext\(-0.02)e(-0.02\){O})120 +1507 y(\\move)h(\(0.5)g(0\))501 b(\045)24 b(center)f(of)h(ellipse)120 +1559 y(\\bsegment)168 1611 y(\\lellip)f(rx:0.435)f(ry:0.804)168 +1663 y(\\bdot)h(\\Btext)g({$\\beta_2$})168 1715 y(\\move)g(\(0)g +(0.15\))h(\\Hlen)f({0.435}{$|\\beta_1{+}\\beta)o(_3|$})168 +1767 y(\\move)g(\(-0.7)g(0\))h(\\Vlen)f({0.804}{$|\\beta_1{-}\\beta)o +(_3|$})120 1819 y(\\esegment)120 1871 y(})p eop +%%Page: 46 48 +46 47 bop 0 -83 a Ft(46)1722 b(T)1793 -73 y(E)1819 -83 +y(Xdra)o(w)p eop +%%Page: 47 49 +47 48 bop 0 -83 a Ft(App)q(endix)17 b(D:)e(Alphab)q(etic)i(listing)g +(of)e(commands)1003 b(47)0 158 y Fp(App)r(endix)13 b(D)41 +b(Alphab)r(etic)14 b(listing)f(of)j(commands)0 401 y +Fq(\\arrowheadsize)d(l:)p Fo(length)j Fq(w:)p Fo(width)240 +463 y Ft(Set)j(the)h(arro)o(whead)e(size)i(to)f(b)q(e)h +Fo(length)g Ft(units)g(long)g(and)f Fo(width)h Ft(units)g(wide.)33 +b(The)20 b(width)f(is)240 525 y(measured)d(across)e(the)i(\\base")f(of) +g(the)h(arro)o(whead.)j(The)d(initial)i(arro)o(whead)c(size)j(has)e(a)g +Fo(length)240 587 y Ft(of)g(0.16)f(inc)o(hes)i(and)f(a)g +Fo(width)h Ft(of)f(0.08)f(inc)o(hes.)0 689 y Fq(\\arrowheadtype)f(t:)p +Fo(t)o(yp)q(e)240 751 y Ft(Set)k(the)h(arro)o(whead)e(t)o(yp)q(e)h(to)g +Fo(t)o(yp)q(e)p Ft(,)g(where)h Fo(t)o(yp)q(e)i Ft(is)d(one)h(of)f +Fq(F)p Ft(,)g Fq(T)p Ft(,)g Fq(W)p Ft(,)g Fq(V)p Ft(,)g(or)g +Fq(H)p Ft(.)26 b(There)17 b(are)g(t)o(w)o(o)240 814 y(kinds)i(of)e +(arro)o(wheads.)27 b(The)18 b(\014rst)f(kind)i(is)f(a)f(triangle.)29 +b(There)18 b(are)f(3)g(v)m(arian)o(ts:)25 b(t)o(yp)q(e)18 +b Fq(T)g Ft(is)g(an)240 876 y(empt)o(y)e(triangle,)h(t)o(yp)q(e)g +Fq(F)f Ft(is)h(a)f(\014lled)j(triangle)e(\(using)g(the)g(curren)o(t)f +(gra)o(y)f(lev)o(el)j(for)e(lines\),)i(t)o(yp)q(e)240 +938 y Fq(W)e Ft(is)g(a)g(triangle)h(\014lled)h(with)e(white.)23 +b(The)17 b(second)f(kind)h(of)f(arro)o(whead)f(is)i(an)f(op)q(en)g +(ended)i(V)l(ee.)240 1000 y(There)c(are)f(2)h(v)m(arian)o(ts:)19 +b(t)o(yp)q(e)13 b Fq(V)h Ft(has)f(the)h(stem)f(con)o(tin)o(ue)i(to)e +(the)g(tip,)i(t)o(yp)q(e)e Fq(H)h Ft(has)f(the)h(stem)f(stop)240 +1063 y(at)i(the)g(base)g(of)g(the)g(arro)o(whead.)k(The)c(initial)j +(arro)o(whead)c(t)o(yp)q(e)h(is)h Fq(T)p Ft(.)0 1164 +y Fq(\\avec)e(\()p Fo(x)19 b(y)t Fq(\))240 1226 y Ft(Dra)o(w)c(a)i +(line)h(with)f(an)g(arro)o(whead)e(from)h(the)h(curren)o(t)g(p)q +(osition)g(to)f Fq(\()p Fo(x)i(y)t Fq(\))p Ft(.)24 b(The)17 +b(new)g(curren)o(t)240 1289 y(p)q(osition)f(is)g Fq(\()p +Fo(x)i(y)t Fq(\))p Ft(.)i(The)15 b(arro)o(whead)f(is)i(aligned)h(with)e +(the)g(line,)i(with)e(the)h(tip)f(at)g Fq(\()p Fo(x)j(y)t +Fq(\))p Ft(.)0 1390 y Fq(\\begin{texdraw})240 1452 y +Ft(Start)f(a)h(T)425 1462 y(E)450 1452 y(Xdra)o(w)f(dra)o(wing.)28 +b(The)18 b(dra)o(wing)g(is)h(terminated)f(with)g(an)g +Fq(\\end{texdraw})e Ft(com-)240 1515 y(mand.)k(This)c(command)f(is)h +(for)e(use)i(with)f(LaT)1068 1525 y(E)1094 1515 y(X.)0 +1616 y Fq(\\bsegment)240 1679 y Ft(Start)22 b(a)g(dra)o(wing)h(segmen)o +(t.)42 b(The)23 b(co)q(ordinate)g(system)f(is)i(shifted)f(suc)o(h)g +(that)f(the)h(curren)o(t)240 1741 y(p)q(osition)d(corresp)q(onds)g(to)f +(the)g(co)q(ordinate)h Fq(\(0)15 b(0\))p Ft(.)32 b(Changes)19 +b(to)f(scaling,)j(p)q(osition)g(and)e(line)240 1803 y(parameters)14 +b(sta)o(y)h(lo)q(cal)h(to)e(the)i(dra)o(wing)f(segmen)o(t.)0 +1905 y Fq(\\btexdraw)240 1967 y Ft(Start)f(a)h(T)419 +1977 y(E)445 1967 y(Xdra)o(w)f(dra)o(wing.)20 b(The)15 +b(dra)o(wing)h(is)f(terminated)h(with)f(an)g Fq(\\etexdraw)f +Ft(command.)0 2068 y Fq(\\centertexdraw)f({)i(...)g(})240 +2131 y Ft(Cen)o(ter)j(a)g(T)457 2140 y(E)482 2131 y(Xdra)o(w)g(b)q(o)o +(x.)29 b(The)18 b(argumen)o(t)f(con)o(tains)i(T)1255 +2140 y(E)1280 2131 y(Xdra)o(w)f(commands.)28 b(The)19 +b(resulting)240 2193 y(b)q(o)o(x)c(has)g(the)g(horizon)o(tal)h(size)g +Fq(\\hsize)e Ft(and)i(heigh)o(t)f(equal)h(to)f(the)g(heigh)o(t)h(of)f +(the)g(dra)o(wing.)0 2294 y Fq(\\clvec)f(\()p Fo(x1)19 +b(y1)t Fq(\)\()p Fo(x2)e(y2)t Fq(\)\()p Fo(x3)h(y3)t +Fq(\))240 2357 y Ft(Dra)o(w)9 b(a)i(Bezier)h(curv)o(e)f(from)f(the)g +(curren)o(t)h(p)q(osition)h(to)e(the)g(co)q(ordinate)i +Fq(\()p Fo(x3)18 b(y3)t Fq(\))10 b Ft(whic)o(h)h(b)q(ecomes)240 +2419 y(the)h(new)g(curren)o(t)g(p)q(osition.)20 b(The)13 +b(co)q(ordinates)f Fq(\()p Fo(x1)18 b(y1)t Fq(\))11 b +Ft(and)i Fq(\()p Fo(x2)18 b(y2)t Fq(\))11 b Ft(serv)o(e)h(as)g(con)o +(trol)g(p)q(oin)o(ts)240 2481 y(for)h(the)h(curv)o(e.)20 +b(Only)15 b(the)f(last)g(co)q(ordinate)g(giv)o(en)h(is)f(used)h(to)e +(up)q(date)i(the)f(size)h(of)e(the)h(dra)o(wing.)0 2583 +y Fq(\\drawbb)72 b Ft(Dra)o(w)16 b(a)i(ruled)h(b)q(o)o(x)e(around)h +(the)g(e\013ectiv)o(e)g(size)h(of)e(a)g(dra)o(wing)h(pro)q(duced)h(b)o +(y)e(T)1679 2593 y(E)1705 2583 y(Xdra)o(w)g(com-)240 +2645 y(mands.)p eop +%%Page: 48 50 +48 49 bop 0 -83 a Ft(48)1722 b(T)1793 -73 y(E)1819 -83 +y(Xdra)o(w)0 158 y Fq(\\drawdim)14 b Fo(dim)240 221 y +Ft(Set)j(the)h(units)g(to)e Fo(dim)p Ft(.)27 b(The)18 +b(argumen)o(t)e Fo(dim)i Ft(can)g(b)q(e)g(an)o(y)f(v)m(alid)i(T)1458 +230 y(E)1483 221 y(X)f(dimension)h(unit.)27 b(The)240 +283 y(units)16 b(are)g(used)g(to)f(in)o(terpret)h(co)q(ordinate)g(v)m +(alues.)23 b(Examples)16 b(of)f(v)m(alid)j(units:)j Fq(cm)p +Ft(,)15 b Fq(mm)p Ft(,)h Fq(in)p Ft(,)f Fq(pt)p Ft(,)240 +345 y(and)g Fq(bp)p Ft(.)0 434 y Fq(\\end{texdraw})240 +496 y Ft(End)k(a)g(T)407 506 y(E)433 496 y(Xdra)o(w)f(dra)o(wing)h +(started)f(with)i(a)e Fq(\\begin{texdraw})f Ft(command.)32 +b(The)19 b(resulting)240 558 y(T)265 568 y(E)291 558 +y(Xdra)o(w)12 b(dra)o(wing)h(is)g(placed)i(in)f(a)e(b)q(o)o(x)h(with)h +(heigh)o(t)f(equal)h(to)e(the)i(heigh)o(t)f(of)g(the)g(dra)o(wing)g +(and)240 620 y(width)i(equal)f(to)g(the)g(width)h(of)e(the)h(dra)o +(wing.)20 b(The)14 b(depth)h(of)e(the)i(b)q(o)o(x)e(is)i(zero.)k(This)c +(command)240 683 y(is)h(for)e(use)i(with)f(LaT)613 692 +y(E)639 683 y(X.)0 771 y Fq(\\esegment)240 833 y Ft(End)25 +b(a)f(dra)o(wing)g(segmen)o(t.)47 b(The)25 b(curren)o(t)f(p)q(osition)h +(in)h(e\013ect)e(b)q(efore)h(the)f(corresp)q(onding)240 +896 y Fq(\\bsegment)d Ft(command)h(is)h(restored.)41 +b(The)23 b(scaling)g(and)g(line)h(parameter)d(v)m(alues)j(rev)o(ert)e +(to)240 958 y(those)15 b(in)h(e\013ect)f(b)q(efore)g(the)h(corresp)q +(onding)g Fq(\\bsegment)e Ft(w)o(as)g(in)o(v)o(ok)o(ed.)0 +1046 y Fq(\\etexdraw)240 1108 y Ft(End)h(a)f(T)398 1118 +y(E)423 1108 y(Xdra)o(w)g(dra)o(wing)h(started)e(with)i(a)f +Fq(\\btexdraw)f Ft(command.)20 b(The)15 b(resulting)g(T)1793 +1118 y(E)1819 1108 y(Xdra)o(w)240 1171 y(dra)o(wing)i(is)h(placed)h(in) +f(a)f(b)q(o)o(x)g(with)h(heigh)o(t)f(equal)h(to)f(the)h(heigh)o(t)f(of) +g(the)h(dra)o(wing)f(and)g(width)240 1233 y(equal)f(to)f(the)g(width)h +(of)e(the)i(dra)o(wing.)j(The)d(depth)g(of)e(the)i(b)q(o)o(x)f(is)h +(zero.)0 1321 y Fq(\\everytexdraw)d({)i(...)g(})240 1384 +y Ft(Sp)q(ecify)d(T)418 1393 y(E)444 1384 y(Xdra)o(w)d(commands)i(to)e +(b)q(e)j(executed)f(at)f(the)g(b)q(eginning)j(of)d(ev)o(ery)g(T)1612 +1393 y(E)1638 1384 y(Xdra)o(w)f(dra)o(wing.)0 1472 y +Fq(\\fcir)14 b(f:)p Fo(lev)o(el)19 b Fq(r:)p Fo(radius)240 +1534 y Ft(Dra)o(w)h(a)g(\014lled)j(circle)g(with)e(cen)o(ter)g(at)f +(the)h(curren)o(t)g(p)q(osition.)38 b(The)21 b(radius)h(is)f(sp)q +(eci\014ed)i(b)o(y)240 1597 y Fo(radius)p Ft(.)28 b(The)18 +b(circle)i(is)e(pain)o(ted)h(with)f(the)g(gra)o(y)e(lev)o(el)j(sp)q +(eci\014ed)h(b)o(y)e Fo(lev)o(el)p Ft(.)29 b(A)18 b(gra)o(y)f(lev)o(el) +i(of)e(1)240 1659 y(corresp)q(onds)g(to)f(white,)h(with)g(decreasing)g +(v)m(alues)h(getting)e(dark)o(er.)23 b(The)17 b(lev)o(el)h(0)e(is)h +(full)h(blac)o(k.)240 1721 y(This)k(command)f(do)q(es)h(not)f(dra)o(w)f +(a)i(line)h(along)e(the)g(circumference.)40 b(The)22 +b(dra)o(wing)f(size)h(is)240 1783 y(increased)16 b(if)g(necessary)f(to) +g(con)o(tain)g(the)h(circle.)0 1872 y Fq(\\fellip)e(f:)p +Fo(lev)o(el)k Fq(rx:)p Fo(x-radius)g Fq(ry:)p Fo(y-radius)240 +1934 y Ft(Dra)o(w)c(a)h(\014lled)i(ellipse)h(with)e(cen)o(ter)f(at)g +(the)g(curren)o(t)h(p)q(osition.)21 b(The)16 b(radius)g(in)g(the)f +Fo(x)k Ft(direction)240 1996 y(is)g(sp)q(eci\014ed)i(b)o(y)e +Fo(x-radius)p Ft(.)32 b(The)19 b(radius)g(in)h(the)f +Fo(y)k Ft(direction)d(is)f(sp)q(eci\014ed)i(b)o(y)e Fo(y-radius)p +Ft(.)32 b(The)240 2059 y(ellipse)16 b(is)e(pain)o(ted)h(with)f(the)g +(gra)o(y)e(lev)o(el)j(sp)q(eci\014ed)h(b)o(y)e Fo(lev)o(el)p +Ft(.)20 b(A)14 b(gra)o(y)f(lev)o(el)i(of)e(1)h(corresp)q(onds)g(to)240 +2121 y(white,)i(with)g(decreasing)h(v)m(alues)g(getting)e(dark)o(er.)21 +b(The)16 b(lev)o(el)h(0)f(is)g(full)h(blac)o(k.)22 b(This)16 +b(command)240 2183 y(do)q(es)h(not)f(dra)o(w)g(a)g(line)i(along)e(the)h +(b)q(oundary)g(of)f(the)g(ellipse.)26 b(The)17 b(dra)o(wing)f(size)i +(is)f(increased)240 2245 y(if)f(necessary)f(to)g(con)o(tain)g(the)g +(ellipse.)0 2334 y Fq(\\htext)f(\()p Fo(x)k(y)t Fq(\){)p +Fo(text)q Fq(})0 2396 y(\\htext)c({)p Fo(text)q Fq(})240 +2458 y Ft(The)19 b(\014rst)g(form)f(of)h(this)g(command)g(places)h(the) +f(T)1150 2468 y(E)1176 2458 y(X)g(text)f Fo(text)i Ft(horizon)o(tally)g +(with)f(the)g(text)240 2521 y(reference)12 b(p)q(oin)o(t)f(at)g(the)g +(co)q(ordinate)h Fq(\()p Fo(x)18 b(y)t Fq(\))p Ft(.)g(The)11 +b(new)h(curren)o(t)f(p)q(osition)h(is)g Fq(\()p Fo(x)18 +b(y)t Fq(\))p Ft(.)g(The)11 b(second)240 2583 y(form)f(of)f(this)i +(command)f(places)i(the)e(T)903 2593 y(E)928 2583 y(X)h(text)f +Fo(text)g Ft(horizon)o(tally)i(with)e(the)h(text)e(reference)i(p)q(oin) +o(t)240 2645 y(at)k(the)g(curren)o(t)g(p)q(osition.)21 +b(The)15 b(text)g(reference)h(p)q(oin)o(t)g(is)f(set)g(with)h(the)f +Fq(\\textref)f Ft(command.)p eop +%%Page: 49 51 +49 50 bop 0 -83 a Ft(App)q(endix)17 b(D:)e(Alphab)q(etic)i(listing)g +(of)e(commands)1003 b(49)0 158 y Fq(\\ifill)14 b(f:)p +Fo(lev)o(el)240 221 y Ft(Close)j(the)g(curren)o(t)g(path)f(and)h(pain)o +(t)g(the)g(in)o(terior)g(of)g(the)g(region)g(with)g(gra)o(y)f(lev)o(el) +i Fo(lev)o(el)p Ft(.)26 b(The)240 283 y(line)18 b(around)d(the)h(path)g +(is)h(not)e(dra)o(wn.)22 b(Gra)o(y)15 b(lev)o(els)i(are)e(real)i(v)m +(alues)g(from)e(0)h(\(blac)o(k\))f(through)240 345 y(in)o(termediate)h +(v)m(alues)g(\(gra)o(ys\))e(to)g(1)h(\(white\).)0 454 +y Fq(\\larc)f(r:)p Fo(radius)k Fq(sd:)p Fo(start-angle)f +Fq(ed:)p Fo(end-angle)240 516 y Ft(Dra)o(w)9 b(a)h(coun)o(terclo)q(c)o +(kwise)h(arc.)18 b(The)11 b(cen)o(ter)f(of)g(the)g(arc)g(is)h(at)e(the) +i(curren)o(t)f(p)q(osition.)19 b(The)10 b(radius)240 +578 y(is)j(sp)q(eci\014ed)i(b)o(y)e Fo(radius)p Ft(.)19 +b(The)13 b(start)f(and)h(end)g(angles)h(\(in)f(degrees\))f(are)h(sp)q +(eci\014ed)i(b)o(y)d Fo(start-angle)240 640 y Ft(and)j +Fo(end-angle)p Ft(.)22 b(This)15 b(command)g(do)q(es)h(not)f(a\013ect)f +(the)i(limits)g(\(size\))g(of)e(the)i(dra)o(wing.)0 749 +y Fq(\\lcir)e(r:)p Fo(radius)240 811 y Ft(Dra)o(w)j(a)h(circle)j(with)d +(cen)o(ter)h(at)f(the)h(curren)o(t)f(p)q(osition.)31 +b(The)19 b(radius)g(is)g(sp)q(eci\014ed)h(b)o(y)f Fo(radius)p +Ft(.)240 873 y(This)d(command)g(dra)o(ws)f(a)g(line)j(along)e(the)f +(circumference)j(of)d(the)h(circle.)23 b(The)16 b(dra)o(wing)g(size)g +(is)240 936 y(increased)g(if)g(necessary)f(to)g(con)o(tain)g(the)h +(circle.)0 1044 y Fq(\\lellip)e(rx:)p Fo(x-radius)k Fq(ry:)p +Fo(y-radius)240 1106 y Ft(Dra)o(w)i(an)g(ellipse)j(with)e(cen)o(ter)g +(at)f(the)h(curren)o(t)g(p)q(osition.)37 b(The)21 b(radius)g(in)h(the)f +Fo(x)j Ft(direction)240 1169 y(is)19 b(sp)q(eci\014ed)i(b)o(y)e +Fo(x-radius)p Ft(.)32 b(The)19 b(radius)g(in)h(the)f +Fo(y)k Ft(direction)d(is)f(sp)q(eci\014ed)i(b)o(y)e Fo(y-radius)p +Ft(.)32 b(The)240 1231 y(dra)o(wing)15 b(size)h(is)g(increased)g(if)g +(necessary)f(to)g(con)o(tain)g(the)h(ellipse.)0 1339 +y Fq(\\lfill)e(f:)p Fo(lev)o(el)240 1402 y Ft(Close)i(the)f(curren)o(t) +h(path,)f(dra)o(w)g(the)g(line)j(around)d(the)h(path)f(using)h(the)g +(curren)o(t)f(grey)h(lev)o(el)h(for)240 1464 y(lines)f(and)e(pain)o(t)h +(the)f(in)o(terior)h(of)e(the)i(region)f(with)h(sp)q(eci\014ed)h(gra)o +(y)d(lev)o(el)j Fo(lev)o(el)p Ft(.)21 b(Gra)o(y)13 b(lev)o(els)i(are) +240 1526 y(real)h(v)m(alues)g(from)e(0)h(\(blac)o(k\))g(through)g(in)o +(termediate)h(v)m(alues)g(\(gra)o(ys\))e(to)g(1)h(\(white\).)0 +1635 y Fq(\\linewd)f Fo(width)240 1697 y Ft(Set)19 b(the)g(line)h +(width)g(to)e Fo(width)h Ft(units.)31 b(Initially)22 +b Fo(width)d Ft(is)g(0.01)f(inc)o(hes)i(\(corresp)q(onding)f(to)f(3)240 +1759 y(pixels)f(at)d(300)h(pixels)h(to)f(the)g(inc)o(h\).)0 +1868 y Fq(\\lpatt)f(\()p Fo(pattern)p Fq(\))240 1930 +y Ft(Set)21 b(lines)h(to)e(ha)o(v)o(e)h(the)f(pattern)h +Fq(\()p Fo(pattern)p Fq(\))p Ft(.)36 b(A)20 b(pattern)h(is)g(a)f +(sequence)i(of)f(on/o\013)e(lengths)240 1992 y(separated)e(b)o(y)g +(blanks)g(and)h(enclosed)g(in)g(paren)o(theses.)25 b(The)17 +b(lengths)h(alternately)g(sp)q(ecify)g(the)240 2055 y(length)g(of)f(a)h +(dash)f(and)h(the)g(length)g(of)f(a)g(gap)h(b)q(et)o(w)o(een)f(dashes.) +28 b(Eac)o(h)17 b(length)h(is)g(in)o(terpreted)240 2117 +y(using)c(the)g(curren)o(t)f(scaling)i(and)e(dra)o(wing)h(units.)20 +b(The)13 b(pattern)g(is)h(used)g(cyclically)l(.)23 b(The)13 +b(empt)o(y)240 2179 y(pattern)k(signi\014es)i(a)e(solid)i(line.)28 +b(The)18 b(initial)i(line)f(pattern)e(is)h(a)f(solid)i(line,)g(corresp) +q(onding)g(to)240 2241 y(the)c(empt)o(y)g(pattern)g Fq(\\lpatt)f(\(\))p +Ft(.)0 2350 y Fq(\\lvec)g(\()p Fo(x)19 b(y)t Fq(\))240 +2412 y Ft(Dra)o(w)c(a)h(line)i(from)d(the)h(curren)o(t)g(p)q(osition)h +(to)f(co)q(ordinate)h Fq(\()p Fo(x)h(y)t Fq(\))p Ft(.)k(The)16 +b(new)h(curren)o(t)f(p)q(osition)240 2474 y(is)g Fq(\()p +Fo(x)i(y)t Fq(\))p Ft(.)0 2583 y Fq(\\move)c(\()p Fo(x)19 +b(y)t Fq(\))240 2645 y Ft(Mo)o(v)o(e)14 b(to)h(co)q(ordinate)g +Fq(\()p Fo(x)k(y)t Fq(\))p Ft(.)g(The)d(new)f(curren)o(t)g(p)q(osition) +h(is)g Fq(\()p Fo(x)i(y)t Fq(\))p Ft(.)p eop +%%Page: 50 52 +50 51 bop 0 -83 a Ft(50)1722 b(T)1793 -73 y(E)1819 -83 +y(Xdra)o(w)0 158 y Fq(\\ravec)14 b(\()p Fo(dx)19 b(dy)t +Fq(\))240 221 y Ft(Dra)o(w)c(a)h(line)i(with)f(an)f(arro)o(whead)f +(from)h(the)g(curren)o(t)h(p)q(osition,)g Fo(dx)j Ft(units)d(in)g(the)f +Fo(x)k Ft(direction)240 283 y(and)e Fo(y)j Ft(units)d(in)g(the)f +Fo(y)k Ft(direction.)28 b(The)18 b(\014nal)g(p)q(osition)g(b)q(ecomes)g +(the)g(new)f(curren)o(t)g(p)q(osition.)240 345 y(The)e(arro)o(whead)g +(is)g(aligned)i(with)e(the)h(line,)g(with)g(the)f(tip)h(at)e(the)i(new) +f(curren)o(t)g(p)q(osition.)0 454 y Fq(\\relsegscale)f +Fo(v)m(alue)240 516 y Ft(Adjust)i(the)g(segmen)o(t)f(scale)h(factor)f +(b)o(y)h(m)o(ultiplying)i(b)o(y)e Fo(v)m(alue)p Ft(.)22 +b(This)17 b(has)e(the)h(e\013ect)g(of)f(m)o(ulti-)240 +578 y(plying)i(the)e(curren)o(t)g(o)o(v)o(erall)g(scale)h(factor)e(b)o +(y)h(the)h(same)e(factor.)19 b(The)d(o)o(v)o(erall)f(scaling)h(factor)e +(is)240 640 y(the)h(pro)q(duct)h(of)f(the)g(unit)h(scale)g(factor)e +(and)h(the)h(segmen)o(t)e(scale)i(factor.)0 749 y Fq(\\relunitscale)d +Fo(v)m(alue)240 811 y Ft(Adjust)h(the)g(unit)g(scale)h(factor)e(b)o(y)g +(m)o(ultiplying)j(b)o(y)e Fo(v)m(alue)p Ft(.)21 b(This)14 +b(has)g(the)g(e\013ect)f(of)h(m)o(ultiplying)240 873 +y(the)h(o)o(v)o(erall)g(scale)g(factor)f(b)o(y)h(the)g(same)f(factor.) +19 b(The)c(o)o(v)o(erall)g(scaling)h(factor)e(is)h(the)g(pro)q(duct)g +(of)240 936 y(the)g(unit)h(scale)g(factor)e(and)i(the)f(segmen)o(t)g +(scale)h(factor.)0 1044 y Fq(\\rlvec)e(\()p Fo(dx)19 +b(dy)t Fq(\))240 1106 y Ft(Dra)o(w)14 b(a)h(line)i(from)e(the)g(curren) +o(t)h(p)q(osition,)g Fo(dx)j Ft(units)d(in)g(the)f Fo(x)k +Ft(direction)d(and)g Fo(dy)k Ft(units)c(in)g(the)240 +1169 y Fo(y)j Ft(direction.)i(The)16 b(\014nal)g(p)q(osition)g(b)q +(ecomes)g(the)f(new)g(curren)o(t)h(p)q(osition.)0 1277 +y Fq(\\rmove)e(\()p Fo(dx)19 b(dy)t Fq(\))240 1339 y +Ft(Mo)o(v)o(e)h(from)g(the)g(curren)o(t)h(p)q(osition,)i +Fo(dx)h Ft(units)d(in)g(the)g Fo(x)j Ft(direction)e(and)f +Fo(dy)j Ft(units)e(in)f(the)g Fo(y)240 1402 y Ft(direction.)g(The)16 +b(\014nal)g(p)q(osition)g(b)q(ecomes)g(the)f(new)g(curren)o(t)g(p)q +(osition.)0 1510 y Fq(\\rtext)f(td:)p Fo(angle)k Fq(\(x)d(y\){)p +Fo(text)q Fq(})0 1572 y(\\rtext)f(td:)p Fo(angle)k Fq({)p +Fo(text)q Fq(})240 1635 y Ft(The)i(\014rst)f(form)f(of)h(this)h +(command)f(places)h(the)g(T)1153 1645 y(E)1178 1635 y(X)g(text)f +Fo(text)g Ft(at)g(an)g(angle)h(with)g(the)f(text)240 +1697 y(reference)j(p)q(oin)o(t)g(at)f(the)g(co)q(ordinate)h +Fq(\()p Fo(x)c(y)t Fq(\))p Ft(.)38 b(The)22 b(new)g(curren)o(t)f(p)q +(osition)h(is)g Fq(\()p Fo(x)d(y)t Fq(\))p Ft(.)38 b(The)240 +1759 y(second)23 b(form)e(of)h(this)h(command)f(places)i(the)e(T)1129 +1769 y(E)1155 1759 y(X)g(text)g Fo(text)h Ft(at)e(an)i(angle)f(with)h +(the)f(text)240 1822 y(reference)f(p)q(oin)o(t)g(at)f(the)h(curren)o(t) +f(p)q(osition.)37 b(In)21 b(b)q(oth)f(cases,)i(the)e(T)1491 +1831 y(E)1517 1822 y(X)g(text)g(is)h(placed)h(in)f(a)240 +1884 y(b)q(o)o(x)15 b(and)g(the)g(b)q(o)o(x)f(is)i(rotated)e(coun)o +(terclo)q(c)o(kwise)i(b)o(y)e Fo(angle)k Ft(degrees)d(ab)q(out)g(the)g +(text)f(reference)240 1946 y(p)q(oin)o(t.)20 b(The)c(text)e(reference)i +(p)q(oin)o(t)g(is)g(set)f(with)g(the)h Fq(\\textref)e +Ft(command.)0 2055 y Fq(\\savecurrpos)g(\(*)p Fo(p)o(x)k +Fq(*)p Fo(p)o(y)t Fq(\))240 2117 y Ft(Sa)o(v)o(e)d(the)g(curren)o(t)g +(p)q(osition)h(as)f(the)g(absolute)h(p)q(osition)g(referenced)g(b)o(y)g +Fq(\(*)p Fo(p)o(x)i Fq(*)p Fo(p)o(y)t Fq(\))p Ft(.)0 +2225 y Fq(\\savepos)c(\()p Fo(x)k(y)t Fq(\)\(*)p Fo(p)o(x)g +Fq(*)p Fo(p)o(y)t Fq(\))240 2288 y Ft(Sa)o(v)o(e)d(the)h(co)q(ordinate) +g(p)q(osition)h Fq(\()p Fo(x)h(y)t Fq(\))d Ft(as)g(the)h(absolute)g(p)q +(osition)h(referenced)f(b)o(y)g Fq(\(*)p Fo(p)o(x)i Fq(*)p +Fo(p)o(y)t Fq(\))p Ft(.)240 2350 y(The)f(co)q(ordinate)g +Fq(\()p Fo(x)h(y)t Fq(\))f Ft(is)g(in)o(terpreted)g(in)h(the)f(normal)f +(fashion)h(as)g(a)f(co)q(ordinate)h(relativ)o(e)h(to)240 +2412 y(the)d(curren)o(t)g(segmen)o(t,)g(using)h(the)f(curren)o(t)g +(scaling)h(factors)e(and)i(dra)o(wing)f(unit.)0 2521 +y Fq(\\setgray)f Fo(lev)o(el)240 2583 y Ft(Set)h(the)h(gra)o(y)e(lev)o +(el)j(of)e(lines.)22 b(Gra)o(y)14 b(lev)o(els)j(are)e(real)h(v)m(alues) +g(from)f(0)g(\(blac)o(k\))g(through)g(in)o(terme-)240 +2645 y(diate)h(v)m(alues)g(\(gra)o(y\))d(to)i(1)g(\(white\).)20 +b(The)15 b(initial)i(gra)o(y)e(lev)o(el)h(is)g(0)f(corresp)q(onding)h +(to)e(blac)o(k.)p eop +%%Page: 51 53 +51 52 bop 0 -83 a Ft(App)q(endix)17 b(D:)e(Alphab)q(etic)i(listing)g +(of)e(commands)1003 b(51)0 158 y Fq(\\setsegscale)14 +b Fo(scale)240 221 y Ft(Set)19 b(the)f(segmen)o(t)g(scale)h(factor.)29 +b(The)18 b(argumen)o(t)g Fo(scale)k Ft(is)d(a)f(real)h(n)o(um)o(b)q(er) +f(whic)o(h)i(is)f(used)g(to)240 283 y(scale)d(co)q(ordinate)g(v)m +(alues.)21 b(The)16 b(o)o(v)o(erall)f(scale)h(factor)f(is)g(the)h(pro)q +(duct)g(of)e(the)i(unit)g(scale)g(factor)240 345 y(and)f(the)h(segmen)o +(t)e(scale)i(factor.)0 432 y Fq(\\setunitscale)d Fo(scale)240 +495 y Ft(Set)f(the)h(unit)g(scaling)g(to)e Fo(scale)p +Ft(.)20 b(The)12 b(argumen)o(t)g Fo(scale)j Ft(is)e(a)f(real)h(n)o(um)o +(b)q(er)f(whic)o(h)h(is)g(used)g(to)e(scale)240 557 y(co)q(ordinate)j +(v)m(alues.)21 b(The)14 b(o)o(v)o(erall)g(scaling)h(factor)e(is)h(the)g +(pro)q(duct)g(of)g(the)g(unit)g(scale)h(factor)e(and)240 +619 y(the)i(segmen)o(t)g(scale)h(factor.)0 706 y Fq(\\texdrawbox)e({)h +(...)f(})240 769 y Ft(Create)21 b(a)f(T)461 778 y(E)487 +769 y(Xdra)o(w)g(b)q(o)o(x.)38 b(The)22 b(argumen)o(t)e(con)o(tains)h +(T)1280 778 y(E)1306 769 y(Xdra)o(w)f(commands.)38 b(This)22 +b(macro)240 831 y(returns)16 b(a)g(T)462 841 y(E)487 +831 y(X)g(b)q(o)o(x)h(with)f(heigh)o(t)h(equal)f(to)g(the)g(heigh)o(t)h +(of)e(the)i(dra)o(wing)f(and)g(width)h(equal)g(to)240 +893 y(the)e(width)h(of)f(the)g(dra)o(wing.)20 b(The)15 +b(depth)h(of)f(the)g(b)q(o)o(x)g(is)h(zero.)0 980 y Fq(\\textref)e(h:)p +Fo(h-ref)24 b Fq(v:)p Fo(v-ref)240 1043 y Ft(Set)17 b(the)h(text)e +(reference)i(p)q(oin)o(t)g(for)f(subsequen)o(t)h(text)e(commands.)26 +b(The)18 b(horizon)o(tal)f(reference)240 1105 y(p)q(oin)o(t)f +Fo(h-ref)25 b Ft(is)16 b(one)f(of)h Fq(L)p Ft(,)f Fq(C)g +Ft(or)g Fq(R)g Ft(\(left,)h(cen)o(ter)f(or)g(righ)o(t\).)21 +b(The)16 b(v)o(ertical)g(reference)g(p)q(oin)o(t)g Fo(v-ref)240 +1167 y Ft(is)k(one)f(of)g Fq(T)p Ft(,)h Fq(C)f Ft(or)f +Fq(B)h Ft(\(top,)h(cen)o(ter)f(or)f(b)q(ottom\).)31 b(F)l(or)19 +b(rotated)f(text,)h(the)h(reference)g(p)q(oin)o(t)f(is)240 +1229 y(determined)f(b)q(efore)f(rotation.)24 b(The)17 +b(initial)i(text)d(reference)i(p)q(oin)o(t)f(corresp)q(onds)g(to)f +Fq(\\textref)240 1292 y(h:L)f(v:B)p Ft(.)0 1379 y Fq(\\vtext)f(\(x)h +(y\){)p Fo(text)q Fq(})0 1441 y(\\vtext)f({)p Fo(text)q +Fq(})240 1503 y Ft(The)23 b(\014rst)f(form)g(of)h(this)g(command)f +(places)i(the)f(T)1180 1513 y(E)1205 1503 y(X)g(text)f +Fo(text)i Ft(v)o(ertically)g(with)f(the)f(text)240 1566 +y(reference)g(p)q(oin)o(t)g(at)f(the)g(co)q(ordinate)h +Fq(\()p Fo(x)c(y)t Fq(\))p Ft(.)38 b(The)22 b(new)g(curren)o(t)f(p)q +(osition)h(is)g Fq(\()p Fo(x)d(y)t Fq(\))p Ft(.)38 b(The)240 +1628 y(second)13 b(form)e(of)g(this)i(command)f(places)h(the)f(T)1057 +1638 y(E)1082 1628 y(X)g(text)g Fo(text)g Ft(v)o(ertically)h(with)g +(the)f(text)f(reference)240 1690 y(p)q(oin)o(t)17 b(at)f(the)h(curren)o +(t)f(p)q(osition.)26 b(In)17 b(b)q(oth)g(cases,)f(the)h(T)1252 +1700 y(E)1278 1690 y(X)f(text)h(is)g(placed)h(in)f(a)f(b)q(o)o(x)h(and) +g(the)240 1752 y(b)q(o)o(x)d(is)g(rotated)f(coun)o(terclo)q(c)o(kwise)j +(b)o(y)d(90)h(degrees)g(ab)q(out)g(the)g(text)g(reference)g(p)q(oin)o +(t.)20 b(The)14 b(text)240 1815 y(reference)i(p)q(oin)o(t)g(is)f(set)g +(with)h(the)f Fq(\\textref)f Ft(command.)p eop +%%Page: 52 54 +52 53 bop 0 -83 a Ft(52)1722 b(T)1793 -73 y(E)1819 -83 +y(Xdra)o(w)p eop +%%Page: 53 55 +53 54 bop 0 -83 a Ft(Command)15 b(Index)1575 b(53)0 158 +y Fp(Command)16 b(Index)0 399 y Ff(\\)0 466 y Fe(\\arc)t +Fd(.)5 b(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)17 +b Fc(13)0 524 y Fe(\\arrowhead)o(si)o(ze)6 b Fd(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)22 b +Fc(9)0 582 y Fe(\\arrowhead)o(ty)o(pe)6 b Fd(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)22 b Fc(9)0 +640 y Fe(\\avec)t Fd(.)t(.)6 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17 +b Fc(8)0 698 y Fe(\\begin{tex)o(dr)o(aw})8 b Fd(.)s(.)e(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)21 b Fc(5)0 +756 y Fe(\\bsegment)6 b Fd(.)s(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)19 b +Fc(17)0 814 y Fe(\\btexdraw)7 b Fd(.)s(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)20 +b Fc(5)0 872 y Fe(\\centertex)o(dr)o(aw)6 b Fd(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)22 b +Fc(5)0 930 y Fe(\\clvec)8 b Fd(.)e(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)23 +b Fc(14)0 989 y Fe(\\cossin)9 b Fd(.)s(.)e(.)f(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)22 +b Fc(35)0 1047 y Fe(\\currentpo)o(s)t Fd(.)s(.)6 b(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17 +b Fc(35)0 1105 y Fe(\\drawbb)9 b Fd(.)s(.)e(.)f(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)22 +b Fc(21)0 1163 y Fe(\\drawdim)9 b Fd(.)s(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)21 +b Fc(7)0 1221 y Fe(\\end{texdr)o(aw)o(})8 b Fd(.)e(.)g(.)g(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)24 +b Fc(5)0 1279 y Fe(\\esegment)6 b Fd(.)s(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)19 +b Fc(17)0 1337 y Fe(\\etexdraw)7 b Fd(.)s(.)f(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)20 +b Fc(5)0 1395 y Fe(\\everytexd)o(ra)o(w)8 b Fd(.)e(.)g(.)g(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)24 +b Fc(5)0 1453 y Fe(\\fcir)s Fd(.)t(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)16 b Fc(13)0 1512 y Fe(\\fellip)9 b Fd(.)s(.)e(.)f(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)22 b Fc(13)0 1570 y Fe(\\getpos)9 b Fd(.)s(.)e(.)f(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)22 b Fc(35)0 1628 y Fe(\\htext)8 b Fd(.)e(.)g(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)23 b Fc(10)0 1686 y Fe(\\ifill)8 b Fd(.)e(.)g(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)23 b Fc(15)0 1744 y Fe(\\lcir)s Fd(.)t(.)6 b(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)16 b Fc(12)0 1802 y Fe(\\lellip)9 b Fd(.)s(.)e(.)f(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)22 b Fc(13)0 1860 y Fe(\\lfill)8 b Fd(.)e(.)g(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)23 b Fc(15)0 1918 y Fe(\\linewd)7 b Fd(.)g(.)f(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)23 b Fc(8)0 1977 y Fe(\\lvec)t Fd(.)t(.)6 +b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17 b Fc(8)0 2035 +y Fe(\\move)t Fd(.)t(.)6 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17 +b Fc(8)0 2093 y Fe(\\PSarc)8 b Fd(.)e(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)23 +b Fc(32)0 2151 y Fe(\\PSarcn)9 b Fd(.)s(.)e(.)f(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)22 +b Fc(32)0 2209 y Fe(\\PSclosepa)o(th)8 b Fd(.)e(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)24 b +Fc(31)0 2267 y Fe(\\PSfill)9 b Fd(.)s(.)e(.)f(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)22 +b Fc(31)0 2325 y Fe(\\PSlineto)6 b Fd(.)s(.)g(.)g(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)19 +b Fc(32)0 2383 y Fe(\\PSmoveto)6 b Fd(.)s(.)g(.)g(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)19 +b Fc(32)0 2441 y Fe(\\PSnewpath)t Fd(.)s(.)7 b(.)f(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)18 +b Fc(31)0 2500 y Fe(\\PSsetline)o(ca)o(p)7 b Fd(.)f(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)23 b +Fc(31)0 2558 y Fe(\\PSsetline)o(jo)o(in)8 b Fd(.)s(.)e(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)21 b Fc(31)0 +2616 y Fe(\\PSstroke)6 b Fd(.)s(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)19 b +Fc(31)1015 399 y Fe(\\ravec)10 b Fd(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)25 b Fc(8)1015 457 y Fe(\\realadd)8 b Fd(.)s(.)e(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)21 +b Fc(36)1015 515 y Fe(\\realdiv)8 b Fd(.)s(.)e(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)21 +b Fc(36)1015 573 y Fe(\\realmult)7 b Fd(.)s(.)f(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)20 +b Fc(36)1015 632 y Fe(\\relsegscal)o(e)8 b Fd(.)e(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)25 +b Fc(20)1015 690 y Fe(\\relunitsca)o(le)6 b Fd(.)h(.)f(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)23 b +Fc(20)1015 748 y Fe(\\rlvec)10 b Fd(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)25 b Fc(8)1015 806 y Fe(\\rmove)10 b Fd(.)c(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)25 b Fc(8)1015 864 y Fe(\\rtext)9 b Fd(.)d(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)24 b Fc(10)1015 922 y Fe(\\savecurrpo)o(s)8 +b Fd(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)25 b Fc(18)1015 980 y Fe(\\savepos)8 b Fd(.)s(.)e(.)g(.)g(.) +h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)g(.)21 b Fc(18)1015 1038 y Fe(\\setgray)9 b Fd(.)s(.)d(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)22 b Fc(8)1015 1096 y Fe(\\setsegscal)o(e)8 +b Fd(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)25 b Fc(20)1015 1155 y Fe(\\setunitsca)o(le)6 +b Fd(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)23 b Fc(19)1015 1213 y Fe(\\textref)8 b Fd(.)s(.)e(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g +(.)g(.)21 b Fc(11)1015 1271 y Fe(\\vectlen)8 b Fd(.)s(.)e(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g +(.)g(.)21 b Fc(35)1015 1329 y Fe(\\vtext)9 b Fd(.)d(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)24 b Fc(10)1015 1387 y Fe(\\writeps)8 b Fd(.)s(.)e(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)g(.)21 b Fc(32)1015 1522 y Fs(A)1015 1588 y Fe(arc)6 +b Fd(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)19 +b Fc(32)1015 1647 y Fe(arcn)t Fd(.)5 b(.)h(.)h(.)f(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)18 b Fc(32)1015 1781 y Fs(C)1015 1848 y Fe(closepath)7 +b Fd(.)s(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)20 b Fc(31)1015 1983 y Fs(F)1015 +2049 y Fe(fill)t Fd(.)5 b(.)h(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)18 +b Fc(31)1015 2184 y Fs(L)1015 2251 y Fe(lineto)9 b Fd(.)d(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)24 b Fc(32)1015 2386 y Fs(M)1015 2452 +y Fe(moveto)9 b Fd(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)24 +b Fc(32)1015 2587 y Fs(N)1015 2653 y Fe(newpath)9 b Fd(.)t(.)d(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)h(.)f(.)g(.)22 b Fc(31)p eop +%%Page: 54 56 +54 55 bop 0 -83 a Ft(54)1722 b(T)1793 -73 y(E)1819 -83 +y(Xdra)o(w)0 158 y Fs(S)0 225 y Fe(setlinecap)t Fd(.)s(.)7 +b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)g(.)g(.)18 b Fc(31)1015 158 y Fe(setlinejoin)s Fd(.)s(.)6 +b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)17 b Fc(31)1015 216 y Fe(stroke)9 b Fd(.)d(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)24 b Fc(31)p eop +%%Page: 55 57 +55 56 bop 0 -83 a Ft(Concept)15 b(Index)1616 b(55)0 158 +y Fp(Concept)16 b(Index)0 414 y Fs(A)0 481 y Fc(accessing)f(T)187 +489 y(E)207 481 y(Xdra)o(w)8 b Fd(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)21 b Fc(3,)13 b(23)0 539 y(angle)h(of)f(a)g(v)o(ector)7 +b Fd(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)20 b Fc(35)0 597 y(arcs)5 b Fd(.)i(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)18 +b Fc(12,)13 b(32)0 655 y(arro)o(whead)h(parameters)s +Fd(.)7 b(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)16 +b Fc(8)0 713 y(arro)o(ws)7 b Fd(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)19 b Fc(7)0 827 y Fs(B)0 893 y Fc(Bezier)14 b(curv)o(es)c +Fd(.)c(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)22 b Fc(14)0 1007 y Fs(C)0 1073 y Fc(circles)11 +b Fd(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)22 b Fc(12)0 +1132 y(command)14 b(syn)o(tax)5 b Fd(.)i(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)17 b Fc(5)0 1190 +y(co)q(ordinate)e(parsing)8 b Fd(.)g(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)h(.)20 b Fc(35)0 1248 y(co)q(ordinate)15 +b(sp)q(eci\014cation)d Fd(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +22 b Fc(6)0 1306 y(co)q(ordinate,)15 b(sym)o(b)q(olic)7 +b Fd(.)h(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)20 +b Fc(18)0 1364 y(co)q(ordinates)9 b Fd(.)f(.)e(.)g(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)21 +b Fc(6)0 1422 y(cosine)14 b(of)f(a)g(v)o(ector)g(direction)6 +b Fd(.)i(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)18 b Fc(35)0 1480 y(curren)o(t)c(p)q +(osition)f Fd(.)7 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)25 +b Fc(7,)12 b(21,)h(35)0 1538 y(curren)o(t)h(p)q(osition)h(in)f(P)o +(ostScript)7 b Fd(.)h(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)20 b Fc(31)0 1597 +y(curv)o(es)8 b Fd(.)f(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)21 +b Fc(14)0 1710 y Fs(D)0 1777 y Fc(dashed)14 b(lines)f +Fd(.)7 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)24 b Fc(8)0 1835 y(direction)15 +b(of)e(a)g(line)7 b Fd(.)g(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)20 b Fc(35)0 1893 y(distribution)7 b +Fd(.)i(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)19 b Fc(1)0 1951 y(dotted)14 +b(lines)6 b Fd(.)i(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)19 b Fc(8)0 2009 +y(dra)o(wing)14 b(segmen)o(ts)6 b Fd(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)19 b Fc(17)0 2067 y Fe(dvi2ps)10 +b Fc(prin)o(ter)15 b(driv)o(er)d Fd(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)h(.)23 b Fc(23)0 2125 y Fe(dvialw)10 b Fc(prin)o(ter)15 +b(driv)o(er)d Fd(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)23 +b Fc(23)0 2184 y Fe(dvilaser)10 b Fc(prin)o(ter)k(driv)o(er)8 +b Fd(.)f(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)21 b Fc(23)0 +2242 y Fe(dvips)11 b Fc(prin)o(ter)j(driv)o(er)e Fd(.)6 +b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)24 b Fc(1,)12 b(23,)h(28)0 +2300 y Fe(dvipsone)d Fc(prin)o(ter)k(driv)o(er)8 b Fd(.)f(.)f(.)h(.)f +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)21 b Fc(23)0 2358 y Fe(dvitops)10 +b Fc(prin)o(ter)k(driv)o(er)d Fd(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)22 b Fc(23)0 2416 y Fe(dviwindo)10 b Fc(prin)o(ter)k(driv)o(er) +8 b Fd(.)f(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)21 b Fc(23)0 +2530 y Fs(E)0 2596 y Fc(ellipses)13 b Fd(.)6 b(.)g(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g +(.)g(.)23 b Fc(12)0 2654 y(Encapsulated)16 b(P)o(ostScript)e(File)t +Fd(.)8 b(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)17 b Fc(28)1015 414 y(errors)d(while)g(using)h +(T)1348 422 y(E)1368 414 y(Xdra)o(w)8 b Fd(.)e(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)21 +b Fc(25)1015 472 y(example,)15 b(arro)o(w)d(curv)o(e)f +Fd(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)23 +b Fc(36)1015 530 y(example,)15 b(blo)q(c)o(k)f(diagram)6 +b Fd(.)i(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)19 b Fc(39)1015 +588 y(example,)c(circle)f(and)g(ellipse)s Fd(.)9 b(.)d(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)17 b Fc(44)1015 647 y(example,)e(graph)9 b Fd(.)e(.)f(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)22 +b Fc(42)1015 759 y Fs(F)1015 825 y Fc(\014ll)15 b(op)q(erations,)g(in)o +(teraction)g(with)e(dra)o(wing)h(segmen)o(ts)t Fd(.)7 +b(.)f(.)17 b Fc(17)1015 884 y(\014lled)e(circles)5 b +Fd(.)j(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)18 b Fc(12)1015 942 y(\014lling)e(regions)d +Fd(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)25 +b Fc(15,)13 b(31)1015 1054 y Fs(G)1015 1121 y Fe(graphics)d +Fc(pac)o(k)n(age)e Fd(.)f(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)20 +b Fc(1,)13 b(3,)g(23,)g(28)1015 1179 y(graphics)i(placemen)o(t)e +Fd(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)24 +b Fc(28)1015 1237 y(gra)o(y)14 b(lev)o(els)h(for)d(lines)s +Fd(.)d(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)16 +b Fc(8)1015 1349 y Fs(I)1015 1416 y Fc(implemen)o(tatio)q(n)7 +b Fd(.)i(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g +(.)g(.)20 b Fc(26)1015 1474 y(initial)c(curren)o(t)e(p)q(osition)8 +b Fd(.)h(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)21 b +Fc(21)1015 1532 y(in)o(v)o(oking)16 b(T)1191 1540 y(E)1212 +1532 y(Xdra)o(w)5 b Fd(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +g(.)18 b Fc(3,)13 b(23)1015 1644 y Fs(L)1015 1711 y Fc(LaT)1080 +1719 y(E)1101 1711 y(X)s Fd(.)7 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)16 b +Fc(1,)d(3,)g(23)1015 1769 y(length)i(of)e(a)g(v)o(ector)7 +b Fd(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)20 +b Fc(35)1015 1827 y(line)15 b(cap)t Fd(.)7 b(.)f(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.) +f(.)17 b Fc(31)1015 1885 y(line)e(join)c Fd(.)6 b(.)g(.)g(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)23 b Fc(31)1015 1943 y(line)15 b(width)s Fd(.)7 +b(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)16 b Fc(8)1015 2001 y(lines)d +Fd(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)23 b Fc(7,)13 +b(32)1015 2060 y(listing)j(of)d(commands)s Fd(.)7 b(.)f(.)h(.)f(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17 b Fc(47)1015 2172 +y Fs(M)1015 2238 y Fc(mo)o(v)o(es)6 b Fd(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +19 b Fc(7,)13 b(32)1015 2351 y Fs(O)1015 2417 y Fe(oztex)e +Fc(prin)o(ter)j(driv)o(er)s Fd(.)8 b(.)e(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)17 b Fc(23)1015 2530 y Fs(P)1015 2596 +y Fc(pain)o(ting)f(regions)s Fd(.)8 b(.)e(.)g(.)g(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17 b Fc(15)1015 2654 +y(paths)t Fd(.)8 b(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)g(.)g(.)g(.)g(.)17 b Fc(15,)c(17,)g(31)p +eop +%%Page: 56 58 +56 57 bop 0 -83 a Ft(56)1722 b(T)1793 -73 y(E)1819 -83 +y(Xdra)o(w)0 158 y Fe(pctexps)10 b Fc(prin)o(ter)k(driv)o(er)d +Fd(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)22 b +Fc(23)0 216 y Fe(pctexwin)10 b Fc(prin)o(ter)k(driv)o(er)8 +b Fd(.)f(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)21 b Fc(23)0 +275 y(placemen)o(t)14 b(of)f(graphics)i(and)f(text)6 +b Fd(.)f(.)h(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)18 b Fc(28)0 333 y(plain)d(T)118 341 +y(E)139 333 y(X)t Fd(.)5 b(.)h(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)16 +b Fc(3)0 391 y(p)q(osition)f(sp)q(eci\014cation)6 b Fd(.)i(.)f(.)f(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)18 b Fc(6)0 449 +y(p)q(ositions,)d(sa)o(ving)8 b Fd(.)g(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)20 b Fc(18)0 507 y(P)o(ostScript)14 +b(commands)6 b Fd(.)i(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)19 +b Fc(31)0 565 y(P)o(ostScript)14 b(prin)o(ter)h(driv)o(ers)s +Fd(.)8 b(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)g(.)g(.)g(.)16 b Fc(23,)d(28)0 623 y(prin)o(ter)h(driv)o +(ers)s Fd(.)8 b(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)16 b Fc(23,)d(28)0 681 y(problems)i(while)f(using)g(T)387 +689 y(E)408 681 y(Xdra)o(w)6 b Fd(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)19 b Fc(25)0 +739 y Fe(psprint)10 b Fc(driv)o(er)5 b Fd(.)i(.)f(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)17 b +Fc(23)0 847 y Fs(R)0 914 y Fc(relativ)o(e)e(p)q(ositioning)t +Fd(.)9 b(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)16 +b Fc(8)0 972 y(relativ)o(e)f(scaling)t Fd(.)8 b(.)e(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17 b +Fc(19)0 1030 y(resolution)t Fd(.)9 b(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17 +b Fc(27)0 1088 y(rotated)c(text)t Fd(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)17 b Fc(10,)12 b(23,)h(27,)g(28)0 1196 y +Fs(S)0 1263 y Fc(sa)o(ving)i(p)q(ositions)t Fd(.)9 b(.)d(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)17 +b Fc(18)0 1321 y(scaling)t Fd(.)8 b(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17 +b Fc(26)0 1379 y(scaling)e(co)q(ordinates)t Fd(.)9 b(.)d(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)17 b Fc(19)0 1437 +y(segmen)o(t)c(scale)7 b Fd(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)19 b Fc(19)0 1495 +y(segmen)o(ts)12 b Fd(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)24 b +Fc(17)0 1553 y(sine)14 b(of)f(a)g(v)o(ector)g(direction)7 +b Fd(.)h(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)19 b Fc(35)1015 +158 y(size)14 b(of)f(the)g(dra)o(wing)5 b Fd(.)j(.)e(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)18 b Fc(21)1015 216 +y(stroking)d(lines)s Fd(.)8 b(.)e(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)h(.)16 b Fc(17,)d(31)1015 275 y(sym)o(b)q(olic)j +(co)q(ordinate)t Fd(.)8 b(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)17 b Fc(18)1015 333 y(syn)o(tax)d(of)f(commands)e +Fd(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)22 +b Fc(5)1015 452 y Fs(T)1015 519 y Fe(texdraw)11 b Fc(pac)o(k)n(age)5 +b Fd(.)i(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)18 b +Fc(3,)13 b(23,)g(28)1015 577 y(text)h(commands)9 b Fd(.)e(.)f(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)22 +b Fc(10)1015 635 y(text)14 b(placemen)o(t)t Fd(.)7 b(.)f(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)17 +b Fc(28)1015 693 y(text)d(rotation)6 b Fd(.)h(.)f(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)19 b Fc(10,)13 b(23,)g(27,)g(28)1015 751 +y Fe(textures)d Fc(prin)o(ter)k(driv)o(er)8 b Fd(.)g(.)e(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)h(.)f(.)21 b Fc(23)1015 871 y Fs(U)1015 937 +y Fc(unit)15 b(scale)6 b Fd(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)19 +b Fc(19)1015 1057 y Fs(V)1015 1123 y Fc(v)o(ectors)13 +b Fd(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)25 b Fc(7)1015 +1181 y(v)o(ertical)15 b(text)10 b Fd(.)c(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)23 +b Fc(10)1015 1301 y Fs(W)1015 1367 y Fc(width)14 b(of)f(lines)8 +b Fd(.)g(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)21 b Fc(8)1015 1487 y Fs(X)1015 1553 +y Fe(xdvi)12 b Fc(driv)o(er)d Fd(.)e(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)22 +b Fc(23)p eop +%%Page: -1 59 +-1 58 bop 1937 -83 a Ft(i)0 158 y Fp(T)-7 b(able)15 b(of)g(Con)n(ten)n +(ts)0 333 y Fs(1)67 b(In)n(tro)r(duction)9 b Fb(.)i(.)f(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)31 +b Fs(1)149 411 y Ft(1.1)45 b(Distribution)16 b(information)9 +b Fa(.)f(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)g(.)f(.)h(.)f(.)h(.)23 b Ft(1)0 535 y Fs(2)67 b(Using)22 +b(the)h(T)444 548 y(E)479 535 y(Xdra)n(w)f(Commands)11 +b Fb(.)e(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)f(.)h(.)33 b Fs(3)149 613 y Ft(2.1)45 b(Accessing)16 +b(T)484 623 y(E)510 613 y(Xdra)o(w)5 b Fa(.)i(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)20 b Ft(3)149 675 y(2.2)45 b(Command)15 b(syn)o(tax)e +Fa(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)28 b Ft(5)149 +737 y(2.3)45 b(T)278 747 y(E)303 737 y(Xdra)o(w)15 b(co)q(ordinates)9 +b Fa(.)f(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)24 b Ft(6)149 800 +y(2.4)45 b(Co)q(ordinate)15 b(sp)q(eci\014cation)g Fa(.)8 +b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)28 b Ft(6)149 862 y(2.5)45 b(Line)17 +b(v)o(ectors)c Fa(.)8 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)29 b Ft(7)149 924 y(2.6)45 b(T)278 934 y(E)303 +924 y(X)16 b(text)c Fa(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)28 b Ft(10)149 986 y(2.7)45 b(Circles,)16 +b(ellipses)i(and)d(arcs)c Fa(.)c(.)g(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)26 b Ft(12)149 +1049 y(2.8)45 b(Bezier)16 b(curv)o(es)e Fa(.)8 b(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)g(.)f(.)29 b Ft(14)149 1111 y(2.9)45 +b(Fill)17 b(commands)10 b Fa(.)d(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)25 b Ft(15)0 1236 y Fs(3)67 b(Dra)n(wing)22 b(Segmen)n(ts)g +(and)h(Scaling)17 b Fb(.)10 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)39 b Fs(17)149 1313 y +Ft(3.1)45 b(Dra)o(wing)15 b(segmen)o(ts)8 b Fa(.)e(.)i(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)23 b Ft(17)149 1376 y(3.2)45 b(Dra)o(wing)15 +b(paths)10 b Fa(.)d(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)25 +b Ft(17)149 1438 y(3.3)45 b(Sa)o(ving)15 b(p)q(ositions)5 +b Fa(.)k(.)f(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)20 +b Ft(18)149 1500 y(3.4)45 b(Scaling)17 b(co)q(ordinates)7 +b Fa(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)23 b Ft(19)149 +1562 y(3.5)45 b(Dra)o(wing)15 b(size)8 b Fa(.)g(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)23 b Ft(21)149 1625 y(3.6)45 +b(Initial)17 b(curren)o(t)e(p)q(osition)6 b Fa(.)i(.)g(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)21 +b Ft(21)0 1749 y Fs(4)67 b(Using)22 b(T)327 1763 y(E)362 +1749 y(Xdra)n(w)h(with)g(LaT)842 1763 y(E)877 1749 y(X)14 +b Fb(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)f(.)h(.)g(.)37 b Fs(23)149 1827 y Ft(4.1)45 b(P)o(ostScript)15 +b(prin)o(ter)g(driv)o(ers)10 b Fa(.)e(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)25 b Ft(23)0 +1952 y Fs(5)67 b(More)22 b(Details)13 b Fb(.)d(.)g(.)g(.)g(.)g(.)f(.)h +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)36 +b Fs(25)149 2029 y Ft(5.1)45 b(Errors)14 b(while)j(using)f(T)656 +2039 y(E)681 2029 y(Xdra)o(w)5 b Fa(.)i(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)20 b Ft(25)149 2092 +y(5.2)45 b(Extending)16 b(T)497 2101 y(E)523 2092 y(Xdra)o(w)9 +b Fa(.)e(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)24 b Ft(26)299 2154 +y(5.2.1)44 b(Scaling)15 b Fa(.)8 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h +(.)29 b Ft(26)299 2216 y(5.2.2)44 b(Resolution)13 b Fa(.)8 +b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)27 b Ft(27)299 2279 y(5.2.3)44 +b(T)l(ext)15 b(placemen)o(t)7 b Fa(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)22 b +Ft(27)299 2341 y(5.2.4)44 b(The)15 b(in)o(termediate)h(P)o(ostScript)f +(\014le)g Fa(.)7 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)29 b Ft(28)149 2403 +y(5.3)45 b(Ho)o(w)15 b(T)382 2413 y(E)407 2403 y(Xdra)o(w)g(merges)f +(graphics)i(and)g(text)d Fa(.)8 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)29 +b Ft(28)0 2528 y Fs(App)r(endix)24 b(A)67 b(P)n(ostScript)24 +b(Commands)5 b Fb(.)10 b(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.) +h(.)g(.)g(.)g(.)28 b Fs(31)p eop +%%Page: -2 60 +-2 59 bop 0 -83 a Ft(ii)1744 b(T)1793 -73 y(E)1819 -83 +y(Xdra)o(w)0 17 y Fs(App)r(endix)24 b(B)67 b(T)460 30 +y(E)496 17 y(Xdra)n(w)22 b(T)-6 b(o)r(olb)r(o)n(x)19 +b Fb(.)9 b(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)f(.)41 b Fs(35)149 94 y Ft(B.1)k(Co)q(ordinate)16 +b(parsing)f Fa(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)30 b Ft(35)149 +157 y(B.2)45 b(Real)17 b(arithmetic)7 b Fa(.)h(.)g(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)23 b Ft(36)149 219 y(B.3)45 b(Arro)o(w)15 +b(curv)o(e)7 b Fa(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)22 b Ft(36)0 344 y Fs(App)r(endix)i(C)67 b(Examples)13 +b Fb(.)e(.)f(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.) +h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)36 +b Fs(39)149 421 y Ft(C.1)45 b(Blo)q(c)o(k)16 b(diagram)f(of)g(a)g +(lattice)g(\014lter)10 b Fa(.)e(.)g(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)25 b Ft(39)149 484 y(C.2)45 b(Filter)16 b(resp)q(onse)g +(graph)e Fa(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)30 b Ft(42)149 546 +y(C.3)45 b(Geometric)15 b(construction)t Fa(.)8 b(.)g(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)19 +b Ft(44)0 670 y Fs(App)r(endix)24 b(D)67 b(Alphab)r(etic)24 +b(listing)g(of)e(commands)7 b Fb(.)j(.)f(.)h(.)g(.)g(.)g(.)30 +b Fs(47)0 811 y(Command)22 b(Index)10 b Fb(.)h(.)f(.)g(.)g(.)g(.)g(.)f +(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)33 +b Fs(53)0 951 y(Concept)22 b(Index)11 b Fb(.)g(.)f(.)g(.)g(.)g(.)g(.)g +(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)34 +b Fs(55)p eop +%%Trailer +end +userdict /end-hook known{end-hook}if +%%EOF diff --git a/Master/texmf-dist/doc/support/texdraw/texdraw_1.html b/Master/texmf-dist/doc/support/texdraw/texdraw_1.html deleted file mode 100644 index 0865cde28b5..00000000000 --- a/Master/texmf-dist/doc/support/texdraw/texdraw_1.html +++ /dev/null @@ -1,82 +0,0 @@ -<HTML> -<HEAD> -<!-- Created by texi2html 1.56k from texdraw.texi on 10 March 2004 --> - -<TITLE>TeXdraw - 1. Introduction</TITLE> -</HEAD> -<BODY> -Go to the first, previous, <A HREF="texdraw_2.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="SEC1" HREF="texdraw_toc.html#TOC1">1. Introduction</A></H1> - -<P> -TeX is a powerful typesetting program which allows for complex text -layouts but by itself lacks a general graphics capability. However, -when coupled with an appropriate printer driver program, external -graphics files can be inserted into the printed document. In this mode, -TeX is instructed to leave space for a drawing. The drawing is -inserted by the printer driver program. The TeXdraw macros described -here generate the external graphics file from within TeX and generate -the instructions to the the print driver program to position the -graphics at the appropriate position on the page. - - -<P> -TeXdraw consists of a set of TeX macros that create line drawings -and other figures. The drawing primitives include solid lines, -patterned lines, Bezier curves, circles and arrows. Other commands -allow for the filling of a region with a gray level. The drawing -commands generate PostScript code. This limits TeXdraw to systems -which use PostScript printers. TeXdraw also provides commands to -position TeX text, including mathematics, on the drawing. The final -drawing, with text and graphics, can be positioned on the page like any -other TeX box. - - -<P> -<A NAME="IDX1"></A> -<A NAME="IDX2"></A> -<A NAME="IDX3"></A> -The basic TeXdraw macros for TeX use the <CODE>\special</CODE> syntax -recognized by the printer driver program <CODE>dvips</CODE>. However, when -invoked as a LaTeX2e package, the TeXdraw macros can be used with -any of the PostScript printer driver programs supported by the standard -<CODE>graphics</CODE> package for LaTeX2e. - - -<P> -The basic TeXdraw macros provide only simple drawing commands. -However, TeXdraw provides a drawing segment environment which allows -parameter changes and coordinate scaling changes to be kept local to the -drawing segment. This facility, together with TeX's macro -capabilities allows one to modularize drawing units and extend -TeXdraw by building more complex graphics entities from simpler -elements. - - - -<UL> -<LI><A HREF="texdraw_1.html#SEC2">Distribution</A> -</UL> - - - -<H2><A NAME="SEC2" HREF="texdraw_toc.html#TOC2">1.1 Distribution information</A></H2> -<P> -<A NAME="IDX4"></A> - - -<P> -The TeXdraw routines are provided free of charge without warranty of -any kind. Note that the TeXdraw routines are copyrighted. They may -be distributed freely provided that the recipients also acquire the -right to distribute them freely. The notices to this effect must be -preserved when the source files are distributed. - - -<P><HR><P> -Go to the first, previous, <A HREF="texdraw_2.html">next</A>, <A HREF="texdraw_11.html">last</A> section, <A HREF="texdraw_toc.html">table of contents</A>. -</BODY> -</HTML> diff --git a/Master/texmf-dist/doc/support/texdraw/texdraw_10.html b/Master/texmf-dist/doc/support/texdraw/texdraw_10.html deleted file mode 100644 index faa705634dd..00000000000 --- a/Master/texmf-dist/doc/support/texdraw/texdraw_10.html +++ /dev/null @@ -1,126 +0,0 @@ -<HTML> -<HEAD> -<!-- Created by texi2html 1.56k from texdraw.texi on 10 March 2004 --> - -<TITLE>TeXdraw - Command Index</TITLE> -</HEAD> -<BODY> -Go to the <A HREF="texdraw_1.html">first</A>, <A HREF="texdraw_9.html">previous</A>, <A HREF="texdraw_11.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="SEC40" HREF="texdraw_toc.html#TOC40">Command Index</A></H1> -<P> -Jump to: -<A HREF="#findex_\">\</A> -- -<A HREF="#findex_a">a</A> -- -<A HREF="#findex_c">c</A> -- -<A HREF="#findex_f">f</A> -- -<A HREF="#findex_l">l</A> -- -<A HREF="#findex_m">m</A> -- -<A HREF="#findex_n">n</A> -- -<A HREF="#findex_s">s</A> -<P> -<H2><A NAME="findex_\">\</A></H2> -<DIR> -<LI><A HREF="texdraw_2.html#IDX63">\arc</A> -<LI><A HREF="texdraw_2.html#IDX44">\arrowheadsize</A> -<LI><A HREF="texdraw_2.html#IDX43">\arrowheadtype</A> -<LI><A HREF="texdraw_2.html#IDX30">\avec</A> -<LI><A HREF="texdraw_2.html#IDX13">\begin{texdraw}</A> -<LI><A HREF="texdraw_3.html#IDX74">\bsegment</A> -<LI><A HREF="texdraw_2.html#IDX11">\btexdraw</A> -<LI><A HREF="texdraw_2.html#IDX15">\centertexdraw</A> -<LI><A HREF="texdraw_2.html#IDX66">\clvec</A> -<LI><A HREF="texdraw_7.html#IDX177">\cossin</A> -<LI><A HREF="texdraw_7.html#IDX176">\currentpos</A> -<LI><A HREF="texdraw_3.html#IDX94">\drawbb</A> -<LI><A HREF="texdraw_2.html#IDX22">\drawdim</A> -<LI><A HREF="texdraw_2.html#IDX14">\end{texdraw}</A> -<LI><A HREF="texdraw_3.html#IDX75">\esegment</A> -<LI><A HREF="texdraw_2.html#IDX12">\etexdraw</A> -<LI><A HREF="texdraw_2.html#IDX16">\everytexdraw</A> -<LI><A HREF="texdraw_2.html#IDX60">\fcir</A> -<LI><A HREF="texdraw_2.html#IDX62">\fellip</A> -<LI><A HREF="texdraw_7.html#IDX175">\getpos</A> -<LI><A HREF="texdraw_2.html#IDX46">\htext</A> -<LI><A HREF="texdraw_2.html#IDX71">\ifill</A> -<LI><A HREF="texdraw_2.html#IDX59">\lcir</A> -<LI><A HREF="texdraw_2.html#IDX61">\lellip</A> -<LI><A HREF="texdraw_2.html#IDX70">\lfill</A> -<LI><A HREF="texdraw_2.html#IDX41">\linewd</A> -<LI><A HREF="texdraw_2.html#IDX29">\lvec</A> -<LI><A HREF="texdraw_2.html#IDX28">\move</A> -<LI><A HREF="texdraw_6.html#IDX164">\PSarc</A> -<LI><A HREF="texdraw_6.html#IDX166">\PSarcn</A> -<LI><A HREF="texdraw_6.html#IDX153">\PSclosepath</A> -<LI><A HREF="texdraw_6.html#IDX155">\PSfill</A> -<LI><A HREF="texdraw_6.html#IDX159">\PSlineto</A> -<LI><A HREF="texdraw_6.html#IDX161">\PSmoveto</A> -<LI><A HREF="texdraw_6.html#IDX151">\PSnewpath</A> -<LI><A HREF="texdraw_6.html#IDX141">\PSsetlinecap</A> -<LI><A HREF="texdraw_6.html#IDX143">\PSsetlinejoin</A> -<LI><A HREF="texdraw_6.html#IDX149">\PSstroke</A> -<LI><A HREF="texdraw_2.html#IDX34">\ravec</A> -<LI><A HREF="texdraw_7.html#IDX179">\realadd</A> -<LI><A HREF="texdraw_7.html#IDX181">\realdiv</A> -<LI><A HREF="texdraw_7.html#IDX180">\realmult</A> -<LI><A HREF="texdraw_3.html#IDX92">\relsegscale</A> -<LI><A HREF="texdraw_3.html#IDX90">\relunitscale</A> -<LI><A HREF="texdraw_2.html#IDX33">\rlvec</A> -<LI><A HREF="texdraw_2.html#IDX32">\rmove</A> -<LI><A HREF="texdraw_2.html#IDX53">\rtext</A> -<LI><A HREF="texdraw_3.html#IDX83">\savecurrpos</A> -<LI><A HREF="texdraw_3.html#IDX84">\savepos</A> -<LI><A HREF="texdraw_2.html#IDX42">\setgray</A> -<LI><A HREF="texdraw_3.html#IDX91">\setsegscale</A> -<LI><A HREF="texdraw_3.html#IDX89">\setunitscale</A> -<LI><A HREF="texdraw_2.html#IDX54">\textref</A> -<LI><A HREF="texdraw_7.html#IDX178">\vectlen</A> -<LI><A HREF="texdraw_2.html#IDX50">\vtext</A> -<LI><A HREF="texdraw_6.html#IDX167">\writeps</A> -</DIR> -<H2><A NAME="findex_a">a</A></H2> -<DIR> -<LI><A HREF="texdraw_6.html#IDX163">arc</A> -<LI><A HREF="texdraw_6.html#IDX165">arcn</A> -</DIR> -<H2><A NAME="findex_c">c</A></H2> -<DIR> -<LI><A HREF="texdraw_6.html#IDX152">closepath</A> -</DIR> -<H2><A NAME="findex_f">f</A></H2> -<DIR> -<LI><A HREF="texdraw_6.html#IDX154">fill</A> -</DIR> -<H2><A NAME="findex_l">l</A></H2> -<DIR> -<LI><A HREF="texdraw_6.html#IDX158">lineto</A> -</DIR> -<H2><A NAME="findex_m">m</A></H2> -<DIR> -<LI><A HREF="texdraw_6.html#IDX160">moveto</A> -</DIR> -<H2><A NAME="findex_n">n</A></H2> -<DIR> -<LI><A HREF="texdraw_6.html#IDX150">newpath</A> -</DIR> -<H2><A NAME="findex_s">s</A></H2> -<DIR> -<LI><A HREF="texdraw_6.html#IDX140">setlinecap</A> -<LI><A HREF="texdraw_6.html#IDX142">setlinejoin</A> -<LI><A HREF="texdraw_6.html#IDX148">stroke</A> -</DIR> - - -<P><HR><P> -Go to the <A HREF="texdraw_1.html">first</A>, <A HREF="texdraw_9.html">previous</A>, <A HREF="texdraw_11.html">next</A>, <A HREF="texdraw_11.html">last</A> section, <A HREF="texdraw_toc.html">table of contents</A>. -</BODY> -</HTML> diff --git a/Master/texmf-dist/doc/support/texdraw/texdraw_11.html b/Master/texmf-dist/doc/support/texdraw/texdraw_11.html deleted file mode 100644 index cafff98a536..00000000000 --- a/Master/texmf-dist/doc/support/texdraw/texdraw_11.html +++ /dev/null @@ -1,205 +0,0 @@ -<HTML> -<HEAD> -<!-- Created by texi2html 1.56k from texdraw.texi on 10 March 2004 --> - -<TITLE>TeXdraw - Concept Index</TITLE> -</HEAD> -<BODY> -Go to the <A HREF="texdraw_1.html">first</A>, <A HREF="texdraw_10.html">previous</A>, next, last section, <A HREF="texdraw_toc.html">table of contents</A>. -<P><HR><P> - - -<H1><A NAME="SEC41" HREF="texdraw_toc.html#TOC41">Concept Index</A></H1> -<P> -Jump to: -<A HREF="#cindex_a">a</A> -- -<A HREF="#cindex_b">b</A> -- -<A HREF="#cindex_c">c</A> -- -<A HREF="#cindex_d">d</A> -- -<A HREF="#cindex_e">e</A> -- -<A HREF="#cindex_f">f</A> -- -<A HREF="#cindex_g">g</A> -- -<A HREF="#cindex_i">i</A> -- -<A HREF="#cindex_l">l</A> -- -<A HREF="#cindex_m">m</A> -- -<A HREF="#cindex_o">o</A> -- -<A HREF="#cindex_p">p</A> -- -<A HREF="#cindex_r">r</A> -- -<A HREF="#cindex_s">s</A> -- -<A HREF="#cindex_t">t</A> -- -<A HREF="#cindex_u">u</A> -- -<A HREF="#cindex_v">v</A> -- -<A HREF="#cindex_w">w</A> -- -<A HREF="#cindex_x">x</A> -<P> -<H2><A NAME="cindex_a">a</A></H2> -<DIR> -<LI><A HREF="texdraw_2.html#IDX5">accessing TeXdraw</A>, <A HREF="texdraw_4.html#IDX97">accessing TeXdraw</A> -<LI><A HREF="texdraw_7.html#IDX170">angle of a vector</A> -<LI><A HREF="texdraw_2.html#IDX58">arcs</A>, <A HREF="texdraw_6.html#IDX162">arcs</A> -<LI><A HREF="texdraw_2.html#IDX40">arrowhead parameters</A> -<LI><A HREF="texdraw_2.html#IDX25">arrows</A> -</DIR> -<H2><A NAME="cindex_b">b</A></H2> -<DIR> -<LI><A HREF="texdraw_2.html#IDX64">Bezier curves</A> -</DIR> -<H2><A NAME="cindex_c">c</A></H2> -<DIR> -<LI><A HREF="texdraw_2.html#IDX55">circles</A> -<LI><A HREF="texdraw_2.html#IDX17">command syntax</A> -<LI><A HREF="texdraw_7.html#IDX168">coordinate parsing</A> -<LI><A HREF="texdraw_2.html#IDX20">coordinate specification</A> -<LI><A HREF="texdraw_3.html#IDX81">coordinate, symbolic</A> -<LI><A HREF="texdraw_2.html#IDX19">coordinates</A> -<LI><A HREF="texdraw_7.html#IDX172">cosine of a vector direction</A> -<LI><A HREF="texdraw_2.html#IDX27">current position</A>, <A HREF="texdraw_3.html#IDX95">current position</A>, <A HREF="texdraw_7.html#IDX169">current position</A> -<LI><A HREF="texdraw_6.html#IDX147">current position in PostScript</A> -<LI><A HREF="texdraw_2.html#IDX65">curves</A> -</DIR> -<H2><A NAME="cindex_d">d</A></H2> -<DIR> -<LI><A HREF="texdraw_2.html#IDX37">dashed lines</A> -<LI><A HREF="texdraw_7.html#IDX171">direction of a line</A> -<LI><A HREF="texdraw_1.html#IDX4">distribution</A> -<LI><A HREF="texdraw_2.html#IDX38">dotted lines</A> -<LI><A HREF="texdraw_3.html#IDX73">drawing segments</A> -<LI><A HREF="texdraw_4.html#IDX106"><CODE>dvi2ps</CODE> printer driver</A> -<LI><A HREF="texdraw_4.html#IDX107"><CODE>dvialw</CODE> printer driver</A> -<LI><A HREF="texdraw_4.html#IDX108"><CODE>dvilaser</CODE> printer driver</A> -<LI><A HREF="texdraw_1.html#IDX1"><CODE>dvips</CODE> printer driver</A>, <A HREF="texdraw_4.html#IDX104"><CODE>dvips</CODE> printer driver</A>, <A HREF="texdraw_5.html#IDX134"><CODE>dvips</CODE> printer driver</A> -<LI><A HREF="texdraw_4.html#IDX109"><CODE>dvipsone</CODE> printer driver</A> -<LI><A HREF="texdraw_4.html#IDX111"><CODE>dvitops</CODE> printer driver</A> -<LI><A HREF="texdraw_4.html#IDX110"><CODE>dviwindo</CODE> printer driver</A> -</DIR> -<H2><A NAME="cindex_e">e</A></H2> -<DIR> -<LI><A HREF="texdraw_2.html#IDX57">ellipses</A> -<LI><A HREF="texdraw_5.html#IDX126">Encapsulated PostScript File</A> -<LI><A HREF="texdraw_5.html#IDX120">errors while using TeXdraw</A> -<LI><A HREF="texdraw_7.html#IDX182">example, arrow curve</A> -<LI><A HREF="texdraw_8.html#IDX183">example, block diagram</A> -<LI><A HREF="texdraw_8.html#IDX185">example, circle and ellipse</A> -<LI><A HREF="texdraw_8.html#IDX184">example, graph</A> -</DIR> -<H2><A NAME="cindex_f">f</A></H2> -<DIR> -<LI><A HREF="texdraw_3.html#IDX76">fill operations, interaction with drawing segments</A> -<LI><A HREF="texdraw_2.html#IDX56">filled circles</A> -<LI><A HREF="texdraw_2.html#IDX67">filling regions</A>, <A HREF="texdraw_6.html#IDX145">filling regions</A> -</DIR> -<H2><A NAME="cindex_g">g</A></H2> -<DIR> -<LI><A HREF="texdraw_1.html#IDX3"><CODE>graphics</CODE> package</A>, <A HREF="texdraw_2.html#IDX10"><CODE>graphics</CODE> package</A>, <A HREF="texdraw_4.html#IDX103"><CODE>graphics</CODE> package</A>, <A HREF="texdraw_5.html#IDX131"><CODE>graphics</CODE> package</A> -<LI><A HREF="texdraw_5.html#IDX127">graphics placement</A> -<LI><A HREF="texdraw_2.html#IDX39">gray levels for lines</A> -</DIR> -<H2><A NAME="cindex_i">i</A></H2> -<DIR> -<LI><A HREF="texdraw_5.html#IDX121">implementation</A> -<LI><A HREF="texdraw_3.html#IDX96">initial current position</A> -<LI><A HREF="texdraw_2.html#IDX6">invoking TeXdraw</A>, <A HREF="texdraw_4.html#IDX98">invoking TeXdraw</A> -</DIR> -<H2><A NAME="cindex_l">l</A></H2> -<DIR> -<LI><A HREF="texdraw_1.html#IDX2">LaTeX</A>, <A HREF="texdraw_2.html#IDX8">LaTeX</A>, <A HREF="texdraw_4.html#IDX99">LaTeX</A> -<LI><A HREF="texdraw_7.html#IDX174">length of a vector</A> -<LI><A HREF="texdraw_6.html#IDX138">line cap</A> -<LI><A HREF="texdraw_6.html#IDX139">line join</A> -<LI><A HREF="texdraw_2.html#IDX35">line width</A> -<LI><A HREF="texdraw_2.html#IDX23">lines</A>, <A HREF="texdraw_6.html#IDX156">lines</A> -<LI><A HREF="texdraw_9.html#IDX186">listing of commands</A> -</DIR> -<H2><A NAME="cindex_m">m</A></H2> -<DIR> -<LI><A HREF="texdraw_2.html#IDX26">moves</A>, <A HREF="texdraw_6.html#IDX157">moves</A> -</DIR> -<H2><A NAME="cindex_o">o</A></H2> -<DIR> -<LI><A HREF="texdraw_4.html#IDX112"><CODE>oztex</CODE> printer driver</A> -</DIR> -<H2><A NAME="cindex_p">p</A></H2> -<DIR> -<LI><A HREF="texdraw_2.html#IDX68">painting regions</A> -<LI><A HREF="texdraw_2.html#IDX69">paths</A>, <A HREF="texdraw_3.html#IDX77">paths</A>, <A HREF="texdraw_6.html#IDX146">paths</A> -<LI><A HREF="texdraw_4.html#IDX115"><CODE>pctexps</CODE> printer driver</A> -<LI><A HREF="texdraw_4.html#IDX116"><CODE>pctexwin</CODE> printer driver</A> -<LI><A HREF="texdraw_5.html#IDX129">placement of graphics and text</A> -<LI><A HREF="texdraw_2.html#IDX7">plain TeX</A> -<LI><A HREF="texdraw_2.html#IDX21">position specification</A> -<LI><A HREF="texdraw_3.html#IDX80">positions, saving</A> -<LI><A HREF="texdraw_6.html#IDX137">PostScript commands</A> -<LI><A HREF="texdraw_4.html#IDX102">PostScript printer drivers</A>, <A HREF="texdraw_5.html#IDX132">PostScript printer drivers</A> -<LI><A HREF="texdraw_4.html#IDX101">printer drivers</A>, <A HREF="texdraw_5.html#IDX133">printer drivers</A> -<LI><A HREF="texdraw_5.html#IDX119">problems while using TeXdraw</A> -<LI><A HREF="texdraw_4.html#IDX113"><CODE>psprint</CODE> driver</A> -</DIR> -<H2><A NAME="cindex_r">r</A></H2> -<DIR> -<LI><A HREF="texdraw_2.html#IDX31">relative positioning</A> -<LI><A HREF="texdraw_3.html#IDX86">relative scaling</A> -<LI><A HREF="texdraw_5.html#IDX123">resolution</A> -<LI><A HREF="texdraw_2.html#IDX48">rotated text</A>, <A HREF="texdraw_2.html#IDX51">rotated text</A>, <A HREF="texdraw_4.html#IDX117">rotated text</A>, <A HREF="texdraw_5.html#IDX124">rotated text</A>, <A HREF="texdraw_5.html#IDX135">rotated text</A> -</DIR> -<H2><A NAME="cindex_s">s</A></H2> -<DIR> -<LI><A HREF="texdraw_3.html#IDX79">saving positions</A> -<LI><A HREF="texdraw_5.html#IDX122">scaling</A> -<LI><A HREF="texdraw_3.html#IDX85">scaling coordinates</A> -<LI><A HREF="texdraw_3.html#IDX87">segment scale</A> -<LI><A HREF="texdraw_3.html#IDX72">segments</A> -<LI><A HREF="texdraw_7.html#IDX173">sine of a vector direction</A> -<LI><A HREF="texdraw_3.html#IDX93">size of the drawing</A> -<LI><A HREF="texdraw_3.html#IDX78">stroking lines</A>, <A HREF="texdraw_6.html#IDX144">stroking lines</A> -<LI><A HREF="texdraw_3.html#IDX82">symbolic coordinate</A> -<LI><A HREF="texdraw_2.html#IDX18">syntax of commands</A> -</DIR> -<H2><A NAME="cindex_t">t</A></H2> -<DIR> -<LI><A HREF="texdraw_2.html#IDX9"><CODE>texdraw</CODE> package</A>, <A HREF="texdraw_4.html#IDX100"><CODE>texdraw</CODE> package</A>, <A HREF="texdraw_5.html#IDX130"><CODE>texdraw</CODE> package</A> -<LI><A HREF="texdraw_2.html#IDX45">text commands</A> -<LI><A HREF="texdraw_5.html#IDX128">text placement</A> -<LI><A HREF="texdraw_2.html#IDX49">text rotation</A>, <A HREF="texdraw_2.html#IDX52">text rotation</A>, <A HREF="texdraw_4.html#IDX118">text rotation</A>, <A HREF="texdraw_5.html#IDX125">text rotation</A>, <A HREF="texdraw_5.html#IDX136">text rotation</A> -<LI><A HREF="texdraw_4.html#IDX114"><CODE>textures</CODE> printer driver</A> -</DIR> -<H2><A NAME="cindex_u">u</A></H2> -<DIR> -<LI><A HREF="texdraw_3.html#IDX88">unit scale</A> -</DIR> -<H2><A NAME="cindex_v">v</A></H2> -<DIR> -<LI><A HREF="texdraw_2.html#IDX24">vectors</A> -<LI><A HREF="texdraw_2.html#IDX47">vertical text</A> -</DIR> -<H2><A NAME="cindex_w">w</A></H2> -<DIR> -<LI><A HREF="texdraw_2.html#IDX36">width of lines</A> -</DIR> -<H2><A NAME="cindex_x">x</A></H2> -<DIR> -<LI><A HREF="texdraw_4.html#IDX105"><CODE>xdvi</CODE> driver</A> -</DIR> - - -<P><HR><P> -Go to the <A HREF="texdraw_1.html">first</A>, <A HREF="texdraw_10.html">previous</A>, next, last section, <A HREF="texdraw_toc.html">table of contents</A>. -</BODY> -</HTML> diff --git a/Master/texmf-dist/doc/support/texdraw/texdraw_2.html b/Master/texmf-dist/doc/support/texdraw/texdraw_2.html deleted file mode 100644 index 25abbb1af0e..00000000000 --- a/Master/texmf-dist/doc/support/texdraw/texdraw_2.html +++ /dev/null @@ -1,882 +0,0 @@ -<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> diff --git a/Master/texmf-dist/doc/support/texdraw/texdraw_3.html b/Master/texmf-dist/doc/support/texdraw/texdraw_3.html deleted file mode 100644 index 52193c720b2..00000000000 --- a/Master/texmf-dist/doc/support/texdraw/texdraw_3.html +++ /dev/null @@ -1,369 +0,0 @@ -<HTML> -<HEAD> -<!-- Created by texi2html 1.56k from texdraw.texi on 10 March 2004 --> - -<TITLE>TeXdraw - 3. Drawing Segments and Scaling</TITLE> -</HEAD> -<BODY> -Go to the <A HREF="texdraw_1.html">first</A>, <A HREF="texdraw_2.html">previous</A>, <A HREF="texdraw_4.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="SEC13" HREF="texdraw_toc.html#TOC13">3. Drawing Segments and Scaling</A></H1> - -<P> -TeXdraw provides individually scaled segments which can be used to -create relocatable drawing modules. - - - -<UL> -<LI><A HREF="texdraw_3.html#SEC14">Drawing segments</A> -<LI><A HREF="texdraw_3.html#SEC15">Drawing paths</A> -<LI><A HREF="texdraw_3.html#SEC16">Saving positions</A> -<LI><A HREF="texdraw_3.html#SEC17">Scaling coordinates</A> -<LI><A HREF="texdraw_3.html#SEC18">Drawing size</A> -<LI><A HREF="texdraw_3.html#SEC19">Initial current position</A> -</UL> - - - -<H2><A NAME="SEC14" HREF="texdraw_toc.html#TOC14">3.1 Drawing segments</A></H2> -<P> -<A NAME="IDX72"></A> -<A NAME="IDX73"></A> - - -<P> -A TeXdraw drawing segment allows for local modifications of -parameters and relative positioning. A TeXdraw segment is delimited -by a <CODE>\bsegment</CODE> command and an <CODE>\esegment</CODE> command. Inside -the segment, the initial current position is <CODE>(0 0)</CODE>. Any changes -to parameters such as the gray level and the line width, remain local to -the segment. Segments are implemented in TeX using a -<CODE>\begingroup</CODE> and <CODE>\endgroup</CODE>. Segments can be nested. - - -<DL COMPACT> - -<DT><CODE>\bsegment</CODE> -<DD> -<A NAME="IDX74"></A> - -Start a drawing segment. The coordinate system is shifted such that the -current position corresponds to the coordinate <CODE>(0 0)</CODE>. Changes to -scaling, position and line parameters stay local to the drawing segment. -<A NAME="IDX75"></A> -<DT><CODE>\esegment</CODE> -<DD> -End a drawing segment. The current position in effect before the -corresponding <CODE>\bsegment</CODE> command is restored. The scaling and -line parameter values revert to those in effect before the corresponding -<CODE>\bsegment</CODE> command was invoked. -</DL> - - - -<H2><A NAME="SEC15" HREF="texdraw_toc.html#TOC15">3.2 Drawing paths</A></H2> -<P> -<A NAME="IDX76"></A> -<A NAME="IDX77"></A> -<A NAME="IDX78"></A> -Certain subtle interactions occur between drawing segments and fill -operations. In PostScript, lines are drawn by first defining a path, -then later stroking the path to draw the line. In TeXdraw, this -stroking occurs when the line is terminated, say by a <CODE>\move</CODE> -command. PostScript paths are interrupted by, but continue after a -drawing segment. This means that a path started before a segment may -not be stroked (drawn) until after the segment ends. Consider the -following example. - -<PRE> -\move (0 0) -\lvec (1 1) -\bsegment - \move (-0.25 -0.25) - \fcir f:0.8 r:0.5 -\esegment -\move (0 0) -</PRE> - -<P> -A PostScript path is started at <CODE>(0 0)</CODE> and continues with a line -to <CODE>(1 1)</CODE>. This path is interrupted by the segment. The filled -circle is drawn next. After the segment, the path continues and is not -stroked until the <CODE>\move (0 0)</CODE> command after the end of the -segment. This means that the line appears on top of the filled region. - - -<P> -If the fill operation is to cover the line, the path must be stroked -before the fill operation. From TeXdraw, the move commands -<CODE>\move</CODE> and <CODE>\rmove</CODE>, and the end TeXdraw command -<CODE>\etexdraw</CODE> terminate a path and cause it to be stroked. Within a -segment, the end segment command <CODE>\esegment</CODE> also terminates and -strokes a path. In the example above, the line can be stroked by -inserting a move command (such as a <CODE>\rmove (0 0)</CODE> which does not -affect the position), before the start of the segment. - - - - -<H2><A NAME="SEC16" HREF="texdraw_toc.html#TOC16">3.3 Saving positions</A></H2> -<P> -<A NAME="IDX79"></A> -<A NAME="IDX80"></A> -<A NAME="IDX81"></A> -<A NAME="IDX82"></A> - - -<P> -The <CODE>\savecurrpos</CODE> command saves the current position. The saved -position is an absolute position, not one relative to a segment. The -position saving mechanism is global; the position can be saved within a -nested segment and then used outside of the segment. The <VAR>x</VAR> and -<VAR>y</VAR> coordinates of the position are saved separately as named -coordinates. The names are of the form <CODE>*<VAR>name</VAR></CODE>, with the -leading <CODE>*</CODE> being obligatory. A companion command, -<CODE>\savepos</CODE>, saves a given coordinate (relative to the current -segment) as an absolute symbolic position. - - -<DL COMPACT> - -<DT><CODE>\savecurrpos (*<VAR>px</VAR> *<VAR>py</VAR>)</CODE> -<DD> -<A NAME="IDX83"></A> - -Save the current position as the absolute position referenced by -<CODE>(*<VAR>px</VAR> *<VAR>py</VAR>)</CODE>. -<A NAME="IDX84"></A> -<DT><CODE>\savepos (<VAR>x</VAR> <VAR>y</VAR>)(*<VAR>px</VAR> *<VAR>py</VAR>)</CODE> -<DD> -Save the coordinate position <CODE>(<VAR>x</VAR> <VAR>y</VAR>)</CODE> as the absolute -position referenced by <CODE>(*<VAR>px</VAR> *<VAR>py</VAR>)</CODE>. The coordinate -<CODE>(<VAR>x</VAR> <VAR>y</VAR>)</CODE> is interpreted in the normal fashion as a -coordinate relative to the current segment, using the current scaling -factors and drawing unit. -</DL> - -<P> -The symbolic names used to specify a saved position can consist of any -characters that are not special to TeX, but must start with a -<CODE>*</CODE> character. The symbolic names can be used as the <VAR>x</VAR> -and/or <VAR>y</VAR> coordinate in any command that needs a coordinate. -Symbolic coordinates are not normally used with relative motion commands -such as <CODE>\rlvec</CODE> or <CODE>\rmove</CODE>. If used with relative motion, -the corresponding displacement is equal to the symbolic coordinate -value. - - -<P> -On exit from a segment, the position and graphics state on entry is -restored. Any changes to line types, scaling and position are -discarded. However, it is sometimes useful alter the position on exit -from a segment. The <CODE>\savepos</CODE> command allows for the saving of a -position within the segment. This position can be restored after the -<CODE>\esegment</CODE> with a <CODE>\move</CODE> command using the saved symbolic -position. This approach can be used to build modules which operate in a -manner analogous to the basic relative motion line vector commands. - - -<P> -The following example defines a macro which draws a box 0.75 inches wide -by 0.5 inches high containing centered text. On leaving the macro the -position will be set at a point on the righthand side of the box. - -<PRE> -\def\tbox #1{\bsegment - \lvec (0 +0.25) \lvec (0.75 +0.25) - \lvec (0.75 -0.25) \lvec (0 -0.25) \lvec (0 0) - \textref h:C v:C \htext (0.375 0){#1} - \savepos (0.75 0)(*ex *ey) - \esegment - \move (*ex *ey)} -</PRE> - -<P> -With this definition, we can treat <CODE>\tbox</CODE> in the same way as the -basic vector commands, stringing them together to form a block diagram -as in this example. - -<PRE> -\centertexdraw{ - \ravec (1 0) \tbox{$H(z)$} \ravec (1 0) -} -</PRE> - - - -<H2><A NAME="SEC17" HREF="texdraw_toc.html#TOC17">3.4 Scaling coordinates</A></H2> -<P> -<A NAME="IDX85"></A> -<A NAME="IDX86"></A> -<A NAME="IDX87"></A> -<A NAME="IDX88"></A> - - -<P> -There are two scale factors available, the unit scale factor and the -segment scale factor. The overall scale factor is the product of these -two. There are absolute and relative versions of commands to change -these scale factors. - - -<P> -The unit scale factor is normally used to affect global scale changes. -Changes to the unit scale factor remains local to a segment, but -propagate to inferior segments. The default value is unity. - - -<P> -The segment scale factor is used for local scale changes. It remains -local to a segment. The segment scale factor is reset to unity on entry -into each segment. This means that changes to the segment scale factor -do not propagate to inferior segments. - - -<DL COMPACT> - -<DT><CODE>\setunitscale <VAR>scale</VAR></CODE> -<DD> -<A NAME="IDX89"></A> - -Set the unit scaling to <VAR>scale</VAR>. The argument <VAR>scale</VAR> is a real -number which is used to scale coordinate values. The overall scaling -factor is the product of the unit scale factor and the segment scale -factor. -<A NAME="IDX90"></A> -<DT><CODE>\relunitscale <VAR>value</VAR></CODE> -<DD> -Adjust the unit scale factor by multiplying by <VAR>value</VAR>. This has -the effect of multiplying the overall scale factor by the same factor. -The overall scaling factor is the product of the unit scale factor and -the segment scale factor. -<A NAME="IDX91"></A> -<DT><CODE>\setsegscale <VAR>scale</VAR></CODE> -<DD> -Set the segment scale factor. The argument <VAR>scale</VAR> is a real number -which is used to scale coordinate values. The overall scale factor is -the product of the unit scale factor and the segment scale factor. -<A NAME="IDX92"></A> -<DT><CODE>\relsegscale <VAR>value</VAR></CODE> -<DD> -Adjust the segment scale factor by multiplying by <VAR>value</VAR>. This has -the effect of multiplying the current overall scale factor by the same -factor. The overall scaling factor is the product of the unit scale -factor and the segment scale factor. -</DL> - -<P> -In addition to the unit scale factor and the segment scale factor, the -scaling can be controlled by the choice of drawing units with the -command <CODE>\drawdim</CODE> (see section <A HREF="texdraw_2.html#SEC7">2.4 Coordinate specification</A>). - - -<DL COMPACT> - -<DT><CODE>\drawdim cm \setunitscale 2.54</CODE> -<DD> -Set the units to centimetres scaled by 2.54. Together these commands -are effectively the same as <CODE>\drawdim in</CODE>. -</DL> - -<P> -The segment scale can be used to allow scale changes in segments so that -values are in more convenient units. For example suppose dimensions in -a segment are multiples of one third of an inch. The segment scale can -be set once to make 1 drawing unit equal 0.3333 inches. From that point -on, coordinates can be specified with integer values. - - -<P> -The following example defines a macro to draw a rectangular box which is -twice as wide as it is high. The width is specified as an argument. - -<PRE> -\def\mybox #1{\bsegment - \setsegscale #1 - \lvec (0 +0.25) \lvec (1 +0.25) \lvec (1 -0.25) - \lvec (0 -0.25) \lvec (0 0) - \esegment} -</PRE> - - - -<H2><A NAME="SEC18" HREF="texdraw_toc.html#TOC18">3.5 Drawing size</A></H2> -<P> -<A NAME="IDX93"></A> - - -<P> -The effective size of the drawing is determined by the maximum -excursions of the coordinates supplied to TeXdraw commands. The -minimum and maximum scaled <VAR>x</VAR> and <VAR>y</VAR> coordinates are tallied. -Note that <CODE>\move</CODE> commands contribute to the determination of the -calculated size of the drawing, even though they do not generate visible -lines. The circle and ellipse commands add a compensation for the radii -of circles and ellipses. The final TeXdraw drawing is placed in a -TeX box with lower lefthand corner corresponding to -<CODE>(</CODE><VAR>x</VAR>-min <VAR>y</VAR>-min<CODE>)</CODE> and upper righthand corner at -<CODE>(</CODE><VAR>x</VAR>-max <VAR>y</VAR>-max<CODE>)</CODE>. - - -<P> -Text generated by <CODE>\htext</CODE>, <CODE>\vtext</CODE> or <CODE>\rtext</CODE> can -spill outside the box as determined above. Only the text reference -point is guaranteed to be in the drawing box. Arcs can also spill -outside the drawing box. Note also that the widths of lines, and the -sizes of arrowheads do not affect the size of the drawing. The -calculated size of the drawing will never be larger than the actual size -of the drawing. In extreme cases in which text or lines extend far -outside the drawing, extra <CODE>\move</CODE> commands should be used to -establish the size of the drawing so that the TeXdraw box includes -all of the drawing. - - -<P> -TeXdraw provides the <CODE>\drawbb</CODE> command to draw a box which -indicates the effective size of the drawing. Whenever <CODE>\drawbb</CODE> is -invoked, a ruled box is drawn around the drawing as it has been sized up -to that point. Normally <CODE>\drawbb</CODE> is invoked just before the end -of a drawing to indicate the effective size of the final drawing. - - -<DL COMPACT> - -<DT><CODE>\drawbb</CODE> -<DD> -<A NAME="IDX94"></A> - -Draw a ruled box around the effective size of a drawing produced by -TeXdraw commands. -</DL> - - - -<H2><A NAME="SEC19" HREF="texdraw_toc.html#TOC19">3.6 Initial current position</A></H2> -<P> -<A NAME="IDX95"></A> -<A NAME="IDX96"></A> - - -<P> -The first operation in a drawing should be a move to establish the -current position. The current position can be established explicitly -through a <CODE>\move</CODE> command or a text positioning command such as -<CODE>\htext</CODE> with a coordinate. However, if an attempt is made to use -a drawing command which needs a current position and none has been -established, TeXdraw implicitly sets the initial current position to -<CODE>(0 0)</CODE>. The size of the TeXdraw figure is normally determined -from the sequence of coordinates specified, but will include the -implicit initial position in case another initial position has not been -explicitly specified. - - -<P><HR><P> -Go to the <A HREF="texdraw_1.html">first</A>, <A HREF="texdraw_2.html">previous</A>, <A HREF="texdraw_4.html">next</A>, <A HREF="texdraw_11.html">last</A> section, <A HREF="texdraw_toc.html">table of contents</A>. -</BODY> -</HTML> diff --git a/Master/texmf-dist/doc/support/texdraw/texdraw_4.html b/Master/texmf-dist/doc/support/texdraw/texdraw_4.html deleted file mode 100644 index d766d721409..00000000000 --- a/Master/texmf-dist/doc/support/texdraw/texdraw_4.html +++ /dev/null @@ -1,119 +0,0 @@ -<HTML> -<HEAD> -<!-- Created by texi2html 1.56k from texdraw.texi on 10 March 2004 --> - -<TITLE>TeXdraw - 4. Using TeXdraw with LaTeX</TITLE> -</HEAD> -<BODY> -Go to the <A HREF="texdraw_1.html">first</A>, <A HREF="texdraw_3.html">previous</A>, <A HREF="texdraw_5.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="SEC20" HREF="texdraw_toc.html#TOC20">4. Using TeXdraw with LaTeX</A></H1> -<P> -<A NAME="IDX97"></A> -<A NAME="IDX98"></A> -<A NAME="IDX99"></A> -<A NAME="IDX100"></A> - - -<P> -The LaTeX typesetting system uses a structured approach to declaring -typesetting environments. For LaTeX2e, the <CODE>texdraw</CODE> package -defines the <CODE>texdraw</CODE> environment. The TeXdraw environment is -started with a <CODE>\begin{texdraw}</CODE> command and terminated with an -<CODE>\end{texdraw}</CODE> command. All of the basic TeXdraw commands -can be used within the <CODE>texdraw</CODE> environment. - - -<P> -As an example, a LaTeX2e variant of an earlier example can be -constructed as follows. - -<PRE> -\documentclass{article} -\usepackage{texdraw} - ... -\begin{document} - ... -\newcommand{\tbox}[1]{% - \bsegment - \lvec (0 +0.25) \lvec (0.75 +0.25) - \lvec (0.75 -0.25) \lvec (0 -0.25) \lvec (0 0) - \textref h:C v:C \htext (0.375 0){#1} - \savepos (0.75 0)(*ex *ey) - \esegment - \move (*ex *ey)} -\begin{center} -\begin{texdraw} - \ravec (1 0) \tbox{$H(z)$} \ravec (1 0) -\end{texdraw} -\end{center} - ... -\end{document} -</PRE> - -<P> -This example illustrates the use of the LaTeX command -<CODE>\newcommand</CODE> as an alternative to the plain TeX command -<CODE>\def</CODE>. Instead of the basic TeXdraw command -<CODE>\centertexdraw</CODE>, a nested combination of the LaTeX centering -environment and the TeXdraw environment is used. - - - -<UL> -<LI><A HREF="texdraw_4.html#SEC21">PostScript printer drivers</A> -</UL> - - - -<H2><A NAME="SEC21" HREF="texdraw_toc.html#TOC21">4.1 PostScript printer drivers</A></H2> -<P> -<A NAME="IDX101"></A> -<A NAME="IDX102"></A> - - -<P> -<A NAME="IDX103"></A> -The <CODE>texdraw</CODE> package uses the printer driver interface provided by -the standard LaTeX2e <CODE>graphics</CODE> package. Any options to the -<CODE>texdraw</CODE> package are passed to the <CODE>graphics</CODE> package. -Specifically, the name of the PostScript driver to be used can be -specified as an option to the <CODE>texdraw</CODE> package. With no explicit -printer driver option, the default printer driver associated with the -<CODE>graphics</CODE> package is used. - - -<P> -<A NAME="IDX104"></A> -<A NAME="IDX105"></A> -<A NAME="IDX106"></A> -<A NAME="IDX107"></A> -<A NAME="IDX108"></A> -<A NAME="IDX109"></A> -<A NAME="IDX110"></A> -<A NAME="IDX111"></A> -<A NAME="IDX112"></A> -<A NAME="IDX113"></A> -<A NAME="IDX114"></A> -<A NAME="IDX115"></A> -<A NAME="IDX116"></A> -<A NAME="IDX117"></A> -<A NAME="IDX118"></A> -The <CODE>texdraw</CODE> package can be used with any of the printer drivers -supported by the <CODE>graphics</CODE> package that allow for the importation -of PostScript graphics files, viz., <CODE>dvips</CODE>, <CODE>xdvi</CODE>, -<CODE>dvi2ps</CODE>, <CODE>dvialw</CODE>, <CODE>dvilaser</CODE>, <CODE>dvipsone</CODE>, -<CODE>dviwindo</CODE>, <CODE>dvitops</CODE>, <CODE>oztex</CODE>, <CODE>psprint</CODE>, -<CODE>textures</CODE>, <CODE>pctexps</CODE>, and <CODE>pctexwin</CODE>. Not all of these -drivers support the text rotation needed for the TeXdraw commands -<CODE>\vtext</CODE> and <CODE>\rtext</CODE>. Of the drivers listed above, only the -following support support text rotation: <CODE>dvips</CODE>, <CODE>xdvi</CODE>, -<CODE>dvi2ps</CODE>, <CODE>dvitops</CODE>, <CODE>textures</CODE>, and <CODE>pctexps</CODE>. - - -<P><HR><P> -Go to the <A HREF="texdraw_1.html">first</A>, <A HREF="texdraw_3.html">previous</A>, <A HREF="texdraw_5.html">next</A>, <A HREF="texdraw_11.html">last</A> section, <A HREF="texdraw_toc.html">table of contents</A>. -</BODY> -</HTML> diff --git a/Master/texmf-dist/doc/support/texdraw/texdraw_5.html b/Master/texmf-dist/doc/support/texdraw/texdraw_5.html deleted file mode 100644 index c880d21341d..00000000000 --- a/Master/texmf-dist/doc/support/texdraw/texdraw_5.html +++ /dev/null @@ -1,314 +0,0 @@ -<HTML> -<HEAD> -<!-- Created by texi2html 1.56k from texdraw.texi on 10 March 2004 --> - -<TITLE>TeXdraw - 5. More Details</TITLE> -</HEAD> -<BODY> -Go to the <A HREF="texdraw_1.html">first</A>, <A HREF="texdraw_4.html">previous</A>, <A HREF="texdraw_6.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="SEC22" HREF="texdraw_toc.html#TOC22">5. More Details</A></H1> - -<P> -The first part of this chapter offers some suggestions for strategies to -isolate errors in TeX and TeXdraw input. The second part of this -chapter discusses implementational issues. An awareness of these issues -is useful if TeXdraw is to be extended. - - - -<UL> -<LI><A HREF="texdraw_5.html#SEC23">Errors while using TeXdraw</A> -<LI><A HREF="texdraw_5.html#SEC24">Extending TeXdraw</A> -<LI><A HREF="texdraw_5.html#SEC29">How TeXdraw merges graphics and text</A> -</UL> - - - -<H2><A NAME="SEC23" HREF="texdraw_toc.html#TOC23">5.1 Errors while using TeXdraw</A></H2> -<P> -<A NAME="IDX119"></A> -<A NAME="IDX120"></A> - - -<P> -TeX input is notoriously difficult to debug. If TeX reports -errors, so much the better. If the cause is not immediately obvious, -consider using a binary search strategy, removing sections of code with -the premature insertion of the <CODE>\bye</CODE> (or <CODE>\end{document}</CODE> -for LaTeX) command (with the appropriate closing of any open groups -and the like). Other strategies include the insertion of -<CODE>\message{I am here}</CODE> at appropriate places. Try using -<CODE>\tracingmacros=1</CODE>. Many problems turn out to be due to an -incorrect number of macro arguments or incorrectly delimited macro -arguments. The <CODE>\tracingmacros=1</CODE> option writes the macro -arguments and macro expansions to the TeX log file. - - -<P> -Certain errors may not manifest themselves until well after the -offending command. For instance, if a closing parenthesis is missing -from a TeXdraw coordinate, TeX continues searching for the -parenthesis. If one is found, perhaps many lines later, the TeXdraw -error message <CODE>invalid coordinate</CODE> will be printed at this later -point. - - -<P> -All input in the TeXdraw environment should be intended for -interpretation by TeXdraw commands. TeXdraw places text inside a -zero size box (the text itself extends outside the box). Extraneous -input manifests itself as a non-zero size TeXdraw text box. This -causes the TeXdraw text and the PostScript graphics to be displaced -from one another. An error message is issued if a non-zero width -TeXdraw text box is detected. If this error message appears, look -for unintended character sequences amongst the commands to TeXdraw. - - -<P> -Several TeXdraw commands pass their arguments "raw" to the -PostScript file. That means that invalid arguments can generate -PostScript errors when the document is printed. For instance the -argument of the <CODE>\setgray</CODE> command is passed straight through to -the PostScript file. If this argument is non-numeric, a PostScript -error results. Not all PostScript printers report errors back to the -user. The print may just stop prematurely. One approach to debugging -is to use a PostScript previewer on a workstation. That way, one can -determine at which point in the drawing the PostScript error occurs. - - - - -<H2><A NAME="SEC24" HREF="texdraw_toc.html#TOC24">5.2 Extending TeXdraw</A></H2> -<P> -<A NAME="IDX121"></A> - - -<P> -TeXdraw is implemented using a combination of TeX commands and -PostScript code. This section discusses some of the implementational -issues as they relate to extending TeXdraw. - - -<P> -TeXdraw as implemented, offers a basic set of drawing features. -These are adequate for certain tasks such as producing block diagrams. -There are different approaches to extending TeXdraw to include other -functions. In some cases, the desired functionality can be achieved by -writing a TeX macro which builds on top of the existing TeXdraw -commands. As these extensions become more complex, the limitations of -TeX for computations become increasingly evident. In other cases, -access to different features of PostScript is desired. The appropriate -approach would be to write new PostScript procedures which can be -accessed by TeX macros. - - -<P> -Included with TeXdraw is a set of macros for directly accessing -PostScript functions. These are described in an appendix -(see section <A HREF="texdraw_6.html#SEC30">A. PostScript Commands</A>). - - -<P> -TeXdraw also comes with a toolbox of routines for handling much of -the user interface, converting between different coordinate -representations and the like. The macros for coordinate decoding and -for computations involving coordinates are described in an appendix -(see section <A HREF="texdraw_7.html#SEC31">B. TeXdraw Toolbox</A>). - - - -<UL> -<LI><A HREF="texdraw_5.html#SEC25">Scaling</A> -<LI><A HREF="texdraw_5.html#SEC26">Resolution</A> -<LI><A HREF="texdraw_5.html#SEC27">Text placement</A> -<LI><A HREF="texdraw_5.html#SEC28">Intermediate PostScript file</A> -</UL> - - - -<H3><A NAME="SEC25" HREF="texdraw_toc.html#TOC25">5.2.1 Scaling</A></H3> -<P> -<A NAME="IDX122"></A> - - -<P> -The scaling commands provided in TeXdraw are designed to affect only -the coordinate values specified in commands. For instance, changing the -<CODE>\setunitscale</CODE> value changes the interpretation of the coordinate -in an <CODE>\avec (<VAR>x</VAR> <VAR>y</VAR>)</CODE> command, but does not change the -line width or arrowhead sizes in effect. None of the TeXdraw scaling -commands affect the size of TeX text produced by, for instance, the -<CODE>\htext</CODE> command. Scale changes will however affect the -positioning of text for subsequent commands. - - -<P> -The line parameters are changed only if the corresponding commands to -change them are issued. If the <CODE>\linewd</CODE> command is given, the -current coordinate scaling is used to determine the line width. To -achieve a behaviour more like a global scaling, whenever the scale -factor is changed, the line parameters should be set again. - - - - -<H3><A NAME="SEC26" HREF="texdraw_toc.html#TOC26">5.2.2 Resolution</A></H3> -<P> -<A NAME="IDX123"></A> - - -<P> -TeXdraw scales coordinates before passing them to PostScript. -Keeping track of the coordinate scaling is necessary, in any event, to -allow TeXdraw to compute the maximum excursions of the coordinates. -TeXdraw uses pixel units in its PostScript code. One pixel unit is -equal to 1/300 of an inch. TeXdraw issues PostScript commands with -integer valued pixel coordinates. This sets the positioning resolution -for TeXdraw. The passing of integer valued coordinates which -correspond to the device resolution keeps lines aligned with the device -grid; parallel lines of the same width will be rendered with the same -width. - - -<P> -The position saving mechanism in TeXdraw (see section <A HREF="texdraw_3.html#SEC16">3.3 Saving positions</A>) -associates the pixel coordinates of a position with the specified name. - - -<P> -TeXdraw uses the limited real number representation provided by -TeX. These operations are based on the representation of dimensions -as real-valued numbers of points. Internally in TeX, dimensions are -stored 32-bit values, normalized so that 1 pt corresponds to the scaled -point (sp) value of 65536. Dimensions with magnitudes between 0.000015 -pt and 32767 pt can be represented. This is also the dynamic range of -the TeXdraw pixel coordinates passed to PostScript. TeXdraw must -convert from user supplied coordinates using the scaling factor (which -itself consists of two components, the unit scale and the segment scale) -and a pixel conversion factor. The use of limited precision real -numbers in these computations can cause accumulation of error when -relative scaling is used repeatedly. - - - - -<H3><A NAME="SEC27" HREF="texdraw_toc.html#TOC27">5.2.3 Text placement</A></H3> - -<P> -While in the TeXdraw environment, TeX text is placed in a TeX -box while PostScript code is written to the intermediate file. At the -end of the TeXdraw environment, the size of the drawing is -determined. A TeX box of this size is created. The TeX -<CODE>\special</CODE> mechanism is used to instruct the PostScript driver -program to position the PostScript drawing from the intermediate file in -this area. Next, the text generated by TeXdraw is positioned and -placed in the box. Note that when the document is printed, the -PostScript drawing is placed on the page before the TeX text; TeX -text will appear on top of graphics. - - -<P> -<A NAME="IDX124"></A> -<A NAME="IDX125"></A> -The rotation of text is carried out with in-line PostScript code which -does not appear in the intermediate PostScript file. This code is sent -to the PostScript driver with a <CODE>\special</CODE> command. This -PostScript code is embedded in the dvi (device independent) file that -TeX produces. - - - - -<H3><A NAME="SEC28" HREF="texdraw_toc.html#TOC28">5.2.4 The intermediate PostScript file</A></H3> -<P> -<A NAME="IDX126"></A> - - -<P> -The intermediate PostScript file consists of a header, a body and a -trailer following Encapsulated PostScript File (EPSF) standards. The -header sets up PostScript definitions and default parameter values. The -trailer includes the <CODE>BoundingBox</CODE> information which gives the -coordinates in default PostScript units (72 per inch) for the lower -lefthand corner and the upper righthand corner of the drawing. The body -of the intermediate PostScript file contains the PostScript commands -generated by TeXdraw. - - -<P> -Many moves in TeXdraw serve only to position text or to reset saved -positions. TeXdraw buffers move commands in order to be able to -collapse runs of moves. Only the last move of a run of moves is -actually written to the PostScript file. However the intermediate moves -still affect the size of the drawing. The expunging of moves means that -the PostScript file <CODE>BoundingBox</CODE> information may indicate a drawing size -larger than the PostScript commands themselves would warrant. - - -<P> -Drawing segments in TeXdraw show up in the PostScript file as saves -and restores of the PostScript graphics state. Segment starts are -buffered and only written out if necessary. This way "empty" segments -do not generate output to the PostScript file. These empty segments -arise if a segment contains only moves and text commands. The moves -inside the segment are not needed since they are local to the segment, -and the text commands do not generate output to the PostScript file. - - -<P> -If TeXdraw is used only for moves and text, no intermediate -PostScript file will be created. - - - - -<H2><A NAME="SEC29" HREF="texdraw_toc.html#TOC29">5.3 How TeXdraw merges graphics and text</A></H2> -<P> -<A NAME="IDX127"></A> -<A NAME="IDX128"></A> -<A NAME="IDX129"></A> - - -<P> -TeXdraw creates a box which is the same size as the graphic. The -printer driver will place the PostScript graphic into this space. Any -TeX text generated by the TeXdraw commands will be superimposed on -this graphic. - - -<P> -<A NAME="IDX130"></A> -<A NAME="IDX131"></A> -The LaTeX2e front-end for TeXdraw is enabled by including the -<CODE>texdraw</CODE> package. The <CODE>texdraw</CODE> package automatically -invokes the standard <CODE>graphics</CODE> package distributed with -LaTeX2e. The <CODE>graphics</CODE> package has support for a number of -different printer drivers, including a number for PostScript printers. -Any options to the <CODE>texdraw</CODE> package are passed on to the -<CODE>graphics</CODE> package. Such an option can be used to select a driver -other than the default one. - - -<P> -<A NAME="IDX132"></A> -<A NAME="IDX133"></A> -<A NAME="IDX134"></A> -<A NAME="IDX135"></A> -<A NAME="IDX136"></A> -Within the <CODE>graphics</CODE> package, the driver option is used to select -definitions for the low-level macros which generate the <CODE>\special</CODE> -commands needed to request insertion of a graphics file and to rotate -text.<A NAME="DOCF2" HREF="texdraw_foot.html#FOOT2">(2)</A> -TeXdraw uses the user-level macros defined by the <CODE>graphics</CODE> -package (see section <A HREF="texdraw_4.html#SEC21">4.1 PostScript printer drivers</A>). When not used with the -LaTeX2e front-end, TeXdraw defines versions of these macros that -are suitable for use with the <CODE>dvips</CODE> printer driver. - - -<P><HR><P> -Go to the <A HREF="texdraw_1.html">first</A>, <A HREF="texdraw_4.html">previous</A>, <A HREF="texdraw_6.html">next</A>, <A HREF="texdraw_11.html">last</A> section, <A HREF="texdraw_toc.html">table of contents</A>. -</BODY> -</HTML> diff --git a/Master/texmf-dist/doc/support/texdraw/texdraw_6.html b/Master/texmf-dist/doc/support/texdraw/texdraw_6.html deleted file mode 100644 index 9686e350ae8..00000000000 --- a/Master/texmf-dist/doc/support/texdraw/texdraw_6.html +++ /dev/null @@ -1,183 +0,0 @@ -<HTML> -<HEAD> -<!-- Created by texi2html 1.56k from texdraw.texi on 10 March 2004 --> - -<TITLE>TeXdraw - A. PostScript Commands</TITLE> -</HEAD> -<BODY> -Go to the <A HREF="texdraw_1.html">first</A>, <A HREF="texdraw_5.html">previous</A>, <A HREF="texdraw_7.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="SEC30" HREF="texdraw_toc.html#TOC30">A. PostScript Commands</A></H1> -<P> -<A NAME="IDX137"></A> - - -<P> -This appendix describes a set of macros for accessing some of the -PostScript builtin functions. Each of these macros issues a single -PostScript command. The extra services provided by TeXdraw are the -interpretation of coordinates in user units relative to the current -drawing segment and the writing of a pending TeXdraw move to the -PostScript file. This last operation establishes the current point in -PostScript. The user of these commands should be familiar with the -concepts of path construction and filling in PostScript. Further -details on the PostScript functions used can found in the -<CITE>PostScript Language Reference Manual, Second Edition</CITE>, Adobe -Systems, Addison-Wesley, 1990. - - -<P> -These macros are distributed in file <TT>`txdps.tex'</TT>. - - -<P> -The <CODE>\PSsetlinecap</CODE> and <CODE>\PSsetlinejoin</CODE> commands control the -way line ends and line joins are rendered. The default values set by -TeXdraw (round caps and round join) are appropriate for most -drawings. Changes to these parameters apply to the current and -subsequent paths. - - -<P> -<A NAME="IDX138"></A> -<A NAME="IDX139"></A> -<DL COMPACT> - -<DT><CODE>\PSsetlinecap <VAR>type</VAR></CODE> -<DD> -<A NAME="IDX140"></A> - <A NAME="IDX141"></A> - -Set the line cap parameter. The value <CODE>0</CODE> gives a butt cap; -<CODE>1</CODE> gives a round cap; and <CODE>2</CODE> gives a projecting square cap. -The initial value is corresponds to a round cap. -<A NAME="IDX142"></A> -<A NAME="IDX143"></A> -<DT><CODE>\PSsetlinejoin <VAR>type</VAR></CODE> -<DD> -Set the line join parameter. The value <CODE>0</CODE> gives a miter join; -<CODE>1</CODE> gives a round join; and <CODE>2</CODE> gives a bevel join. The -initial value corresponds to a round join. -</DL> - -<P> -<A NAME="IDX144"></A> -<A NAME="IDX145"></A> -<A NAME="IDX146"></A> -<A NAME="IDX147"></A> -PostScript paths and fill operations can be controlled by a number of -functions. By design, TeXdraw always maintains a defined PostScript -current point. Some of the following macros cause the PostScript -current point to become undefined. The PostScript current point must be -set again (say with a <CODE>\PSmoveto</CODE> command) before invoking basic -TeXdraw commands. -<DL COMPACT> - -<DT><CODE>\PSstroke</CODE> -<DD> -<A NAME="IDX148"></A> - <A NAME="IDX149"></A> - -Stroke a PostScript path. The current path is stroked with the current -gray level (set with <CODE>\setgray</CODE>) and the current line pattern (set -with <CODE>\lpatt</CODE>). The PostScript current point becomes undefined. -<A NAME="IDX150"></A> -<A NAME="IDX151"></A> -<DT><CODE>\PSnewpath</CODE> -<DD> -Establish a new path. The PostScript current point becomes undefined. -<A NAME="IDX152"></A> -<A NAME="IDX153"></A> -<DT><CODE>\PSclosepath</CODE> -<DD> -Close a subpath. A new subpath is started. -<A NAME="IDX154"></A> -<A NAME="IDX155"></A> -<DT><CODE>\PSfill</CODE> -<DD> -Fill a region defined by a path. Each subpath is closed and the -enclosed regions painted with the current gray level. The PostScript -current point becomes undefined. The gray level can be set with the -TeXdraw command <CODE>\setgray</CODE>. -</DL> - -<P> -The following line commands interpret coordinates relative to the -current TeXdraw scaling and drawing segment. The specified -coordinate affects the drawing size as determined by TeXdraw. -<A NAME="IDX156"></A> -<A NAME="IDX157"></A> -<DL COMPACT> - -<DT><CODE>\PSlineto (<VAR>x</VAR> <VAR>y</VAR>)</CODE> -<DD> -<A NAME="IDX158"></A> - <A NAME="IDX159"></A> - -Add a line segment to the current path. This command is identical to -the TeXdraw command <CODE>\lvec</CODE>. The PostScript current point must -be defined before this command is issued. -<A NAME="IDX160"></A> -<A NAME="IDX161"></A> -<DT><CODE>\PSmoveto (<VAR>x</VAR> <VAR>y</VAR>)</CODE> -<DD> -Move to the coordinate specified by <CODE>(<VAR>x</VAR> <VAR>y</VAR>)</CODE>. The -PostScript current point becomes defined. -</DL> - -<P> -The following macros provide access to the general arc commands in -PostScript. The coordinates are interpreted relative to the current -TeXdraw scaling and drawing segment. The specified coordinate -affects the drawing size as determined by TeXdraw. -<A NAME="IDX162"></A> -<DL COMPACT> - -<DT><CODE>\PSarc r:<VAR>radius</VAR> sd:<VAR>start-angle</VAR> ed:<VAR>end-angle</VAR> (<VAR>x</VAR> <VAR>y</VAR>)</CODE> -<DD> -<A NAME="IDX163"></A> - <A NAME="IDX164"></A> - -Draw a counterclockwise arc. The center of the arc is at the given -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>. If the PostScript current point is defined, this -command also draws the line from the current point to the beginning of -the arc. The line and arc become part of the current path. The current -point becomes defined. -<A NAME="IDX165"></A> -<A NAME="IDX166"></A> -<DT><CODE>\PSarcn r:<VAR>radius</VAR> sd:<VAR>start-angle</VAR> ed:<VAR>end-angle</VAR> (<VAR>x</VAR> <VAR>y</VAR>)</CODE> -<DD> -Draw a clockwise arc. The center of the arc is at the given 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>. If the -PostScript current point is defined, this command also draws the line -from the current point to the beginning of the arc. The line and arc -become part of the current path. The current point becomes defined. -</DL> - -<P> -The macro <CODE>\writeps</CODE> provides the general facility to write -arbitrary PostScript commands to the PostScript file. This macro is -used by the preceding commands and by the TeXdraw commands -themselves. This facility has to be used with care since changes in -position or scaling resulting from the PostScript commands are not known -to TeXdraw. -<DL COMPACT> - -<DT><CODE>\writeps {<VAR><ps-commands></VAR>}</CODE> -<DD> -<A NAME="IDX167"></A> - -Write PostScript commands to the intermediate PostScript file. Before -the commands are inserted, any pending TeXdraw move is written to the -PostScript file. The PostScript scaling gives 300 units/inch. -</DL> - -<P><HR><P> -Go to the <A HREF="texdraw_1.html">first</A>, <A HREF="texdraw_5.html">previous</A>, <A HREF="texdraw_7.html">next</A>, <A HREF="texdraw_11.html">last</A> section, <A HREF="texdraw_toc.html">table of contents</A>. -</BODY> -</HTML> diff --git a/Master/texmf-dist/doc/support/texdraw/texdraw_7.html b/Master/texmf-dist/doc/support/texdraw/texdraw_7.html deleted file mode 100644 index 1905d68c0fe..00000000000 --- a/Master/texmf-dist/doc/support/texdraw/texdraw_7.html +++ /dev/null @@ -1,250 +0,0 @@ -<HTML> -<HEAD> -<!-- Created by texi2html 1.56k from texdraw.texi on 10 March 2004 --> - -<TITLE>TeXdraw - B. TeXdraw Toolbox</TITLE> -</HEAD> -<BODY> -Go to the <A HREF="texdraw_1.html">first</A>, <A HREF="texdraw_6.html">previous</A>, <A HREF="texdraw_8.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="SEC31" HREF="texdraw_toc.html#TOC31">B. TeXdraw Toolbox</A></H1> - -<P> -This appendix describes some of the macros supplied with TeXdraw -which can be used to define additional commands for creating drawings. -The macros described here work in the user specified coordinate system. -Some of these toolbox macros are used by the TeXdraw commands -themselves, others are supplied in an auxiliary file -<TT>`txdtools.tex'</TT>. - - - -<UL> -<LI><A HREF="texdraw_7.html#SEC32">Coordinate parsing</A> -<LI><A HREF="texdraw_7.html#SEC33">Real arithmetic</A> -<LI><A HREF="texdraw_7.html#SEC34">Arrow curve</A> -</UL> - - - -<H2><A NAME="SEC32" HREF="texdraw_toc.html#TOC32">B.1 Coordinate parsing</A></H2> - -<P> -The coordinate parsing macro <CODE>\getpos</CODE> is useful for creating new -commands. This macro takes care of stripping leading and trailing -blanks from coordinates specified between parentheses. In addition, -symbolic coordinates are translated to the corresponding relative -coordinate using the segment offset and scaling in effect. - - -<P> -The macro <CODE>\currentpos</CODE> returns the relative coordinates of the -current position. The returned values are relative to the current -segment and the current scaling. The macro <CODE>\cossin</CODE> returns the -real-valued cosine and sine of the direction of the line joining two -points. The macro <CODE>\vectlen</CODE> returns the length of a vector. The -results appear as the value of user supplied macro names. - - -<P> -<A NAME="IDX168"></A> -<A NAME="IDX169"></A> -<A NAME="IDX170"></A> -<A NAME="IDX171"></A> -<A NAME="IDX172"></A> -<A NAME="IDX173"></A> -<A NAME="IDX174"></A> -<DL COMPACT> - -<DT><CODE>\getpos (<VAR>x</VAR> <VAR>y</VAR>)\<VAR>mx</VAR>\<VAR>my</VAR></CODE> -<DD> -<A NAME="IDX175"></A> - -Decode coordinate values. The coordinates specified by <CODE>(<VAR>x</VAR> -<VAR>y</VAR>)</CODE> are decoded. Symbolic coordinates are translated to the -corresponding relative coordinate using the current segment offset and -scaling. The resulting character strings representing the real-valued -coordinates are assigned to the macros specified by <CODE>\<VAR>mx</VAR></CODE> and -<CODE>\<VAR>my</VAR></CODE>. -<A NAME="IDX176"></A> -<DT><CODE>\currentpos \<VAR>mx</VAR>\<VAR>my</VAR></CODE> -<DD> -Return the coordinates of the current position. The coordinates are -relative to the current segment offset and scaling. The resulting -character strings representing the real-valued coordinates are assigned -to the macros specified by <CODE>\<VAR>mx</VAR></CODE> and <CODE>\<VAR>my</VAR></CODE>. -<A NAME="IDX177"></A> -<DT><CODE>\cossin (<VAR>x1</VAR> <VAR>y1</VAR>)(<VAR>x2</VAR> <VAR>y2</VAR>)\<VAR>cosa</VAR>\<VAR>sina</VAR></CODE> -<DD> -Return the cosine and sine of the direction of a vector joining two -points. The cosine and sine of the angle of the vector which goes from -<CODE>(<VAR>x1</VAR> <VAR>y1</VAR>)</CODE> to <CODE>(<VAR>x2</VAR> <VAR>y2</VAR>)</CODE>. The character -strings representing these real-valued quantities are assigned to the -macros specified by <CODE>\<VAR>cosa</VAR></CODE> and <CODE>\<VAR>sina</VAR></CODE>. -<A NAME="IDX178"></A> -<DT><CODE>\vectlen (<VAR>x1</VAR> <VAR>y1</VAR>)(<VAR>x2</VAR> <VAR>y2</VAR>)\<VAR>len</VAR></CODE> -<DD> -Return the length of a vector joining two points. The length of the -vector is relative to the current scaling. The character string -representing the real-valued length is assigned to the macro specified -by <CODE>\<VAR>len</VAR></CODE>. -</DL> - - - -<H2><A NAME="SEC33" HREF="texdraw_toc.html#TOC33">B.2 Real arithmetic</A></H2> - -<P> -The TeXdraw toolbox supplies macros to perform real arithmetic on -coordinate values. The result appears as the value of a user supplied -macro name. -<DL COMPACT> - -<DT><CODE>\realadd {<VAR>value1</VAR>} {<VAR>value2</VAR>} \<VAR>sum</VAR></CODE> -<DD> -<A NAME="IDX179"></A> - -Add two real quantities, assigning the resultant character string -representing the sum to the macro <CODE>\<VAR>sum</VAR></CODE>. -<A NAME="IDX180"></A> -<DT><CODE>\realmult {<VAR>value1</VAR>} {<VAR>value2</VAR>} \<VAR>prod</VAR></CODE> -<DD> -Multiply two real quantities, assigning the resultant character string -representing the product to the macro <CODE>\<VAR>prod</VAR></CODE>. -<A NAME="IDX181"></A> -<DT><CODE>\realdiv {<VAR>value1</VAR>} {<VAR>value2</VAR>} \<VAR>result</VAR></CODE> -<DD> -Divide two real quantities, assigning the resultant character string -representing the result of <VAR>value1</VAR>/<VAR>value2</VAR> to the macro -<CODE>\<VAR>result</VAR></CODE>. -</DL> - - - -<H2><A NAME="SEC34" HREF="texdraw_toc.html#TOC34">B.3 Arrow curve</A></H2> -<P> -<A NAME="IDX182"></A> - - -<P> -This example illustrates the use of the TeXdraw toolbox routines to -do computations with the coordinates. The problem will be tackled in -two parts. First, we will produce a macro to place an arrowhead on a -Bezier curve. Then given this macro, we will produce a macro which can -draw a "wiggly" line from the current position to a given coordinate. - - -<P> -The first macro, <CODE>\cavec</CODE>, uses the <CODE>\cossin</CODE> command to -determine the the cosine and sine of the angle of the line joining the -second control point to the end point of the Bezier curve. Recall that -the Bezier curve is tangent to this line at the end point. After -drawing the Bezier curve, the scaling is set locally to absolute units -of 0.05 inches. We go back down the line from the end point by 0.05 -inches and draw an arrow vector to the end point from there. This arrow -vector is mostly arrowhead, with little or no tail. - - - -<PRE> -\def\cavec (#1 #2)(#3 #4)(#5 #6){ - \clvec (#1 #2)(#3 #4)(#5 #6) - \cossin (#3 #4)(#5 #6)\cosa\sina - \rmove (0 0) - \bsegment - \drawdim in \setsegscale 0.05 - \move ({-\cosa} -\sina) \avec (0 0) - \esegment} -</PRE> - -<P> -Note the use of macros as arguments to a <CODE>\move</CODE> command. Minus -signs are put in front of the macros. However, the value of the macro -<CODE>\cosa</CODE> or <CODE>\sina</CODE> could be negative. Fortunately, TeX -accepts two minus signs in a row and interprets the result as positive. -Note that the <CODE>\rmove (0 0)</CODE> command before the beginning of the -segment ensures that the Bezier curve is stroked before the arrowhead is -drawn. - - -<P> -The second macro <CODE>\caw</CODE> builds on <CODE>\cavec</CODE>. The goal is to -produce a wiggly vector that can be used as a pointer in a drawing. -Consider the following symmetrical normalized Bezier curve. - -<PRE> -\centertexdraw{ \move (0 0) \cavec (1.4 0.1)(-0.4 -0.1)(1 0) } -</PRE> - -<P> -This curve has the appropriate wiggle. Now we want to be able to draw -this curve, appropriately scaled and rotated. The macro <CODE>\caw</CODE> -needs to do computations on the coordinates. First, <CODE>\caw</CODE> uses -the macros <CODE>\getpos</CODE> and <CODE>\currentpos</CODE> to get the positions of -the end and start of the curve. Next, the length of the vector is -calculated using the macro <CODE>\vectlen</CODE>. A local macro -<CODE>\rotatecoord</CODE> is used to rotate a coordinate pair about the -origin, using the cosine and sine of the rotation angle. The vector -length is used to scale the normalized curve. The remaining code draws -the rotated, normalized curve. - - - -<PRE> -\def\caw (#1 #2){ - \currentpos \xa\ya - \cossin ({\xa} \ya)(#1 #2)\cosa\sina - -% The nominal wiggly curve is (0 0) (1+dx dy) (-dx -dy) (1 0) -% Find the rotated offset (dx dy) -> (du dv) - \rotatecoord (0.4 0.1)\cosa\sina \du\dv - -% calculate the length of the vector - \vectlen ({\xa} \ya)(#1 #2)\len - -% draw the curve in normalized units - \bsegment - \setsegscale {\len} - \realadd \cosa \du \tmpa \realadd \sina \dv \tmpb - \cavec ({\tmpa} \tmpb)({-\du} -\dv)({\cosa} \sina) - \esegment - \move (#1 #2)} - -% rotate a coordinate (x y) -% arguments: (x y) cosa sina x' y' -% x' = cosa * x - sina * y; y' = sina * x + cosa * y -\def\rotatecoord (#1 #2)#3#4#5#6{ - \getpos (#1 #2)\xarg\yarg - \realmult \xarg {#3} \tmpa \realmult \yarg {#4} \tmpb - \realadd \tmpa {-\tmpb} #5 - \realmult \xarg {#4} \tmpa \realmult \yarg {#3} \tmpb - \realadd \tmpa \tmpb #6} -</PRE> - -<P> -Finally, the new macro can be used as follows. - -<PRE> -\centertexdraw{ - \arrowheadtype t:W - \move (0 0) - \cavec (1.4 0.1)(-0.4 -0.1)(1 0) - \move (1 0) \caw (1 1) \htext{tip at \tt (1 1)} - \move (1 0) \caw (2 1) \htext{tip at \tt (2 1)} - \move (1 0) \caw (2 0) \htext{tip at \tt (2 0)} - -} -</PRE> - -<P> -Note that the Bezier curve in the macro <CODE>\cavec</CODE> lies below the -arrowhead. The example then draws an arrowhead of type <CODE>W</CODE> to -erase the part of the line below the arrowhead. - - -<P><HR><P> -Go to the <A HREF="texdraw_1.html">first</A>, <A HREF="texdraw_6.html">previous</A>, <A HREF="texdraw_8.html">next</A>, <A HREF="texdraw_11.html">last</A> section, <A HREF="texdraw_toc.html">table of contents</A>. -</BODY> -</HTML> diff --git a/Master/texmf-dist/doc/support/texdraw/texdraw_8.html b/Master/texmf-dist/doc/support/texdraw/texdraw_8.html deleted file mode 100644 index 09ee5d14520..00000000000 --- a/Master/texmf-dist/doc/support/texdraw/texdraw_8.html +++ /dev/null @@ -1,342 +0,0 @@ -<HTML> -<HEAD> -<!-- Created by texi2html 1.56k from texdraw.texi on 10 March 2004 --> - -<TITLE>TeXdraw - C. Examples</TITLE> -</HEAD> -<BODY> -Go to the <A HREF="texdraw_1.html">first</A>, <A HREF="texdraw_7.html">previous</A>, <A HREF="texdraw_9.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="SEC35" HREF="texdraw_toc.html#TOC35">C. Examples</A></H1> -<P> -<A NAME="IDX183"></A> - - -<P> -This appendix shows examples of the use of TeXdraw. - - - -<UL> -<LI><A HREF="texdraw_8.html#SEC36">Block diagram</A> -<LI><A HREF="texdraw_8.html#SEC37">Filter response graph</A> -<LI><A HREF="texdraw_8.html#SEC38">Geometric construction</A> -</UL> - - - -<H2><A NAME="SEC36" HREF="texdraw_toc.html#TOC36">C.1 Block diagram of a lattice filter</A></H2> - -<P> -The block diagram of a lattice filter uses a library of extended -commands built from the basic TeXdraw commands. - - -<P> -The block diagram uses a "delay" block. This is defined as a segment -which leaves the current position at the end of this block. A second -macro, <CODE>\bdot</CODE>, draws a "big" dot which is used to mark junctions -of lines. The <CODE>\Ttext</CODE> command centers text above a given point. -The offset to position the text is local to a segment, resulting in no -change to the current point. Similar macros to position text below a -point (<CODE>\Btext</CODE>), to the left of a point (<CODE>\Ltext</CODE>) and to the -right of a point (<CODE>\Rtext</CODE>) are used in the final drawing. - -<PRE> -\def\delay {\bsegment - \setsegscale 0.3 - \lvec (0 +0.5) \lvec (1 +0.5) \lvec (1 -0.5) - \lvec (0 -0.5) \lvec (0 0) - \textref h:C v:C \htext (0.5 0){$z^{-1}$} - \savepos (1 0)(*ex *ey) - \esegment - \move (*ex *ey)} -\def\bdot {\fcir f:0 r:0.02 } -\def\Ttext #1{\bsegment - \textref h:C v:B \htext (0 +0.06){#1} - \esegment} -</PRE> - -<P> -Several of the block diagram elements scale with the size of the summing -nodes. The radius of the circles for the summing nodes is defined as -the macro <CODE>\cradius</CODE>. The summing nodes will have enclosed plus -signs, appropriately scaled. The plus sign is drawn by the macro -<CODE>\pluss</CODE>. The macro <CODE>\pcir</CODE> draws both the circle and the -plus sign. The incoming lines to a summing node will be labelled with -plus or minus signs (characters this time), placed at the appropriate -position with respect to the center of the summing node. These -positions are given in terms of compass directions. The macro -<CODE>\putwnw</CODE> places text west by north-west relative to the center of -the summing node. - -<PRE> -\def\cradius {0.08} -\def\pluss {\bsegment - \setsegscale {\cradius} - \move (-0.5 0) \lvec (+0.5 0) - \move (0 -0.5) \lvec (0 +0.5) - \esegment} -\def\pcir {\lcir r:{\cradius} \pluss} -\def\puttext (#1 #2)#3{\bsegment - \setsegscale {\cradius} - \textref h:C v:C \htext (#1 #2){#3} - \esegment} -\def\putwnw #1{\puttext (-1.7 +1.2){#1}} -</PRE> - -<P> -The block diagram has vectors arriving and departing from the summing -nodes (circles). One could calculate the points of intersection of the -lines with the circles, and then enter the values into the TeXdraw -code. However, in this example, we implement an automated procedure. -Two macros are needed, an arrow vector to a circle (<CODE>\avectoc</CODE>) and -an arrow vector leaving from a circle (<CODE>\avecfrc</CODE>). The macros -will calculate the point of intersection with the circle and start or -end the vector at the intersection point. - - -<P> -The arrow macros use scaling and relative positioning inside of a -drawing segment. In the case of the macro <CODE>\avectoc</CODE>, a move is -made to the final point (center of the circle), then within a drawing -segment, a scaled move is made back towards the initial point to -determine the intersection point with the circle. - - - -<PRE> -\def\avectoc (#1 #2){\currentpos \xa\ya - \cossin ({\xa} \ya)(#1 #2)\cosa\sina - \savepos (#1 #2)(*tx *ty) - \bsegment - \move (*tx *ty) - \setsegscale {\cradius} - \rmove ({-\cosa} -\sina) - \savecurrpos (*ex *ey) - \esegment - \avec (*ex *ey) - \move (#1 #2)} -\def\avecfrc (#1 #2){\currentpos \xa\ya - \cossin ({\xa} \ya)(#1 #2)\cosa\sina - \bsegment - \setsegscale {\cradius} - \move ({\cosa} \sina) - \savecurrpos (*ex *ey) - \esegment - \move (*ex *ey) - \avec (#1 #2)} -</PRE> - -<P> -Having defined these macros, we are ready to draw the block diagram. -The first and last sections of the lattice filter are very similar, -differing mainly in the text labels. With more effort, code could be -shared between the commands used to draw these blocks. - -<PRE> -\centertexdraw{ -\drawdim in -\arrowheadtype t:F \arrowheadsize l:0.08 w:0.04 -\def\pl {$\scriptscriptstyle +$} \def\mn {$\scriptscriptstyle -$} - -\move (0 +0.63) \move (0 -0.60) \move (0 0) % compensate for the text size - -% Input to the first stage -\bsegment - \Ltext{$x(n)$} - \lvec (0.3 0) \bdot \lvec (0.3 +0.4) \move (0.3 0) \lvec (0.3 -0.4) - \savepos (0.3 0)(*ex *ey) -\esegment -\move (*ex *ey) - -% first lattice stage -\bsegment - \move (0 +0.4) \avectoc (1.7 +0.4) - \pcir \putwnw{\pl} \puts{\mn} - \avecfrc (2.1 +0.4) - \move (0 -0.4) \avec (0.4 -0.4) \delay \avectoc (1.7 -0.4) - \pcir \putwsw{\pl} \putn{\mn} - \avecfrc (2.1 -0.4) - \move (0.9 +0.4) \bdot \avectoc (1.7 -0.4) - \move (0.9 -0.4) \bdot \avectoc (1.7 +0.4) - \move (0.1 +0.42) \Ttext {$f_0(n)$} - \move (2.0 +0.42) \Ttext {$f_1(n)$} - \move (0.1 -0.4) \Btext {$b_0(n)$} - \move (2.0 -0.4) \Btext {$b_1(n)$} - \textref h:L v:B \htext (1.15 +0.2){$K_1$} - \textref h:L v:T \htext (1.15 -0.2){$K_1$} - \savepos (2.1 0)(*ex *ey) -\esegment -\move (*ex *ey) - -% center section -\bsegment - \textref h:C v:C \htext (0.3 +0.4){$\cdots$} - \htext (0.3 -0.4){$\cdots$} - \savepos (0.6 0)(*ex *ey) -\esegment -\move (*ex *ey) - -% last lattice stage -\bsegment - \move (0 +0.4) \avectoc (1.7 +0.4) - \pcir \putwnw{\pl} \puts{\mn} - \avecfrc (2.3 +0.4) \Rtext{$e(n)$} - \move (0 -0.4) \avec (0.4 -0.4) \delay \avectoc (1.7 -0.4) - \pcir \putwsw{\pl} \putn{\mn} - \avecfrc (2.1 -0.4) - \move (0.9 +0.4) \bdot \avectoc (1.7 -0.4) - \move (0.9 -0.4) \bdot \avectoc (1.7 +0.4) - \move (0.1 +0.42) \Ttext {$f_{P-1}(n)$} - \move (2.0 +0.42) \Ttext {$f_P(n)$} - \move (0.1 -0.4) \Btext {$b_{P-1}(n)$} - \move (2.0 -0.4) \Btext {$b_P(n)$} - \textref h:L v:B \htext (1.15 +0.2){$K_P$} - \textref h:L v:T \htext (1.15 -0.2){$K_P$} -\esegment -} -</PRE> - -<P> -The macros used in this example are similar to the block diagram macros -defined in the file <TT>`blockdiagram.tex'</TT>. - - - - -<H2><A NAME="SEC37" HREF="texdraw_toc.html#TOC37">C.2 Filter response graph</A></H2> -<P> -<A NAME="IDX184"></A> - - -<P> -This example shows the response of a canonical filter. TeXdraw is -not well suited for general purpose graphing -- it has no coordinate -translation facility nor does it have separate <VAR>x</VAR> and <VAR>y</VAR> -scaling. Nonetheless, for certain simple graphs, TeXdraw is -adequate. - - -<P> -In this example, macro <CODE>\ticklab</CODE> places a labelled axis tick at a -given position. The data is specified in a straightforward manner, -having been scaled beforehand to give the desired aspect ratio for the -graph. - - - -<PRE> -\centertexdraw{ -\arrowheadtype t:F \arrowheadsize l:0.08 w:0.04 -\def\ds {\displaystyle} -\def\ticklab (#1 #2)#3{\move(#1 #2) - \bsegment - \lvec (0 0.05) - \textref h:C v:T \htext (0 -0.05){#3} - \esegment} -\def\Rtext #1{\bsegment - \textref h:L v:C \htext (+0.08 0){#1} - \esegment} - -\move (2.4 -0.3) % move to set the size - -\move (0 0) -% Axes -\avec (0 +1.4) -\move (0 0) \avec (2.2 0) \Rtext{$\omega$} -\ticklab (0 0) {0} -\ticklab (0.8 0) {$\ds {\pi \over 2N} $} -\ticklab (1.2 0) {$\omega_s$} -\ticklab (1.6 0) {$\ds {\pi \over N} $} - -\linewd 0.025 -\move (0 1) -\lvec (0.4 1) -\lvec (0.44 0.998) -\lvec (0.48 0.988) -\lvec (0.52 0.973) -\lvec (0.56 0.951) - ... -\lvec (1.08 0.233) -\lvec (1.12 0.156) -\lvec (1.16 0.078) -\lvec (1.20 0) -\lvec (1.9 0) -} -</PRE> - - - -<H2><A NAME="SEC38" HREF="texdraw_toc.html#TOC38">C.3 Geometric construction</A></H2> -<P> -<A NAME="IDX185"></A> - - -<P> -This example shows a geometric construction which places an ellipse -tangent to an enclosing circle. The size of the ellipse is determined -from geometric considerations. Macros are used to modularize the code. -The example alters the unit scale factor. This allows the drawing to be -carried out in units normalized to the radius of the circle. - - - -<PRE> -\centertexdraw{ -\arrowheadtype t:V \arrowheadsize l:0.08 w:0.04 -\linewd 0.01 -\setunitscale 1.5 % circle will have radius 1.5 inches - -\def\Btext #1{\bsegment - \textref h:C v:T \htext (0 -0.04){#1} - \esegment} -\def\Ttext #1{\bsegment - \textref h:C v:B \htext (0 +0.04){#1} - \esegment} -\def\Ltext #1{\bsegment - \textref h:R v:C \htext (-0.04 0){#1} - \esegment} -\def\bdot {\fcir f:0 r:0.0133 } -\def\vtick {\bsegment - \move (0 -0.05) \lvec (0 +0.05) - \esegment} -\def\htick {\bsegment - \move (-0.05 0) \lvec (+0.05 0) - \esegment} -\def\Hlen #1#2{\bsegment - \vtick \avec ({#1} 0) \vtick \avec (0 0) - \relsegscale 0.5 - \move ({#1} 0) \Ttext {#2} - \esegment} -\def\Vlen #1#2{\bsegment - \htick \avec (0 {#1}) \htick \avec (0 0) - \relsegscale 0.5 - \move (0 {#1}) \Ltext {#2} - \esegment} - -\lcir r:1 % circle -\move (-1.05 0) \lvec ( 1.05 0) % axes -\move (0 -1.05) \lvec (0 1.05) - -\move (0 0) \lvec (0.707 0.707) \bdot -\rmove (0.02 0.02) \textref h:L v:B \htext {X} -\move (0.707 -0.707) \bdot -\textref h:R v:T \htext(-0.02 -0.02){O} - -\move (0.5 0) % center of ellipse -\bsegment - \lellip rx:0.435 ry:0.804 - \bdot \Btext {$\beta_2$} - \move (0 0.15) \Hlen {0.435}{$|\beta_1{+}\beta_3|$} - \move (-0.7 0) \Vlen {0.804}{$|\beta_1{-}\beta_3|$} -\esegment -} -</PRE> - -<P><HR><P> -Go to the <A HREF="texdraw_1.html">first</A>, <A HREF="texdraw_7.html">previous</A>, <A HREF="texdraw_9.html">next</A>, <A HREF="texdraw_11.html">last</A> section, <A HREF="texdraw_toc.html">table of contents</A>. -</BODY> -</HTML> diff --git a/Master/texmf-dist/doc/support/texdraw/texdraw_9.html b/Master/texmf-dist/doc/support/texdraw/texdraw_9.html deleted file mode 100644 index 6a96d49c59d..00000000000 --- a/Master/texmf-dist/doc/support/texdraw/texdraw_9.html +++ /dev/null @@ -1,321 +0,0 @@ -<HTML> -<HEAD> -<!-- Created by texi2html 1.56k from texdraw.texi on 10 March 2004 --> - -<TITLE>TeXdraw - D. Alphabetic listing of commands</TITLE> -</HEAD> -<BODY> -Go to the <A HREF="texdraw_1.html">first</A>, <A HREF="texdraw_8.html">previous</A>, <A HREF="texdraw_10.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="SEC39" HREF="texdraw_toc.html#TOC39">D. Alphabetic listing of commands</A></H1> -<P> -<A NAME="IDX186"></A> - - -<DL COMPACT> - -<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. - -<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>. - -<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>. - -<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. - -<DT><CODE>\bsegment</CODE> -<DD> -Start a drawing segment. The coordinate system is shifted such that the -current position corresponds to the coordinate <CODE>(0 0)</CODE>. Changes to -scaling, position and line parameters stay local to the drawing segment. - -<DT><CODE>\btexdraw</CODE> -<DD> -Start a TeXdraw drawing. The drawing is terminated with an -<CODE>\etexdraw</CODE> command. - -<DT><CODE>\centertexdraw { ... }</CODE> -<DD> -Center a TeXdraw box. The argument contains TeXdraw commands. -The resulting box has the horizontal size <CODE>\hsize</CODE> and height equal -to the height of the drawing. - -<DT><CODE>\clvec (<VAR>x1</VAR> <VAR>y1</VAR>)(<VAR>x2</VAR> <VAR>y2</VAR>)(<VAR>x3</VAR> <VAR>y3</VAR>)</CODE> -<DD> -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. - -<DT><CODE>\drawbb</CODE> -<DD> -Draw a ruled box around the effective size of a drawing produced by -TeXdraw commands. - -<DT><CODE>\drawdim <VAR>dim</VAR></CODE> -<DD> -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>. - -<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. - -<DT><CODE>\esegment</CODE> -<DD> -End a drawing segment. The current position in effect before the -corresponding <CODE>\bsegment</CODE> command is restored. The scaling and -line parameter values revert to those in effect before the corresponding -<CODE>\bsegment</CODE> was invoked. - -<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. - -<DT><CODE>\everytexdraw { ... }</CODE> -<DD> -Specify TeXdraw commands to be executed at the beginning of every -TeXdraw drawing. - -<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. - -<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. - -<DT><CODE>\htext (<VAR>x</VAR> <VAR>y</VAR>){<VAR>text</VAR>}</CODE> -<DD> -<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. - -<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). - -<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. - -<DT><CODE>\lcir r:<VAR>radius</VAR></CODE> -<DD> -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. - -<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. - -<DT><CODE>\lfill f:<VAR>level</VAR></CODE> -<DD> -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). - -<DT><CODE>\linewd <VAR>width</VAR></CODE> -<DD> -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>. - -<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>. - -<DT><CODE>\move (<VAR>x</VAR> <VAR>y</VAR>)</CODE> -<DD> -Move to coordinate <CODE>(<VAR>x</VAR> <VAR>y</VAR>)</CODE>. The new current position -is <CODE>(<VAR>x</VAR> <VAR>y</VAR>)</CODE>. - -<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. - -<DT><CODE>\relsegscale <VAR>value</VAR></CODE> -<DD> -Adjust the segment scale factor by multiplying by <VAR>value</VAR>. This has -the effect of multiplying the current overall scale factor by the same -factor. The overall scaling factor is the product of the unit scale -factor and the segment scale factor. - -<DT><CODE>\relunitscale <VAR>value</VAR></CODE> -<DD> -Adjust the unit scale factor by multiplying by <VAR>value</VAR>. This has -the effect of multiplying the overall scale factor by the same factor. -The overall scaling factor is the product of the unit scale factor and -the segment scale factor. - -<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. - -<DT><CODE>\rmove (<VAR>dx</VAR> <VAR>dy</VAR>)</CODE> -<DD> -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. - -<DT><CODE>\rtext td:<VAR>angle</VAR> (x y){<VAR>text</VAR>}</CODE> -<DD> -<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. - -<DT><CODE>\savecurrpos (*<VAR>px</VAR> *<VAR>py</VAR>)</CODE> -<DD> -Save the current position as the absolute position referenced by -<CODE>(*<VAR>px</VAR> *<VAR>py</VAR>)</CODE>. - -<DT><CODE>\savepos (<VAR>x</VAR> <VAR>y</VAR>)(*<VAR>px</VAR> *<VAR>py</VAR>)</CODE> -<DD> -Save the coordinate position <CODE>(<VAR>x</VAR> <VAR>y</VAR>)</CODE> as the absolute -position referenced by <CODE>(*<VAR>px</VAR> *<VAR>py</VAR>)</CODE>. The coordinate -<CODE>(<VAR>x</VAR> <VAR>y</VAR>)</CODE> is interpreted in the normal fashion as a -coordinate relative to the current segment, using the current scaling -factors and drawing unit. - -<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. - -<DT><CODE>\setsegscale <VAR>scale</VAR></CODE> -<DD> -Set the segment scale factor. The argument <VAR>scale</VAR> is a real number -which is used to scale coordinate values. The overall scale factor is -the product of the unit scale factor and the segment scale factor. - -<DT><CODE>\setunitscale <VAR>scale</VAR></CODE> -<DD> -Set the unit scaling to <VAR>scale</VAR>. The argument <VAR>scale</VAR> is a real -number which is used to scale coordinate values. The overall scaling -factor is the product of the unit scale factor and the segment scale -factor. - -<DT><CODE>\texdrawbox { ... }</CODE> -<DD> -Create a TeXdraw box. The argument contains TeXdraw commands. -This macro returns a TeX 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. - -<DT><CODE>\textref h:<VAR>h-ref</VAR> v:<VAR>v-ref</VAR></CODE> -<DD> -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>. - -<DT><CODE>\vtext (x y){<VAR>text</VAR>}</CODE> -<DD> -<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><HR><P> -Go to the <A HREF="texdraw_1.html">first</A>, <A HREF="texdraw_8.html">previous</A>, <A HREF="texdraw_10.html">next</A>, <A HREF="texdraw_11.html">last</A> section, <A HREF="texdraw_toc.html">table of contents</A>. -</BODY> -</HTML> diff --git a/Master/texmf-dist/doc/support/texdraw/texdraw_foot.html b/Master/texmf-dist/doc/support/texdraw/texdraw_foot.html deleted file mode 100644 index b45e6c36d32..00000000000 --- a/Master/texmf-dist/doc/support/texdraw/texdraw_foot.html +++ /dev/null @@ -1,25 +0,0 @@ -<HTML> -<HEAD> -<!-- Created by texi2html 1.56k from texdraw.texi on 10 March 2004 --> - -<TITLE>TeXdraw - Footnotes</TITLE> -</HEAD> -<BODY> -<H1>TeXdraw</H1> -<H2>PostScript Drawings from TeX</H2> -<H2>Edition 2.0</H2> -<H2>December 1995</H2> -<ADDRESS>Peter Kabal</ADDRESS> -<P> -<P><HR><P> -<H3><A NAME="FOOT1" HREF="texdraw_2.html#DOCF1">(1)</A></H3> -<P>After the ninth PostScript file, the name of the -intermediate PostScript file takes the form <TT>`<VAR>name</VAR>.p10'</TT>, with -the number increasing from 10 with each file. -<H3><A NAME="FOOT2" HREF="texdraw_5.html#DOCF2">(2)</A></H3> -<P>Not all PostScript drivers support text rotation. -<P><HR><P> -This document was generated on 10 March 2004 using -<A HREF="http://wwwinfo.cern.ch/dis/texi2html/">texi2html</A> 1.56k. -</BODY> -</HTML> diff --git a/Master/texmf-dist/doc/support/texdraw/texdraw_toc.html b/Master/texmf-dist/doc/support/texdraw/texdraw_toc.html deleted file mode 100644 index fdf24359723..00000000000 --- a/Master/texmf-dist/doc/support/texdraw/texdraw_toc.html +++ /dev/null @@ -1,78 +0,0 @@ -<HTML> -<HEAD> -<!-- Created by texi2html 1.56k from texdraw.texi on 10 March 2004 --> - -<TITLE>TeXdraw - Table of Contents</TITLE> -</HEAD> -<BODY> -<H1>TeXdraw</H1> -<H2>PostScript Drawings from TeX</H2> -<H2>Edition 2.0</H2> -<H2>December 1995</H2> -<ADDRESS>Peter Kabal</ADDRESS> -<P> -<P><HR><P> -<UL> -<LI><A NAME="TOC1" HREF="texdraw_1.html#SEC1">1. Introduction</A> -<UL> -<LI><A NAME="TOC2" HREF="texdraw_1.html#SEC2">1.1 Distribution information</A> -</UL> -<LI><A NAME="TOC3" HREF="texdraw_2.html#SEC3">2. Using the TeXdraw Commands</A> -<UL> -<LI><A NAME="TOC4" HREF="texdraw_2.html#SEC4">2.1 Accessing TeXdraw</A> -<LI><A NAME="TOC5" HREF="texdraw_2.html#SEC5">2.2 Command syntax</A> -<LI><A NAME="TOC6" HREF="texdraw_2.html#SEC6">2.3 TeXdraw coordinates</A> -<LI><A NAME="TOC7" HREF="texdraw_2.html#SEC7">2.4 Coordinate specification</A> -<LI><A NAME="TOC8" HREF="texdraw_2.html#SEC8">2.5 Line vectors</A> -<LI><A NAME="TOC9" HREF="texdraw_2.html#SEC9">2.6 TeX text</A> -<LI><A NAME="TOC10" HREF="texdraw_2.html#SEC10">2.7 Circles, ellipses and arcs</A> -<LI><A NAME="TOC11" HREF="texdraw_2.html#SEC11">2.8 Bezier curves</A> -<LI><A NAME="TOC12" HREF="texdraw_2.html#SEC12">2.9 Fill commands</A> -</UL> -<LI><A NAME="TOC13" HREF="texdraw_3.html#SEC13">3. Drawing Segments and Scaling</A> -<UL> -<LI><A NAME="TOC14" HREF="texdraw_3.html#SEC14">3.1 Drawing segments</A> -<LI><A NAME="TOC15" HREF="texdraw_3.html#SEC15">3.2 Drawing paths</A> -<LI><A NAME="TOC16" HREF="texdraw_3.html#SEC16">3.3 Saving positions</A> -<LI><A NAME="TOC17" HREF="texdraw_3.html#SEC17">3.4 Scaling coordinates</A> -<LI><A NAME="TOC18" HREF="texdraw_3.html#SEC18">3.5 Drawing size</A> -<LI><A NAME="TOC19" HREF="texdraw_3.html#SEC19">3.6 Initial current position</A> -</UL> -<LI><A NAME="TOC20" HREF="texdraw_4.html#SEC20">4. Using TeXdraw with LaTeX</A> -<UL> -<LI><A NAME="TOC21" HREF="texdraw_4.html#SEC21">4.1 PostScript printer drivers</A> -</UL> -<LI><A NAME="TOC22" HREF="texdraw_5.html#SEC22">5. More Details</A> -<UL> -<LI><A NAME="TOC23" HREF="texdraw_5.html#SEC23">5.1 Errors while using TeXdraw</A> -<LI><A NAME="TOC24" HREF="texdraw_5.html#SEC24">5.2 Extending TeXdraw</A> -<UL> -<LI><A NAME="TOC25" HREF="texdraw_5.html#SEC25">5.2.1 Scaling</A> -<LI><A NAME="TOC26" HREF="texdraw_5.html#SEC26">5.2.2 Resolution</A> -<LI><A NAME="TOC27" HREF="texdraw_5.html#SEC27">5.2.3 Text placement</A> -<LI><A NAME="TOC28" HREF="texdraw_5.html#SEC28">5.2.4 The intermediate PostScript file</A> -</UL> -<LI><A NAME="TOC29" HREF="texdraw_5.html#SEC29">5.3 How TeXdraw merges graphics and text</A> -</UL> -<LI><A NAME="TOC30" HREF="texdraw_6.html#SEC30">A. PostScript Commands</A> -<LI><A NAME="TOC31" HREF="texdraw_7.html#SEC31">B. TeXdraw Toolbox</A> -<UL> -<LI><A NAME="TOC32" HREF="texdraw_7.html#SEC32">B.1 Coordinate parsing</A> -<LI><A NAME="TOC33" HREF="texdraw_7.html#SEC33">B.2 Real arithmetic</A> -<LI><A NAME="TOC34" HREF="texdraw_7.html#SEC34">B.3 Arrow curve</A> -</UL> -<LI><A NAME="TOC35" HREF="texdraw_8.html#SEC35">C. Examples</A> -<UL> -<LI><A NAME="TOC36" HREF="texdraw_8.html#SEC36">C.1 Block diagram of a lattice filter</A> -<LI><A NAME="TOC37" HREF="texdraw_8.html#SEC37">C.2 Filter response graph</A> -<LI><A NAME="TOC38" HREF="texdraw_8.html#SEC38">C.3 Geometric construction</A> -</UL> -<LI><A NAME="TOC39" HREF="texdraw_9.html#SEC39">D. Alphabetic listing of commands</A> -<LI><A NAME="TOC40" HREF="texdraw_10.html#SEC40">Command Index</A> -<LI><A NAME="TOC41" HREF="texdraw_11.html#SEC41">Concept Index</A> -</UL> -<P><HR><P> -This document was generated on 10 March 2004 using -<A HREF="http://wwwinfo.cern.ch/dis/texi2html/">texi2html</A> 1.56k. -</BODY> -</HTML> diff --git a/Master/texmf-dist/doc/support/texdraw/texi2dvi b/Master/texmf-dist/doc/support/texdraw/texi2dvi deleted file mode 100644 index 45e92ff8e7f..00000000000 --- a/Master/texmf-dist/doc/support/texdraw/texi2dvi +++ /dev/null @@ -1,275 +0,0 @@ -#! /bin/sh -# texi2dvi --- smartly produce DVI files from texinfo sources - -# Copyright (C) 1992, 1993, 1994, 1995 Free Software Foundation, Inc. - -# $Id: texi2dvi,v 1.7 1995/11/03 texdraw-V2R0 $ - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, you can either send email to this -# program's maintainer or write to: The Free Software Foundation, -# Inc.; 59 Temple Place, Suite 330; Boston, MA 02111-1307, USA. - -# Commentary: - -# Author: Noah Friedman <friedman@prep.ai.mit.edu> - -# Please send bug reports, etc. to bug-texinfo@prep.ai.mit.edu -# If possible, please send a copy of the output of the script called with -# the `--debug' option when making a bug report. - -# In the interest of general portability, some common bourne shell -# constructs were avoided because they weren't guaranteed to be available -# in some earlier implementations. I've tried to make this program as -# portable as possible. Welcome to unix, where the lowest common -# denominator is rapidly diminishing. -# -# Among the more interesting lossages I noticed with some bourne shells -# are: -# * No shell functions. -# * No `unset' builtin. -# * `shift' cannot take a numeric argument, and signals an error if -# there are no arguments to shift. - -# Code: - -# Name by which this script was invoked. -progname=`echo "$0" | sed -e 's/[^\/]*\///g'` - -# This string is expanded by rcs automatically when this file is checked out. -rcs_revision='$Revision: 1.7 $' -version=`set - $rcs_revision; echo $2` - -# To prevent hairy quoting and escaping later. -bq='`' -eq="'" - -usage="Usage: $progname {options} [file1] {file2 {...}} -(version $version) - -Options are: --D, --debug Turn on shell debugging ($bq${bq}set -x$eq$eq). --h, --help You're looking at it. --v, --version Print version number. - -Arguments in brackets are required. Those in braces are optional. -" - -# Initialize variables. -# Don't use `unset' since old bourne shells don't have this command. -# Instead, assign them an empty value. -# Some of these, like TEX and TEXINDEX, may be inherited from the environment -backup_extension=.bak -debug= -orig_pwd="`pwd`" -verbose= -texindex="${TEXINDEX-texindex}" -tex="${TEX-tex}" - -# Save this so we can construct a new TEXINPUTS path for each file to be -# processed. -TEXINPUTS_orig="$TEXINPUTS" -export TEXINPUTS - -# Parse command line arguments. -# Make sure that all wildcarded options are long enough to be unambiguous. -# It's a good idea to document the full long option name in each case. -# Long options which take arguments will need a `*' appended to the -# canonical name to match the value appended after the `=' character. -while : ; do - case $# in 0) break ;; esac - case "$1" in - -D | --debug | --d* ) - debug=t - shift - ;; - -h | --help | --h* ) - echo "$usage" 1>&2 - exit 0 - ;; - -v | --version | --v* ) - echo "texi2dvi version $version" 1>&2 - exit 0 - ;; - -- ) # Stop option processing - shift - break - ;; - -* ) - case "$1" in - --*=* ) arg=`echo "$1" | sed -e 's/=.*//'` ;; - * ) arg="$1" ;; - esac - exec 1>&2 - echo "$progname: unknown or ambiguous option $bq$arg$eq" - echo "$progname: Use $bq--help$eq for a list of options." - exit 1 - ;; - * ) - break - ;; - esac -done - -# See if there are any command line args left (which will be interpreted as -# filename arguments) -case $# in - 0 ) - exec 1>&2 - echo "$progname: at least one file name is required as an argument." - echo "$progname: Use $bq--help$eq for a description of command syntax." - exit 2 - ;; -esac - -case "$debug" in t ) set -x ;; esac - -# Texify files -for command_line_filename in ${1+"$@"} ; do - # Roughly equivalent to `dirname ...`, but more portable - directory="`echo ${command_line_filename} | sed 's/\/[^\/]*$//'`" - filename_texi="`basename ${command_line_filename}`" - # Strip off the last extension part (probably .texinfo or .texi) - filename_noext="`echo ${filename_texi} | sed 's/\.[^.]*$//'`" - - # If directory and file are the same, then it's probably because there's - # no pathname component. Set dirname to `.', the current directory. - if test "z${directory}" = "z${command_line_filename}" ; then - directory="." - fi - - # Source file might @include additional texinfo sources. Put `.' and - # directory where source file(s) reside in TEXINPUTS before anything - # else. `.' goes first to ensure that any old .aux, .cps, etc. files in - # ${directory} don't get used in preference to fresher files in `.'. - TEXINPUTS=".:${directory}:${TEXINPUTS_orig}" - - # "Unset" variables that might have values from previous iterations and - # which won't be completely reset later. - definite_index_files="" - - # See if file exists here. If it doesn't we're in trouble since, even - # though the user may be able to reenter a valid filename at the tex - # prompt (assuming they're attending the terminal), this script won't be - # able to find the right index files and so forth. - if test ! -r "${command_line_filename}" ; then - echo "${progname}: ${command_line_filename}: No such file or permission denied." 1>&2 - continue; - fi - - # Find all files having root filename with a two-letter extension, - # determine whether they're really index files, and save them. Foo.aux - # is actually the cross-references file, but we need to keep track of - # that too. - possible_index_files="`eval echo ${filename_noext}.?? ${filename_noext}.aux`" - for this_file in ${possible_index_files} ; do - # If file is empty, forget it. - if test ! -s "${this_file}" ; then - continue; - fi - - # Examine first character of file. If it's not a backslash or - # single quote, then it's definitely not an index or xref file. - first_character="`sed -n '1s/^\(.\).*$/\1/p;q' ${this_file}`" - if test "${first_character}" = "\\" -o "${first_character}" = "'" ; then - definite_index_files="${definite_index_files} ${this_file}" - fi - done - orig_index_files="${definite_index_files}" - orig_index_files_sans_aux="`echo ${definite_index_files} \ - | sed 's/'${filename_noext}'\.aux//; - s/^[ ]*//;s/[ ]*$//;'`" - - # Now save copies of original index files so we have some means of - # comparison later. - for index_file_to_save in ${orig_index_files} ; do - cp "${index_file_to_save}" "${index_file_to_save}${backup_extension}" - done - - # Run texindex on current index files. If they already exist, and - # after running TeX a first time the index files don't change, then - # there's no reason to run TeX again. But we won't know that if the - # index files are out of date or nonexistent. - if test "${orig_index_files_sans_aux}" ; then - ${texindex} ${orig_index_files_sans_aux} - fi - - if ${tex} ${command_line_filename} ; then # TeX run first time - definite_index_files="" - # Get list of new index files - possible_index_files="`eval echo ${filename_noext}.?? ${filename_noext}.aux`" - for this_file in ${possible_index_files} ; do - # If file is empty, forget it. - if test ! -s ${this_file} ; then - continue; - fi - - # Examine first character of file. If it's not a backslash or - # single quote, then it's definitely not an index or xref file. - first_character="`sed -n '1s/^\(.\).*$/\1/p;q' ${this_file}`" - if test "${first_character}" = "\\" -o "${first_character}" = "'" ; then - definite_index_files="${definite_index_files} ${this_file}" - fi - done - new_index_files="${definite_index_files}" - new_index_files_sans_aux="`echo ${definite_index_files} \ - | sed 's/'${filename_noext}'\.aux//; - s/^[ ]*//;s/[ ]*$//;'`" - - # If old and new list don't at least have the same file list, then one - # file or another has definitely changed. - if test "${orig_index_files}" != "${new_index_files}" ; then - index_files_changed_p=t - else - # File list is the same. We must compare each file until we find a - # difference. - index_files_changed_p="" - for this_file in ${new_index_files} ; do - # cmp -s will return nonzero exit status if files differ. - cmp -s "${this_file}" "${this_file}${backup_extension}" - if test $? -ne 0 ; then - # We only need to keep comparing until we find *one* that - # differs, because we'll have to run texindex & tex no - # matter what. - index_files_changed_p=t - break - fi - done - fi - - # If index files have changed since TeX has been run, or if the aux - # file wasn't present originally, run texindex and TeX again. - if test "${index_files_changed_p}" ; then - retval=0 - if test "${new_index_files_sans_aux}" ; then - ${texindex} ${new_index_files_sans_aux} - retval=$? - fi - if test ${retval} -eq 0 ; then - ${tex} "${command_line_filename}" - fi - fi - fi - - # Generate list of files to delete, then call rm once with the entire - # list. This is significantly faster than multiple executions of rm. - file_list="" - for file in ${orig_index_files} ; do - file_list="${file_list} ${file}${backup_extension}" - done - if test "${file_list}" ; then - rm -f ${file_list} - fi -done - -# texi2dvi ends here diff --git a/Master/texmf-dist/doc/support/texdraw/texindex.c b/Master/texmf-dist/doc/support/texdraw/texindex.c deleted file mode 100644 index a88d5169691..00000000000 --- a/Master/texmf-dist/doc/support/texdraw/texindex.c +++ /dev/null @@ -1,1700 +0,0 @@ -/* Prepare TeX index dribble output into an actual index. - - Version 1.45 - - Copyright (C) 1987, 1991, 1992 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ - - -#include <stdio.h> -#include <ctype.h> -#include <errno.h> -#include "getopt.h" - -#if defined (STDC_HEADERS) -# include <string.h> -# include <stdlib.h> -# if !defined (bzero) -# define bzero(p, n) memset((p), '\0', (n)) -# endif /* !bzero */ -#else /* !STDC_HEADERS */ -extern int errno; -char *getenv (), *malloc (), *realloc (); -void bzero (); -#endif /* !STDC_HEADERS */ - -#if defined (HAVE_UNISTD_H) -# include <unistd.h> -#else /* !HAVE_UNISTD_H */ -long lseek (); -#endif /* !HAVE_UNISTD_H */ - -char *mktemp (); - -#if defined (VMS) -# if !defined (VAX11C) -# define noshare -# endif /* !VAX11C */ -# include <perror.h> -extern noshare int sys_nerr; -extern noshare char *sys_errlist[]; - -# include <file.h> - -# define TI_NO_ERROR ((1 << 28) | 1) -# define TI_FATAL_ERROR ((1 << 28) | 4) -# define unlink delete - -#else /* !VMS */ - -extern int sys_nerr; -extern char *sys_errlist[]; - -# if defined (HAVE_SYS_FCNTL_H) -# include <sys/types.h> -# include <sys/fcntl.h> -# endif /* HAVE_SYS_FCNTL_H */ - -# if defined (_AIX) || !defined (_POSIX_VERSION) -# include <sys/file.h> -# else /* !AIX && _POSIX_VERSION */ -# if !defined (HAVE_SYS_FCNTL_H) -# include <fcntl.h> -# endif /* !HAVE_FCNTL_H */ -# endif /* !_AIX && _POSIX_VERSION */ -# define TI_NO_ERROR 0 -# define TI_FATAL_ERROR 1 -#endif /* !VMS */ - -#if !defined (SEEK_SET) -# define SEEK_SET 0 -# define SEEK_CUR 1 -# define SEEK_END 2 -#endif /* !SEEK_SET */ - -/* When sorting in core, this structure describes one line - and the position and length of its first keyfield. */ -struct lineinfo -{ - char *text; /* The actual text of the line. */ - union { - char *text; /* The start of the key (for textual comparison). */ - long number; /* The numeric value (for numeric comparison). */ - } key; - long keylen; /* Length of KEY field. */ -}; - -/* This structure describes a field to use as a sort key. */ -struct keyfield -{ - int startwords; /* Number of words to skip. */ - int startchars; /* Number of additional chars to skip. */ - int endwords; /* Number of words to ignore at end. */ - int endchars; /* Ditto for characters of last word. */ - char ignore_blanks; /* Non-zero means ignore spaces and tabs. */ - char fold_case; /* Non-zero means case doesn't matter. */ - char reverse; /* Non-zero means compare in reverse order. */ - char numeric; /* Non-zeros means field is ASCII numeric. */ - char positional; /* Sort according to file position. */ - char braced; /* Count balanced-braced groupings as fields. */ -}; - -/* Vector of keyfields to use. */ -struct keyfield keyfields[3]; - -/* Number of keyfields stored in that vector. */ -int num_keyfields = 3; - -/* Vector of input file names, terminated with a null pointer. */ -char **infiles; - -/* Vector of corresponding output file names, or NULL, meaning default it - (add an `s' to the end). */ -char **outfiles; - -/* Length of `infiles'. */ -int num_infiles; - -/* Pointer to the array of pointers to lines being sorted. */ -char **linearray; - -/* The allocated length of `linearray'. */ -long nlines; - -/* Directory to use for temporary files. On Unix, it ends with a slash. */ -char *tempdir; - -/* Start of filename to use for temporary files. */ -char *tempbase; - -/* Number of last temporary file. */ -int tempcount; - -/* Number of last temporary file already deleted. - Temporary files are deleted by `flush_tempfiles' in order of creation. */ -int last_deleted_tempcount; - -/* During in-core sort, this points to the base of the data block - which contains all the lines of data. */ -char *text_base; - -/* Additional command switches .*/ - -/* Nonzero means do not delete tempfiles -- for debugging. */ -int keep_tempfiles; - -/* The name this program was run with. */ -char *program_name; - -/* Forward declarations of functions in this file. */ - -void decode_command (); -void sort_in_core (); -void sort_offline (); -char **parsefile (); -char *find_field (); -char *find_pos (); -long find_value (); -char *find_braced_pos (); -char *find_braced_end (); -void writelines (); -int compare_field (); -int compare_full (); -long readline (); -int merge_files (); -int merge_direct (); -void pfatal_with_name (); -void fatal (); -void error (); -void *xmalloc (), *xrealloc (); -char *concat (); -char *maketempname (); -void flush_tempfiles (); -char *tempcopy (); - -#define MAX_IN_CORE_SORT 500000 - -void -main (argc, argv) - int argc; - char **argv; -{ - int i; - - tempcount = 0; - last_deleted_tempcount = 0; - program_name = argv[0]; - - /* Describe the kind of sorting to do. */ - /* The first keyfield uses the first braced field and folds case. */ - keyfields[0].braced = 1; - keyfields[0].fold_case = 1; - keyfields[0].endwords = -1; - keyfields[0].endchars = -1; - - /* The second keyfield uses the second braced field, numerically. */ - keyfields[1].braced = 1; - keyfields[1].numeric = 1; - keyfields[1].startwords = 1; - keyfields[1].endwords = -1; - keyfields[1].endchars = -1; - - /* The third keyfield (which is ignored while discarding duplicates) - compares the whole line. */ - keyfields[2].endwords = -1; - keyfields[2].endchars = -1; - - decode_command (argc, argv); - - tempbase = mktemp (concat ("txiXXXXXX", "", "")); - - /* Process input files completely, one by one. */ - - for (i = 0; i < num_infiles; i++) - { - int desc; - long ptr; - char *outfile; - - desc = open (infiles[i], O_RDONLY, 0); - if (desc < 0) - pfatal_with_name (infiles[i]); - lseek (desc, 0L, SEEK_END); - ptr = lseek (desc, 0L, SEEK_CUR); - - close (desc); - - outfile = outfiles[i]; - if (!outfile) - { - outfile = concat (infiles[i], "s", ""); - } - - if (ptr < MAX_IN_CORE_SORT) - /* Sort a small amount of data. */ - sort_in_core (infiles[i], ptr, outfile); - else - sort_offline (infiles[i], ptr, outfile); - } - - flush_tempfiles (tempcount); - exit (TI_NO_ERROR); -} - -void -usage () -{ - fprintf (stderr, "\ -Usage: %s [-k] infile [-o outfile] ...\n", program_name); - exit (1); -} - -/* Decode the command line arguments to set the parameter variables - and set up the vector of keyfields and the vector of input files. */ - -void -decode_command (argc, argv) - int argc; - char **argv; -{ - int optc; - char **ip; - char **op; - - /* Store default values into parameter variables. */ - - tempdir = getenv ("TMPDIR"); -#ifdef VMS - if (tempdir == NULL) - tempdir = "sys$scratch:"; -#else - if (tempdir == NULL) - tempdir = "/tmp/"; - else - tempdir = concat (tempdir, "/", ""); -#endif - - keep_tempfiles = 0; - - /* Allocate ARGC input files, which must be enough. */ - - infiles = (char **) xmalloc (argc * sizeof (char *)); - outfiles = (char **) xmalloc (argc * sizeof (char *)); - ip = infiles; - op = outfiles; - - while ((optc = getopt (argc, argv, "-ko:")) != EOF) - { - switch (optc) - { - case 1: /* Non-option filename. */ - *ip++ = optarg; - *op++ = NULL; - break; - - case 'k': - keep_tempfiles = 1; - break; - - case 'o': - if (op > outfiles) - *(op - 1) = optarg; - break; - - default: - usage (); - } - } - - /* Record number of keyfields and terminate list of filenames. */ - num_infiles = ip - infiles; - *ip = 0; - if (num_infiles == 0) - usage (); -} - -/* Return a name for a temporary file. */ - -char * -maketempname (count) - int count; -{ - char tempsuffix[10]; - sprintf (tempsuffix, "%d", count); - return concat (tempdir, tempbase, tempsuffix); -} - -/* Delete all temporary files up to TO_COUNT. */ - -void -flush_tempfiles (to_count) - int to_count; -{ - if (keep_tempfiles) - return; - while (last_deleted_tempcount < to_count) - unlink (maketempname (++last_deleted_tempcount)); -} - -/* Copy the input file open on IDESC into a temporary file - and return the temporary file name. */ - -#define BUFSIZE 1024 - -char * -tempcopy (idesc) - int idesc; -{ - char *outfile = maketempname (++tempcount); - int odesc; - char buffer[BUFSIZE]; - - odesc = open (outfile, O_WRONLY | O_CREAT, 0666); - - if (odesc < 0) - pfatal_with_name (outfile); - - while (1) - { - int nread = read (idesc, buffer, BUFSIZE); - write (odesc, buffer, nread); - if (!nread) - break; - } - - close (odesc); - - return outfile; -} - -/* Compare LINE1 and LINE2 according to the specified set of keyfields. */ - -int -compare_full (line1, line2) - char **line1, **line2; -{ - int i; - - /* Compare using the first keyfield; - if that does not distinguish the lines, try the second keyfield; - and so on. */ - - for (i = 0; i < num_keyfields; i++) - { - long length1, length2; - char *start1 = find_field (&keyfields[i], *line1, &length1); - char *start2 = find_field (&keyfields[i], *line2, &length2); - int tem = compare_field (&keyfields[i], start1, length1, *line1 - text_base, - start2, length2, *line2 - text_base); - if (tem) - { - if (keyfields[i].reverse) - return -tem; - return tem; - } - } - - return 0; /* Lines match exactly. */ -} - -/* Compare LINE1 and LINE2, described by structures - in which the first keyfield is identified in advance. - For positional sorting, assumes that the order of the lines in core - reflects their nominal order. */ - -int -compare_prepared (line1, line2) - struct lineinfo *line1, *line2; -{ - int i; - int tem; - char *text1, *text2; - - /* Compare using the first keyfield, which has been found for us already. */ - if (keyfields->positional) - { - if (line1->text - text_base > line2->text - text_base) - tem = 1; - else - tem = -1; - } - else if (keyfields->numeric) - tem = line1->key.number - line2->key.number; - else - tem = compare_field (keyfields, line1->key.text, line1->keylen, 0, - line2->key.text, line2->keylen, 0); - if (tem) - { - if (keyfields->reverse) - return -tem; - return tem; - } - - text1 = line1->text; - text2 = line2->text; - - /* Compare using the second keyfield; - if that does not distinguish the lines, try the third keyfield; - and so on. */ - - for (i = 1; i < num_keyfields; i++) - { - long length1, length2; - char *start1 = find_field (&keyfields[i], text1, &length1); - char *start2 = find_field (&keyfields[i], text2, &length2); - int tem = compare_field (&keyfields[i], start1, length1, text1 - text_base, - start2, length2, text2 - text_base); - if (tem) - { - if (keyfields[i].reverse) - return -tem; - return tem; - } - } - - return 0; /* Lines match exactly. */ -} - -/* Like compare_full but more general. - You can pass any strings, and you can say how many keyfields to use. - POS1 and POS2 should indicate the nominal positional ordering of - the two lines in the input. */ - -int -compare_general (str1, str2, pos1, pos2, use_keyfields) - char *str1, *str2; - long pos1, pos2; - int use_keyfields; -{ - int i; - - /* Compare using the first keyfield; - if that does not distinguish the lines, try the second keyfield; - and so on. */ - - for (i = 0; i < use_keyfields; i++) - { - long length1, length2; - char *start1 = find_field (&keyfields[i], str1, &length1); - char *start2 = find_field (&keyfields[i], str2, &length2); - int tem = compare_field (&keyfields[i], start1, length1, pos1, - start2, length2, pos2); - if (tem) - { - if (keyfields[i].reverse) - return -tem; - return tem; - } - } - - return 0; /* Lines match exactly. */ -} - -/* Find the start and length of a field in STR according to KEYFIELD. - A pointer to the starting character is returned, and the length - is stored into the int that LENGTHPTR points to. */ - -char * -find_field (keyfield, str, lengthptr) - struct keyfield *keyfield; - char *str; - long *lengthptr; -{ - char *start; - char *end; - char *(*fun) (); - - if (keyfield->braced) - fun = find_braced_pos; - else - fun = find_pos; - - start = (*fun) (str, keyfield->startwords, keyfield->startchars, - keyfield->ignore_blanks); - if (keyfield->endwords < 0) - { - if (keyfield->braced) - end = find_braced_end (start); - else - { - end = start; - while (*end && *end != '\n') - end++; - } - } - else - { - end = (*fun) (str, keyfield->endwords, keyfield->endchars, 0); - if (end - str < start - str) - end = start; - } - *lengthptr = end - start; - return start; -} - -/* Return a pointer to a specified place within STR, - skipping (from the beginning) WORDS words and then CHARS chars. - If IGNORE_BLANKS is nonzero, we skip all blanks - after finding the specified word. */ - -char * -find_pos (str, words, chars, ignore_blanks) - char *str; - int words, chars; - int ignore_blanks; -{ - int i; - char *p = str; - - for (i = 0; i < words; i++) - { - char c; - /* Find next bunch of nonblanks and skip them. */ - while ((c = *p) == ' ' || c == '\t') - p++; - while ((c = *p) && c != '\n' && !(c == ' ' || c == '\t')) - p++; - if (!*p || *p == '\n') - return p; - } - - while (*p == ' ' || *p == '\t') - p++; - - for (i = 0; i < chars; i++) - { - if (!*p || *p == '\n') - break; - p++; - } - return p; -} - -/* Like find_pos but assumes that each field is surrounded by braces - and that braces within fields are balanced. */ - -char * -find_braced_pos (str, words, chars, ignore_blanks) - char *str; - int words, chars; - int ignore_blanks; -{ - int i; - int bracelevel; - char *p = str; - char c; - - for (i = 0; i < words; i++) - { - bracelevel = 1; - while ((c = *p++) != '{' && c != '\n' && c) - /* Do nothing. */ ; - if (c != '{') - return p - 1; - while (bracelevel) - { - c = *p++; - if (c == '{') - bracelevel++; - if (c == '}') - bracelevel--; - if (c == 0 || c == '\n') - return p - 1; - } - } - - while ((c = *p++) != '{' && c != '\n' && c) - /* Do nothing. */ ; - - if (c != '{') - return p - 1; - - if (ignore_blanks) - while ((c = *p) == ' ' || c == '\t') - p++; - - for (i = 0; i < chars; i++) - { - if (!*p || *p == '\n') - break; - p++; - } - return p; -} - -/* Find the end of the balanced-brace field which starts at STR. - The position returned is just before the closing brace. */ - -char * -find_braced_end (str) - char *str; -{ - int bracelevel; - char *p = str; - char c; - - bracelevel = 1; - while (bracelevel) - { - c = *p++; - if (c == '{') - bracelevel++; - if (c == '}') - bracelevel--; - if (c == 0 || c == '\n') - return p - 1; - } - return p - 1; -} - -long -find_value (start, length) - char *start; - long length; -{ - while (length != 0L) - { - if (isdigit (*start)) - return atol (start); - length--; - start++; - } - return 0l; -} - -/* Vector used to translate characters for comparison. - This is how we make all alphanumerics follow all else, - and ignore case in the first sorting. */ -int char_order[256]; - -void -init_char_order () -{ - int i; - for (i = 1; i < 256; i++) - char_order[i] = i; - - for (i = '0'; i <= '9'; i++) - char_order[i] += 512; - - for (i = 'a'; i <= 'z'; i++) - { - char_order[i] = 512 + i; - char_order[i + 'A' - 'a'] = 512 + i; - } -} - -/* Compare two fields (each specified as a start pointer and a character count) - according to KEYFIELD. - The sign of the value reports the relation between the fields. */ - -int -compare_field (keyfield, start1, length1, pos1, start2, length2, pos2) - struct keyfield *keyfield; - char *start1; - long length1; - long pos1; - char *start2; - long length2; - long pos2; -{ - if (keyfields->positional) - { - if (pos1 > pos2) - return 1; - else - return -1; - } - if (keyfield->numeric) - { - long value = find_value (start1, length1) - find_value (start2, length2); - if (value > 0) - return 1; - if (value < 0) - return -1; - return 0; - } - else - { - char *p1 = start1; - char *p2 = start2; - char *e1 = start1 + length1; - char *e2 = start2 + length2; - - while (1) - { - int c1, c2; - - if (p1 == e1) - c1 = 0; - else - c1 = *p1++; - if (p2 == e2) - c2 = 0; - else - c2 = *p2++; - - if (char_order[c1] != char_order[c2]) - return char_order[c1] - char_order[c2]; - if (!c1) - break; - } - - /* Strings are equal except possibly for case. */ - p1 = start1; - p2 = start2; - while (1) - { - int c1, c2; - - if (p1 == e1) - c1 = 0; - else - c1 = *p1++; - if (p2 == e2) - c2 = 0; - else - c2 = *p2++; - - if (c1 != c2) - /* Reverse sign here so upper case comes out last. */ - return c2 - c1; - if (!c1) - break; - } - - return 0; - } -} - -/* A `struct linebuffer' is a structure which holds a line of text. - `readline' reads a line from a stream into a linebuffer - and works regardless of the length of the line. */ - -struct linebuffer -{ - long size; - char *buffer; -}; - -/* Initialize LINEBUFFER for use. */ - -void -initbuffer (linebuffer) - struct linebuffer *linebuffer; -{ - linebuffer->size = 200; - linebuffer->buffer = (char *) xmalloc (200); -} - -/* Read a line of text from STREAM into LINEBUFFER. - Return the length of the line. */ - -long -readline (linebuffer, stream) - struct linebuffer *linebuffer; - FILE *stream; -{ - char *buffer = linebuffer->buffer; - char *p = linebuffer->buffer; - char *end = p + linebuffer->size; - - while (1) - { - int c = getc (stream); - if (p == end) - { - buffer = (char *) xrealloc (buffer, linebuffer->size *= 2); - p += buffer - linebuffer->buffer; - end += buffer - linebuffer->buffer; - linebuffer->buffer = buffer; - } - if (c < 0 || c == '\n') - { - *p = 0; - break; - } - *p++ = c; - } - - return p - buffer; -} - -/* Sort an input file too big to sort in core. */ - -void -sort_offline (infile, nfiles, total, outfile) - char *infile; - int nfiles; - long total; - char *outfile; -{ - /* More than enough. */ - int ntemps = 2 * (total + MAX_IN_CORE_SORT - 1) / MAX_IN_CORE_SORT; - char **tempfiles = (char **) xmalloc (ntemps * sizeof (char *)); - FILE *istream = fopen (infile, "r"); - int i; - struct linebuffer lb; - long linelength; - int failure = 0; - - initbuffer (&lb); - - /* Read in one line of input data. */ - - linelength = readline (&lb, istream); - - if (lb.buffer[0] != '\\' && lb.buffer[0] != '@') - { - error ("%s: not a texinfo index file", infile); - return; - } - - /* Split up the input into `ntemps' temporary files, or maybe fewer, - and put the new files' names into `tempfiles' */ - - for (i = 0; i < ntemps; i++) - { - char *outname = maketempname (++tempcount); - FILE *ostream = fopen (outname, "w"); - long tempsize = 0; - - if (!ostream) - pfatal_with_name (outname); - tempfiles[i] = outname; - - /* Copy lines into this temp file as long as it does not make file - "too big" or until there are no more lines. */ - - while (tempsize + linelength + 1 <= MAX_IN_CORE_SORT) - { - tempsize += linelength + 1; - fputs (lb.buffer, ostream); - putc ('\n', ostream); - - /* Read another line of input data. */ - - linelength = readline (&lb, istream); - if (!linelength && feof (istream)) - break; - - if (lb.buffer[0] != '\\' && lb.buffer[0] != '@') - { - error ("%s: not a texinfo index file", infile); - failure = 1; - goto fail; - } - } - fclose (ostream); - if (feof (istream)) - break; - } - - free (lb.buffer); - -fail: - /* Record number of temp files we actually needed. */ - - ntemps = i; - - /* Sort each tempfile into another tempfile. - Delete the first set of tempfiles and put the names of the second - into `tempfiles'. */ - - for (i = 0; i < ntemps; i++) - { - char *newtemp = maketempname (++tempcount); - sort_in_core (&tempfiles[i], MAX_IN_CORE_SORT, newtemp); - if (!keep_tempfiles) - unlink (tempfiles[i]); - tempfiles[i] = newtemp; - } - - if (failure) - return; - - /* Merge the tempfiles together and indexify. */ - - merge_files (tempfiles, ntemps, outfile); -} - -/* Sort INFILE, whose size is TOTAL, - assuming that is small enough to be done in-core, - then indexify it and send the output to OUTFILE (or to stdout). */ - -void -sort_in_core (infile, total, outfile) - char *infile; - long total; - char *outfile; -{ - char **nextline; - char *data = (char *) xmalloc (total + 1); - char *file_data; - long file_size; - int i; - FILE *ostream = stdout; - struct lineinfo *lineinfo; - - /* Read the contents of the file into the moby array `data'. */ - - int desc = open (infile, O_RDONLY, 0); - - if (desc < 0) - fatal ("failure reopening %s", infile); - for (file_size = 0;;) - { - i = read (desc, data + file_size, total - file_size); - if (i <= 0) - break; - file_size += i; - } - file_data = data; - data[file_size] = 0; - - close (desc); - - if (file_size > 0 && data[0] != '\\' && data[0] != '@') - { - error ("%s: not a texinfo index file", infile); - return; - } - - init_char_order (); - - /* Sort routines want to know this address. */ - - text_base = data; - - /* Create the array of pointers to lines, with a default size - frequently enough. */ - - nlines = total / 50; - if (!nlines) - nlines = 2; - linearray = (char **) xmalloc (nlines * sizeof (char *)); - - /* `nextline' points to the next free slot in this array. - `nlines' is the allocated size. */ - - nextline = linearray; - - /* Parse the input file's data, and make entries for the lines. */ - - nextline = parsefile (infile, nextline, file_data, file_size); - if (nextline == 0) - { - error ("%s: not a texinfo index file", infile); - return; - } - - /* Sort the lines. */ - - /* If we have enough space, find the first keyfield of each line in advance. - Make a `struct lineinfo' for each line, which records the keyfield - as well as the line, and sort them. */ - - lineinfo = (struct lineinfo *) malloc ((nextline - linearray) * sizeof (struct lineinfo)); - - if (lineinfo) - { - struct lineinfo *lp; - char **p; - - for (lp = lineinfo, p = linearray; p != nextline; lp++, p++) - { - lp->text = *p; - lp->key.text = find_field (keyfields, *p, &lp->keylen); - if (keyfields->numeric) - lp->key.number = find_value (lp->key.text, lp->keylen); - } - - qsort (lineinfo, nextline - linearray, sizeof (struct lineinfo), compare_prepared); - - for (lp = lineinfo, p = linearray; p != nextline; lp++, p++) - *p = lp->text; - - free (lineinfo); - } - else - qsort (linearray, nextline - linearray, sizeof (char *), compare_full); - - /* Open the output file. */ - - if (outfile) - { - ostream = fopen (outfile, "w"); - if (!ostream) - pfatal_with_name (outfile); - } - - writelines (linearray, nextline - linearray, ostream); - if (outfile) - fclose (ostream); - - free (linearray); - free (data); -} - -/* Parse an input string in core into lines. - DATA is the input string, and SIZE is its length. - Data goes in LINEARRAY starting at NEXTLINE. - The value returned is the first entry in LINEARRAY still unused. - Value 0 means input file contents are invalid. */ - -char ** -parsefile (filename, nextline, data, size) - char *filename; - char **nextline; - char *data; - long size; -{ - char *p, *end; - char **line = nextline; - - p = data; - end = p + size; - *end = 0; - - while (p != end) - { - if (p[0] != '\\' && p[0] != '@') - return 0; - - *line = p; - while (*p && *p != '\n') - p++; - if (p != end) - p++; - - line++; - if (line == linearray + nlines) - { - char **old = linearray; - linearray = (char **) xrealloc (linearray, sizeof (char *) * (nlines *= 4)); - line += linearray - old; - } - } - - return line; -} - -/* Indexification is a filter applied to the sorted lines - as they are being written to the output file. - Multiple entries for the same name, with different page numbers, - get combined into a single entry with multiple page numbers. - The first braced field, which is used for sorting, is discarded. - However, its first character is examined, folded to lower case, - and if it is different from that in the previous line fed to us - a \initial line is written with one argument, the new initial. - - If an entry has four braced fields, then the second and third - constitute primary and secondary names. - In this case, each change of primary name - generates a \primary line which contains only the primary name, - and in between these are \secondary lines which contain - just a secondary name and page numbers. */ - -/* The last primary name we wrote a \primary entry for. - If only one level of indexing is being done, this is the last name seen. */ -char *lastprimary; -/* Length of storage allocated for lastprimary. */ -int lastprimarylength; - -/* Similar, for the secondary name. */ -char *lastsecondary; -int lastsecondarylength; - -/* Zero if we are not in the middle of writing an entry. - One if we have written the beginning of an entry but have not - yet written any page numbers into it. - Greater than one if we have written the beginning of an entry - plus at least one page number. */ -int pending; - -/* The initial (for sorting purposes) of the last primary entry written. - When this changes, a \initial {c} line is written */ - -char *lastinitial; - -int lastinitiallength; - -/* When we need a string of length 1 for the value of lastinitial, - store it here. */ - -char lastinitial1[2]; - -/* Initialize static storage for writing an index. */ - -void -init_index () -{ - pending = 0; - lastinitial = lastinitial1; - lastinitial1[0] = 0; - lastinitial1[1] = 0; - lastinitiallength = 0; - lastprimarylength = 100; - lastprimary = (char *) xmalloc (lastprimarylength + 1); - bzero (lastprimary, lastprimarylength + 1); - lastsecondarylength = 100; - lastsecondary = (char *) xmalloc (lastsecondarylength + 1); - bzero (lastsecondary, lastsecondarylength + 1); -} - -/* Indexify. Merge entries for the same name, - insert headers for each initial character, etc. */ - -void -indexify (line, ostream) - char *line; - FILE *ostream; -{ - char *primary, *secondary, *pagenumber; - int primarylength, secondarylength = 0, pagelength; - int nosecondary; - int initiallength; - char *initial; - char initial1[2]; - register char *p; - - /* First, analyze the parts of the entry fed to us this time. */ - - p = find_braced_pos (line, 0, 0, 0); - if (*p == '{') - { - initial = p; - /* Get length of inner pair of braces starting at `p', - including that inner pair of braces. */ - initiallength = find_braced_end (p + 1) + 1 - p; - } - else - { - initial = initial1; - initial1[0] = *p; - initial1[1] = 0; - initiallength = 1; - - if (initial1[0] >= 'a' && initial1[0] <= 'z') - initial1[0] -= 040; - } - - pagenumber = find_braced_pos (line, 1, 0, 0); - pagelength = find_braced_end (pagenumber) - pagenumber; - if (pagelength == 0) - abort (); - - primary = find_braced_pos (line, 2, 0, 0); - primarylength = find_braced_end (primary) - primary; - - secondary = find_braced_pos (line, 3, 0, 0); - nosecondary = !*secondary; - if (!nosecondary) - secondarylength = find_braced_end (secondary) - secondary; - - /* If the primary is different from before, make a new primary entry. */ - if (strncmp (primary, lastprimary, primarylength)) - { - /* Close off current secondary entry first, if one is open. */ - if (pending) - { - fputs ("}\n", ostream); - pending = 0; - } - - /* If this primary has a different initial, include an entry for - the initial. */ - if (initiallength != lastinitiallength || - strncmp (initial, lastinitial, initiallength)) - { - fprintf (ostream, "\\initial {"); - fwrite (initial, 1, initiallength, ostream); - fprintf (ostream, "}\n", initial); - if (initial == initial1) - { - lastinitial = lastinitial1; - *lastinitial1 = *initial1; - } - else - { - lastinitial = initial; - } - lastinitiallength = initiallength; - } - - /* Make the entry for the primary. */ - if (nosecondary) - fputs ("\\entry {", ostream); - else - fputs ("\\primary {", ostream); - fwrite (primary, primarylength, 1, ostream); - if (nosecondary) - { - fputs ("}{", ostream); - pending = 1; - } - else - fputs ("}\n", ostream); - - /* Record name of most recent primary. */ - if (lastprimarylength < primarylength) - { - lastprimarylength = primarylength + 100; - lastprimary = (char *) xrealloc (lastprimary, - 1 + lastprimarylength); - } - strncpy (lastprimary, primary, primarylength); - lastprimary[primarylength] = 0; - - /* There is no current secondary within this primary, now. */ - lastsecondary[0] = 0; - } - - /* Should not have an entry with no subtopic following one with a subtopic. */ - - if (nosecondary && *lastsecondary) - error ("entry %s follows an entry with a secondary name", line); - - /* Start a new secondary entry if necessary. */ - if (!nosecondary && strncmp (secondary, lastsecondary, secondarylength)) - { - if (pending) - { - fputs ("}\n", ostream); - pending = 0; - } - - /* Write the entry for the secondary. */ - fputs ("\\secondary {", ostream); - fwrite (secondary, secondarylength, 1, ostream); - fputs ("}{", ostream); - pending = 1; - - /* Record name of most recent secondary. */ - if (lastsecondarylength < secondarylength) - { - lastsecondarylength = secondarylength + 100; - lastsecondary = (char *) xrealloc (lastsecondary, - 1 + lastsecondarylength); - } - strncpy (lastsecondary, secondary, secondarylength); - lastsecondary[secondarylength] = 0; - } - - /* Here to add one more page number to the current entry. */ - if (pending++ != 1) - fputs (", ", ostream); /* Punctuate first, if this is not the first. */ - fwrite (pagenumber, pagelength, 1, ostream); -} - -/* Close out any unfinished output entry. */ - -void -finish_index (ostream) - FILE *ostream; -{ - if (pending) - fputs ("}\n", ostream); - free (lastprimary); - free (lastsecondary); -} - -/* Copy the lines in the sorted order. - Each line is copied out of the input file it was found in. */ - -void -writelines (linearray, nlines, ostream) - char **linearray; - int nlines; - FILE *ostream; -{ - char **stop_line = linearray + nlines; - char **next_line; - - init_index (); - - /* Output the text of the lines, and free the buffer space. */ - - for (next_line = linearray; next_line != stop_line; next_line++) - { - /* If -u was specified, output the line only if distinct from previous one. */ - if (next_line == linearray - /* Compare previous line with this one, using only the - explicitly specd keyfields. */ - || compare_general (*(next_line - 1), *next_line, 0L, 0L, num_keyfields - 1)) - { - char *p = *next_line; - char c; - - while ((c = *p++) && c != '\n') - /* Do nothing. */ ; - *(p - 1) = 0; - indexify (*next_line, ostream); - } - } - - finish_index (ostream); -} - -/* Assume (and optionally verify) that each input file is sorted; - merge them and output the result. - Returns nonzero if any input file fails to be sorted. - - This is the high-level interface that can handle an unlimited - number of files. */ - -#define MAX_DIRECT_MERGE 10 - -int -merge_files (infiles, nfiles, outfile) - char **infiles; - int nfiles; - char *outfile; -{ - char **tempfiles; - int ntemps; - int i; - int value = 0; - int start_tempcount = tempcount; - - if (nfiles <= MAX_DIRECT_MERGE) - return merge_direct (infiles, nfiles, outfile); - - /* Merge groups of MAX_DIRECT_MERGE input files at a time, - making a temporary file to hold each group's result. */ - - ntemps = (nfiles + MAX_DIRECT_MERGE - 1) / MAX_DIRECT_MERGE; - tempfiles = (char **) xmalloc (ntemps * sizeof (char *)); - for (i = 0; i < ntemps; i++) - { - int nf = MAX_DIRECT_MERGE; - if (i + 1 == ntemps) - nf = nfiles - i * MAX_DIRECT_MERGE; - tempfiles[i] = maketempname (++tempcount); - value |= merge_direct (&infiles[i * MAX_DIRECT_MERGE], nf, tempfiles[i]); - } - - /* All temporary files that existed before are no longer needed - since their contents have been merged into our new tempfiles. - So delete them. */ - flush_tempfiles (start_tempcount); - - /* Now merge the temporary files we created. */ - - merge_files (tempfiles, ntemps, outfile); - - free (tempfiles); - - return value; -} - -/* Assume (and optionally verify) that each input file is sorted; - merge them and output the result. - Returns nonzero if any input file fails to be sorted. - - This version of merging will not work if the number of - input files gets too high. Higher level functions - use it only with a bounded number of input files. */ - -int -merge_direct (infiles, nfiles, outfile) - char **infiles; - int nfiles; - char *outfile; -{ - struct linebuffer *lb1, *lb2; - struct linebuffer **thisline, **prevline; - FILE **streams; - int i; - int nleft; - int lossage = 0; - int *file_lossage; - struct linebuffer *prev_out = 0; - FILE *ostream = stdout; - - if (outfile) - { - ostream = fopen (outfile, "w"); - } - if (!ostream) - pfatal_with_name (outfile); - - init_index (); - - if (nfiles == 0) - { - if (outfile) - fclose (ostream); - return 0; - } - - /* For each file, make two line buffers. - Also, for each file, there is an element of `thisline' - which points at any time to one of the file's two buffers, - and an element of `prevline' which points to the other buffer. - `thisline' is supposed to point to the next available line from the file, - while `prevline' holds the last file line used, - which is remembered so that we can verify that the file is properly sorted. */ - - /* lb1 and lb2 contain one buffer each per file. */ - lb1 = (struct linebuffer *) xmalloc (nfiles * sizeof (struct linebuffer)); - lb2 = (struct linebuffer *) xmalloc (nfiles * sizeof (struct linebuffer)); - - /* thisline[i] points to the linebuffer holding the next available line in file i, - or is zero if there are no lines left in that file. */ - thisline = (struct linebuffer **) - xmalloc (nfiles * sizeof (struct linebuffer *)); - /* prevline[i] points to the linebuffer holding the last used line - from file i. This is just for verifying that file i is properly - sorted. */ - prevline = (struct linebuffer **) - xmalloc (nfiles * sizeof (struct linebuffer *)); - /* streams[i] holds the input stream for file i. */ - streams = (FILE **) xmalloc (nfiles * sizeof (FILE *)); - /* file_lossage[i] is nonzero if we already know file i is not - properly sorted. */ - file_lossage = (int *) xmalloc (nfiles * sizeof (int)); - - /* Allocate and initialize all that storage. */ - - for (i = 0; i < nfiles; i++) - { - initbuffer (&lb1[i]); - initbuffer (&lb2[i]); - thisline[i] = &lb1[i]; - prevline[i] = &lb2[i]; - file_lossage[i] = 0; - streams[i] = fopen (infiles[i], "r"); - if (!streams[i]) - pfatal_with_name (infiles[i]); - - readline (thisline[i], streams[i]); - } - - /* Keep count of number of files not at eof. */ - nleft = nfiles; - - while (nleft) - { - struct linebuffer *best = 0; - struct linebuffer *exch; - int bestfile = -1; - int i; - - /* Look at the next avail line of each file; choose the least one. */ - - for (i = 0; i < nfiles; i++) - { - if (thisline[i] && - (!best || - 0 < compare_general (best->buffer, thisline[i]->buffer, - (long) bestfile, (long) i, num_keyfields))) - { - best = thisline[i]; - bestfile = i; - } - } - - /* Output that line, unless it matches the previous one and we - don't want duplicates. */ - - if (!(prev_out && - !compare_general (prev_out->buffer, - best->buffer, 0L, 1L, num_keyfields - 1))) - indexify (best->buffer, ostream); - prev_out = best; - - /* Now make the line the previous of its file, and fetch a new - line from that file. */ - - exch = prevline[bestfile]; - prevline[bestfile] = thisline[bestfile]; - thisline[bestfile] = exch; - - while (1) - { - /* If the file has no more, mark it empty. */ - - if (feof (streams[bestfile])) - { - thisline[bestfile] = 0; - /* Update the number of files still not empty. */ - nleft--; - break; - } - readline (thisline[bestfile], streams[bestfile]); - if (thisline[bestfile]->buffer[0] || !feof (streams[bestfile])) - break; - } - } - - finish_index (ostream); - - /* Free all storage and close all input streams. */ - - for (i = 0; i < nfiles; i++) - { - fclose (streams[i]); - free (lb1[i].buffer); - free (lb2[i].buffer); - } - free (file_lossage); - free (lb1); - free (lb2); - free (thisline); - free (prevline); - free (streams); - - if (outfile) - fclose (ostream); - - return lossage; -} - -/* Print error message and exit. */ - -void -fatal (s1, s2) - char *s1, *s2; -{ - error (s1, s2); - exit (TI_FATAL_ERROR); -} - -/* Print error message. S1 is printf control string, S2 is arg for it. */ - -void -error (s1, s2) - char *s1, *s2; -{ - printf ("%s: ", program_name); - printf (s1, s2); - printf ("\n"); -} - -void -perror_with_name (name) - char *name; -{ - char *s; - - if (errno < sys_nerr) - s = concat ("", sys_errlist[errno], " for %s"); - else - s = "cannot open %s"; - error (s, name); -} - -void -pfatal_with_name (name) - char *name; -{ - char *s; - - if (errno < sys_nerr) - s = concat ("", sys_errlist[errno], " for %s"); - else - s = "cannot open %s"; - fatal (s, name); -} - -/* Return a newly-allocated string whose contents concatenate those of - S1, S2, S3. */ - -char * -concat (s1, s2, s3) - char *s1, *s2, *s3; -{ - int len1 = strlen (s1), len2 = strlen (s2), len3 = strlen (s3); - char *result = (char *) xmalloc (len1 + len2 + len3 + 1); - - strcpy (result, s1); - strcpy (result + len1, s2); - strcpy (result + len1 + len2, s3); - *(result + len1 + len2 + len3) = 0; - - return result; -} - -/* Just like malloc, but kills the program in case of fatal error. */ -void * -xmalloc (nbytes) - int nbytes; -{ - void *temp = (void *) malloc (nbytes); - - if (nbytes && temp == (void *)NULL) - memory_error ("xmalloc", nbytes); - - return (temp); -} - -/* Like realloc (), but barfs if there isn't enough memory. */ -void * -xrealloc (pointer, nbytes) - void *pointer; - int nbytes; -{ - void *temp; - - if (!pointer) - temp = (void *)xmalloc (nbytes); - else - temp = (void *)realloc (pointer, nbytes); - - if (nbytes && !temp) - memory_error ("xrealloc", nbytes); - - return (temp); -} - -memory_error (callers_name, bytes_wanted) - char *callers_name; - int bytes_wanted; -{ - char printable_string[80]; - - sprintf (printable_string, - "Virtual memory exhausted in %s ()! Needed %d bytes.", - callers_name, bytes_wanted); - - error (printable_string); - abort (); -} - -#ifndef STDC_HEADERS -void -bzero (b, length) - register char *b; - register int length; -{ -#ifdef VMS - short zero = 0; - long max_str = 65535; - - while (length > max_str) - { - (void) LIB$MOVC5 (&zero, &zero, &zero, &max_str, b); - length -= max_str; - b += max_str; - } - (void) LIB$MOVC5 (&zero, &zero, &zero, &length, b); -#else - while (length-- > 0) - *b++ = 0; -#endif /* not VMS */ -} -#endif /* not STDC_HEADERS */ diff --git a/Master/texmf-dist/doc/support/texdraw/txdexamp.latex b/Master/texmf-dist/doc/support/texdraw/txdexamp.latex deleted file mode 100644 index c3ea8b4eee9..00000000000 --- a/Master/texmf-dist/doc/support/texdraw/txdexamp.latex +++ /dev/null @@ -1,514 +0,0 @@ -% TeXdraw examples for latex - -% $Id: txdexamp.latex,v 2.0 1995/12/18 texdraw-V2R0 $ - -% These examples are taken from the TeXdraw manual. - -% Peter Kabal -% Department of Electrical Engineering -% McGill University -% 3480 University -% Montreal, Quebec -% Canada H3A 2A7 - -% kabal@TSP.EE.McGill.CA - -\documentclass [11pt]{article} -\usepackage {texdraw} - -\input txdtools -\let\et=\etexdraw -\def\etexdraw{\drawbb\et} - -\begin{document} - -\noindent -TeXdraw examples using LaTeX. - -\bigskip -\begin{center} -\begin{texdraw} - \avec (0 0.8) \textref h:C v:B \htext (0 0.9){\sl y} - \move (0 0) \avec (0.8 0) \textref h:L v:C \htext(0.9 0){\sl x} - \move (0 1.0) -\end{texdraw} -\end{center} - -\bigskip -\begin{center} -\begin{texdraw} - \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$} -\end{texdraw} -\end{center} - -\bigskip -\begin{center} -\begin{texdraw} - \drawdim in - \linewd 0.03 \setgray 0.6 \arrowheadtype t:F \avec(0.5 0.5) - \linewd 0.01 \setgray 0 \arrowheadtype t:V \avec(1.0 0.5) - \linewd 0.015 \lpatt(0.067 0.1) \lvec (1.5 0) - \linewd 0.02 \lpatt() \arrowheadtype t:T \avec(2.0 0.5) - \arrowheadtype t:H \avec(2.5 0.5) - \setgray 0.4 \arrowheadtype t:W \avec(3.0 0) - \textref h:R v:T \htext (0.35 0.50){\tt t:F} - \textref h:R v:T \htext (1.0 0.43){\tt t:V} - \textref h:R v:T \htext (1.82 0.50){\tt t:T} - \textref h:R v:T \htext (2.5 0.43){\tt t:H} - \textref h:R v:B \htext (2.8 0){\tt t:W} -\end{texdraw} -\end{center} - -\bigskip -\begin{center} -\begin{texdraw} - \newcommand{\bdot}{\bsegment - \fcir f:0 r:0.02 - \esegment} - \newcommand{\Ttext}[1]{\bsegment - \textref h:C v:B \htext (0 +0.06){#1} - \esegment} - \newcommand{\Btext}[1]{\bsegment - \textref h:C v:T \htext (0 -0.06){#1} - \esegment} - \newcommand{\Ltext}[1]{\bsegment - \textref h:R v:C \htext (-0.08 0){#1} - \esegment} - \newcommand{\Rtext}[1]{\bsegment - \textref h:L v:C \htext (+0.08 0){#1} - \esegment} - \move (-1.5 0) - \bsegment - \move (+1.55 +0.45) \move (-1.55 -0.45) \move (0 0) - \Ttext{Horizontal Text} - \bdot \Btext{\tt h:C v:C} - \move (-0.9 0) \bdot \Ltext{\tt h:L v:C} - \move (+0.9 0) \bdot \Rtext{\tt h:R v:C} - \move (0 +0.3) \bdot \Ttext{\tt h:C v:T} - \move (0 -0.3) \bdot \Btext{\tt h:C v:B} - \move (-0.9 -0.3) \bdot \Ltext{\tt h:L v:B} - \lvec (-0.9 +0.3) \bdot \Ltext{\tt h:L v:T} - \lvec (+0.9 +0.3) \bdot \Rtext{\tt h:R v:T} - \lvec (+0.9 -0.3) \bdot \Rtext{\tt h:R v:B} - \lvec (-0.9 -0.3) - \esegment - \newcommand{\atext}{\rtext td:45 } - \newcommand{\ATtext}[1]{\bsegment - \setsegscale 0.707 - \textref h:C v:B \atext (-0.06 +0.06){#1} - \esegment} - \newcommand{\ABtext}[1]{\bsegment - \setsegscale 0.707 - \textref h:C v:T \atext (+0.060 -0.06){#1} - \esegment} - \newcommand{\ALtext}[1]{\bsegment - \setsegscale 0.707 - \textref h:R v:C \atext (-0.08 -0.08){#1} - \esegment} - \newcommand{\ARtext}[1]{\bsegment - \setsegscale 0.707 - \textref h:L v:C \atext (+0.08 +0.08){#1} - \esegment} - \move (+1.5 0) - \bsegment - \move (+1.33 +1.33) \move (-1.33 -1.33) \move (0 0) - \setsegscale 0.707 - \ATtext{Rotated Text} - \bdot \ABtext{\tt h:C v:C} - \move (-0.9 -0.9) \bdot \ALtext{\tt h:L v:C} - \move (+0.9 +0.9) \bdot \ARtext{\tt h:R v:C} - \move (-0.3 +0.3) \bdot \ATtext{\tt h:C v:T} - \move (+0.3 -0.3) \bdot \ABtext{\tt h:C v:B} - \move (-0.6 -1.2) \bdot \ALtext{\tt h:L v:B} - \lvec (-1.2 -0.6) \bdot \ALtext{\tt h:L v:T} - \lvec (+0.6 +1.2) \bdot \ARtext{\tt h:R v:T} - \lvec (+1.2 +0.6) \bdot \ARtext{\tt h:R v:B} - \lvec (-0.6 -1.2) - \esegment -\end{texdraw} -\end{center} - -\vfill -\newpage - - -\bigskip -\begin{center} -\begin{texdraw} - \move(-0.75 -0.25) \lvec (-0.75 +0.5) \lvec (+0.75 +0.5) - \lvec(+0.75 -0.25) \ifill f:0.9 % fill the region - \move(0 0) - \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} - \move (-1.15 -0.3) \move (+1.15 +0.92) % increase the size of the drawing -\end{texdraw} -\end{center} - -\bigskip -\begin{center} -\begin{texdraw} - \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) -\end{texdraw} -\end{center} - -\bigskip -\begin{center} -\begin{texdraw} - \newcommand{\Ltext}[1]{\bsegment - \textref h:R v:C \htext (-0.08 0){#1} - \esegment} - \newcommand{\Rtext}[1]{\bsegment - \textref h:L v:C \htext (+0.08 0){#1} - \esegment} - \newcommand{\bdot}{\fcir f:0 r:0.02 } - \newcommand{\Ldot}[1]{\bdot \Ltext{#1}} - \newcommand{\Rdot}[1]{\bdot \Rtext{#1}} - \move (-2 0) - \bsegment - \lpatt (0.033) - \move (0 0) \Ldot{0} \lvec (0 1) \Ldot{1} - \lvec (1 1) \Rdot{2} \lvec (1 0) \Rdot{3} - \lpatt () - \move (0 0) \clvec (0 1)(1 1)(1 0) - \esegment - \move (0 0) - \bsegment - \lpatt (0.033) - \move (0 0) \Ldot{0} \lvec (0.5 0.8) \Ldot{1} - \lvec (1.5 0.8) \Rdot{2} \lvec (1 0) \Rdot{3} - \lpatt () - \move (0 0) \clvec (0.5 1)(1.5 1)(1 0) - \esegment - \move ( 2 0) - \bsegment - \lpatt (0.033) - \move (0 0) \Ldot{0} \lvec (0 1) \Ldot{1} - \lvec (1 0) \Rdot{2} \lvec (1 1) \Rdot{3} - \lpatt () - \move (0 0) \clvec (0 1)(1 0)(1 1) - \esegment -\end{texdraw} -\end{center} - -\bigskip -\begin{center} -\begin{texdraw} -\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 -\end{texdraw} -\end{center} - -\vfill -\newpage - - -\bigskip -\newcommand{\tbox}[1]{\bsegment - \lvec (0 +0.25) \lvec (0.75 +0.25) - \lvec (0.75 -0.25) \lvec (0 -0.25) \lvec (0 0) - \textref h:C v:C \htext (0.375 0){#1} - \savepos (0.75 0)(*ex *ey) - \esegment - \move (*ex *ey)} -\begin{center} -\begin{texdraw} - \ravec (1 0) \tbox{$H(z)$} \ravec (1 0) -\end{texdraw} -\end{center} - -\bigskip -\def\cavec (#1 #2)(#3 #4)(#5 #6){ - \clvec (#1 #2)(#3 #4)(#5 #6) - \cossin (#3 #4)(#5 #6)\cosa\sina - \rmove (0 0) % stroke the Bezier curve - \bsegment - \drawdim in \setsegscale 0.05 - \move ({-\cosa} -\sina) \avec (0 0) - \esegment} - -\def\caw (#1 #2){ - \currentpos \xa\ya - \cossin ({\xa} \ya)(#1 #2)\cosa\sina - -% The nominal wiggly curve is (0 0) (1+dx dy) (-dx -dy) (1 0) -% Find the rotated offset (dx dy) -> (du dv) - \rotatecoord (0.4 0.1)\cosa\sina \du\dv - -% calculate the length of the vector - \vectlen ({\xa} \ya)(#1 #2)\len - -% draw the curve in normalized units - \bsegment - \setsegscale {\len} - \realadd \cosa \du \tmpa \realadd \sina \dv \tmpb - \cavec ({\tmpa} \tmpb)({-\du} -\dv)({\cosa} \sina) - \esegment - - \move (#1 #2)} - -% rotate a coordinate (x y) -% arguments: (x y) cosa sina x' y' -% x' = cosa * x - sina * y; y' = sina * x + cosa * y -\def\rotatecoord (#1 #2)#3#4#5#6{ - \getpos (#1 #2)\xarg\yarg - \realmult \xarg {#3} \tmpa \realmult \yarg {#4} \tmpb - \realadd \tmpa {-\tmpb} #5 - \realmult \xarg {#4} \tmpa \realmult \yarg {#3} \tmpb - \realadd \tmpa \tmpb #6} - -\begin{center} -\begin{texdraw} - \arrowheadtype t:W - \move (0 0) - \cavec (1.4 0.1)(-0.4 -0.1)(1 0) - \move (1 0) \caw (1 1) \htext{tip at \tt (1 1)} - \move (1 0) \caw (2 1) \htext{tip at \tt (2 1)} - \move (1 0) \caw (2 0) \htext{tip at \tt (2 0)} - \move (0 1.13) \move (0 -0.04) -\end{texdraw} -\end{center} - -\vfill -\newpage - - -\bigskip -\def\delay {\bsegment - \setsegscale 0.3 - \lvec (0 +0.5) \lvec (1 +0.5) \lvec (1 -0.5) - \lvec (0 -0.5) \lvec (0 0) - \textref h:C v:C \htext (0.5 0){$z^{-1}$} - \savepos (1 0)(*ex *ey) - \esegment - \move (*ex *ey)} -\def\bdot {\fcir f:0 r:0.02 } -\def\Ttext #1{\bsegment - \textref h:C v:B \htext (0 +0.06){#1} - \esegment} -\def\Btext #1{\bsegment - \textref h:C v:T \htext (0 -0.06){#1} - \esegment} -\def\Ltext #1{\bsegment - \textref h:R v:C \htext (-0.06 0){#1} - \esegment} -\def\Rtext #1{\bsegment - \textref h:L v:C \htext (+0.06 0){#1} - \esegment} -\def\cradius {0.08} -\def\pluss {\bsegment - \setsegscale {\cradius} - \move (-0.5 0) \lvec (+0.5 0) - \move (0 -0.5) \lvec (0 +0.5) - \esegment} -\def\pcir {\lcir r:{\cradius} \pluss} -\def\puttext (#1 #2)#3{\bsegment - \setsegscale {\cradius} - \textref h:C v:C \htext (#1 #2){#3} - \esegment} -\def\putwnw #1{\puttext (-1.7 +1.2){#1}} -\def\putwsw #1{\puttext (-1.7 -1.2){#1}} -\def\putn #1{\puttext ( 0 +2 ){#1}} -\def\puts #1{\puttext ( 0 -2 ){#1}} -\def\avectoc (#1 #2){\currentpos \xa\ya - \cossin ({\xa} \ya)(#1 #2)\cosa\sina - \savepos (#1 #2)(*tx *ty) - \bsegment - \move (*tx *ty) - \setsegscale {\cradius} - \rmove ({-\cosa} -\sina) - \savecurrpos (*ex *ey) - \esegment - \avec (*ex *ey) - \move (#1 #2)} -\def\avecfrc (#1 #2){\currentpos \xa\ya - \cossin ({\xa} \ya)(#1 #2)\cosa\sina - \bsegment - \setsegscale {\cradius} - \move ({\cosa} \sina) - \savecurrpos (*ex *ey) - \esegment - \move (*ex *ey) - \avec (#1 #2)} - -\begin{center} -\begin{texdraw} -\drawdim in -\arrowheadtype t:F \arrowheadsize l:0.08 w:0.04 -\def\pl {$\scriptscriptstyle +$} \def\mn {$\scriptscriptstyle -$} - -\move (0 +0.63) \move (0 -0.60) \move (0 0) % compensate for the text size - -% Input to the first stage -\bsegment - \Ltext{$x(n)$} - \lvec (0.3 0) \bdot \lvec (0.3 +0.4) - \move (0.3 0) \lvec (0.3 -0.4) - \savepos (0.3 0)(*ex *ey) -\esegment -\move (*ex *ey) - -% first lattice stage -\bsegment - \move (0 +0.4) \avectoc (1.7 +0.4) - \pcir \putwnw{\pl} \puts{\mn} - \avecfrc (2.1 +0.4) - \move (0 -0.4) \avec (0.4 -0.4) \delay \avectoc (1.7 -0.4) - \pcir \putwsw{\pl} \putn{\mn} - \avecfrc (2.1 -0.4) - \move (0.9 +0.4) \bdot \avectoc (1.7 -0.4) - \move (0.9 -0.4) \bdot \avectoc (1.7 +0.4) - \move (0.1 +0.42) \Ttext {$f_0(n)$} - \move (2.0 +0.42) \Ttext {$f_1(n)$} - \move (0.1 -0.4) \Btext {$b_0(n)$} - \move (2.0 -0.4) \Btext {$b_1(n)$} - \textref h:L v:B \htext (1.15 +0.2){$K_1$} - \textref h:L v:T \htext (1.15 -0.2){$K_1$} - \savepos (2.1 0)(*ex *ey) -\esegment -\move (*ex *ey) - -% center section -\bsegment - \textref h:C v:C - \htext (0.3 +0.4){$\cdots$} - \htext (0.3 -0.4){$\cdots$} - \savepos (0.6 0)(*ex *ey) -\esegment -\move (*ex *ey) - -% last lattice stage -\bsegment - \move (0 +0.4) \avectoc (1.7 +0.4) - \pcir \putwnw{\pl} \puts{\mn} - \avecfrc (2.3 +0.4) \Rtext{$e(n)$} - \move (0 -0.4) \avec (0.4 -0.4) \delay \avectoc (1.7 -0.4) - \pcir \putwsw{\pl} \putn{\mn} - \avecfrc (2.1 -0.4) - \move (0.9 +0.4) \bdot \avectoc (1.7 -0.4) - \move (0.9 -0.4) \bdot \avectoc (1.7 +0.4) - \move (0.1 +0.42) \Ttext {$f_{P-1}(n)$} - \move (2.0 +0.42) \Ttext {$f_P(n)$} - \move (0.1 -0.4) \Btext {$b_{P-1}(n)$} - \move (2.0 -0.4) \Btext {$b_P(n)$} - \textref h:L v:B \htext (1.15 +0.2){$K_P$} - \textref h:L v:T \htext (1.15 -0.2){$K_P$} -\esegment -\end{texdraw} -\end{center} - -\bigskip -\begin{center} -\begin{texdraw} -\arrowheadtype t:F \arrowheadsize l:0.08 w:0.04 -\def\ds {\displaystyle} -\def\ticklab (#1 #2)#3{\move(#1 #2) - \bsegment - \lvec (0 0.05) - \textref h:C v:T \htext (0 -0.05){#3} - \esegment} -\def\Rtext #1{\bsegment - \textref h:L v:C \htext ( 0.08 0){#1} - \esegment} - -\move (2.4 -0.32) % move to set the size - -\move (0 0) -% Axes -\avec (0 1.4) -\move (0 0) \avec (2.2 0) \Rtext{$\omega$} -\ticklab (0 0) {0} -\ticklab (0.8 0) {$\ds {\pi \over 2N} $} -\ticklab (1.2 0) {$\omega_s$} -\ticklab (1.6 0) {$\ds {\pi \over N} $} - -\linewd 0.025 -\move (0 1) -\lvec (0.4 1) -\lvec (0.44 0.998) -\lvec (0.48 0.988) -\lvec (0.52 0.973) -\lvec (0.56 0.951) -\lvec (0.60 0.923) -\lvec (0.64 0.891) -\lvec (0.68 0.852) -\lvec (0.72 0.809) -\lvec (0.76 0.760) -\lvec (0.80 0.707) -\lvec (0.84 0.649) -\lvec (0.88 0.587) -\lvec (0.92 0.522) -\lvec (0.96 0.454) -\lvec (1.00 0.382) -\lvec (1.04 0.309) -\lvec (1.08 0.233) -\lvec (1.12 0.156) -\lvec (1.16 0.078) -\lvec (1.20 0) -\lvec (1.9 0) -\end{texdraw} -\end{center} - -\bigskip -\begin{center} -\begin{texdraw} -\arrowheadtype t:V \arrowheadsize l:0.08 w:0.04 -\linewd 0.01 -\setunitscale 1.5 % circle will have radius 1.5 inches - -\def\Btext #1{\bsegment - \textref h:C v:T \htext (0 -0.04){#1} - \esegment} -\def\Ttext #1{\bsegment - \textref h:C v:B \htext (0 0.04){#1} - \esegment} -\def\Ltext #1{\bsegment - \textref h:R v:C \htext (-0.04 0){#1} - \esegment} -\def\bdot {\fcir f:0 r:0.0133 } -\def\vtick {\bsegment - \move (0 -0.05) \lvec (0 0.05) - \esegment} -\def\htick {\bsegment - \move (-0.05 0) \lvec ( 0.05 0) - \esegment} -\def\Hlen #1#2{\bsegment - \vtick \avec ({#1} 0) \vtick \avec (0 0) - \relsegscale 0.5 - \move ({#1} 0) \Ttext {#2} - \esegment} -\def\Vlen #1#2{\bsegment - \htick \avec (0 {#1}) \htick \avec (0 0) - \relsegscale 0.5 - \move (0 {#1}) \Ltext {#2} - \esegment} - -\lcir r:1 % circle -\move (-1.05 0) \lvec ( 1.05 0) % axes -\move (0 -1.05) \lvec (0 1.05) - -\move (0 0) \lvec (0.707 0.707) \bdot -\rmove (0.02 0.02) \textref h:L v:B \htext {X} -\move (0.707 -0.707) \bdot -\textref h:R v:T \htext(-0.02 -0.02){O} - -\move (0.5 0) % center of ellipse -\bsegment - \lellip rx:0.435 ry:0.804 - \bdot \Btext {$\beta_2$} - \move (0 0.15) \Hlen {0.435}{$|\beta_1{+}\beta_3|$} - \move (-0.7 0) \Vlen {0.804}{$|\beta_1{-}\beta_3|$} -\esegment -\end{texdraw} -\end{center} - -\end{document} diff --git a/Master/texmf-dist/doc/support/texdraw/txdexamp.tex b/Master/texmf-dist/doc/support/texdraw/txdexamp.tex deleted file mode 100644 index 371b0e64969..00000000000 --- a/Master/texmf-dist/doc/support/texdraw/txdexamp.tex +++ /dev/null @@ -1,485 +0,0 @@ -% TeXdraw examples - -% $Id: txdexamp.tex,v 2.0 1995/12/18 texdraw-V2R0 $ - -% These examples are taken from the TeXdraw manual. Note that the fonts -% for text will be different from those in the manual -- here we use the -% plain TeX defaults. - -% Peter Kabal -% Department of Electrical Engineering -% McGill University -% 3480 University -% Montreal, Quebec -% Canada H3A 2A7 - -% kabal@TSP.EE.McGill.CA - -\input texdraw -\input txdtools -\let\et=\etexdraw -\def\etexdraw{\drawbb\et} - -\noindent -TeXdraw examples using plain TeX. - -\bigskip -\centertexdraw{ - \avec (0 0.8) \textref h:C v:B \htext (0 0.9){\sl y} - \move (0 0) \avec (0.8 0) \textref h:L v:C \htext(0.9 0){\sl x} - \move (0 1.0)} - -\bigskip -\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$} -} - -\bigskip -\centertexdraw{ - \drawdim in - \linewd 0.03 \setgray 0.6 \arrowheadtype t:F \avec(0.5 0.5) - \linewd 0.01 \setgray 0 \arrowheadtype t:V \avec(1.0 0.5) - \linewd 0.015 \lpatt(0.067 0.1) \lvec (1.5 0) - \linewd 0.02 \lpatt() \arrowheadtype t:T \avec(2.0 0.5) - \arrowheadtype t:H \avec(2.5 0.5) - \setgray 0.4 \arrowheadtype t:W \avec(3.0 0) - \textref h:R v:T \htext (0.35 0.50){\tt t:F} - \textref h:R v:T \htext (1.0 0.43){\tt t:V} - \textref h:R v:T \htext (1.82 0.50){\tt t:T} - \textref h:R v:T \htext (2.5 0.43){\tt t:H} - \textref h:R v:B \htext (2.8 0){\tt t:W} -} - -\bigskip -\centertexdraw{ - \def\bdot {\bsegment - \fcir f:0 r:0.02 - \esegment} - \def\Ttext #1{\bsegment - \textref h:C v:B \htext (0 +0.06){#1} - \esegment} - \def\Btext #1{\bsegment - \textref h:C v:T \htext (0 -0.06){#1} - \esegment} - \def\Ltext #1{\bsegment - \textref h:R v:C \htext (-0.08 0){#1} - \esegment} - \def\Rtext #1{\bsegment - \textref h:L v:C \htext (+0.08 0){#1} - \esegment} - \move (-1.5 0) - \bsegment - \move (+1.55 +0.45) \move (-1.55 -0.45) \move (0 0) - \Ttext{Horizontal Text} - \bdot \Btext{\tt h:C v:C} - \move (-0.9 0) \bdot \Ltext{\tt h:L v:C} - \move (+0.9 0) \bdot \Rtext{\tt h:R v:C} - \move (0 +0.3) \bdot \Ttext{\tt h:C v:T} - \move (0 -0.3) \bdot \Btext{\tt h:C v:B} - \move (-0.9 -0.3) \bdot \Ltext{\tt h:L v:B} - \lvec (-0.9 +0.3) \bdot \Ltext{\tt h:L v:T} - \lvec (+0.9 +0.3) \bdot \Rtext{\tt h:R v:T} - \lvec (+0.9 -0.3) \bdot \Rtext{\tt h:R v:B} - \lvec (-0.9 -0.3) - \esegment - \def\atext {\rtext td:45 } - \def\ATtext #1{\bsegment - \setsegscale 0.707 - \textref h:C v:B \atext (-0.06 +0.06){#1} - \esegment} - \def\ABtext #1{\bsegment - \setsegscale 0.707 - \textref h:C v:T \atext (+0.060 -0.06){#1} - \esegment} - \def\ALtext #1{\bsegment - \setsegscale 0.707 - \textref h:R v:C \atext (-0.08 -0.08){#1} - \esegment} - \def\ARtext #1{\bsegment - \setsegscale 0.707 - \textref h:L v:C \atext (+0.08 +0.08){#1} - \esegment} - \move (+1.5 0) - \bsegment - \move (+1.33 +1.33) \move (-1.33 -1.33) \move (0 0) - \setsegscale 0.707 - \ATtext{Rotated Text} - \bdot \ABtext{\tt h:C v:C} - \move (-0.9 -0.9) \bdot \ALtext{\tt h:L v:C} - \move (+0.9 +0.9) \bdot \ARtext{\tt h:R v:C} - \move (-0.3 +0.3) \bdot \ATtext{\tt h:C v:T} - \move (+0.3 -0.3) \bdot \ABtext{\tt h:C v:B} - \move (-0.6 -1.2) \bdot \ALtext{\tt h:L v:B} - \lvec (-1.2 -0.6) \bdot \ALtext{\tt h:L v:T} - \lvec (+0.6 +1.2) \bdot \ARtext{\tt h:R v:T} - \lvec (+1.2 +0.6) \bdot \ARtext{\tt h:R v:B} - \lvec (-0.6 -1.2) - \esegment -} - -\vfill -\eject - - -\bigskip -\centertexdraw{ - \move(-0.75 -0.25) \lvec (-0.75 +0.5) \lvec (+0.75 +0.5) - \lvec(+0.75 -0.25) \ifill f:0.9 % fill the region - \move(0 0) - \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} - \move (-1.15 -0.3) \move (+1.15 +0.92) % increase the size of the drawing -} - -\bigskip -\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) -} - -\bigskip -\centertexdraw{ - \def\Ltext #1{\bsegment - \textref h:R v:C \htext (-0.08 0){#1} - \esegment} - \def\Rtext #1{\bsegment - \textref h:L v:C \htext (+0.08 0){#1} - \esegment} - \def\bdot {\fcir f:0 r:0.02 } - \def\Ldot #1{\bdot \Ltext{#1}} - \def\Rdot #1{\bdot \Rtext{#1}} - \move (-2 0) - \bsegment - \lpatt (0.033) - \move (0 0) \Ldot{0} \lvec (0 1) \Ldot{1} - \lvec (1 1) \Rdot{2} \lvec (1 0) \Rdot{3} - \lpatt () - \move (0 0) \clvec (0 1)(1 1)(1 0) - \esegment - \move (0 0) - \bsegment - \lpatt (0.033) - \move (0 0) \Ldot{0} \lvec (0.5 0.8) \Ldot{1} - \lvec (1.5 0.8) \Rdot{2} \lvec (1 0) \Rdot{3} - \lpatt () - \move (0 0) \clvec (0.5 1)(1.5 1)(1 0) - \esegment - \move ( 2 0) - \bsegment - \lpatt (0.033) - \move (0 0) \Ldot{0} \lvec (0 1) \Ldot{1} - \lvec (1 0) \Rdot{2} \lvec (1 1) \Rdot{3} - \lpatt () - \move (0 0) \clvec (0 1)(1 0)(1 1) - \esegment -} - -\bigskip -\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 -} - -\vfill -\eject - - -\bigskip -\def\tbox #1{\bsegment - \lvec (0 +0.25) \lvec (0.75 +0.25) - \lvec (0.75 -0.25) \lvec (0 -0.25) \lvec (0 0) - \textref h:C v:C \htext (0.375 0){#1} - \savepos (0.75 0)(*ex *ey) - \esegment - \move (*ex *ey)} -\centertexdraw{ - \ravec (1 0) \tbox{$H(z)$} \ravec (1 0) -} - -\bigskip -\def\cavec (#1 #2)(#3 #4)(#5 #6){ - \clvec (#1 #2)(#3 #4)(#5 #6) - \cossin (#3 #4)(#5 #6)\cosa\sina - \rmove (0 0) % stroke the Bezier curve - \bsegment - \drawdim in \setsegscale 0.05 - \move ({-\cosa} -\sina) \avec (0 0) - \esegment} - -\def\caw (#1 #2){ - \currentpos \xa\ya - \cossin ({\xa} \ya)(#1 #2)\cosa\sina - -% The nominal wiggly curve is (0 0) (1+dx dy) (-dx -dy) (1 0) -% Find the rotated offset (dx dy) -> (du dv) - \rotatecoord (0.4 0.1)\cosa\sina \du\dv - -% calculate the length of the vector - \vectlen ({\xa} \ya)(#1 #2)\len - -% draw the curve in normalized units - \bsegment - \setsegscale {\len} - \realadd \cosa \du \tmpa \realadd \sina \dv \tmpb - \cavec ({\tmpa} \tmpb)({-\du} -\dv)({\cosa} \sina) - \esegment - - \move (#1 #2)} - -% rotate a coordinate (x y) -% arguments: (x y) cosa sina x' y' -% x' = cosa * x - sina * y; y' = sina * x + cosa * y -\def\rotatecoord (#1 #2)#3#4#5#6{ - \getpos (#1 #2)\xarg\yarg - \realmult \xarg {#3} \tmpa \realmult \yarg {#4} \tmpb - \realadd \tmpa {-\tmpb} #5 - \realmult \xarg {#4} \tmpa \realmult \yarg {#3} \tmpb - \realadd \tmpa \tmpb #6} - -\centertexdraw{ - \arrowheadtype t:W - \move (0 0) - \cavec (1.4 0.1)(-0.4 -0.1)(1 0) - \move (1 0) \caw (1 1) \htext{tip at \tt (1 1)} - \move (1 0) \caw (2 1) \htext{tip at \tt (2 1)} - \move (1 0) \caw (2 0) \htext{tip at \tt (2 0)} - \move (0 1.13) \move (0 -0.04) -} - -\vfill -\eject - - -\bigskip -\def\delay {\bsegment - \setsegscale 0.3 - \lvec (0 +0.5) \lvec (1 +0.5) \lvec (1 -0.5) - \lvec (0 -0.5) \lvec (0 0) - \textref h:C v:C \htext (0.5 0){$z^{-1}$} - \savepos (1 0)(*ex *ey) - \esegment - \move (*ex *ey)} -\def\bdot {\fcir f:0 r:0.02 } -\def\Ttext #1{\bsegment - \textref h:C v:B \htext (0 +0.06){#1} - \esegment} -\def\Btext #1{\bsegment - \textref h:C v:T \htext (0 -0.06){#1} - \esegment} -\def\Ltext #1{\bsegment - \textref h:R v:C \htext (-0.06 0){#1} - \esegment} -\def\Rtext #1{\bsegment - \textref h:L v:C \htext (+0.06 0){#1} - \esegment} -\def\cradius {0.08} -\def\pluss {\bsegment - \setsegscale {\cradius} - \move (-0.5 0) \lvec (+0.5 0) - \move (0 -0.5) \lvec (0 +0.5) - \esegment} -\def\pcir {\lcir r:{\cradius} \pluss} -\def\puttext (#1 #2)#3{\bsegment - \setsegscale {\cradius} - \textref h:C v:C \htext (#1 #2){#3} - \esegment} -\def\putwnw #1{\puttext (-1.7 +1.2){#1}} -\def\putwsw #1{\puttext (-1.7 -1.2){#1}} -\def\putn #1{\puttext ( 0 +2 ){#1}} -\def\puts #1{\puttext ( 0 -2 ){#1}} -\def\avectoc (#1 #2){\currentpos \xa\ya - \cossin ({\xa} \ya)(#1 #2)\cosa\sina - \savepos (#1 #2)(*tx *ty) - \bsegment - \move (*tx *ty) - \setsegscale {\cradius} - \rmove ({-\cosa} -\sina) - \savecurrpos (*ex *ey) - \esegment - \avec (*ex *ey) - \move (#1 #2)} -\def\avecfrc (#1 #2){\currentpos \xa\ya - \cossin ({\xa} \ya)(#1 #2)\cosa\sina - \bsegment - \setsegscale {\cradius} - \move ({\cosa} \sina) - \savecurrpos (*ex *ey) - \esegment - \move (*ex *ey) - \avec (#1 #2)} - -\centertexdraw{ -\drawdim in -\arrowheadtype t:F \arrowheadsize l:0.08 w:0.04 -\def\pl {$\scriptscriptstyle +$} \def\mn {$\scriptscriptstyle -$} - -\move (0 +0.63) \move (0 -0.60) \move (0 0) % compensate for the text size - -% Input to the first stage -\bsegment - \Ltext{$x(n)$} - \lvec (0.3 0) \bdot \lvec (0.3 +0.4) - \move (0.3 0) \lvec (0.3 -0.4) - \savepos (0.3 0)(*ex *ey) -\esegment -\move (*ex *ey) - -% first lattice stage -\bsegment - \move (0 +0.4) \avectoc (1.7 +0.4) - \pcir \putwnw{\pl} \puts{\mn} - \avecfrc (2.1 +0.4) - \move (0 -0.4) \avec (0.4 -0.4) \delay \avectoc (1.7 -0.4) - \pcir \putwsw{\pl} \putn{\mn} - \avecfrc (2.1 -0.4) - \move (0.9 +0.4) \bdot \avectoc (1.7 -0.4) - \move (0.9 -0.4) \bdot \avectoc (1.7 +0.4) - \move (0.1 +0.42) \Ttext {$f_0(n)$} - \move (2.0 +0.42) \Ttext {$f_1(n)$} - \move (0.1 -0.4) \Btext {$b_0(n)$} - \move (2.0 -0.4) \Btext {$b_1(n)$} - \textref h:L v:B \htext (1.15 +0.2){$K_1$} - \textref h:L v:T \htext (1.15 -0.2){$K_1$} - \savepos (2.1 0)(*ex *ey) -\esegment -\move (*ex *ey) - -% center section -\bsegment - \textref h:C v:C - \htext (0.3 +0.4){$\cdots$} - \htext (0.3 -0.4){$\cdots$} - \savepos (0.6 0)(*ex *ey) -\esegment -\move (*ex *ey) - -% last lattice stage -\bsegment - \move (0 +0.4) \avectoc (1.7 +0.4) - \pcir \putwnw{\pl} \puts{\mn} - \avecfrc (2.3 +0.4) \Rtext{$e(n)$} - \move (0 -0.4) \avec (0.4 -0.4) \delay \avectoc (1.7 -0.4) - \pcir \putwsw{\pl} \putn{\mn} - \avecfrc (2.1 -0.4) - \move (0.9 +0.4) \bdot \avectoc (1.7 -0.4) - \move (0.9 -0.4) \bdot \avectoc (1.7 +0.4) - \move (0.1 +0.42) \Ttext {$f_{P-1}(n)$} - \move (2.0 +0.42) \Ttext {$f_P(n)$} - \move (0.1 -0.4) \Btext {$b_{P-1}(n)$} - \move (2.0 -0.4) \Btext {$b_P(n)$} - \textref h:L v:B \htext (1.15 +0.2){$K_P$} - \textref h:L v:T \htext (1.15 -0.2){$K_P$} -\esegment -} - -\bigskip -\centertexdraw{ -\arrowheadtype t:F \arrowheadsize l:0.08 w:0.04 -\def\ds {\displaystyle} -\def\ticklab (#1 #2)#3{\move(#1 #2) - \bsegment - \lvec (0 0.05) - \textref h:C v:T \htext (0 -0.05){#3} - \esegment} -\def\Rtext #1{\bsegment - \textref h:L v:C \htext ( 0.08 0){#1} - \esegment} - -\move (2.4 -0.32) % move to set the size - -\move (0 0) -% Axes -\avec (0 1.4) -\move (0 0) \avec (2.2 0) \Rtext{$\omega$} -\ticklab (0 0) {0} -\ticklab (0.8 0) {$\ds {\pi \over 2N} $} -\ticklab (1.2 0) {$\omega_s$} -\ticklab (1.6 0) {$\ds {\pi \over N} $} - -\linewd 0.025 -\move (0 1) -\lvec (0.4 1) -\lvec (0.44 0.998) -\lvec (0.48 0.988) -\lvec (0.52 0.973) -\lvec (0.56 0.951) -\lvec (0.60 0.923) -\lvec (0.64 0.891) -\lvec (0.68 0.852) -\lvec (0.72 0.809) -\lvec (0.76 0.760) -\lvec (0.80 0.707) -\lvec (0.84 0.649) -\lvec (0.88 0.587) -\lvec (0.92 0.522) -\lvec (0.96 0.454) -\lvec (1.00 0.382) -\lvec (1.04 0.309) -\lvec (1.08 0.233) -\lvec (1.12 0.156) -\lvec (1.16 0.078) -\lvec (1.20 0) -\lvec (1.9 0) -} - -\bigskip -\centertexdraw{ -\arrowheadtype t:V \arrowheadsize l:0.08 w:0.04 -\linewd 0.01 -\setunitscale 1.5 % circle will have radius 1.5 inches - -\def\Btext #1{\bsegment - \textref h:C v:T \htext (0 -0.04){#1} - \esegment} -\def\Ttext #1{\bsegment - \textref h:C v:B \htext (0 0.04){#1} - \esegment} -\def\Ltext #1{\bsegment - \textref h:R v:C \htext (-0.04 0){#1} - \esegment} -\def\bdot {\fcir f:0 r:0.0133 } -\def\vtick {\bsegment - \move (0 -0.05) \lvec (0 0.05) - \esegment} -\def\htick {\bsegment - \move (-0.05 0) \lvec ( 0.05 0) - \esegment} -\def\Hlen #1#2{\bsegment - \vtick \avec ({#1} 0) \vtick \avec (0 0) - \relsegscale 0.5 - \move ({#1} 0) \Ttext {#2} - \esegment} -\def\Vlen #1#2{\bsegment - \htick \avec (0 {#1}) \htick \avec (0 0) - \relsegscale 0.5 - \move (0 {#1}) \Ltext {#2} - \esegment} - -\lcir r:1 % circle -\move (-1.05 0) \lvec ( 1.05 0) % axes -\move (0 -1.05) \lvec (0 1.05) - -\move (0 0) \lvec (0.707 0.707) \bdot -\rmove (0.02 0.02) \textref h:L v:B \htext {X} -\move (0.707 -0.707) \bdot -\textref h:R v:T \htext(-0.02 -0.02){O} - -\move (0.5 0) % center of ellipse -\bsegment - \lellip rx:0.435 ry:0.804 - \bdot \Btext {$\beta_2$} - \move (0 0.15) \Hlen {0.435}{$|\beta_1{+}\beta_3|$} - \move (-0.7 0) \Vlen {0.804}{$|\beta_1{-}\beta_3|$} -\esegment -} - -\bye diff --git a/Master/texmf-dist/doc/support/texdraw/txi-src.tgz b/Master/texmf-dist/doc/support/texdraw/txi-src.tgz Binary files differnew file mode 100644 index 00000000000..dc6fce03146 --- /dev/null +++ b/Master/texmf-dist/doc/support/texdraw/txi-src.tgz |