Annotation of 43BSDTahoe/old/man/fed.0, revision 1.1.1.1

1.1       root        1: 
                      2: 
                      3: 
                      4: FED(1)             UNIX Programmer's Manual               FED(1)
                      5: 
                      6: 
                      7: 
                      8: NAME
                      9:      fed - font editor
                     10: 
                     11: SYNOPSIS
                     12:      fed [ -i ] [ -q ] name
                     13: 
                     14: DESCRIPTION
                     15:      _F_e_d is an editor for font files.  It is display oriented and
                     16:      must be used on an HP 2648 graphics terminal.  Fed does the
                     17:      necessary handshaking to work at 9600 baud on the 2648.
                     18: 
                     19:      The -i flag requests _i_n_v_e_r_s_e _v_i_d_e_o _m_o_d_e, where all dots are
                     20:      dark and the background is bright.  This provides a setting
                     21:      similar to the hardcopy output of the plotter, and is useful
                     22:      for fonts such as the shadow font where shading is impor-
                     23:      tant.
                     24: 
                     25:      The -q flag requests _q_u_i_e_t _m_o_d_e, where all graphic output is
                     26:      suppressed.  This mode is useful on terminals other than the
                     27:      HP 2648 (assuming you are editing blindly) and for opera-
                     28:      tions such as the # and A commands, since these operations
                     29:      do not make essential use of graphics, and since suppression
                     30:      of the graphic output speeds of _f_e_d considerably.
                     31: 
                     32: FONTS
                     33:      A font is a collection of up to 256 _g_l_y_p_h_s, each of which is
                     34:      some pattern or design.  Glyphs are represented on Unix as a
                     35:      rectangular array of dots, each of which is either dark or
                     36:      blank.  Each location in the array is called a _p_i_x_e_l.  There
                     37:      are 200 pixels per inch due to the hardware of the Versatec
                     38:      and Varian plotters.
                     39: 
                     40:      Each glyph has, in addition to its bit pattern, a _b_a_s_e and a
                     41:      _w_i_d_t_h.  The base is a point, typically near the lower left
                     42:      of the array, that represents the logical lower left point
                     43:      of the glyph.  The base is not restricted to be within the
                     44:      array, in fact, it is usually a few locations to the left of
                     45:      the edge. The vertical position of the base defines the
                     46:      _b_a_s_e_l_i_n_e, which is held constant for all glyphs when a line
                     47:      is typeset.  Letters with descenders, such as ``g'', go
                     48:      below the baseline.  Other glyphs typically rest on the
                     49:      baseline.
                     50: 
                     51:      The width is used by _t_r_o_f_f(_1) to determine where to place
                     52:      the next glyph.  It need not be the same as the width of the
                     53:      array, although it is usually about the same.
                     54: 
                     55:      The size of the array, location of the base, and the width
                     56:      can vary among glyphs in a font.  Fonts where all glyphs
                     57:      have the same width are called _f_i_x_e_d _w_i_d_t_h _f_o_n_t_s, others are
                     58:      _v_a_r_i_a_b_l_e _w_i_d_t_h _f_o_n_t_s.
                     59: 
                     60: 
                     61: 
                     62: 
                     63: Printed 7/26/87              4/29/85                           1
                     64: 
                     65: 
                     66: 
                     67: 
                     68: 
                     69: 
                     70: FED(1)             UNIX Programmer's Manual               FED(1)
                     71: 
                     72: 
                     73: 
                     74:      Attributes which do not vary among glyphs include the _f_o_n_t
                     75:      _n_a_m_e, which can be up to 11 alphabetic characters, and the
                     76:      _p_o_i_n_t _s_i_z_e, which is a positive integer indicating the
                     77:      overall size of the font. A point is 1/72 inch.  The point
                     78:      size of a font is the distance, in points, from the top of
                     79:      the tallest glyph to the bottom of the lowest.  The software
                     80:      of troff currently restricts point sizes to 6, 7, 8, 9, 10,
                     81:      11, 12, 14, 16, 18, 20, 22, 24, 28, and 36 point. Normal
                     82:      text is usually 10 point.
                     83: 
                     84:      Font files conventionally have names of the form
                     85:          name.pointsize
                     86:      for example, ``bocklin.14'' to indicate 14 point bocklin.
                     87:      Fed will look for such a file in both the current directory
                     88:      and /usr/lib/vfont.  Vtroff will only look in
                     89:      /usr/lib/vfont.
                     90: 
                     91:      There is a correspondence between _g_l_y_p_h_s and _c_h_a_r_a_c_t_e_r_s in a
                     92:      font.  For a given font, each glyph has an ASCII character
                     93:      associated with it.  The glyph is obtained in troff by typ-
                     94:      ing the associated character, and in fed glyphs are also
                     95:      referred to by their character.  However, it is not required
                     96:      for all characters to have a glyph, fonts never have more
                     97:      than 128 glyphs and usually have fewer.
                     98: 
                     99:      There is usually a natural correspondence between glyphs and
                    100:      characters.  For example, the glyph which is a roman lower
                    101:      case `a' will generally have the ascii character `a' as its
                    102:      corresponding character.  In the special font, the Greek
                    103:      lower case alpha has `a' as it's corresponding character,
                    104:      upper case delta has 'D' as it's corresponding character,
                    105:      etc.  However, special fonts such as the chess font have
                    106:      glyphs that do not appear to be related to their correspond-
                    107:      ing characters.
                    108: 
                    109:      It is easy to confuse glyphs and characters.  Note, however,
                    110:      that the three glyphs roman a, bold a, and italic _a, are all
                    111:      different, yet all three correspond to the character `a'.
                    112:      When this is multiplied by the large number of font styles
                    113:      and point sizes, there are many glyphs that match a single
                    114:      character, (but only one in a particular font).
                    115: 
                    116: FED ORGANIZATION
                    117:      Fed organizes the screen into 21 _w_i_n_d_o_w_s in a 3 by 7 array.
                    118:      Each window is 100 by 100 pixels, meaning that the maximum
                    119:      height and width of a glyph is 100 pixels.  Since the HP
                    120:      2648 has a resolution of 100 dots per inch, glyphs displayed
                    121:      on the screen and printer will be double the actual height
                    122:      and width, even when fully zoomed out.  There is a _c_u_r_r_e_n_t
                    123:      _w_i_n_d_o_w, which will be marked with a square border.  There
                    124:      are two _p_e_n_s, called _f_i_n_e and _b_o_l_d.  The fine pen is one
                    125:      pixel wide, the bold pen can range from two pixels to ten
                    126: 
                    127: 
                    128: 
                    129: Printed 7/26/87              4/29/85                           2
                    130: 
                    131: 
                    132: 
                    133: 
                    134: 
                    135: 
                    136: FED(1)             UNIX Programmer's Manual               FED(1)
                    137: 
                    138: 
                    139: 
                    140:      pixels in diameter.  The default width of the bold pen is
                    141:      taken from the point size implied by the file name.  The
                    142:      point size is not otherwise used. There are also fine and
                    143:      bold _e_r_a_s_e_r_s.
                    144: 
                    145:      There are two locations in the window, called the _c_u_r_s_o_r and
                    146:      the _m_a_r_k. These tools are used to draw on glyphs.
                    147: 
                    148:      Sometimes the cursor is on, in which case it is indicated by
                    149:      the hardware graphics cursor of the terminal, a cross.  The
                    150:      cursor is considered to be located at the center of the
                    151:      cross.  Sometimes the _r_u_b_b_e_r _b_a_n_d _l_i_n_e is turned on, showing
                    152:      the path a line drawn would traverse.  This line runs from
                    153:      the mark to the cursor, and is the only way the mark is
                    154:      graphically visible.
                    155: 
                    156: COMMANDS
                    157:      Commands to fed are single characters, sometimes followed by
                    158:      any needed arguments.  The commands used by fed were chosen
                    159:      to be as similar to _v_i(1) commands as was reasonable.
                    160:      Another distinction is that certain commands are in upper
                    161:      case.  These commands were deliberately made hard to type
                    162:      because they cause a large change in the state of the editor
                    163:      and should not be done by accident.  In a few cases there
                    164:      are both upper and lower case commands with the same letter.
                    165: 
                    166:      _A_l_p_h_a_n_u_m_e_r_i_c _K_e_y_p_a_d: Note that this is the keypad on the far
                    167:      right.  The graphics keypad on the near right will not work.
                    168:      These keys are each synonyms for other commands.  They are
                    169:      arranged in a manner that causes the five arrow keys to
                    170:      behave sensibly, but the others need to be memorized or
                    171:      stickers placed on the keys.  They are provided for conveni-
                    172:      ence only, and the user can avoid memorization simply by
                    173:      using the mnemonic letter keys instead.
                    174: 
                    175:      The layout is as follows:
                    176:               undo (u)  rezoom ( )fillin (f)
                    177:               move (m)  up (k)    draw (d)
                    178:               left (h)  base (b)  right (l)
                    179:               setdot (.)          down (j)cleardot (>)
                    180: 
                    181:      The arrow keys move the cursor one pixel in the indicated
                    182:      direction.  The cursor is turned on if it was off.  Note
                    183:      that the alphanumeric keys (far right) must be used.  The
                    184:      graphics keys (near right) will appear to move the cursor
                    185:      but it will not be moved internally.  The cursor cannot be
                    186:      moved outside the current window.
                    187: 
                    188:      ^_L: Redraw the screen.  This is useful if an I/O error or
                    189:      background process has caused the screen to get messed up.
                    190: 
                    191: 
                    192: 
                    193: 
                    194: 
                    195: Printed 7/26/87              4/29/85                           3
                    196: 
                    197: 
                    198: 
                    199: 
                    200: 
                    201: 
                    202: FED(1)             UNIX Programmer's Manual               FED(1)
                    203: 
                    204: 
                    205: 
                    206:      _b: Move the cursor to the base of the window.  This is the
                    207:      default location of the cursor.
                    208: 
                    209:      _c: If the cursor is on, turn it off.  Otherwise, turn it on.
                    210: 
                    211:      _d: Draw a line from the mark to the cursor.  The currently
                    212:      selected tool (fine pen, bold pen, fine eraser, bold eraser)
                    213:      is used.  The cursor is turned off.  The mark is moved to
                    214:      the location of the cursor.
                    215: 
                    216:      _f: Fill in the current hole.  The cursor must be in a com-
                    217:      pletely enclosed empty (white) area.  The area is set to
                    218:      black.  If this command is invoked on the outside or there
                    219:      are any leaks to the outside, the entire outside will be
                    220:      filled in.  (Undo is useful in this case.) Filling in cannot
                    221:      jump diagonals, but can rather only spread in the four
                    222:      orthogonal directions.
                    223: 
                    224:      _g <_x>: Get a glyph.  X can be any character.  The glyph
                    225:      corresponding to x is put in a window, and this window is
                    226:      made the current window.  The glyph is centered horizontally
                    227:      in the window.  The baseline is located at row 70 from the
                    228:      top of the window.  The pen and cursor are placed at the
                    229:      base, and the cursor is turned off.  The glyph must exist.
                    230: 
                    231:      _h, _j, _k, and _l are accepted to mean left, down, up, and
                    232:      right, respectively.  They are synonymous with the
                    233:      alphanumeric arrow keys.  They have the same meanings as in
                    234:      _v_i(_1).
                    235: 
                    236:      _m: Move the mark to the current location of the cursor.  The
                    237:      cursor is turned on.
                    238: 
                    239:      _n <_x>: New glyph.     This is similar to _g, except that the
                    240:      glyph must _n_o_t exist.  It is used to create a new glyph.  A
                    241:      blank window is created, centered at (50, 70) as in g.
                    242: 
                    243:      _p: Print the contents of the screen.  An HP 2631 printer
                    244:      must be connected to the terminal.  The screen is copied to
                    245:      the printer.  If in inverse video mode, the screen is
                    246:      changed to normal video mode before the print, and then
                    247:      changed back after the print.
                    248: 
                    249:      _r: If the rubber band line is on, turn it off.  Otherwise,
                    250:      turn it on.
                    251: 
                    252:      _s <_w_h_a_t> [<_w_h_e_r_e>]: Set <what> to <where>.  What and where
                    253:      are single characters.  The possibilities are:
                    254: 
                    255:          _s_p_f: Set pen fine.  (`l' for light is also accepted.)
                    256: 
                    257: 
                    258: 
                    259: 
                    260: 
                    261: Printed 7/26/87              4/29/85                           4
                    262: 
                    263: 
                    264: 
                    265: 
                    266: 
                    267: 
                    268: FED(1)             UNIX Programmer's Manual               FED(1)
                    269: 
                    270: 
                    271: 
                    272:          _s_p_b: set pen bold.  (`h' for heavy is also accepted.)
                    273: 
                    274:          _s_d: Set draw.  The pen is used instead of the eraser.
                    275: 
                    276:          _s_e: Set erase.  The eraser is used instead of the pen.
                    277: 
                    278:          _s_s<_n>: Set size of bold pen.    <n> is a digit from 1 to
                    279:          9.  The size of the bold pen is set accordingly.  This
                    280:          also affects the bold eraser.
                    281: 
                    282:      _u: Undo.  The previous change to the current window is
                    283:      undone.  Note that undo is on a window by window basis, so
                    284:      that commands that affect characters or more than one window
                    285:      cannot be undone.
                    286: 
                    287:      _z <_n>: Zoom to level n.  The screen is blown up by a factor
                    288:      of n.  This only affects the appearance of the screen to
                    289:      make it easy to see the individual dots, and does not affect
                    290:      the size of the glyph or the result of a print command.
                    291:      Zooming to 1 shows the entire screen, a level of 3 or 4 is
                    292:      probably good for editing glyphs. When a message is printed
                    293:      on the screen, fed automatically zooms out to level 1 so you
                    294:      can read the message.  Hitting space will zoom back.  z fol-
                    295:      lowed by <return> zooms out without changing the previous
                    296:      zoom.
                    297: 
                    298:      _s_p_a_c_e: Zoom back to the level most recently requested by the
                    299:      z command.
                    300: 
                    301:      _A <_i/_e/_r> <_f_i_r_s_t> <_l_a_s_t> [<_o_l_d_p_s> <_n_e_w_p_s>]:
                    302:      Artificially italicize/embolden/resize a range of glyphs in
                    303:      the current font. Enter i for italicize, e for embolden, or
                    304:      r for resize, and the first and last character in the range
                    305:      desired.  If you are resizing you will also have to enter
                    306:      the old and new point size, each terminated by a return.
                    307:      Each glyph is gotten and changed on the screen visibly.
                    308:      Glyphs are italicized by slanting them to the right at a
                    309:      slope of 1/5.  They are emboldened by smearing them to the
                    310:      right a number if pixels equal to the current heavy pen
                    311:      size.  They are resized with an algorithm which translates
                    312:      all on bits to the new position.  These operations will be
                    313:      considerably faster if the -q option is in effect, since
                    314:      much overhead is involved in the graphic display.
                    315: 
                    316:      _B: Move the base to the cursor.  The cursor is turned on.
                    317: 
                    318:      _C <_f_r_o_m> <_t_o>: Copy the glyph in character <from> to charac-
                    319:      ter <to>. If <from> has a window on the screen, that window
                    320:      is given to <to>.
                    321: 
                    322:      _D <_f_r_o_m> <_t_h_r_o_u_g_h>: Delete a range of characters in the
                    323:      font, from <from> through <through> inclusive.  To delete a
                    324: 
                    325: 
                    326: 
                    327: Printed 7/26/87              4/29/85                           5
                    328: 
                    329: 
                    330: 
                    331: 
                    332: 
                    333: 
                    334: FED(1)             UNIX Programmer's Manual               FED(1)
                    335: 
                    336: 
                    337: 
                    338:      single character type it twice.
                    339: 
                    340:      _E <_f_i_l_e>: Edit the named file.  If changes have been made to
                    341:      the current file, confirmation will be requested. (Either
                    342:      'y' or 'E' is accepted.) The file name is terminated with
                    343:      return.
                    344: 
                    345:      _F <_f_i_r_s_t> <_l_a_s_t>: Show the font on the screen.  The charac-
                    346:      ters in the specified range are shown.  The width values are
                    347:      used to get natural spacing.  The display will remain until
                    348:      another command is typed, at which time the previous display
                    349:      will be redrawn and the new command will be executed.  As a
                    350:      special case, a ``p'' command will print the results of the
                    351:      ``F'' command instead of the previous display.
                    352: 
                    353:      _I <_h/_v>: Invert the current glyph about a horizontal or
                    354:      vertical axis, as indicated by _h or _v.  The axis runs up the
                    355:      center of the window.  The base can be subsequently posi-
                    356:      tioned with the _B command.
                    357: 
                    358:      _K: Kill the current glyph.  All dots are set to blank.  The
                    359:      glyph is not removed from the font.  This is used for
                    360:      redrawing a glyph from scratch or replacing it with another
                    361:      glyph.
                    362: 
                    363:      _M <_f_r_o_m> <_t_o>: Move a glyph from <from> to <to>.  This is
                    364:      just like the copy command but the original is deleted.
                    365: 
                    366:      _N <_f_i_l_e>: Write out the current file, if necessary, and edit
                    367:      the new file specified.  The file name is terminated with
                    368:      return.
                    369: 
                    370:      _P <_f_i_r_s_t> <_l_a_s_t> <_f_i_l_e>: Partial read from a file.  A file
                    371:      and the first and last characters in the range are prompted
                    372:      for.  Characters not in the range are left unmodified, char-
                    373:      acters in the range are handled as in the R command.
                    374: 
                    375:      _Q: Quit the editor, without saving any work.  If changes
                    376:      have been made confirmation will be required (either `Q' or
                    377:      'y' is taken as `yes'.)
                    378: 
                    379:      _R <_f_i_l_e>: Read in the named file on top of the current file.
                    380:      Glyphs are merged wherever possible.  If there is a con-
                    381:      flict, you will be asked whether fed should take the glyph
                    382:      from the file (f) or buffer (b).  Responding with F or B
                    383:      will lock in that mode for the remainder of the read.  The
                    384:      file name is terminated with a return.
                    385: 
                    386:      _T <_t_e_x_t>:
                    387: 
                    388:      Typeset the line of text on the terminal. This is similar
                    389:      to the F command except that the given text is arranged on
                    390: 
                    391: 
                    392: 
                    393: Printed 7/26/87              4/29/85                           6
                    394: 
                    395: 
                    396: 
                    397: 
                    398: 
                    399: 
                    400: FED(1)             UNIX Programmer's Manual               FED(1)
                    401: 
                    402: 
                    403: 
                    404:      the screen, so you can see how some particular combination
                    405:      of characters would look.
                    406: 
                    407:      _V: Toggle whether editing is being done in inverse video
                    408:      mode.
                    409: 
                    410:      _W <_f_i_l_e>: Write the buffer out onto the named file, which is
                    411:      terminated by return.  A null file name means the current
                    412:      file name.
                    413: 
                    414:      _Z_Z: Exit fed.  A write is done, if necessary, followed by a
                    415:      quit.  This is the normal way to leave fed.  The Z must be
                    416:      doubled for compatibility with _v_i.
                    417: 
                    418:      .: Turn on the dot under the cursor.  The cursor is turned
                    419:      off.
                    420: 
                    421:      >: Turn off the dot under the cursor.  The cursor is turned
                    422:      off.
                    423: 
                    424:      # <_c_h_a_r> <_f_i_e_l_d> <_v_a_l_u_e>: Edit a numerical field.     This only
                    425:      makes sense if the glyph has not been gotten (_g or _n) yet,
                    426:      since otherwise the values are taken from window specific
                    427:      things such as the base.  Fed does not do any sanity check-
                    428:      ing, but just substitutes the value input.  Fields are the
                    429:      first letter of any field from the dispatch structure (see
                    430:      vfont(5)), specifically, these fields are _a_d_d_r, _n_b_y_t_e_s,
                    431:      _l_e_f_t, _r_i_g_h_t, _u_p, _d_o_w_n, and _w_i_d_t_h. The number, which may be
                    432:      signed, is terminated by a newline.
                    433: 
                    434: FILES
                    435:      /usr/lib/vfont/*.*
                    436: 
                    437: SEE ALSO
                    438:      vfont(5), vfontinfo(1), vtroff(1), vwidth(1)
                    439: 
                    440: AUTHOR
                    441:      Mark Horton
                    442: 
                    443: BUGS
                    444:      Attempting to use the second 128 characters would be folly.
                    445:      Fed has never been tested on such fonts, and at a bare
                    446:      minimum there would be problems trying to input 8 bit char-
                    447:      acters.
                    448: 
                    449:      The character DEL is interpreted by the tty driver to mean
                    450:      interrupt.  Hence the corresponding glyph cannot be
                    451:      accessed. The _s_t_a_r_t, _s_t_o_p, and _q_u_i_t characters are turned
                    452:      off, but other characters used by the new tty driver must be
                    453:      quoted with ^V.
                    454: 
                    455: 
                    456: 
                    457: 
                    458: 
                    459: Printed 7/26/87              4/29/85                           7
                    460: 
                    461: 
                    462: 
                    463: 
                    464: 
                    465: 
                    466: FED(1)             UNIX Programmer's Manual               FED(1)
                    467: 
                    468: 
                    469: 
                    470:      Changed widths are not copied to the width table used by
                    471:      troff.  This only matters if logical widths are changed, or
                    472:      if glyphs are moved around.  For these cases, _v_w_i_d_t_h(_1) must
                    473:      be used.
                    474: 
                    475:      The artificial operations don't do a very good job.  The
                    476:      quality possible from blowing a font up is in general poor.
                    477:      Italicizing tends to make edges that were previously slanted
                    478:      very ragged.  However, these operations are better than
                    479:      nothing at all and are a reasonable first approximation for
                    480:      hand fixing.
                    481: 
                    482:      The HP 2648 Terminal on which this runs has been stolen.
                    483: 
                    484: 
                    485: 
                    486: 
                    487: 
                    488: 
                    489: 
                    490: 
                    491: 
                    492: 
                    493: 
                    494: 
                    495: 
                    496: 
                    497: 
                    498: 
                    499: 
                    500: 
                    501: 
                    502: 
                    503: 
                    504: 
                    505: 
                    506: 
                    507: 
                    508: 
                    509: 
                    510: 
                    511: 
                    512: 
                    513: 
                    514: 
                    515: 
                    516: 
                    517: 
                    518: 
                    519: 
                    520: 
                    521: 
                    522: 
                    523: 
                    524: 
                    525: Printed 7/26/87              4/29/85                           8
                    526: 
                    527: 
                    528: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.