## NAME

          pstext - To plot text on maps

## SYNOPSIS

          pstext textfile -Jparameters -Rwest/east/south/north[r] [ -Btickinfo ]
          [ -Cdx/dy ] -Ddx/dy[v[red/green/blue] ] [ -Eazimuth/elevation ] [
          -Gred/green/blue ] [ -H[nrec] ] [ -K ] [ -L ] [ -M[flag] ] [ -N ] [ -O
          ] [ -P ] [ -Spen ] [ -U[/dx/dy/][label] ] [ -V ] [
          -W[red/green/blue][o|O|c|C[pen]] ] [ -Xx-shift ] [ -Yy-shift ] [
          -Zzlevel ] [ -ccopies ] [ -: ]

## DESCRIPTION

          pstext plots textstrings of variable size, font type, and orientation.
          Various map projections are provided, with the option to draw and
          annotate the map boundaries. PostScript code is written to standard
          output.  Greek characters, subscript, superscript, and small caps are
          supported as follows: The sequence @~ toggles between the selected
          font and Greek (Symbol).  @%no% sets the font to no; @%% resets the
          font to the starting font, @- toggles subscripts on/off, @+ toggles
          superscript on/off, and @# toggles small caps on/off.  @@ prints the @
          sign.  @e, @o, @a, @E, @O, @A give the accented Scandinavian
          characters.  Composite characters (overstrike) may be indicated with
          the @!<char1><char2> sequence, which will print the two characters on
          top of each other.  To learn the octal codes for symbols not available
          on the keyboard and some accented European characters, see Section
          4.15 and Appendix F in the GMT Technical Reference and Cookbook.  Note
          that WANT_EURO_FONT must be set to TRUE in your .gmtdefaults file in
          order to use the accented characters.  Using the -W option, a colored
          rectangle underlying the text may be plotted  (Does not work for
          strings with sub/super scripts, symbols, or composite characters,
          except in paragraph mode (-M)).

          textfile
               This file contains 1 or more records with (x, y, size, angle,
               fontno, justify, text).  If no file is given, pstext will read
               standard input.  size is text size in points, angle is measured
               in degrees counter-clockwise from horizontal, fontno sets the
               font type, justify sets the alignment.  If fontno is not an
               integer, then it is taken to be a textstring with the desired
               fontname.  See the gmtdefaults man page for names and numbers of
               avaiable fonts (or run pstext -L).  The alignment refers to the
               part of the textstring that will be mapped onto the (x,y) point.
               Choose a 2 character combination of L, C, R (for left, center, or
               right) and T, M, B for top, middle, or bottom. e.g., BL for lower
               left.

          -J   Selects the map projection. Scale is cm/degree, 1:xxxxx, or width
               in cm (upper case modifier).

               CYLINDRICAL PROJECTIONS:

               -Jclon0/lat0/scale (Cassini)
               -Jjlon0/scale (Miller)
               -Jmscale (Mercator - Greenwich and Equator as origin)
               -Jmlon0/lat0/scale (Mercator - Give meridian and standard
               parallel)
               -Joalon0/lat0/azimuth/scale (Oblique Mercator - point and
               azimuth)
               -Joblon0/lat0/lon1/lat1/scale (Oblique Mercator - two points)
               -Joclon0/lat0/lonp/latp/scale (Oblique Mercator - point and pole)
               -Jqlon0/scale (Equidistant Cylindrical Projection (Plate Carree))
               -Jtlon0/scale (TM - Transverse Mercator, with Equator as y = 0)
               -Jtlon0/lat0/scale (TM - Transverse Mercator, set origin)
               -Juzone/scale (UTM - Universal Transverse Mercator)
               -Jylon0/lats/scale (Basic Cylindrical Projection)

               AZIMUTHAL PROJECTIONS:

               -Jalon0/lat0/scale (Lambert).
               -Jelon0/lat0/scale (Equidistant).
               -Jflon0/lat0/horizon/scale (Gnomonic).
               -Jglon0/lat0/scale (Orthographic).
               -Jslon0/lat0/scale (General Stereographic)

               CONIC PROJECTIONS:

               -Jblon0/lat0/lat1/lat2/scale (Albers)
               -Jdlon0/lat0/lat1/lat2/scale (Equidistant)
               -Jllon0/lat0/lat1/lat2/scale (Lambert)

               MISCELLANEOUS PROJECTIONS:

               -Jhlon0/scale (Hammer)
               -Jilon0/scale (Sinusoidal)
               -Jk[f|s]lon0/scale (Eckert IV (f) and VI (s))
               -Jnlon0/scale (Robinson)
               -Jrlon0/scale (Winkel Tripel)
               -Jvlon0/scale (Van der Grinten)
               -Jwlon0/scale (Mollweide)

               NON-GEOGRAPHICAL PROJECTIONS:

               -Jpscale (Linear projection for polar (theta,r) coordinates)
               -Jxx-scale[l|ppow][/y-scale[l|ppow]] (Linear, log, and power
               scaling)
               More details can be found in the psbasemap manpages.

          -Jz  Sets the vertical scaling (for 3-D maps).  Same syntax as -Jx.

          -R   west, east, south, and north specify the Region of interest.  To
               specify boundaries in degrees and minutes [and seconds], use the
               dd:mm[:ss] format.  Append r if lower left and upper right map
               coordinates are given instead of wesn.

