Annotation of 43BSDTahoe/old/man/fed.0, revision 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.