home *** CD-ROM | disk | FTP | other *** search
/ Photo CD Demo 1 / Demo.bin / gle / gle / graph.hlp < prev    next >
Text File  |  1992-11-29  |  74KB  |  2,286 lines

  1. 1 GLE
  2.  
  3.   CGLE is a graphics package. A file of simple commands is used to 
  4.   draw a picture, for help on the editor and keyboard keys type
  5.   in EDIT, for help on drawing graphs type in GRAPH and for 
  6.   help on gle commands type in COM.
  7.  
  8.   To try out some of the examples:
  9.           Press F3 to load a file
  10.       Press F10 to draw the picture
  11.           Press ESC (or ^Z, or ^X) to get back to the GLE editor.
  12.  
  13. 2 Edit
  14.  
  15.    You are in a simple screen editor, use the arrow keys to edit the 
  16.    file and then press F2 to save the file and F10 to run gle and display
  17.    the graph. Use F9 to enter the MENU system for defining a graph.
  18.  
  19. The editor understands the following keys.
  20. ^K  followed by the letter B for begin block,
  21.                            Y to cut the block or
  22.                            P to paste a block which you have previously cut.
  23. ^Y  Deletes current line (PF4 on VAX)        
  24. ^U  Undeletes current line
  25. ^Z  (or ESC) To shift up a level and to exit
  26. ^C  Quit            (^E Calls VAX EDT on the VAX)
  27. and the normal editing keys   
  28.                   Delete,  Page up,  Page down
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.     If your terminal/PC lacks the normal function keys f1-f10
  37.     then you can use GOLD (f1 or pf1) followed by 
  38.         1 = Help
  39.         2 = Save
  40.         3 = Load
  41.         4 = Saveas
  42.         5 = Show Errors
  43.         9 = Graph Menu/Form
  44.         0 = Draw it  (or ^G)
  45.     ^Z = Exit from menu              (^S Shell to DOS)
  46.  
  47. 2 Graph
  48.  
  49.    A graph should start with BEGIN GRAPH and end with END GRAPH.
  50.    The data to be plotted are organised into datasets.
  51.    A dataset consists of a series of (X,Y) coordinates,
  52.    and has a name based on the letter "d" and a number between
  53.    1 and 99,
  54.  
  55.    eg. "d1 or d4"
  56.  
  57.    The  name  dn  can  be  used  to  define  a  default for all
  58.     datasets.  Many  graph commands described below start with d
  59.    n.  This  would  normally  be replaced by a specific dataset
  60.    number e.g.,
  61.  
  62.           d3 marker diamond
  63.  
  64.    Up to 99 datasets may be defined.
  65.  
  66.    For  each  xaxis  command  there  is  a corresponding yaxis,
  67.    y2axis  and  x2axis  command  for  setting  the top left and
  68.    right    hand   axes.  These  commands  are  not  explicitly
  69.    mentioned in the following descriptions.
  70.  
  71.    Note: Some of the help on graph refers to the graph form menu (f9)
  72.  
  73. 3 size
  74.  
  75.   Defines the size of the graph in cm.
  76.   This is the size of the outside box of a graph.
  77.  
  78.   eg. "size 27 18" is the normal size specified for an A4 landscape page.
  79.   That is 27cm wide and 18cm high.
  80.  
  81.   The actual size of the axes of the graph will be 70% of this.
  82.  
  83. 3 nobox
  84.  
  85.   This specifies whether the graph is enclosed in an outside frame, with
  86.   dimensions specified in your size command.
  87.  
  88. 3 data
  89. Specifies the name of a file to read data from.
  90. A data file named xx.dat for two datasets looks like this (*=missing value):
  91.  
  92.      1  2.7   3
  93.      2  5     *
  94.      3  7.8   7
  95.      4  9     4
  96.  
  97. A dataset consists of a series of (X,Y) coordinates, and has a name based on
  98. the letter "d" and a number between 1 and 99, eg. "d1 or d4"
  99.  
  100. Specify the names of datasets that should be filled with data from the file.
  101. eg. from the above file with 3 columns "data xx.dat d5 d6"
  102. Dataset d5 would then contain           and d6 would contain
  103.          1   2.7                          1   3
  104.          2   5                            2   *
  105.          3   7.8                          3   7
  106.          4   9                            4   4
  107.  
  108.  
  109.  
  110.  
  111. If your data file has missing values you will have gaps in the graph
  112. unless use the nomissing parameter.
  113.     ie. data xx.dat d6 nomissing
  114.  
  115. You may specify particular columns to read data from the file -
  116.     eg. "data xx.data d1=c4,c1"
  117.     This would produce a graph with x values from column 4 and y values
  118.     from column 1 (ie. the reverse of the default)
  119.  
  120. If your dataset is too large to fit in memory (on the PC) you can 
  121. specify a dataset to read it only when drawing it, in this way 
  122. CGLE can cope with any sized dataset. eg. (d3 lstyle 2 bigfile "a.dat" )
  123.  
  124. 3 position
  125.  
  126.    This sets the starting position for the graph.
  127.    This is most often used when you wish to have more than one graph
  128.    on a page.
  129.  
  130.    eg. "size 13.5  9"
  131.        "amove 0  9"
  132.  
  133.   This produces a graph in the top left corner of an A4 landscape page.
  134.  
  135. 3 fill
  136.  
  137.   Allows you to fill portions of the graph.
  138.   You can fill in several different ways.
  139.  
  140.         "fill x1,d1"            Between the xaxis and a dataset.
  141.  
  142.         "fill d1,x2"            Between a dataset and the x2axis.
  143.  
  144.         "fill d1,d2"            Between two datasets.
  145.  
  146.         "fill d1"               For a closed dataset (eg. a circle)
  147.  
  148.   The fill intensity is from grey0 (white) to grey100 (black) 
  149.   and steps of 10 in between.  
  150.      - eg.   "fill x1,d1 color grey10"     
  151.   Produces light grey shading between the xaxis and the dataset.
  152.  
  153.  
  154.  
  155.  
  156.   The filled area can also be clipped to a region using 
  157.   the xmin, xmax, ymin, ymax qualifiers.
  158.  
  159.      - eg.   "fill d1,d2 xmin 1 xmax 5 color blue"
  160.  
  161.   This sets the fill area between the 1 and the 5 values on the X axis.
  162.  
  163. 4 xmin 
  164.    Sets the minimum value for the fill (this acts as a clipping boundary)
  165.  
  166. 4 ymin 
  167.    Sets the minimum value for the fill (this acts as a clipping boundary)
  168.  
  169. 4 xmax 
  170.    Sets the maximum value for the fill (this acts as a clipping boundary)
  171.  
  172. 4 ymax 
  173.   Sets the maximum value for the fill (this acts as a clipping boundary)
  174.  
  175. 3 bigfile
  176.     See 
  177.     graph dn bigfile
  178.  
  179. 3 dn
  180.  
  181.   The two variations of the dataset command specify which datasets 
  182.   to apply the keyword settings to, 
  183.   eg. a specific dataset "d3" or all datasets "dn".
  184.   
  185.   The dn command line specifies that attributes are to be applied to all
  186.   datasets.
  187.  
  188.   eg. "dn smooth"
  189.  
  190.   The d1 to d7 command lines specify that attributes are to be applied to 
  191.   that specific dataset only.
  192.   
  193.   eg. "d3 lstyle 2 color blue"
  194.  
  195. 4 bigfile
  196.  
  197.     d2 bigfile "all.dat,1,2"
  198.  
  199.     The bigfile option allows a dataset to be read as it is drawn, 
  200.     (rather than being completely read into memory before it is 
  201.     drawn) this means that very large datasets can be drawn on a 
  202.     PC without running out of memory. The axis minimum and maximum 
  203.     must be specified (using the  command xaxis min max) unless
  204.     the AUTOSCALE option is used, e.g. 
  205.     d2 bigfile a.dat   autoscale
  206.  
  207.     By default the first two columns of the data file will
  208.     be read in, but other columns may be specified.
  209.     E.g., all.dat,3,2  would read x values from column 3 and y values 
  210.     from column 2.  Or, to read the 4th dataset, specify   
  211.     the file as all.dat,1,5
  212.  
  213.     If the x column is specified as '0' then GLE will generate the
  214.     x data points. E.g., 1,2,3,4,5...
  215.     
  216. 4 autoscale
  217.     This tells gle to pre-read a bigfile so that it can autoscale
  218.     the axes.  This may be much slower for a very large file but 
  219.     is the only option if you require auto-scaling.
  220.  
  221. 4 line
  222.  
  223.   This tells GLE to draw lines between the points of the dataset.  
  224.   By default GLE will not draw lines or markers
  225.   (You must specify one or other else you get a blank graph.)
  226.   If your dataset has missing values GLE will not draw 
  227.   a line to the next real value.
  228.   It just leaves a gap in the curve unless you specify nomissing in
  229.   the data command. (d3 line nomissing)
  230.  
  231.              eg.  "d3 line"
  232.  
  233. 4 lwidth
  234.  
  235.   Specifies the width of the line 
  236.   This is measured in cm
  237.   The default is .02 cm.
  238.  
  239.  
  240. 4 lstyle
  241.  
  242.   This specifies the line style for that dataset.
  243.   There are 9 predefined linestyles 
  244.           eg.  1=solid line, 2=dot's, 3=dashes etc... 
  245.  
  246.   Numbers greater than 9 are read from left to right 
  247.   with each digit being a length of black or white. 
  248.           eg. "d3 lstyle 1553"
  249.  
  250. 4 marker
  251.  
  252.  Specifies the marker to be used for the dataset.
  253.  There is a set of pre-defined markers (refer to Appendix A for examples)
  254.  which can be specified by name (NOT by number). 
  255.  Markers can also be a user defined subroutine.
  256.  
  257.        eg. "d2 marker circle" or "d1 marker triangle"
  258.  
  259.  Some of the markers have a prefix -
  260.  
  261.        Prefix              Meaning
  262.          f                 Solid coloured marker
  263.          o                 A circle around the marker
  264.          w                 The hollow marker hides the graph line
  265.        (none)              The graph line is drawn through the marker
  266.  
  267.  
  268.  
  269.  
  270.  
  271.    No.  Marker-Name             No.  Marker-Name
  272.  
  273.    1   circle                   15  dag
  274.    2   triangle                 16  ddag
  275.    3   square                   17  asterix
  276.    4   diamond                  18  oplus
  277.    5   fcircle                  19  ominus
  278.    6   ftriangle                20  otimes
  279.    7   fsquare                  21  odot
  280.    8   fdiamond                 22  trianglez
  281.    9   dot                      23  diamondz
  282.    10  cross                    24  wcircle
  283.    11  club                     25  wtriangle
  284.    12  heart                    26  wsquare
  285.    13  star                     27 wdiamond
  286.    14  snake
  287.  
  288. 4 msize
  289.  
  290.    Increases or decreases the size of the marker for the specified
  291.    dataset. The size is in cm.
  292.  
  293.         eg.  "d3 marker square msize .3"
  294.  
  295. 4 smooth
  296.  
  297.   This will make GLE draw a smoothed line through the points.  
  298.   You can now use markers and linestyles with the smooth command.
  299.  
  300. 4 smoothm
  301.  
  302.   Same as smooth option, but this allows a function which has
  303.   multiple y values for a single x value (e.g. a circle).
  304.  
  305. 4 xmin
  306.  
  307.   These commands map your dataset onto the graph's boundaries. 
  308.   Your data will be drawn as if the X axis was labelled from XMIN to XMAX
  309.   (regardless of how the axis is actually labelled).
  310.  
  311.   A point in your dataset at X=10 will appear on the left
  312.   edge of the graph with the given command.
  313.              
  314.                "d3 line xmin 10 xmax 50"
  315.  
  316. 4 ymin
  317.  
  318.  These commands map your dataset onto the graph's boundaries. 
  319.  Your data will be drawn as if the Y axis was labelled from YMIN to YMAX
  320.  (regardless of how the axis is actually labelled).
  321.  
  322.  A point in your dataset at Y=10 will appear on the bottom
  323.  of the graph with the given command.
  324.  
  325.               "d3 line ymin 10 ymax 50"
  326.  
  327. 4 xmax
  328.  
  329.  These commands map your dataset onto the graph's boundaries. 
  330.  Your data will be drawn as if the X axis was labelled from XMIN to XMAX
  331.  (regardless of how the axis is actually labelled).
  332.  A point in your dataset at X=50 will appear on the right
  333.  edge of the graph with the given command.
  334.  
  335.               "d3 line xmin 10 xmax 50"
  336.  
  337. 4 ymax
  338.  
  339.  These commands map your dataset onto the graph's boundaries. 
  340.  Your data will be drawn as if the Y axis was labelled from YMIN to YMAX
  341.  (regardless of how the axis is actually labelled).
  342.  
  343.  A point in your dataset at Y=50 will appear on the top
  344.  of the graph with the given command.
  345.             
  346.              "d3 line ymin 10 ymax 50"
  347.  
  348. 4 err
  349.  
  350.   For drawing error bars on a graph the error bars can be specified as
  351.            - an absolute value,
  352.               eg. "d3 err .1"
  353.  
  354.              a percentage of the y value
  355.              eg. "d3 err 10%"
  356.  
  357.              or as a dataset.
  358.              eg. "d3 err d4"
  359.              - The dataset d4 would contain data specifying the 
  360.                relative offset (NOT the absolute value) for the
  361.                error bars. 
  362.  
  363.   The up and the down error bars can be specified separately.
  364.              eg. "d3 errup 10% errdown d2 
  365.   
  366.   The width of the bar can be specified.     
  367.              eg. "d3 err d1 errwidth .2"
  368.  
  369.   There is an identical set of commands for drawing horizontal 
  370.   error bars:
  371.             herr, herrleft, herrright, herrwidth 
  372.  
  373. 4 errwidth
  374.  
  375.    Specifies the width of error bars.
  376.    Measured in cm.
  377.  
  378. 4 key
  379.  
  380.     Specifies a title for that dataset.
  381.     This will be used in an automatically generated KEY 
  382.     which will be positioned at the top-left of the graph by default.
  383.  
  384.     The key command can specify other features of the key
  385.      eg    "key  pos <justify>   nobox   offset <exp> <exp>"
  386.  
  387.     There is a separate KEY module for more complex key's.
  388.  
  389.     Refer to chapter 4 of the manual for details.
  390.  
  391. 4 color
  392.  
  393.           Specifies the colour of the line used to draw that dataset.
  394.           Valid colours are black, white, red, green, blue,
  395.                             cyan, magenta, yellow.
  396.       and grey10, grey20 ... grey90
  397.           The colours are implemented as shades of grey for monochrome
  398.           postscript output.  eg grey10 = yellow
  399.  
  400. 3 let
  401.  
  402.   This command lets you generate a dataset.-
  403.  
  404.   Either from scratch,
  405.                         eg. let d1=sin(x) from 1 to 20 step .4
  406.  
  407.   or as a function of another dataset,
  408.                         eg. let d2=d1*3.
  409.  
  410.   When generating a dataset from scratch (ie not using another dataset
  411.   as a base) you MUST specify FROM nn TO nn STEP nn. (NOTE THE SPACING)
  412.  
  413.   eg.  let d1 = sin(x) from 1 to 10 step .2
  414.         let d2 = sqrt(d1)/3
  415.  
  416.  
  417.  
  418.  
  419.  
  420.     Maths Functions
  421.     The functions available which can be used with the Let
  422.     command are -
  423.  
  424.     Function              Returns
  425.     ABS(exp)              absolute value of exp
  426.     ATN(exp)              arctan
  427.     COS(exp)              cosine
  428.     EXP(exp)              exponent
  429.     FIX(exp)              exponent rounded toward 0
  430.     INT(exp)              integer
  431.     LOG(exp)              Log to the base e of exponent
  432.     LOG10(exp)            Log to the base 10 of exponent
  433.     SGN(exp)               1 if exponent is positive
  434.                   -1 if exponent is negative
  435.     SIN(exp)              sine of exponent
  436.     SQR(exp)              square of exponent
  437.     SQRT(exp)             square root of exponent
  438.  
  439. 3 bar
  440.   This is a subcommand of the normal graph module.
  441.   This allows you to mix line and bar graphs.
  442.   The bar command is flexible but quite complex.
  443.   Stacked, overlapped and grouped bars are possible.
  444.  
  445.   The simplest bar chart is drawn by the command - bar d1
  446.   Double bars are produced by - bar d1 d2
  447.  
  448.   To produce bars with no gaps between set the width and dist settings to
  449.   the same value. - bar d1 width .5 dist .5
  450.  
  451.   Overlapped bars are produced similarly. The width (of the bar) is set
  452.   greater than the dist (distance between the bars).
  453.   eg. - bar d1 d2 width 1 dist 1.75
  454.    
  455.   Stacked bars are produced by drawing a graph for a dataset with the
  456.   starting points at the values of another dataset.  
  457.         - eg.  bar d1 fill grey 90
  458.                bar d2 from d1 fill grey 20
  459.  
  460.  
  461.  
  462.    - or    bar d4 color black width 3
  463.            bar d1,d2,d3 from d4,d4,d4 color red green blue width 1 dist 1
  464.      Without the first bar command for d4 the other bars 
  465.      would appear floating in the air. The width and dist commands are 
  466.      needed to produce the stacked bars without gaps on a base of equal
  467.      size.
  468.  
  469.      3d Bar graphs can also be drawn, this doesn't show any more 
  470.      information, but it does look nice:
  471.  
  472.       bar d1    3d .5 .3    side red     top black
  473.     or 
  474.       bar d1,d2  3d .5 .3  side red,green   notop
  475.       bar d3,d4  3d .5 .3  side red,green   top black,white 
  476.  
  477.      Take note of commas!!!.
  478.  
  479. 4 3d
  480.  bar d1   3d xunits yunits
  481.     The 3d option tells GLE to draw bars with a side and top.  The
  482.     two measurements give the vector used for the receding edge of 
  483.     the bar.  They are normalized to the width of the bar.
  484.  
  485. 5 notop
  486.  bar d1   3d .5 .5  notop
  487.     Stops GLE from drawing the top of a 3d bar, this should be used
  488.     on the lower bar of a stacked bar graph.
  489.  
  490. 5 side
  491.  bar d1,d2   3d .5 .5    side blue,green
  492.     Specifies colours for the sides of the bars in the group.
  493.     
  494. 5 top
  495.  bar d1,d2   3d .5 .5    side blue,green  top red,yellow
  496.     Specifies colours for the tops of the bars in the group.
  497.  
  498. 4 dist
  499.  
  500. Specifies the distance between bars in this group. 
  501. The distance is measured from the left hand side of one bar
  502. to the left hand side of the next bar. 
  503. A distance of less than the width of a bar results in the bars overlapping. 
  504.  eg.
  505.       "bar d1,d2 dist .2"
  506.  
  507. 4 from
  508.  
  509. This sets the starting point of each bar.
  510. It is used for creating stacked bar charts.  
  511. Each layer of the bar chart is done with an additional bar command.
  512.   eg.
  513.      bar d1,d2 from d3,d4
  514.  
  515. 4 width
  516.  
  517. Sets the width of the bars.  eg. bar d1,d2 width .3 
  518.  
  519. 4 fill
  520.  
  521. Sets the density and colour for the inside of each bar.
  522.  eg. "bar d1,d2 fill green,grey20"
  523.  
  524. 4 color
  525.  
  526.      Sets the colour of the outline box for each bar.
  527.       eg. "bar d1,d2 color green,grey20"
  528.  
  529.      Valid colours are black, white, red, green, blue,
  530.                             cyan, magenta, yellow.
  531.     and grey10,grey20 ... grey90
  532.      The colours are implemented as shades of grey for monochrome
  533.      postscript output.  
  534.        eg. grey10 = yellow
  535.  
  536. 3 xaxis
  537.      Axis commands allow you to control the appearance of graph axes.
  538.      A graph has two X axes (XAXIS, X2AXIS) and two Y axes (YAXIS, Y2AXIS).
  539.      The axis qualifiers that can be used are -
  540.         color, font, hei, lwidth
  541.         log, min, max, nofirst, nolast
  542.         nticks, dticks, dsubticks, grid
  543.  
  544.      On the Y axis the qualifier rotate can be specified.
  545.  By default the Yaxis is labelled -   s
  546.                       i
  547.                       x
  548.                       a
  549.  
  550.  With rotate the Yaxis is labelled -  a
  551.                       x
  552.                       i
  553.                       s
  554. 4 base
  555.  
  556.   This specifies a "rule of thumb" size in cm from which GLE
  557.   can guestimate good sizes for character height, tick length etc.
  558.  
  559. 4 hei
  560.  
  561.   Specifies the hei of the axis tick labelling in centimetres.
  562.  
  563.  
  564. 4 color
  565.  
  566.      Specifies the colour of the line used to draw that dataset.
  567.      Valid colours are black, white, red, green, blue,
  568.                             cyan, magenta, yellow.
  569.     and grey10,grey20 ... grey90
  570.      The colours are implemented as shades of grey for monochrome
  571.      postscript output. 
  572.       eg. grey10 = yellow
  573.  
  574. 4 font
  575.  
  576.    Specifies the font that will be used for labelling the axis.
  577.    Most fonts are available in standard, bold, italic, and bold/italic.
  578.    There are 3 families of fonts - ps (postscript), tex and pl. 
  579.  
  580.      Name      Description
  581.  
  582.         rm        Roman
  583.         rmb       Roman Bold
  584.         rmi       Roman Italic
  585.         ss        San Serif
  586.         ssb       San Serif Bold
  587.         ssi       San Serif Italic
  588.         tt        Typewriter
  589.  
  590.  
  591.  
  592.  
  593.  
  594.         psagb     AvanteGarde-Book
  595.         psbd      Bookman-demi
  596.         psc       Courier
  597.         psh       Helvetica
  598.         psncsb    New Century Schoolbook
  599.         pspr      Palatino Roman
  600.         pstr      Times Roman
  601.         pszcmi    ZapfChancery-MediumItalic
  602.  
  603.         texcmb    Computer Modern Bold
  604.         texcmr    Computer Modern Roman
  605.         texcmsy   Computer Modern Symbols
  606.         
  607.         plcc      Complex Cartographic
  608.         plge      Gothic English
  609.         plsg      Simple German
  610.         plsym1    Symbols 1
  611.         plsym2    Symbols 2
  612.         plba      Block Ascii
  613.  
  614.    
  615.    Refer to Appendix A.2 in the manual for a full listing of
  616.    the fonts.
  617.  
  618. 4 grid
  619.  
  620.   This will draw lines between the x and x2axes or the y and y2 axes.
  621.   For a full grid turn the grid on for both axes.
  622.   
  623. 4 scale
  624.  
  625.   Scales the height of the axis tick labelling.
  626.   This means that if you enlarge the graph the lettering
  627.   will enlarge automatically.  Whereas if you specify a HEI 
  628.   it will be an absolute size
  629.  
  630. 4 lwidth
  631.  
  632. Sets the width of the lines used to draw the axis and the ticks.
  633.  
  634.  
  635.          This is measured in cm
  636.          The default is .02cm
  637.  
  638. 4 log
  639.  
  640. Specifies labels should be done in logarithmic style,
  641. and that scaling of data should also be done logarithmically.
  642.  
  643. (warning: correctly speaking a long straight lines should
  644.  become curved but will not unless you use the SMOOTH option)
  645.  
  646. 4 min
  647.  
  648. Sets the minimum values on the xaxis.
  649. This will determine both
  650.                the labelling of the axis
  651.                and the default mapping of data onto the graph.
  652.  
  653.        (for x2axis and y2axis the mapping of data onto the graph
  654.         is not affected. To change the mapping of data on to the 
  655.         graph use the Dn XMIN XMAX YMIN YMAX settings
  656.         which control the portion of the data to be mapped for 
  657.         a specific dataset.)
  658.  
  659. 4 max
  660.  
  661. Sets the maximum values on the xaxis.
  662. This will determine both
  663.                 the labelling of the axis
  664.                 and the default mapping of data onto the graph. 
  665.  
  666.  
  667.        (for x2axis and y2axis the mapping of data onto the graph
  668.         is not affected. To change the mapping of data on to the 
  669.         graph use the Dn XMIN XMAX YMIN YMAX settings
  670.         which control the portion of the data to be mapped for 
  671.         a specific dataset.)
  672.  
  673.  
  674. 4 nofirst
  675.  
  676. This switch removes the first labels from the graph. (the first label
  677. is often too close to the yaxis first label)
  678.  
  679. 4 nolast
  680.  
  681. This switch removes the last labels from the graph. (the last label is
  682. often too close to the yaxis first label)
  683.  
  684. 4 nticks
  685.  
  686. Sets the number of major ticks for that axis.
  687.  
  688. 4 dticks
  689.  
  690. Sets the distance between major ticks on that axis.
  691.  
  692. 4 nsubticks
  693.  
  694. Sets the number of minor ticks for that axis.
  695.  
  696. 4 dsubticks
  697.  
  698. Sets the distance between minor ticks on that axis.
  699.  
  700. 4 off
  701.  
  702. Turns on or off the whole axis.  Labels, ticks, subticks and line.
  703. If you turn x2axis off then the title of the graph will dissappear
  704. as it is part of the axis,  the only way to get a title with
  705. no axis is to turn the individual parts of the axis off, e.g:
  706.  
  707.     x2ticks off
  708.     x2side off    
  709.     x2labels off
  710.  
  711. 3 xnames
  712.  
  713.   This command allows you to replace the numeric labelling 
  714.   with absolutely anything.  To label data taken from Monday to 
  715.   Friday, use the command -
  716.  
  717.        xaxis min 0 max 6 dticks 1
  718.        xnames "" "Mon" "Tue" "Wed" "Thu" "Fri"  ""
  719.  
  720.     Note it is essential to define a specific axis minimum,
  721.     maximum, dticks, etc., 
  722.     otherwise the labels may not correspond to your data 
  723.     (eg. gle could decide to start at x=1)
  724.  
  725. 3 xplaces
  726.  
  727.   This is similar to the xnames command but it specifies a list 
  728.   of points which will be labelled on the axis.
  729.  
  730.     - eg. xlabels font rm hei .2 color blue
  731.           xplaces 2 4 6 8 
  732.  
  733.   It maybe used in conjunction with the xnames command to specify
  734.   the labels and their position. An example with days of the week 
  735.   could be done like this
  736.              xaxis min 0 max 6 dticks 1
  737.              xlabels font rm hei .2 color blue
  738.              xplaces 1 3 5 
  739.              xnames "Mon" "Wed" "Fri"
  740.  
  741.   This command is usually used when you want labelling that 
  742.   isn't spaced equally.
  743.  
  744. 3 y2places
  745.  
  746. This is similar to the y2names command but it specifies a list 
  747. of points which should be labelled.
  748. The example with days of the week could be done like this
  749.  
  750.      y2places 1  3  5 ynames "Mon" "Wed" "Fri"
  751.  
  752. This command is usually used when you want labelling that isn't spaced
  753. equally.
  754.  
  755. 3 x2places
  756.  
  757.   This is similar to the x2names command but it specifies a list 
  758.   of points which will be labelled on the axis.
  759.  
  760.     - eg. x2labels font rm hei .2 color blue
  761.           x2places 2 4 6 8 
  762.  
  763.   It maybe used in conjunction with the x2names command to specify
  764.   the labels and their position. An example with days of the week 
  765.   could be done like this
  766.              x2axis min 0 max 6 dticks 1
  767.              x2labels font rm hei .2 color blue
  768.              x2places 1 3 5 
  769.              x2names "Mon" "Wed" "Fri"
  770.  
  771.   This command is usually used when you want labelling that 
  772.   isn't spaced equally.
  773.  
  774. 3 yplaces
  775.  
  776. This is similar to the ynames command but it specifies a list 
  777. of points which should be labelled.
  778. The example with days of the week could be done like this
  779.  
  780.      yplaces 1  3  5 ynames "Mon" "Wed" "Fri"
  781.  
  782. This command is usually used when you want labelling that isn't spaced
  783. equally.
  784.  
  785.  
  786. 3 xtitle
  787.  
  788. This command gives the axis a centered title.  The list of optional keywords
  789. allow you to specify any features of it.
  790.        
  791.        eg. xtitle "X AXIS TITLE"
  792.        or. xtitle "X AXIS TITLE" lwidth .2  color blue  font rmb
  793.  
  794. 4 scale 
  795.         Scales the height of the title for that axis.
  796.  
  797. 4 hei 
  798.         Sets the height for that title in cm.
  799.  
  800. 4 dist
  801.         Sets the distance away from the axis to draw the title
  802.         Measured in cm.
  803.  
  804. 4 color  
  805.        Sets the colour to draw the title.
  806.        Valid colours are black, white, red, green, blue,
  807.                             cyan, magenta, yellow.
  808.  
  809.        The colours are implemented as shades of grey for monochrome
  810.        postscript output. 
  811.         eg. grey10 = yellow
  812.  
  813.  
  814.  
  815. 4 font
  816.  
  817.    Specifies the font that will be used for labelling the axis.
  818.    Most fonts are available in standard, bold, italic, and bold/italic.
  819.    There are 3 families of fonts - ps (postscript), tex and pl. 
  820.  
  821.      Name      Description
  822.  
  823.         rm        Roman
  824.         rmb       Roman Bold
  825.         rmi       Roman Italic
  826.         ss        San Serif
  827.         ssb       San Serif Bold
  828.         ssi       San Serif Italic
  829.         tt        Typewriter
  830.  
  831.  
  832.  
  833.  
  834.  
  835.         psagb     AvanteGarde-Book
  836.         psbd      Bookman-demi
  837.         psc       Courier
  838.         psh       Helvetica
  839.         psncsb    New Century Schoolbook
  840.         pspr      Palatino Roman
  841.         pstr      Times Roman
  842.         pszcmi    ZapfChancery-MediumItalic
  843.  
  844.         texcmb    Computer Modern Bold
  845.         texcmr    Computer Modern Roman
  846.         texcmsy   Computer Modern Symbols
  847.         
  848.         plcc      Complex Cartographic
  849.         plge      Gothic English
  850.         plsg      Simple German
  851.         plsym1    Symbols 1
  852.         plsym2    Symbols 2
  853.         plba      Block Ascii
  854.  
  855.    
  856.    Refer to Appendix A.2 in the manual for a full listing of
  857.    the fonts.
  858.  
  859. 3 gle
  860.  
  861. 4 loadgraph
  862.  
  863.   Need help already Eh?
  864.  
  865.    Select graph to edit an existing graph or
  866.    select create to make a new graph.
  867.  
  868.  
  869. 3 xlabels
  870.  
  871. 4 off 
  872.         This command controls whether the labelling on the axis
  873.         is turned on or off. 
  874.        
  875.         Used in conjunction with the subcommands you can control the
  876.         appearance of the labels.
  877.        
  878.         eg. xlabels dist .05 hei .3 font rm color blue
  879.  
  880. 4 dist 
  881.         Adds to the distance away from the axis that the labels are
  882.         drawn.  
  883.  
  884. 4 font 
  885.  
  886.    Specifies the font that will be used for labelling the axis.
  887.    Most fonts are available in standard, bold, italic, and bold/italic.
  888.    There are 3 families of fonts - ps (postscript), tex and pl. 
  889.  
  890.      Name      Description
  891.  
  892.         rm        Roman
  893.         rmb       Roman Bold
  894.         rmi       Roman Italic
  895.         ss        San Serif
  896.         ssb       San Serif Bold
  897.         ssi       San Serif Italic
  898.         tt        Typewriter
  899.  
  900.  
  901.  
  902.  
  903.  
  904.         psagb     AvanteGarde-Book
  905.         psbd      Bookman-demi
  906.         psc       Courier
  907.         psh       Helvetica
  908.         psncsb    New Century Schoolbook
  909.         pspr      Palatino Roman
  910.         pstr      Times Roman
  911.         pszcmi    ZapfChancery-MediumItalic
  912.  
  913.         texcmb    Computer Modern Bold
  914.         texcmr    Computer Modern Roman
  915.         texcmsy   Computer Modern Symbols
  916.         
  917.         plcc      Complex Cartographic
  918.         plge      Gothic English
  919.         plsg      Simple German
  920.         plsym1    Symbols 1
  921.         plsym2    Symbols 2
  922.         plba      Block Ascii
  923.  
  924.    
  925.    Refer to Appendix A.2 in the manual for a full listing of
  926.    the fonts.
  927.  
  928.  
  929. 4 hei 
  930.         Sets the height of the major tick labels.
  931.         This is measured in cm.
  932.  
  933. 4 color 
  934.         Sets the colour of the major tick labels.
  935.         Valid colours are black, white, red, green, blue,
  936.                             cyan, magenta, yellow.
  937.  
  938.         The colours are implemented as shades of grey for monochrome
  939.         postscript output. 
  940.         eg. grey10 = yellow
  941.   
  942. 3 xside   
  943.          Sets features of the axis line itself
  944.            (colour, line width, on/off)  
  945.  
  946. 4 lwidth 
  947.          Sets the line width of the axis line.
  948.                  This is measured in cm.
  949.                  The default is .02 cm.
  950.  
  951. 4 off 
  952.                 Turns off the axis line.
  953.  
  954. 4 color  
  955.        Sets the colour of that side.
  956.        Valid colours are black, white, red, green, blue,
  957.                             cyan, magenta, yellow.
  958.  
  959.        The colours are implemented as shades of grey for monochrome
  960.        postscript output.  
  961.         eg. grey10 = yellow
  962.  
  963.  
  964. 4 lwidth  
  965.             Sets the width of the line for that side.
  966.                  This is measured in cm
  967.                  The default is .02 cm.
  968.  
  969. 3 xticks 
  970.            Sets features to control the appearance of the major ticks.
  971.            (line style, line width, length, on/off) 
  972.            eg. xticks lwidth .01 length .1 lstyle 2
  973.  
  974. 4 scale 
  975.           Scales the length of the major ticks
  976.  
  977. 4 length 
  978.           Sets the length of the major ticks in cm.
  979.  
  980. 4 lwidth  
  981.            Sets the line width of the major ticks.
  982.                  This is measured in cm
  983.                  The default is .02 cm.
  984.  
  985. 4 color 
  986.           Sets the colour of the major ticks
  987.           Valid colours are black, white, red, green, blue,
  988.                             cyan, magenta, yellow.
  989.           
  990.           The colours are implemented as shades of grey for monochrome
  991.           postscript output. 
  992.             eg. grey10 = yellow
  993.  
  994.  
  995. 3 xsubticks
  996.            Sets features to control the appearance of the minor ticks.
  997.            (line style, line width, length, colour, on/off) 
  998.  
  999. 4 scale 
  1000.        Scales the length of the minor ticks
  1001.  
  1002. 4 length 
  1003.        Sets the length of the minor ticks in cm.
  1004.  
  1005. 4 lwidth 
  1006.          Sets the line width of the minor ticks.
  1007.                  This is measured in cm
  1008.                  The default is .02 cm.
  1009.  
  1010. 4 color      
  1011.           Sets the colour of the minor ticks
  1012.           Valid colours are black, white, red, green, blue,
  1013.                             cyan, magenta, yellow.
  1014.           The colours are implemented as shades of grey for monochrome
  1015.           postscript output. 
  1016.             eg. grey10 = yellow
  1017.  
  1018.  
  1019. 3 xtra
  1020.         This is the place to put EXTRA gle commands, that is any gle graph
  1021.         command which you can't find an entry cell for.
  1022.  
  1023.        For detailed control of each axis display there are further commands. 
  1024.        xside  -color, lwidth, off
  1025.        xticks -lstyle, lwidth, length, off
  1026.        xsubticks -lstyle, lwidth, length, off
  1027.     eg.
  1028.       xside lwidth .05
  1029.       indicates the line width of the xaxis (only) is to be changed.
  1030.       ie. Not the ticks and associated xaxis parameters
  1031.  
  1032.     or.
  1033.       xticks length .1 width .01
  1034.       for control of the xticks display.
  1035.  
  1036.        These subcommands can be applied to the xaxis, yaxis, x2axis or y2axis.
  1037.  
  1038.   This is also where gle will put any gle graph commands that it found
  1039.   in your file that it couldn't understand.
  1040.  
  1041. 2 Keyboard 
  1042.     (see     commands begin key, for help on the key module)
  1043.      Keyboard Mappings:
  1044.  
  1045.      VT100         VT200         PC         Meaning 
  1046.      GOLD 1         F11         F1         Help 
  1047.      GOLD 2         F12         F2         Save 
  1048.      GOLD 3         F13         F3         Load 
  1049.      GOLD 4         F14         F4         Save-as 
  1050.      GOLD 9         F9         F9         Graph-menu 
  1051.      GOLD 0         F10         F10         Draw-it 
  1052.      Control+Z         Control+Z     Control+Z     Exit/Escape 
  1053.                          Alt+X         Exit/Escape 
  1054.      Control+E         Control+E             Calls VAX EDT 
  1055.      Control+F         Control+F             Toggle fast/slow text 
  1056.      Control+R         Control+R     F5         Shows errors 
  1057.                          Control+S     Shells to DOS 
  1058.  
  1059.      Supported  devices:  VT100,  REGIS  (VT125, VT240), TEK4010,
  1060.      VWS, XWindows.
  1061.  
  1062.      Supported  output:  PostScript, HPGL, Epson, Epson 24pin, HP
  1063.      Deskjet Paintjet.
  1064.  
  1065. 2 Beginners
  1066.  Drawing a Line on a Page
  1067.  ------------------------
  1068.      Let's  start  with  drawing  a  line on the page. GLE has to
  1069.      know  what size piece of paper you are working with. You can
  1070.      tell it by giving a size command:
  1071.  
  1072.           size 18 27
  1073.  
  1074.      This  specifies  a  piece  of paper 18cm wide and 27cm high.
  1075.      Now  you  must define a current point by moving to somewhere
  1076.      on the page:
  1077.  
  1078.           amove 2 4       
  1079.  
  1080.      The  origin  (0,0)  is at the bottom left hand corner of the
  1081.      page.  Now  suppose  we  wish to draw a line from this point
  1082.      across 1 cm and up 2 cm:
  1083.  
  1084.           size 18 27
  1085.           amove 2 4
  1086.           rline 1 2
  1087.  
  1088.      That  was  a  relative  movement  as the x and y values were
  1089.      given  as distances from the current point, alternatively we
  1090.      could have used absolute coordinates:
  1091.  
  1092.           size 18 27
  1093.           amove 2 4
  1094.           aline 3 6               ! absolute. 
  1095.  
  1096.      Now  if  you  want  to  draw  some  text on this page at the
  1097.      current point you would use the text command:
  1098.  
  1099.           text Hi there
  1100.  
  1101.      So  we  have  now  constructed  an  entire  GLE  program  as
  1102.      follows, with the results illustrated below:
  1103.  
  1104.           size 12 8 box 
  1105.           amove 2 4
  1106.           rline 1 2
  1107.           text Hi there
  1108.  
  1109.  Drawing a Simple Graph
  1110.  ----------------------
  1111.      This  section will describe how to go about drawing a simple
  1112.      graph.
  1113.  
  1114.      The  following  data  points  are contained in a file called
  1115.      TUT.DAT
  1116.  
  1117.          x   y
  1118.          -----  (These top two lines do not appear in the file)
  1119.          1   2
  1120.          2   6
  1121.          3   2
  1122.          4   5
  1123.          5   9
  1124.  
  1125.      The  data is in two columns with white space separating each
  1126.      column  of  numbers.  The  following  commands  will  draw a
  1127.      simple line graph of the data.
  1128.  
  1129.          size 6 3 
  1130.          begin graph
  1131.             size 6 3 
  1132.             data tut.dat
  1133.             yaxis min 0 
  1134.             d1 line marker star msize .2
  1135.          end graph
  1136.  
  1137.      The  first  size  command  defines  the size of the piece of
  1138.      paper  which  may contain several graphs. The second defines
  1139.      the  size  of  this  particular graph. The actual graph axes
  1140.      are  by  default  0.7  of these dimensions. The ratio can be
  1141.      changed with the vscale and hscale commands.
  1142.  
  1143.      Without  the  "yaxis min 0" command the yaxis would start at
  1144.      2.0,  because  that is the minimum y value in the data. This
  1145.      makes the graph easier to interpret.
  1146.  
  1147.      Changing the above d1 command to:
  1148.  
  1149.          d1 line marker circle 
  1150.  
  1151.      will  mark  each data point with a circle instead of a star.
  1152.      See    appendix   A  for  a  list  of  other  marker  names.
  1153.  
  1154.      A  smooth  line  can  be  drawn  between  the data points by
  1155.      changing the d1 command to:
  1156.  
  1157.          d1 line marker circle smooth
  1158.  
  1159.      The  order  of  the  commands  is not important, except that
  1160.      circle    is  a  parameter  for  the  qualifier  marker  and
  1161.      therefore  must  come  straight after it. E.g.,  d1  [marker
  1162.      circle]  [line smooth]  [color blue]
  1163.  
  1164. 2 Commands
  1165.      A   GLE  command  is  a  sequence  of  keywords  and  values
  1166.      separated  by white space (one or more spaces or tabs). Each
  1167.      command  must  begin  on  a  new  line.  Keywords may not be
  1168.      abbreviated,  the  case  is not significant. All coordinates
  1169.      are  expressed in centimetres from the bottom left corner of
  1170.      the page.
  1171.  
  1172.      GLE  uses the concept of a current point which most commands
  1173.      use.  For  example,  the  command aline 2 3 will draw a line
  1174.      from    the    current   point  to  the  coordinates  (2,3).
  1175.  
  1176.      The  current  graphics  state  also  includes other settings
  1177.      like  line width, color, font, 2d transformation matrix. All
  1178.      of these can be set with various GLE commands.
  1179.  
  1180. 3 comment
  1181.     An "!" mark indicates  the  start  of  a comment. GLE ignores 
  1182.     everything from the exclamation point to the end of the line.
  1183.  
  1184. 3 at
  1185.    An "@" sign executes a subroutine.
  1186.    e.g.
  1187.     @mytree
  1188.  
  1189. 3 aline 
  1190.   aline x y [arrow start] [arrow end] [arrow both] 
  1191.      Draws  a  line  from  the  current  point  to  the  absolute
  1192.      coordinates  (x,y),  which  then  becomes  the  new  current
  1193.      point.  The  arrow qualifiers are optional, they draw arrows
  1194.      at  the  start  or end of the line, the size of the arrow is
  1195.      proportional to the current font height.
  1196.  
  1197. 3 amove 
  1198.   amove x y
  1199.      Changes  the  current  point  to  the  absolute  coordinates
  1200.      (x,y).
  1201.  
  1202. 3 arc 
  1203.  arc radius a1 a2
  1204.      Draws  an  arc  of a circle in the anti-clockwise direction,
  1205.      centered  at  the  current point, of radius radius, starting
  1206.      at  angle a1 and finishing at angle a2. Angles are specified
  1207.      in  degrees.  Zero  degrees  is  at three o'clock and Ninety
  1208.      degrees is at twelve o'clock.
  1209.  
  1210.           arc 1.2 20 45
  1211.  
  1212.      The  command  narc  is  identical  but  draws the arc in the
  1213.      clockwise  direction.  This is important when constructing a
  1214.      path.
  1215.  
  1216. 3 arcto 
  1217.  arcto x1 y1 x2 y2 rad
  1218.      Draws  a  line  from  the  current  point to (x1,y1) then to
  1219.      (x2,y2)  but  fits  an  arc  of  radius  rad joining the two
  1220.      vectors    instead   of  a  vertex  at  the  point  (x1,y1).
  1221.  
  1222. 3  begin
  1223. 4  block_name ... end block_name
  1224.  begin block_name ... end block_name
  1225.      There  are  several  block  structured commands in GLE. Each
  1226.      begin  must  have  a  matching  end. Blocks which change the
  1227.      current  graphics  state (e.g. scale, rotate, clip etc) will
  1228.      restore  whatever  they  change  at  the  end  of the block.
  1229.      Indentation  is  optional but should be used to make the GLE
  1230.      program easier to read.
  1231.  
  1232. 4 box [fill pattern] [add gap] [nobox] [name xyz] 
  1233.  begin box [fill pattern] [add gap] [nobox] [name xyz] 
  1234.      Draws  a  box  around  everything  between begin box and end
  1235.      box.  The option add adds a margin of margin cm to each side
  1236.      of  the  box  to  make the box slightly larger than the area
  1237.      defined  by the graphics primitives in the begin box end box
  1238.      group  (to  leave a gap around text for example). The option
  1239.      nobox stops the box outline from being drawn.
  1240.  
  1241.      The  name  option saves the coordinates of the box for later
  1242.      use with the join command.
  1243.  
  1244. 4 clip 
  1245.  begin clip 
  1246.      This  saves  the  current clipping region. A clipping region
  1247.      is  an  arbitrary  path  made  from  lines  and curves which
  1248.      defines  the  area  on which drawing can occur. This is used
  1249.      to  undo  the  effect  of a clipping region defined with the
  1250.      begin  path  command. See the example CLIP.GLE in appendix B
  1251.      at the end of the manual.
  1252.  
  1253. 4 key
  1254.         Begin key
  1255.           position tr
  1256.           text "Green trees" marker heart fill grey 10 mscale 0.8
  1257.           text "Oranges" marker square lstyle 3 msize 0.5
  1258.         End key
  1259.     - This produces a key in the top right of the graph. The first dataset
  1260.       has the text Green trees with hearts as markers fill pattern of grey 10
  1261.       and the marker scaled to 80% of the graph markers. The second dataset
  1262.       also has the linestyle specified and the marker size is .5cm.
  1263.  
  1264.     - You can position the key with one of two commands.
  1265.     offset xcm ycm
  1266.     position tl | bl | tr | br
  1267.  
  1268.     Commands which can be used to specify aspects of the key are
  1269.     text, lstyle, marker, msize, mscale, color, fill.
  1270.  
  1271. 4 origin
  1272.  begin origin
  1273.      This  makes  the  current point the origin. This is good for
  1274.      subroutines    or  something  which  has  been  drawn  using
  1275.      amove, aline.  Everything  between  the  begin origin and end
  1276.      origin  can  be moved as one unit. The current point is also
  1277.      saved and restored.
  1278.  
  1279. 4 path 
  1280.  begin path [stroke] [fill pattern] [clip] 
  1281.      Initialises  the  drawing  of  a filled shape. All the lines
  1282.      and  curves  generated  until the next end path command will
  1283.      be  stored and then used to draw the shape. stroke draws the
  1284.      outline  of  the  shape, fill paints the inside of the shape
  1285.      in  the given colour and clip defines the shape as a clipping
  1286.      region  for  all  future  drawing. Clipping and filling will
  1287.      only work on PostScript devices.
  1288.  
  1289. 4 rotate 
  1290.  begin rotate angle
  1291.      The  coordinate  system  is rotated anti-clockwise about the
  1292.      current  point by the angle angle (in degrees). For example,
  1293.      to  draw a line of text running vertically up the page (as a
  1294.      Y axis label, say), type:
  1295.  
  1296. 4  scale
  1297.  begin scale x y
  1298.      Everything  between  the  begin  and  end  is  scaled by the
  1299.      factors  x  and  y.  E.g.,  scale 2 3 would make the picture
  1300.      twice as wide and three times higher.
  1301.  
  1302. 4 table
  1303.  begin table 
  1304.      This  module  is an alternative to the TEXT module. It reads
  1305.      the  spaces and tabs in the source file and aligns the words
  1306.      accordingly.  A single space between two words is treated as
  1307.      a real space, not an alignment space.
  1308.  
  1309.      With  a  proportionally  spaced font columns will line up on
  1310.      the  left  hand side but not on the right hand side. However
  1311.      with  a  fixed pitch font, like tt, everything will line up.
  1312.  
  1313. 4 text 
  1314.  begin text [width exp] 
  1315.      This  module displays multiple lines/paragraphs of text. The
  1316.      block  of text is justified according to the current justify
  1317.      setting.  See  the  set  just  command  for a description of
  1318.      justification settings.
  1319.  
  1320.      If  a  width  is specified the text is wrapped and justified
  1321.      to  the  given  width. If a width is not given, each line of
  1322.      text  is  drawn as it appears in the file. Remember that GLE
  1323.      treats  text  in  the  same  way that LaTeXdoes, so multiple
  1324.      spaces    are  ignored  and  some  characters  have  special
  1325.      meaning. E.g, \ ^ _ & { }
  1326.  
  1327.      To  include  Greek  characters  in  the middle of text use a
  1328.      backslash  followed  by  the  name  of the character. E.g., 
  1329.      3.3\Omega S would produce ``3.3OS''.
  1330.  
  1331.      To  put  a space between the Omega and the S add a backslash
  1332.      space  at  the  end. E.g.,  3.3\Omega\ S produces ``3.3O S''
  1333.  
  1334.      Sometimes  the  space  control characters (e.g. \:) are also
  1335.      ignored,  this  may  happen  at  the  beginning of a line of
  1336.      text.  In  this  case  use  the control sequence \glasswhich
  1337.      will  trick GLE into thinking it isn't at the beginning of a
  1338.      line. E.g.,
  1339.  
  1340.           text \glass \:\: Indented text
  1341.  
  1342.      There  are  several  LaTeXlike  commands  which  can be used
  1343.      within text, they are:
  1344.  
  1345.          ^{}                 Superscript
  1346.          _{}                 Subscript
  1347.          \\                  Forced Newline
  1348.          \_                  Underscore character
  1349.          \,                  .5em (em = width of the letter `m')
  1350.          \:                  1em space
  1351.          \;                  2em space
  1352.          \char{22}           Any character in current font
  1353.          \chardef{a}{hello}  Define a character as a macro
  1354.          \def\v{hello}       Defines a macro
  1355.          \movexy{2}{3}       Moves the current text point
  1356.          \glass              Makes move/space work on beginning of line
  1357.          \rule{2}{4}         Draws a filled in box, 2cm by 4cm
  1358.          \setfont{rmb}       Sets the current text font
  1359.          \sethei{.3}         Sets the font height (in cm)
  1360.          \setstretch{2}      Scales the quantity of glue between words
  1361.          \lineskip{.1}       Sets the default distance between lines of text
  1362.          \linegap{-1}        Sets the minimum required gap between lines 
  1363.  
  1364. 4 translate
  1365.  begin translate x y
  1366.      Everything  between  the  begin  and end is moved x units to
  1367.      the right and y units up.
  1368.  
  1369. 3 bezier
  1370.  bezier x1 y1 x2 y2 x3 y3
  1371.      Draws  a  Bezier cubic section from the current point to the
  1372.      point  (x3,y3)  with  Bezier  cubic  control  points  at the
  1373.      coordinates  (x1,y1)  and (x2,y2). For a full explanation of
  1374.      Bezier  curves see the PostScript Language Reference Manual.
  1375.  
  1376. 3 bigfile
  1377.  bigfile filename.gle
  1378.      This  command  reads  the  file one line at a time, compiles
  1379.      each  line and executes it. This means it can read any sized
  1380.      file.  However,  complex multi-line commands cannot be used.
  1381.      Subroutines   can  be  used  but  not  defined,  inside  the
  1382.      bigfile.  Note:  there  is  also  a  bigfile  option  in the
  1383.      graphing module for large datasets.
  1384.  
  1385. 3 box
  1386.  box x y [justify jtype] [fill color] [name xxx] [nobox] 
  1387.      Draws  a  box, of width x and height y, with its bottom left
  1388.      corner  at the current point. If the justify option is used,
  1389.      the  box will be positioned relative to the specified point.
  1390.      E.g.,  TL  = top left, CC = center center, BL = bottom left,
  1391.      CENTRE  = bottom centre, RIGHT = bottom right, LEFT = bottom
  1392.      left.  See  set  just  for  a  description  of justification
  1393.      settings.
  1394.  
  1395.      If  a  fill  pattern  is  specified, the box will be filled.
  1396.      Remember  that  white fill is different from no fill pattern
  1397.      -  white  fill  will erase anything that was inside the box.
  1398.  
  1399. 3 circle 
  1400.  circle radius [fill pattern] 
  1401.      Draws  a circle at the current point, with radius x.  If
  1402.      a  fill  pattern  is  specified  the  circle will be filled.
  1403.  
  1404. 3 closepath
  1405.  closepath 
  1406.      Joins  the  beginning  of a line to the end of a line i.e.,
  1407.      it does an aline to the end of the last amove.
  1408.  
  1409. 3 curve
  1410.  curve ix iy [ x1 y1 x y x y ... xn yn] ex ey 
  1411.      Draws  a  curve  starting  at  the current point and passing
  1412.      through  the  points  (x1,y1) (xn,yn), with an initial slope
  1413.      of  (ix,iy) to (x1,y1) and a final slope of (ex,ey). All the
  1414.      vectors  are  relative  movements  from  the  vector before.
  1415.  
  1416. 3 define
  1417.  define marker markername subroutine-name
  1418.      This  defines a new marker called markername which will call
  1419.      the  subroutine  subroutine-name  whenever  it  is  used. It
  1420.      passes  two  parameters,  the first is the requested size of
  1421.      the  marker  and  the  second  is  a  value from a secondary
  1422.      dataset  which  can  be  used  to vary size or rotation of a
  1423.      marker for each point plotted.
  1424.  
  1425. 3 for
  1426.  for var = exp1 to exp2 [step exp3] command [...] next var 
  1427.      The  for  ...  next  structure  lets  you  repeat a block of
  1428.      statements a number of times.
  1429.  
  1430.      GLE  sets  var  equal to exp1 and then repeats the following
  1431.      steps.
  1432.  
  1433.      If  var  is  greater than exp2 then GLE commands are skipped
  1434.      until the line after the next statement.
  1435.  
  1436.      The value exp3 is added to var.
  1437.  
  1438.      The  statements  between  the  for  and  next  statement are
  1439.      executed. itemize
  1440.  
  1441.      If  exp1 is greater than exp2 then the loop is not executed.
  1442.  
  1443. 3 fopen
  1444.  fopen "myfile.dat" chan-name  read|write
  1445.     Opens a data file for read or write and associates a channel name   
  1446.     with it, e.g.
  1447.  
  1448.         fopen "a.dat" inchan read
  1449.         fopen "b.dat" outchan write
  1450.         until feof(inchan)
  1451.             fread inchan x y z
  1452.             rline x y
  1453.             fwrite outchan "In reverse " z y x
  1454.             fwriteln outchan " Total " x+y+z
  1455.         next 
  1456.         fclose inchan
  1457.         fclose outchan
  1458.  
  1459. 3 fclose
  1460.  fclose chan-name
  1461.     Closes a channel which has been opened using fopen.
  1462.  
  1463. 3 fread
  1464.  fread chan-name variable-list
  1465.     Reads data from a file and places it in the variables.  e.g.
  1466.  
  1467.         fread inchan i j x y z
  1468.     
  1469.     freadln is identical except that after reading the variables it 
  1470.     will then skip an extra numbers on the end of the line.
  1471.  
  1472. 3 fwrite
  1473.  fwrite chan-name expression-list
  1474.     Writes the results of the string and numeric expressions 
  1475.     out to the channel which must have been opened using fopen.
  1476.     
  1477.     fwriteln prints a newline character after printing the 
  1478.     numbers.
  1479.  
  1480. 3 grestore
  1481.  grestore
  1482.      Restores  the  most  recently  saved graphics state. This is
  1483.      the  simplest  way  to  restore  complicated transformations
  1484.      such  as  rotations and translations. It must be paired with
  1485.      a previous gsave command.
  1486.  
  1487. 3 gsave
  1488.  gsave
  1489.      Saves  the  current  graphics  transformation matrix and the
  1490.      current point and the current colour, font etc.
  1491.  
  1492. 3 if
  1493.  if expression then command [...] else command [...] end if
  1494.      If  expression  evaluates  to true, then execution continues
  1495.      with  the statements up to the corresponding else, otherwise
  1496.      the statements following the else and up to the
  1497.      corresponding end if are executed.
  1498.  
  1499.           amove 3 3
  1500.           if xpos()=3 then
  1501.              text We are at x=3
  1502.           else
  1503.              text We are elsewhere
  1504.           end if
  1505.  
  1506.      Note: end if is not spelt endif.
  1507.  
  1508. 3 include 
  1509.  include filename
  1510.      The  commands  in  filename are read just as if they were in
  1511.      the  current GLE file. With a large include file GLE may run
  1512.      out  of  memory.  If  this  happens, use the bigfile command
  1513.      instead  of include. Note: there is also a bigfile option in
  1514.      the graphing module.
  1515.  
  1516. 3 join
  1517.  join object1.just sep object2.just 
  1518.      Draws  a line between two named objects. An object is simply
  1519.      a  point  or a box which was given a name when it was drawn.
  1520.  
  1521.      The  justify  qualifiers  are the standard GLE justification
  1522.      abbreviations  (e.g.  TL=top left, see set just for details)
  1523.  
  1524.      If  sep  is  written as -, a line is drawn between the named
  1525.      objects e.g.
  1526.  
  1527.           join fred.tr - mary.tl
  1528.  
  1529.      Arrow  heads  can  be  included  at both ends of the line by
  1530.      writing  sep  as  <->. Single arrow heads are produced by <-
  1531.      and  ->.  Note  that sep must be separated from object1.just
  1532.      and object2.just by white space.
  1533.  
  1534.      If  the justification qualifiers are omitted, a line will be
  1535.      drawn  between  the  centres  of the two objects (clipped at
  1536.      the  edges  of  the  rectangles  which  define the objects).
  1537.  
  1538.      See    Chapter    5  for  an  example  of  joining  objects.
  1539.  
  1540. 3 marker
  1541.  marker marker-name [ scale-factor] 
  1542.      Draws  marker  marker-name at the current point. The size of
  1543.      the  marker is proportional to the current font size, scaled
  1544.      by  the  value  of  scale-factor  if  present.  Markers  are
  1545.      referred  to  by  name,  eg.  square,  diamond, triangle and
  1546.      fcircle.  Markers  beginning  with  the letter f are usually
  1547.      filled  variants.  Markers  beginning with w are filled with
  1548.      white  so  lines  are  not visible through the marker. For a
  1549.      complete list of markers refer to Appendix A.1.
  1550.  
  1551. 3 defmarker
  1552.  defmarker mname fontname char_num scale dx dy 
  1553.     This command defines a new marker, from any font, it is 
  1554.     automatically centered but can be adjusted using dx,dy.
  1555.     e.g.
  1556.         defmarker hand pszd 43 1 0 0
  1557.  
  1558. 3 postscript
  1559.  postscript filename.eps width-exp height-exp 
  1560.      Includes    an  encapsulated  postscript  file  into  a  GLE
  1561.      picture,  the  postscript  picture will be scaled up or down
  1562.      to  fit  the  width given. On the screen you will just see a
  1563.      rectangle.
  1564.  
  1565.      Only  the width-exp is used to scale the picture so that the
  1566.      aspect  ratio  is  maintained.  The  height  is only used to
  1567.      display  a  rectangle  of  the  right  size  on  the screen.
  1568.  
  1569. 3 rbezier
  1570.  rbezier x1 y1 x2 y2 x3 y3
  1571.      This  command is identical to the BEZIER command except that
  1572.      the    points   are  all  relative  to  the  current  point.
  1573.  
  1574. 3 return
  1575.  return exp
  1576.      The  return  command  is used inside subroutines to return a
  1577.      value.
  1578.  
  1579. 3 reverse
  1580.  reverse 
  1581.      Reverses  the  direction  of  the current path. This is used
  1582.      when  filling  multiple  paths  in  order  that the Non-Zero
  1583.      Winding  Rule  will know which part of the path is `inside'.
  1584.  
  1585.      With  the  Non-Zero  Winding Rule an imaginary line is drawn
  1586.      through  the object. Every time a line of the object crosses
  1587.      it  from  left  to right, one is added to the counter; every
  1588.      time  a  line  of  the object crosses it from right to left,
  1589.      one  is  subtracted from the counter. Everywhere the counter
  1590.      is  non-zero is considered to be the `inside' of the drawing
  1591.      and is filled.
  1592.  
  1593. 3 rline
  1594.  rline x y [arrow end] [arrow start] [arrow both] 
  1595.      Draws  a  line  from  the  current  point  to  the  relative
  1596.      coordinates  (x,y), which then become the new current point.
  1597.      If  the current point is (5,5) then rline 3 -2 is equivalent
  1598.      to  aline  8  3.  The  optional qualifiers on the end of the
  1599.      command  will  draw  arrows at one or both ends of the line,
  1600.      the  size  of  the arrow head is proportional to the current
  1601.      font size.
  1602.  
  1603. 3 rmove
  1604.  rmove x y
  1605.      Changes  the current point to the relative coordinate (x,y).
  1606.      If  the current point is (5,5) then rmove 3 -2 is equivalent
  1607.      to amove 8 3.
  1608.  
  1609. 3 save
  1610.  save objectname 
  1611.      This  command  saves  a  point  for  later use with the join
  1612.      command.
  1613.  
  1614. 3 set 
  1615.  
  1616. 4 cap
  1617.  set cap butt | round | square
  1618.      Defines what happens at the end of a wide line.
  1619.  
  1620. 4 color
  1621.  set color col
  1622.      Sets  the  current  colour for all future drawing operations.
  1623.      There  are several pre-defined colours which can be specified
  1624.      by name.
  1625.  
  1626.      black,  white,  red,  green,  blue,  cyan,  magenta, yellow,
  1627.      grey10,  grey20  ...  grey90,  shade1  ... shade5, grid1 ...
  1628.      grid5
  1629.  
  1630.      It   is  also  possible  to  specify  a  grey  scale  as  an
  1631.      expression with 0.0 = black and 1.0 = white.
  1632.  
  1633. 4 dashlen
  1634.  set dashlen dashlen-exp
  1635.      Sets  the  length  of  the  smallest  dash used for the line
  1636.      styles.  This  command  MUST  come  before  the  set  lstyle
  1637.      command.  This  may  be  needed  when scaling a drawing by a
  1638.      large factor.
  1639.  
  1640. 4 font
  1641.  set font font-name
  1642.      Sets  the  current  font  to font-name. Valid font-names are
  1643.      listed in Appendix A.2.
  1644.  
  1645.      There    are  three  types  of  font:  PostScript,  LaTeXand
  1646.      Plotter.    They  will  all  work  on  any  device,  however
  1647.      LaTeXfonts  are  drawn  in  outline on a plotter, and so may
  1648.      not  look  very  nice.  PostScript fonts will be emulated by
  1649.      LaTeXfonts on non-PostScript printers.
  1650.  
  1651. 4 fontlwidth
  1652.  set fontlwidth line-width
  1653.      This  sets the width of lines to be used to draw the stroked
  1654.      (Plotter  fonts)  on  a PostScript printer. This has a great
  1655.      effect on their appearance.
  1656.  
  1657. 4 hei
  1658.  set hei character-size
  1659.      Sets  the height of text. For historical reasons, concerning
  1660.      lead  type  and  printing  conventions,  a  height  of  10cm
  1661.      actually  results  in  capital  letters  about  6.5cm  tall.
  1662.  
  1663. 4 join
  1664.  set join mitre | round | bevel 
  1665.      Defines  how  two  wide  lines will be joined together. With
  1666.      mitre,  the  outside  edges  of  the  join are extended to a
  1667.      point  and  then  chopped off at a certain distance from the
  1668.      intersection  of the two lines. With round, a curve is drawn
  1669.      between the outside edges.
  1670.  
  1671. 4 just
  1672.  set just left | center | right | tl | etc... 
  1673.  
  1674.      Sets    the  justification  which  will  be  used  for  text
  1675.      commands.
  1676.  
  1677. 4 lstyle
  1678.  set lstyle line-style
  1679.      Sets    the    current  line  style  to  line  style  number
  1680.      line-style.  There are 9 predefined line styles (1--9). When
  1681.      a  line  style  is  given with more than one digit the first
  1682.      digit  is  read  as  a run length in black, the second a run
  1683.      length  in  white,  the  third  a  run length in black, etc.
  1684.  
  1685. 4 lwidth
  1686.  set lwidth line-width
  1687.      Sets  the  width  of lines to line-width cm. A value of zero
  1688.      will  result  in  the  device default of about 0.02 cm, so a
  1689.      lwidth  of  .0001  gives a thinner line than an lwidth of 0.
  1690.  
  1691. 3 sub
  1692.  sub sub-name parameter1 parameter2 etc
  1693.      Defines  a  subroutine. The end of the subroutine is denoted
  1694.      with  end  sub.  Subroutines must be defined before they are
  1695.      used.
  1696.  
  1697.      Subroutines  can  be  called  inside any GLE expression, and
  1698.      can  also  return  values.  The  parameters  of a subroutine
  1699.      become    local    variables.   Subroutines  are  reentrant.
  1700.  
  1701.           sub tree x y a$
  1702.              amove x y
  1703.              rline 0 1
  1704.              write a$
  1705.              return x/y
  1706.           end sub
  1707.           @tree 2 4 "mytree"         (Normal call to subroutine)
  1708.           slope = tree(2,4,"mytree")  (Using subroutine in an expression)
  1709.  
  1710. 3 text
  1711.  text unquoted-text-string
  1712.      This  is  the simplest command for drawing text. The current
  1713.      point  is  unmodified  after  the text is drawn so following
  1714.      one  text  command  with  another  will result in the second
  1715.      line  of  text  being drawn on top of the first. To generate
  1716.      multiple  lines  of  text,  use  the  begin  text  end  text
  1717.      construct.
  1718.  
  1719.           text "Hi, how's tricks", said Jack!
  1720.  
  1721. 3 write
  1722.  write string$
  1723.      This  command  is  similar  to text except that it expects a
  1724.      quoted  string,  string  variable, or string expression as a
  1725.      parameter.
  1726.  
  1727.      The  built  in functions sqrt() and time$() are described in
  1728.      appendix A.3.
  1729.  
  1730. 3 expressions
  1731.      Wherever  GLE  is expecting a number it can be replaced with
  1732.      an expression. For example
  1733.  
  1734.           rline 3 2
  1735.  
  1736.      and
  1737.  
  1738.           rline 9/3 sqrt(4)
  1739.  
  1740.      will produce the same result.
  1741.  
  1742.      An  expression in GLE is delimited by white space, so it may
  1743.      not  contain  any  spaces  -  `  rline 3*3 2' is valid but `
  1744.      rline 3 * 3 2' will not work.
  1745.  
  1746.      Or  `  let  d2  =  3+sin(d1)'  will  work  and ` let d2= 3 +
  1747.      sin(d1) ' won't.
  1748.  
  1749.      Expressions  may  contain numbers, arithmetic operators ( +,
  1750.      -,  *,  /, ^(to the power of)), relational operators ( >, <,
  1751.      =>,  <=,  =, <>) boolean operators ( AND, OR), variables and
  1752.      built-in functions.
  1753.  
  1754.      When  GLE  is expecting a colour or marker name (like `green'
  1755.      or  `circle')  it  can  be  given  a  string variable, or an
  1756.      expression enclosed in braces).
  1757.  
  1758.      GLE  provides  a  large  number of built in functions, these
  1759.      are listed in Appendix A.3.
  1760.  
  1761. 3 functions
  1762.  xg(), yg()
  1763.      With  these  functions  it is possible to move to a position
  1764.      on  a  graph  using the graph's axis units. To draw a filled
  1765.      box  on  a  graph, at position x=948, y=.004 measured on the
  1766.      graph axis:
  1767.  
  1768.           begin graph
  1769.              xaxis min 100 max 2000
  1770.              yaxis min -.01 max .01
  1771.              ...
  1772.           end graph
  1773.           amove xg(948) yg(.004)
  1774.           box 2 2 fill grey10 
  1775.  
  1776.  xend(), yend()
  1777.      These  functions  return  the  end  point  of the last thing
  1778.      drawn.  This  is  of  particular interest when drawing text.
  1779.  
  1780.           text abc
  1781.           set color blue
  1782.           text def      
  1783.  
  1784.      This  would  draw the def on top of the abc. To draw the def
  1785.      immediately  following the abc simply do the following (Note
  1786.      that absolute move is used, not relative move):
  1787.  
  1788.  xpos(), ypos()
  1789.      Returns  the  current  x  and  y  points. 
  1790.  
  1791.  
  1792.  
  1793. 3 offset
  1794.  offset x-exp y-exp
  1795.      Specifies  the  offset  in  cm from the current point to the
  1796.      bottom  left  hand  corner of the graph. This command should
  1797.      be on a line of its own.
  1798.  
  1799. 3 position
  1800.  position justify-exp
  1801.      This  is an alternative to the OFFSET command. It allows you
  1802.      to  specify  a  position  on the graph, e.g., tl = top left.
  1803.      This  command  should  be on a line of its own. See set just
  1804.      for a list of justify settings.
  1805.  
  1806. 3 text
  1807.  text str-exp
  1808.      The  text  which  will  be displayed on the end of the line.
  1809.  
  1810. 3 lstyle
  1811.  lstyle style-num
  1812.      The  line  style which will be used for the short line drawn
  1813.      in the key.
  1814.  
  1815. 3 marker
  1816.  marker marker-name
  1817.      The  marker  which  will  be  used for that line of the key.
  1818.  
  1819.      See   GLE GRAPH MDATA for information on how to define a 
  1820.        subroutine as a marker.
  1821.  
  1822. 3 mdata
  1823.   This allows you to pass an extra parameter to a subroutine which
  1824.   has been defined as a marker.
  1825.  
  1826.   In this example boxes of different sizes would be drawn on 
  1827.   each point on the graph.  
  1828.     
  1829.     sub mark_sub1 mysize 
  1830.         gsave                ! save font and x,y
  1831.         box mysize mysize justify cc 
  1832.         grestore            ! restores font and x,y
  1833.     end sub
  1834.         define marker myname mark_sub1
  1835.         
  1836.     The second parameter is supplied using the MDATA command
  1837.     when drawing a graph,  this gives the marker subroutine a 
  1838.     value from another dataset to use to draw the marker.  For 
  1839.     example the marker could vary in size, or angle, with every
  1840.     one plotted.
  1841.         d3 MARKER myname MDATA d4
  1842.  
  1843. 3 msize
  1844.  msize exp
  1845.      Specifies the size of the markers in cm.
  1846.  
  1847. 3 mscale
  1848.  mscale exp
  1849.      Specifies  how  much  to scale the size of the marker. E.g.,
  1850.      0.5    would  produce  a  marker  half  as  big  as  normal.
  1851.  
  1852. 3 color
  1853.  color color-name
  1854.      The colour of the text, line and marker.
  1855.  
  1856. 3 hei
  1857.  hei cm-exp
  1858.      This  sets  the height of the text used to draw the key. The
  1859.      key  will change in size to fit around the text. If you omit
  1860.      this command the current font size is used.
  1861.  
  1862. 3 fill
  1863.  fill fill-pattern
  1864.      The fill pattern used in that line of the key.
  1865.  
  1866.  
  1867. 2 Color
  1868.      Internally  GLE  treats colour and fill identically, they are
  1869.      simply  an  intensity  of  Red,  Green and Blue. Each of the
  1870.      predefined  colour  names  (yellow,grey20,orange,red)  simply
  1871.      define the ratio of red, green and blue.
  1872.  
  1873.      There  are  two  ways to use variables to show colour, one is
  1874.      for shades of grey:
  1875.  
  1876.           for i = 0 to 10
  1877.              box 3 .2 fill (i/10)
  1878.              rmove 0 .2
  1879.           next i
  1880.  
  1881.      The  other  is  for  passing  a  colour  name  as a variable:
  1882.  
  1883.           sub stick c$
  1884.              box .2 2 fill c$
  1885.           end sub
  1886.           @stick "green"    
  1887.  
  1888.      Remember  a  fill pattern completely obscures what is behind
  1889.      it,  so  the  following  command  would produce a box with a
  1890.      shadow:
  1891.  
  1892.           amove 4 4 
  1893.           box 3 2 fill grey10
  1894.           rmove -.1 .1
  1895.           box 3 2 fill white
  1896.           rmove .4 .4
  1897.           text hello
  1898.  
  1899. 2 Devices
  1900.      GLE supports the following devices.
  1901.  
  1902.      Interactive:  IBM/PC  (BGI),  VT100,  REGIS  (VT125, VT240),
  1903.      TEK4010, VWS, XWindows.
  1904.  
  1905.      Output:  PostScript,  HPGL,  EPSON, EPSON 24pin, HP Deskjet.
  1906.  
  1907. 3 Screen
  1908.      Remember  that  what you see on the screen isn't always what
  1909.      you  will  get  on  the  printer. For example filled regions
  1910.      will  not be filled, and some characters may not look right.
  1911.  
  1912.      After   pressing  F10  and  drawing  the  graph  it  can  be
  1913.      annotated  by using the mouse (or arrow keys) to draw lines,
  1914.      text  and boxes. To draw lines simply click on the points of
  1915.      the  line,  use the right hand mouse button to `pick up' the
  1916.      pen.
  1917.  
  1918.      To  draw  text  press the letter `t' and then click on where
  1919.      you would like the text to be drawn.
  1920.  
  1921.      All  movements  are  rounded to the grid size settings which
  1922.      are 1.0cm, 0.1cm, 0.01cm etc.
  1923.  
  1924.      The  height and colour of the text/lines is determined by the
  1925.      current settings at the end of the GLE file.
  1926.  
  1927.      If  there  is  no mouse driver loaded then a cross-hair will
  1928.      appear  and  it  can  be  moved around using the arrow keys.
  1929.      Press    `c'    to  click,  instead  of  the  mouse  button.
  1930.  
  1931. 4 SuperVGA
  1932.     To use a SuperVGA card you first need to get a BGI 
  1933.     driver that supports your card.  From anonymous FTP 
  1934.     you can get svgabgi3.zip:
  1935.         ftp wuarchive.wustl.edu
  1936.         ftp> user anonymous
  1937.         ftp> (mail ident)
  1938.         ftp> cd /mirrors/msdos/borland
  1939.         ftp> binary
  1940.         ftp> get svgabgi3.zip
  1941.         ftp> quit
  1942.     
  1943.     Then unzip it, decide which driver will match your SVGA card
  1944.     and copy that driver into \GLE\EXE
  1945.  
  1946.         c:> pkunzip svgabgi3.zip
  1947.         c:> type readme.
  1948.         c:> copy svga16.bgi \gle\exe
  1949.  
  1950.     Define an environment variable to tell gle about this driver
  1951.     and which mode to use. (put this line in your autoexec.bat)
  1952.  
  1953.         c:> set gle_addbgi=4.svga16
  1954.  
  1955. 3  PostScript 
  1956.      To print a GLE file to the laser printer type:
  1957.  
  1958.           $ cgle myfile /print
  1959.  
  1960.      or on a PC:
  1961.  
  1962.           C:\GLE> psgle myfile   
  1963.           C:\GLE> print myfile.ps 
  1964.      
  1965.      or on Unix:
  1966.       gle myfile -dps         (normal)
  1967.       gle myfile -deps        (Encapsulated Postscript)
  1968.       gle myfile -dps -addd    (Normal with ^D characters)
  1969.  
  1970.      The  postscript  drivers  for  GLE will automatically flip a
  1971.      picture  to  best  fit  onto the page, e.g. a wide graph (as
  1972.      defined  by  the  size  command at the top) will be drawn in
  1973.      landscape  mode  and  a  tall  thin  graph  will be drawn in
  1974.      portrait mode.
  1975.  
  1976.      To  produce  an  .eps file on a VAX for inclusion in LaTeX or
  1977.      WordPerfect you would type:
  1978.  
  1979.           $ cgle myfile /dev=eps
  1980.  
  1981.      On a PC you would type:
  1982.  
  1983.           C:\GLE> psgle myfile  /eps
  1984.           (this creates myfile.eps, not myfile.ps)
  1985.  
  1986.      Inside your LaTeX document use the LaTeX command:
  1987.  
  1988.           \graphin{myfile.eps}{12.0cm}{3.0cm}{1.0}
  1989.  
  1990.      The  width  and  height  are  used by LaTeX to reserve enough
  1991.      space  for  the  drawing  and  the last parameter is a scale
  1992.      factor.
  1993.  
  1994.      The  laser  printer  driver  will  draw all zero width lines
  1995.      .02cm  wide  for  any  line  width  equal to zero, but if an
  1996.      lwidth  is greater than zero and less than or equal to .0001
  1997.      then  it  will  use a line width of 1 pixel. Without this it
  1998.      would  be  impossible  to  specify  a line width that didn't
  1999.      occasionally get rounded to 2 pixels.
  2000.  
  2001. 3 TEK4010 
  2002.      This  driver  allows  initialization sequences to be defined
  2003.      with the symbols TEK_OPEN and TEK_CLOSE.
  2004.  
  2005.      On  a  VAX this is normally done by CGLECMD.COM so that when
  2006.      you  specify  /DEV=V550  the  assignments  are done for you.
  2007.      (V550 = Visual 550)
  2008.  
  2009. 3 HPGL 
  2010.      This  driver  allows  initialization sequences to be defined
  2011.      in  the  symbols  HPGL_OPEN  and  HPGL_CLOSE.  On the PC use
  2012.      environment  variables  and on the VAX use DCL symbols. Also
  2013.      HPGL_WIDTH  and  HPGL_HEIGHT  can  be  defined  for  non  A3
  2014.      plotters.
  2015.  
  2016.      HPGL_ADDX, HPGL_ADDY are margins for the lower left hand
  2017.      corner of the page,  defaults are .9cm and 1.5cm
  2018.  
  2019.      On  a  VAX this is normally done by CGLECMD.COM so that when
  2020.      you  specify  /DEV=HPA4  the  assignments  are done for you.
  2021.  
  2022.      The   HPGL  driver  assigns  the  following  colours  to  pen
  2023.      numbers:
  2024.  
  2025.      1=black,    2=red,    3=green,  4=blue,  5=magenta,  6=white
  2026.  
  2027. 3 dotmatrix
  2028.      GLE  supports the EPSON 8 and 24 pin and HP deskjet/laserjet
  2029.      printers.  To  support  bitmap devices which require a large
  2030.      amount  of memory GLE first writes a device independent file
  2031.      OUT.DVI,   then  the  appropriate  bitmap  driver  for  your
  2032.      printer  will  read  the  OUT.DVI  file  and create a bitmap
  2033.      which it then prints to LPT1:
  2034.  
  2035.           C:> dvigle myfile      (produces OUT.DVI)
  2036.           C:> dviprint -depson   (creates bitmap and prints to LPT1:)
  2037.  
  2038.      The output options are:
  2039.  
  2040.    Usage: dviprint [-depson | -dlj] [-old] [-hires] [-debug] [-output xx.prt]    
  2041.         -depson   To produce output for epson printers 
  2042.         -dwp      To add tiff image to wp .eps file 
  2043.         -dlj      To produce output for HP LaserJet printers 
  2044.         -dpj      To produce output for HP PaintJet printers 
  2045.         -over     Overhead transparency mode for PaintJet
  2046.         -old      For old HP Laser Jet printers (no compression)
  2047.          -hires      Uses high resolution for that printer (slower)
  2048.          -wide     If your printer has a wide carriage 
  2049.          -noflip   Disable's auto flipping 
  2050.          -nosquash Tries to print it full size
  2051.          -compress Force internal bitmap compression (slow,saves memory) 
  2052.          -noff     No form feed
  2053.          -debug    Prints debug messages
  2054.          -out x.x  Prints output to file instead of printer port
  2055.  
  2056.      The    high   resolution  drivers  (dviep24,  dvilj300)  are
  2057.      significantly  slower  than  the  low  resolution drivers so
  2058.      would only be used for final output.
  2059.  
  2060. 2 Fonts 
  2061.      font-name     Description 
  2062.      rm     Roman 
  2063.      rmb     Roman Bold 
  2064.      rmi     Roman Italic 
  2065.      ss     San Serif 
  2066.      ssb     San Serif Bold 
  2067.      ssi     San Serif Italic 
  2068.      tt     Typewriter 
  2069.      ttb     Typewriter Bold 
  2070.      tti     Typewriter Italic 
  2071.  
  2072.      font-name     Description 
  2073.      psagb     AvantGarde-Book 
  2074.      psagbo     AvantGarde-BookOblique 
  2075.      psbd     Bookman-Demi 
  2076.      psbdi     Bookman-DemiItalic 
  2077.      psbl     Bookman-Light 
  2078.      psbli     Bookman-LightItalic 
  2079.      psc     Courier 
  2080.      pscb     Courier-Bold 
  2081.      pscbo     Courier-BoldOblique 
  2082.      psco     Courier-Oblique 
  2083.      psh     Helvetica 
  2084.      pshb     Helvetica-Bold 
  2085.      pshbo     Helvetica-BoldOblique 
  2086.      psho     Helvetica-Oblique 
  2087.      psncsb     NewCenturySchlbk-Bold 
  2088.      psncsi     NewCenturySchlbk-Italic 
  2089.      psncsr     NewCenturySchlbk-Roman 
  2090.      pspr     Palatino-Roman 
  2091.      pstr     Times-Roman 
  2092.      psti     Times-Italic 
  2093.      pstb     Times-Bold 
  2094.      pstbi     Times-BoldItalic 
  2095.      pszcmi     ZapfChancery-MediumItalic 
  2096.      pszd     ZapfDingbats 
  2097.      pssym     Symbol 
  2098.  
  2099.      font-name     Description 
  2100.      texcmb     Computer Modern Bold 
  2101.      texcmex     Computer Modern Extensible 
  2102.      texcmitt     Computer Modern Italic Typewriter 
  2103.      texcmmi     Computer Modern Maths Italic 
  2104.      texcmr     Computer Modern Roman 
  2105.      texcmss     Computer Modern Sans Serif 
  2106.      texcmssb     Computer Modern Sans Serif Bold 
  2107.      texcmssi     Computer Modern Sans Serif Italic 
  2108.      texcmsy     Computer Modern Symbol 
  2109.      texcmti     Computer Modern Text Italic 
  2110.      texcmtt     Computer Modern Typewriter Text 
  2111.  
  2112.      font-name     Description 
  2113.      plcc     Complex Cartographic 
  2114.      plcg     Complex Gothic 
  2115.      plci     Complex Italic 
  2116.      plcr     Complex Roman 
  2117.      plcs     Complex Script 
  2118.      pldr     Duplex Roman 
  2119.      plge     Gothic English 
  2120.      plgg     Gothic German 
  2121.      plgi     Gothic Italian 
  2122.      plsa     Simplex Ascii 
  2123.      plsg     Simplex German 
  2124.      plsr     Simplex Roman 
  2125.      plss     Simplex Script 
  2126.      plsym1     Symbols one 
  2127.      plsym2     Symbols two 
  2128.      plti     Triplex Italic 
  2129.      pltr     Triplex Roman 
  2130.      plba     Block Ascii 
  2131.  
  2132.   Fonts (font mapping)
  2133.      By  default the generic fonts (rm, rmb, ss, tt etc) will all
  2134.      map  to  PLSR  (plotter  simplex  roman)  on BITMAP and HPGL
  2135.      drivers.  To  make  this  happen  on  other  drivers put the
  2136.      command  plotter fonts immediately after the size command at
  2137.      the top of the GLE file.
  2138.  
  2139.      A  typical  result of this change in fonts is that something
  2140.      that  lines  up  on the screen will not line up when printed
  2141.      to  an  EPSON  printer. If this happens then use the plotter
  2142.      fonts command.
  2143.  
  2144.      If  a  character  is  missing  from  a  font,  or  isn't the
  2145.      particular  variation  you  like, you can define a character
  2146.      to be from a different font in this way:
  2147.  
  2148.           \chardef{%}{{\setfont{texcmr}\char{37}}} 
  2149.           \chardef{[}{{\setfont{texcmr}\char{91}}} 
  2150.           \chardef{]}{{\setfont{texcmr}\char{93}}} 
  2151.  
  2152.      On  the  PC  some  fonts  may  not be installed to save disk
  2153.      space.  When  one  of  the  missing  fonts  is called for, a
  2154.      replacement  font  will be displayed, this may look terrible
  2155.      and   some  special  characters  may  be  completely  wrong.
  2156.  
  2157.      More  importantly  if you use a font which does not have its
  2158.      font  metric  file  installed  (e.g.  C:/GLE/FONTS/PLSR.FMT)
  2159.      then   the  PostScript  driver  will  space  the  characters
  2160.      incorrectly.    This    can  be  fixed  by  extracting  that
  2161.      particular    metric    file   from  the  distribution  file
  2162.      CGLE_FVE.ZIP using PKUNZIP.
  2163.  
  2164. 2 Clip
  2165.      It  is  possible to set up arbitrary clipping regions. To do
  2166.      this  draw  a  shape  and  make  it into a path by putting a
  2167.      begin  path  clip  ...  end  path,  around it. Then draw the
  2168.      things  to  be  clipped  by that region. To clear a clipping
  2169.      path  surround  the whole section of GLE commands with begin
  2170.      clip ... end clip
  2171.  
  2172.      Characters  can  be used to make up clipping paths, but only
  2173.      the  PostScript  fonts will currently work for this purpose.
  2174.  
  2175.           size 10 5 
  2176.           begin clip       ! Save current clipping path
  2177.              begin path clip stroke  ! Define new clipping region
  2178.                 amove 2 2 
  2179.                 box 3 3 
  2180.                 amove 6 2 
  2181.                 box 3 3 
  2182.              end path
  2183.              amove 2 2 
  2184.              set hei 3
  2185.              text Here is clipped text
  2186.           end clip         ! Restore original clipping path
  2187.  
  2188. 2 Variables
  2189.      GLE  has  two types of variables, floating point and string.
  2190.      String  variables  always  end  with a dollar sign. A string
  2191.      variable  contains  text  like  ``Hello  this  is  text'', a
  2192.      floating  point  variable  can  only  contain  numbers  like
  2193.      1234.234.
  2194.  
  2195.           name$ = "Joe"
  2196.           height = 6.5    ! Height of person
  2197.           shoe = .05      ! shoe adds to height of person
  2198.           amove 1 1
  2199.           box .2 height+shoe
  2200.           write name$    
  2201.  
  2202. 2 Functions
  2203.      Function Name         Returns 
  2204.      TIME$()             current time e.g. ``11:44:27'' 
  2205.      DATE$()             current date e.g. ``Tue Apr 09 1991'' 
  2206.      LEFT$(str$,exp)         left exp characters of str$ 
  2207.      RIGHT$(str$,exp)         rest of str$ starting at exp 
  2208.      SEG$(str$,exp1,exp2)     str$ from exp1 to exp2 
  2209.      NUM$(exp)             string representation of exp 
  2210.      NUM1$(exp)         as above but with no spaces 
  2211.      VAL(str$)             value of the string str$ 
  2212.      POS(str1$,str2$,exp)     position of str2$ in str1$ from exp 
  2213.      LEN(str$)             the length of str$ 
  2214.  
  2215.      Function Name         Returns 
  2216.      ABS(exp)             absolute value of expression 
  2217.      ATN(exp)             arctan 
  2218.      COS(exp)             cosine 
  2219.      EXP(exp)             exponent 
  2220.      FIX(exp)             exp rounded towards 0 
  2221.      INT(exp)             integer part of exp 
  2222.      LOG(exp)             log to base e of exp 
  2223.      LOG10(exp)         log to base 10 of exp 
  2224.      SGN(exp)              returns  1  or -1.
  2225.      SIN(exp)             sine of exp 
  2226.      SQR(exp)             exp squared 
  2227.      TAN(exp)             tangent of exp 
  2228.      NOT(exp)             logical not of exp 
  2229.      RND(exp)             random number from seed exp 
  2230.      SQRT(exp)             square root of exp 
  2231.  
  2232.      Function Name         Returns 
  2233.      XEND()             the x end point of a text string when drawn 
  2234.      YEND()             the y end point of a text string when drawn 
  2235.      XPOS()             the current x point 
  2236.      YPOS()             the current y point 
  2237.      TWIDTH(str$)          the width of str$ assuming current font, size
  2238.      THEIGHT(str$)          the  height  of  str$ assuming current font, size 
  2239.      TDEPTH(str$)          the  depth of str$ 
  2240.      XG(xexp)             converts units of last graph to abs cm. 
  2241.      YG(yexp)              converts  units  of last graph to abs cm. tabular
  2242.  
  2243.  
  2244. 2 Changehelp
  2245.     If you change the help file, (graph.hlp) then you must re-create
  2246.     the help index file GRAPH.IDX, to do this simply type in 
  2247.         C:\GLE> makeidx
  2248.  
  2249. 2 Usage
  2250.     The command syntax depends largely on your system (UNIX,VMS,PC)
  2251.     but most of these qualifiers should work:
  2252.  
  2253.         /trace         Prints each line as it is executed
  2254.         /debug        For debugging purposes, use at own risk
  2255.         /drawit     To draw on screen directly from DOS.
  2256.         /nod        Don't add ^D's to postscript file.
  2257.         /addd        Do add ^D's to postscript file.
  2258.         /eps        Create Encapuslated Postscript file.
  2259.         /nomaxpath    Don't limit size of complex path's
  2260.         /out=a.ps    Specify output file (depends on device)
  2261.  
  2262.     e.g.
  2263.         (VAX) $ cgle test /dev=ps /trace    
  2264.  
  2265.         (PC) C:> psgle test /eps
  2266.  
  2267.         unix> gle test -dps /addd
  2268.  
  2269.    Environment variables (PC):
  2270.  
  2271.     To stop GLE from adding ^D characters to PostScript files use:
  2272.  
  2273.         C:> set gle_nocontrold=true
  2274.  
  2275.     If you want to put your BGI files in a different directory
  2276.     to GLE\EXE then:
  2277.  
  2278.         C:> set gle_bgi=c:\tc\bgi
  2279.  
  2280.     If you want to use a non standard BGI driver then define:
  2281.  
  2282.         C:> set gle_addbgi=4.svga256        (mode,filename)
  2283.  
  2284. 2 (end)
  2285. 1 (end)
  2286.