## OPTIONS

          No space between the option flag and the associated arguments.

          -B   Sets map boundary tickmark intervals. See psbasemap for details.

          -C   Sets the clearance (in cm) between the text and the surrounding
               box [0.15c/0.15c].  Only used if -W is specified.

          -D   Shifts the projected (x,y) point by dx,dy (in cm) [0/0].  In
               paragraph mode (-M), one may append v which will draw a line from
               the original point to the shifted point.  Optionally append a pen
               for this line.

          -E   Sets the viewpoint's azimuth and elevation (for perspective view)
               [180/90].  (Not implemented for paragraph mode).

          -G   Sets the gray-shade (0-255) or color (r/g/b, each 0-255) used for
               drawing the text.  [Default is black]

          -H   Input file(s) has Header record(s).  Number of header records can
               be changed by editing your .gmtdefaults file.  If used, GMT
               default is 1 header record.

          -K   More PostScript code will be appended later [Default terminates
               the plot system].

          -L   Lists the font-numbers and font-names available, then exits.

          -M   Paragraph mode.  Files must be multiple segment files.  Segments
               are separated by a special record whose first character must be
               flag [Default is '>'].  Starting in the 3rd column, we expect to
               find information pertaining to the typesetting of a text
               paragraph (the remaining lines until next segment header).  The
               information expected is (x y size angle fontno justify linespace
               parwidth parjust), where x y size angle fontno justify are
               defined above, while linespace and parwidth are the linespacing
               and paragraph width, respectively.  The justification of the text
               paragraph is governed by parjust which may be l(eft), c(enter),
               r(ight), or j(ustified).  The segment header is followed by one
               or more lines with paragraph text.  Text may contain the escape
               sequences discussed above as well as three more: @;r/g/b; changes
               the font color (@;; resets it), @:size: changes the font size
               (@:: resets it), and @_ toggles underline on/off.  Separate
               paragraphs with a blank line.

          -N   Do NOT clip text at map boundaries [Default will clip].

          -O   Selects Overlay plot mode [Default initializes a new plot
               system].

          -P   Selects Portrait plotting mode [GMT Default is Landscape, see
               gmtdefaults to change this].

          -S   Draw text outline. Append pen attributes.  (Not implemented for
               paragraph mode).

          -U   Draw Unix System time stamp on plot.  User may specify where the
               lower left corner of the stamp should fall on the page relative
               to lower left corner of plot in cm [Default is (-2c/-2c)].
               Optionally, append a label, or c (which will plot the command
               string.)

          -V   Selects verbose mode, which will send progress reports to stderr
               [Default runs "silently"].

          -W   Paint a rectangle beneath the text string.  Set color [Default is
               255/255/255 (white)].  Append o to draw rectangle outline, add a
               pen to specify pen attributes [1/0/0/0].  Choose upper case O to
               get a rounded rectangle (only in paragraph mode).  Choose lower
               case c to get a concave rectangle (only in paragraph mode).
               Choose lower case C to get a convex rectangle (only in paragraph
               mode).

          -X -Y
               Shift origin of plot by (x-shift,y-shift) cm  [Default is
               (a2.5c,a2.5c) for new plots, (0,0) for overlays].  Prepend a for
               absolute coordinates; the default (r) will reset plot origin.

          -Z   For 3-D projections:  Sets the z-level of the basemap [0].  (Not
               implemented for paragraph mode).

          -:   Toggles between (longitude,latitude) and (latitude,longitude)
               input/output.  [Default is (longitude,latitude)].

          -c   Specifies the number of plot copies. [Default is 1]

## EXAMPLES

          To plot the outlines of the textstrings stored in the file text.d on a
          Mercator plot with the given specifications, try

          pstext text.d -R-30/30/-10/20 -Jm0.1i -P -B5 -S0.5p > plot.ps

          To add a typeset figure caption for a 3-inch wide illustration, try

          pstext -R0/3/0/5 -JX3i -O -H -M -N << EOF >> figure.ps
          This is an optional header record
          > 0 -0.5 12 0 4 LT 13p 3i j
          @%5%Figure 1.@%%  This illustration shows nothing useful, but it still
          needs
          a figure caption.  Highlighted in @;255/0/0;red@;; you can see the
          locations
          of cities where it is @_impossible@_ to get any good Thai food; these
          are to be avoided.
          EOF

## BUGS

          Except for paragraph mode, the horizontal justification of surrounding
          rectangles does not work when Greek symbols, sub- and superscripts,
          and/or composite characters are imbedded in the textstring.  In
          paragraph mode, the presence of composite characters and other escape
          sequences may lead to unfortunate word splitting.
          The -N option does not adjust the BoundingBox information so you may
          have to post-process the PostScript outout with epstool or ps2epsi to
          obtain a correct BoundingBox.

## SEE ALSO

          gmt, psbasemap