|
|
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:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.