Provided by: libncarg-dev_6.6.2.dfsg.1-10build2_amd64 bug

NAME

       PCHIQU - Draws high quality characters. By default, it uses the same database as the old NCAR Graphics
       routine PWRITX, but it can also use characters from any of the fontcap-defined databases, it has an
       improved interface, and it has many more capabilities than PWRITX.

       PLCHHQ is an alternate name for the routine PCHIQU.

SYNOPSIS

       CALL PCHIQU (XPOS,YPOS,CHRS,SIZE,ANGD,CNTR)

C-BINDING SYNOPSIS

       #include <ncarg/ncargC.h>

       void c_pchiqu (float xpos, float ypos, char *chrs,
       float size, float angd, float cntr)

DESCRIPTION

       XPOS,YPOS   (input  expressions  of  type  REAL) specify positioning coordinates for the characters to be
                   drawn. If the internal parameter ´MA´ has the value 0, these are given in  the  current  user
                   coordinate  system;  otherwise,  they  are  given  in  an arbitrary X/Y coordinate system, as
                   implied by the value of ´MA´ and the nature of the routine CPMPXY. (For example, if ´MA´  has
                   the  value  1  and  the default version of CPMPXY is being used, then XPOS is a longitude, in
                   degrees, and YPOS is a latitude, in degrees.)  The argument CNTR (described below)  specifies
                   how the characters are to be positioned relative to the point (XPOS,YPOS).

       CHRS        (an  input constant or variable of type CHARACTER) specifies the characters to be drawn.  The
                   number of characters in CHRS is taken to be LEN(CHRS); to use characters "m" through "n" from
                   a character variable CHRV, use  the  FORTRAN-77  substring  notation  "CHRV(m:n)".  CHRS  may
                   contain  characters  to  be  drawn and "function codes", which are used for various purposes.
                   The possible function codes are completely described in the programmer document for  Plotchar
                   and are summarized in a later section of this man page.

       SIZE        (an  input  expression  of  type  REAL) specifies the desired character size. If the internal
                   parameter ´MA´ is zero, then the following comments apply:

                   •      If SIZE is less than or equal to zero, its absolute value  specifies  the  size  as  a
                          multiple of the digitized size. On a 1024x1024 grid, principal-size capitals are about
                          ´PW´  units  wide  by  ´PH´  units high and the vertical spacing between lines is ´PV´
                          units (by default, ´PW´, ´PH´, and ´PV´ are 16, 21, and 32).  Indexical-size  capitals
                          are  ´IW´ units wide by ´IH´ units high and the vertical spacing between lines is ´IV´
                          units (by default, ´IW´, ´IH´,  and  ´IV´  are  12,  13,  and  20).  Cartographic-size
                          capitals are ´CW´ units wide by ´CH´ units high and the vertical spacing between lines
                          is ´CV´ units (by default, ´CW´, ´CH´, and ´CV´ are 8, 9, and 14).

                          Example:  Using CHRS = ´ABC´ and SIZE = -2. will write three characters, each of which
                          is about 32/1024 of the plotter frame in width.

                   •      If SIZE is greater than zero, but less than one, it specifies the desired  approximate
                          width  of  a  principal-size  capital as a fraction of the distance across the plotter
                          frame. This is the recommended scheme.

                          Example: Using CHRS = ´ABC´ and SIZE = .05 will write three characters, each of  which
                          is about 5 hundredths of the plotter frame in width.

                   •      If SIZE is greater than or equal to one, it specifies the desired approximate width of
                          a  principal-size  capital  in plotter coordinates, as defined by default or by a user
                          call to the SPPS routine SETI. Note that use of the routine SETI is now discouraged.

                          Example: Using CHRS = ´ABC´ and SIZE = 13. (assuming there have been no calls  to  the
                          SPPS  routine SETI) will write three characters, each of which is about 13/1024 of the
                          plotter frame in width.

                   If ´MA´ is nonzero, then SIZE is the desired approximate width of a principal-size capital as
                   a value in the X/Y coordinate system in which XPOS and YPOS are given.

                   In most of the databases used by  PCHIQU,  the  character  width  varies  from  character  to
                   character.  Most  principal-size  capitals will be a little wider than the value specified by
                   SIZE (and a few will be narrower). Thus, a little experimenting may be necessary to get  just
                   the  size  one  wants.  A  rule of thumb that works pretty well when using all capitals is as
                   follows:

                        SIZE = DLOS / REAL(NCIS)

                   where "DLOS" is the desired length of the string, in the fractional system, and "NCIS" is the
                   number of characters in the string.

                   Note: As of version 3.2 of NCAR Graphics, the size of all characters written  by  PCHIQU  has
                   been  reduced by a multiplicative factor (the internal parameter ´SA´) whose default value is
                   .88888888... The object of this  is  to  make  the  size  of  characters  written  by  PCHIQU
                   consistent  with the size of characters written by PCMEQU and PCLOQU. If the value of ´SA´ is
                   not changed, then the height of principal-size capitals written by PCHIQU and PCMEQU will  be
                   7/6 times the value specified by SIZE. Thus, if the desired character height (CHRH) is known,
                   use "SIZE = 6.*CHRH/7." .

                   The  values  of  the  internal parameters ´PW´, ´PH´, ´PV´, ´IW´, ´IH´, ´IV´, ´CW´, ´CH´, and
                   ´CV´ (as well as two others, ´PS´ and ´IS´) may be changed by user calls to CPSETR. This  can
                   be used to change the effective size and shape of digitized characters in the PWRITX database
                   (the  effect  is the same as if the characters had been digitized differently at the outset).
                   If, for example, one were to double the value of ´PH´, it would make the principal characters
                   twice as tall as they are by default. (In this case, one would probably also want  to  double
                   the  value  of  ´PV´,  so  as  to make the vertical spacing between lines consistent with the
                   character height.) Note that, if one changes the value of ´PW´, ´IW´, or ´CW´, the meaning of
                   a negative value of the argument SIZE may thereby be changed.

       ANGD        (an input expression of type REAL)  is  the  angle,  in  degrees  counterclockwise  from  the
                   positive  X  axis,  at which the character string is to be written. If the internal parameter
                   ´TE´ is nonzero (by default, it is zero) and if ANGD is exactly 360., then no characters  are
                   drawn  by  PCHIQU;  it just computes the distances, in the fractional coordinate system, from
                   the point (XPOS,YPOS) to the left edge, the right edge, the bottom edge, and the top edge  of
                   a  box  enclosing  the  string.  These are stored as the values of the parameters ´DL´, ´DR´,
                   ´DB´, and ´DT´ and may be retrieved by calls to PCGETR.

       CNTR        (an input expression of type REAL) is the centering option. If the internal parameter ´CE´ is
                   zero (the default), then

                   •      CNTR = -1. means that (XPOS,YPOS) is  the  center  of  the  left  edge  of  the  first
                          character (if that character is to be written "across" the frame) or the center of the
                          top edge of the first character (if that character is to be written "down" the frame).

                   •      CNTR = 1. means that (XPOS,YPOS) is the center of the right edge of the last character
                          (if the writing direction at the end of the character string is "across" the frame) or
                          the  center  of the bottom edge of the last character (if the writing direction at the
                          end of the character string is "down" the frame).

                   •      CNTR = s, where "s" is any real number, means that (XPOS,YPOS) is a point obtained  by
                          linear  interpolation along the line joining the two points mentioned above (the first
                          point being associated with the value -1. and the second  with  the  value  +1.).  The
                          value "0." gives the midpoint of the line.

                   If  ´CE´  is nonzero, then the value of CNTR is ignored.  Text-extent quantities are computed
                   and used to exactly center the output on the point (XPOS,YPOS). This is useful,  among  other
                   things, for labeling each of a number of points with a single character; however, it works as
                   desired only when ´QU´ is zero.

                   Upon return from PCHIQU, all arguments are unchanged.

