Documentation for FPRINT - Fancy Print Formatter A Christopher Hall April 1984 FPRINT formats text for output to an LA50, LA100 or LA34 with the extended logic option. The input text can come either from a file or be typed in by hand. FPRINT uses fonts generated by the MAKFNT program, and outputs a file (FPRINT.TXT) containing the sequences which draw those characters on the printer. FPRINT also knows how to do text justification, centering, and other document-formatting operations.Don't forget to align the printer forms - FPRINT uses Formfeed to skip to the next page. RUNNING FPRINT Type "FPRINT". You will get a "*" prompt. The first thing you must do is read in some font file (described with the directives below). Then you can type lines of text, issue directives to change the formatting or control the action. When you are done, type Control-Z CRLF. FPRINT will ask if you want the output sent to the printer now; answer "Y" or "N". In either case, the output will be in the file FPRINT.TXT. You can send FPRINT.TXT to the printer with PIP or some such program. Be advised that it takes quite a while to print the file -- every character of your text needs 20 to 100 ASCII characters to draw it. Although FPRINT now allows to build "multiple page files", its advisable to create single-page control-files first - "debugging" the layout will be easier. You can also run FPRINT by typing "FPRINT FILESPEC". Then rather than prompt for commands FPRINT will immediately read and process the file FILESPEC. When it's done it will pretend a Control-Z was typed and will immediately start printing. You still can use the generated file FPRINT.TXT to "print" again using PIP or SWEEP. Note that the file FILESPEC must contain the directive to read the font file (as well as other directives), since you don't get a chance to type that information in yourself. THE FONTS A number of fonts are supplied with the FPRINT/MAKFNT package. They come in three sizes: 12, 18, and 24 printer-dots high. I've lapsed into the habit of calling printer-dots "points"; they're actually a little smaller than a point (1/72 inch). The supplied fonts are described below. It's easy to make more (especially if you can bash up one of these fonts); see the documentation for MAKFNT. You can make larger or smaller fonts, as long as the height is a multiple of 6. However, 6 points is pretty tiny, and unless your terminal screen has more than 24 lines, MAKFNT will have trouble editing a greater-than-24 point font. In all cases, the name of the font file is the font name followed by one of the sizes, such as ASCII12 or GOTHB4. The font file type is FONT SIZE(S) DESCRIPTION ASCII 12 Plain ol' characters (too small to be fancy) ROMAN 18, 24 Serifs. Book-like type. ITALIC 18, 24 Serifs and slanted forward. GOTH 18, 24 Gothic: Sans-serif. Block characters. GOTHB 18, 24 Gothic Bold: Sans-serif; thicker than GOTH. COPR 18, 24 Copperplate Gothic. Very small serifs. CIRCUS 24 Gothic, thick at top and bottom; like a circus sign or an old western wanted poster. DIRECTIVES Directives tell FPRINT to read font files or text files, change fonts, set formatting parameters like line and character spacing, or tabs, and change formatting techniques like justification and centering. All directives begin with "." and must be preceded and followed by a space or a CRLF. Directives can appear anywhere on the line, mingled with text or other directives. In the descriptions below, "n" means a decimal number, "c" is a character, and "f" is a filespec string. Also, there are two types of "spaces:" a "space" is a character from some font. It's used, for example, to separate words. A "microspace" is the room occupied by a single dot typed by one wire of the printer. Space is made up of many microspaces. Directives which are in effect at startup are marked "Default." The directives are: that font until another .A directive is encountered. The mnemonic is for "set Alternate font". The default font is 1. See also .Fn. obvious, but see .NB. Default. only one line, so you have to type ".C" before every line you want centered. in before any text is processed. FPRINT can hold up to 5 different fonts at a time. You may read fonts at any time; the old font, if there is one, will be replaced by the new one. Note: reading a font does not make it current; you may also need an .An. (either fill or no-fill) and have a non-zero left margin, then when FPRINT wants to output a new paragraph it will put "c" at the margin of the first line. This would be used to indent a paragraph and start it with a "bullet". If "c" is the letter "N" then the paragraphs will be numbered consecutively, starting with 1. The number and a period will be output at the margin (Restriction: FPRINT only understands single digits now, so don't use this with more than 9 paragraphs). To cancel the Header, use .NH. ragged. Type a blank line to end a paragraph. .NJ stops the justifying. See also paragraph indent (.Pn), blank line outputting (.B and .NB), left margin (.Mn), and Justify Header (.JHc). right margin is made straight. blank line is six micro-dots high (so in general it's much smaller than the height of the text). The default value is carried with each font, and varies. The usual value is 1. 0 is illegal. microspaces which precedes each line. Default: 0. line is typed. A blank line ends the current paragraph, however it's not always desirable to have the blank line appear in the output. in. Default. .NTS, .TSn, and .TB. indent. are output between each character. A wider value gives "extended" text; a narrower one makes the text look "condensed." The default value is carried with each font, and varies. character (Octal 11) is found in the text. The tab settings must previously have been set up using .TSn commands. with an 8 1/2 inch piece of paper. A NOTE ABOUT MEMORY Fonts can take up to 10K bytes of memory each, and FPRINT is rather large too. The program is smart about shuffling its freespace around to accommodate as many fonts as possible, but if memory is limited and you try to read too many large fonts at once, you might get an error message saying there is no more room to fit another font. For example, on my 64K system, I can read all five 18-point fonts, but three or four 24-point fonts will fill up memory. Trying to read a fourth or fifth 24-pointer will fail. When that happens, everything is O.K., except that the latest font has not been read. If I really want that font, I then have to get rid of one of the other fonts (by reading the new font over it). That's a bit of a pain, but there's no other option. When you're out of memory, you're out of memory.