C-BINDING DESCRIPTION

       The C-binding argument descriptions are the same as the FORTRAN argument descriptions.

FUNCTION CODES

       The function codes that may be used for various purposes in the input character string CHRS are described
       completely in the programmer document for Plotchar.  The material that follows will principally be of use
       as a memory aid to someone who is already familiar with the use of function codes.

       As  the  characters  of  CHRS are scanned from left to right, the scanner is always in one of two states:
       either it is looking for characters to be drawn or it is looking for  characters  to  be  interpreted  as
       function codes.  Each occurrence of the function-code signal character (defined by the internal parameter
       ´FC´  -  a  colon by default) flips the state of the scanner.  Thus, in the character string ´ABC:L:DEF´,
       "A", "B", and "C" will be treated as characters to be drawn, "L" will be treated as a function code,  and
       "D",  "E",  and  "F"  will  be treated as characters to be drawn.  (In this particular example, since the
       function code "L" requests lower case, what would be drawn is "ABCdef".)   Occasionally,  function  codes
       may  need  to  be  separated  by commas or blanks; this is necessary only when there would otherwise be a
       syntactical problem.

       F           Switch to using the database specified by the value of ´FN´.

       F0          Switch to using the PWRITX database.

       Fn          Switch to using fontcap-defined font "n".

       R           Switch to the "Roman" part of the PWRITX database.  If characters are  currently  being  used
                   from a fontcap-defined font, this function code will have no effect.

       G           Switch  to  the  "Greek" part of the PWRITX database.  If characters are currently being used
                   from a fontcap-defined font, this function code will have no effect.

       P           Use characters of principal size from the PWRITX database.  If characters are currently being
                   used from a fontcap-defined font, there will be an appropriate shift in size.

       I           Use characters of indexical size from the PWRITX database.  If characters are currently being
                   used from a fontcap-defined font, there will be an appropriate shift in size.

       K           Use characters of cartographic size from the PWRITX database.  If  characters  are  currently
                   being used from a fontcap-defined font, there will be an appropriate shift in size.

       U           Switch  to  using  upper  case letters from the PWRITX database.  If characters are currently
                   being used from a fontcap-defined font, this function code will have no effect.

       Un          For the next "n" characters, switch to using upper case letters from the PWRITX database  and
                   then  switch  to  lower  case.  If characters are currently being used from a fontcap-defined
                   font, this function code will have no effect.

       L           Switch to using lower case letters from the PWRITX database.   If  characters  are  currently
                   being  used  from a fontcap-defined font, this function code will force the use of lower case
                   letters from it.

       Ln          For the next "n" characters, switch to using lower case letters from the PWRITX database  and
                   then  switch  to  upper  case.  If characters are currently being used from a fontcap-defined
                   font, this function code will force the use of lower case letters from it.

       A           Switch to writing "across" the frame, in the direction ANGD.  This is the normal mode.

       D           Switch to writing "down" the frame, in the direction ANGD-90.  This causes each character  to
                   be written beneath the previous one.

       B           Switch to subscript level.

       Bn          For the next "n" characters, use subscript level and then revert to normal level.

       S           Switch to superscript level.

       Sn          For the next "n" characters, use superscript level and then revert to normal level.

       E           Switch  to normal level in such a way as to allow for another sub- or superscript on the base
                   character.

       N           Switch to normal level in such a way as not to allow for another sub- or superscript  on  the
                   base character.

       Hn          Offset by "n" digitization units in the direction ANGD.

       HnQ         Offset by "n" blank widths in the direction ANGD.

       Vn          Offset by "n" digitization units in the direction ANGD+90.

       VnQ         Offset by "n" blank heights in the direction ANGD+90.

       C           Do a "carriage return".

       Xn or XnQ   Zoom character width to "n" percent of normal.

       Yn          Zoom character height to "n" percent of normal.

       YnQ         Zoom character height to "n" percent of normal and introduce a shift in the direction ANGD+90
                   sufficient to keep the bases of characters properly aligned.

       Zn          Same as "XnYn".

       ZnQ         Same as "XnQYnQ".

       nnnn        An  octal  number  may  be  used as a function code to select a particular character from the
                   PWRITX database.  The octal number for a given character is the sum of a font  index  (0  for
                   Roman  or  600  for  Greek),  a  size  index  (0 for Principal, 200 for Indexical, or 400 for
                   Cartographic), a case index (0 for Upper or 100 for Lower), and the  octal  equivalent  of  a
                   character  index  (1-32  for  A through Z, 33-44 for 0 through 9, or 45-57 for the individual
                   characters, +, -, *, /, (, ), $, =, blank, comma, or period).

EXAMPLES

       Use the ncargex command to see the following relevant examples: cmpit, cmpita,  cmptit,  cpexcc,  elblba,
       cbex01, coex01, coex02, coex03, cpex10, epltch, sfex02, srex01, tpltch.

ACCESS

       To  use PCHIQU or c_pchiqu, load the NCAR Graphics libraries ncarg, ncarg_gks, and ncarg_c, preferably in
       that order.

SEE ALSO

       Online: plotchar, pcdlsc, pcgetc, pcgeti, pcgetr, pcloqu, pcmequ, pcmpxy, pcpnwi, pcrset, pcsetc, pcseti,
       pcsetr, ncarg_cbind.

       Hardcopy: NCAR Graphics Fundamentals, UNIX Version

COPYRIGHT

       Copyright (C) 1987-2009
       University Corporation for Atmospheric Research
       The use of this Software is governed by a License Agreement.

UNIX                                               March 1993                                     PCHIQU(3NCARG)