\space-caps 3 \punctuation-factor 4 \concatenate \justify \adjust 3/4"\llength 13/2" \* \font B:Memphis\font B:Stymie\f1 \$kernpairs WAAWVAAVAYYATAATLTLV--fffffor.r, \attach \* \dot-character \use-braces \* {..} will mark off a print mode \{\italic\emphasized\} \* and make that mode italic & emphasized \bold \* Add a little space after emphasized char's \* the title \center\{\tall\expanded\emphasized Using EP} \paragraph-indent 3 \paragraph-spacing 0 \* Define some convenient macros: \* s - Section headings \s$ \pp\skip\undent 3\up-case\$\uc0 . \. \* h - Major headings \h$ \skip 2\char-height +2p\center\tall{\$}\char-height -1p\skip \* x - Start a text example \x$ \sk 6p\co0\ju0\use-brc0\cw 20.\f2\ec # \* z - End a text example \z$ #ec \\sk 6p\co\ju\f1\use-braces\{\italic\emphasized\}\cw0 \* u - Do line in upper case \u$ \uc\$\uc0\. \s Getting started Use your editor to make a text file, add some EP commands, and have EP print it. All the lines in the file should start clear at the left of the screen, except where you want a new paragraph to start -- then add some spaces at the beginning. An empty line will also start a new paragraph. A typical set of EP commands to put at the beginning of your file would be: \x \ adjust 1" \ line-length 6" \concatenate \justify \ font Times-Roman #z Then, to get the printout, tell \u cpm: A>ep trial.txt \br or whatever, depending on what name you gave the file. Well, that's it. Now here is an explanation of what those commands accomplish. The {adjust} command sets the left margin in 1 inch to the right of the left-most position of the Epson's print-head. This is going to be a little more than 1 inch from the left edge of the paper, probably by 1/4 of an inch. The {line-length} command sets the length for lines, and implicitly sets the right margin to the position 6 inches to the right of the left margin. So you should get an inch and a quarter of white space at the left and the right of 8 1/2 inch wide paper. {Concatenate} requests EP to reform paragraphs by moving words up from lower lines so as to put as many words as possible into each printed line. {Justify} gets you right justification; without the justify command you'd get ragged right. Finally, the {font} command asks to use the font whose character shapes are stored in the disk file \u {timeroma.fn2}, which must be present on the disk in the default drive for the command to work. You'll notice some disparity between the name given after {font} and the actual name of the disk file. EP does some abbreviation here. If this makes you uncomfortable, you can always use the real file name by giving the command as \\font \u timeroma.fn2 \br if you like. If you actually printed something out, you'll have noticed that a top and bottom margin was left on each page, and page numbers were put in the bottom margins. EP set the top and bottom margins at 1 inch each, and \it{assumed} that you started printing with the printhead at the top margin. If you did, then the margins should indeed be one inch. \s Another style Perhaps it's premature here to talk about alternate ways of doing things, but all the same, if you've used other formatting programs, the following alternative way of giving the above sample set of commands may seem more familiar: \x #z These commands have exactly the same effect as the earlier ones, and there is a mechanical relationship between the two styles (which will be described a little later). \s At the console As the formatting and printing proceeds, an approximation of what is being printed is displayed on the console screen. It's a very rough approximation, with the ends of lines truncated and other crudities, so please don't think the print will look as bad as this. It does give an idea of where you are in the input file, and sometimes you may wish to let EP have a go at the file without actually printing it, to catch major formatting errors. Depending on how your printing interface is set up, just turning off the printer might work for this, but if this makes your system ``hang'' you can temporarily insert into the file a command {\\beginning-page 10000} to prevent printing. EP is a batching program -- not interactive. It does however understand the usual CPM conventions: ^S for ``wait 'til I hit another key'', and ^C for ``quit, abort, return to the system''. There are also commands available to build in to your text some user interaction. See the {put-terminal} and {get-terminal} commands described in EPREF.DOC. \h Implicit Commands There are several ways to get the effects of EP commands without having them in the text. This can make the preparation of documents a little less trying, and the text file will be easier to read and modify if it's not cluttered up with formatting commands. \s Leading blanks A space character or a tab at the beginning of an input text line is a ``leading blank''. A leading blank causes a break, and a break finishes a paragraph. When {concatenation} (or {fill}) is turned on, a break causes the next word to be put on a new output line, and when {justification} is turned on, the last line is considered to be the last line of a paragraph and so is not justified. An explicit command {break} does this too, but you will seldom need to resort to this. Another special convention associated with leading blanks is this: each leading blank space indents the following text by one column, i.e. 1/10 of an inch. What's so special about that? Well, when you're using proportionally spaced fonts, the width of a space will not usually be 1/10" and will differ from font to font. But it is convenient to use blanks to indent paragraphs or examples and be able to count on getting the same indentation no matter what font happens to be in use. The explicit command for this is {indent-line.} \s Tabs For many CPM editors, a tab character means: advance to the next column which is divisible by 8, i.e. the next tab stop. This is also EP's understanding. For instance, if you start a line with a tab, then the following text is indented by 8/10 of an inch in the printout. However, there is a little problem here about what ``next'' should mean in the above statement. Proportionally spaced characters are on the average less than 1/10" wide, so you could be past a tab stop on the screen when you are editing the file, but not past it so far as the printout goes. So that you will be able to predict what effect a tab will have, EP looks at it from your viewpoint. If you used three tabs interspersed with text, for example, to get over to the 24th column on the screen, then the text after the third tab will be printed starting at the 24th column, also. That is, it will start 2.4 inches in from the left margin, as established by the {left-margin} command. Now here is an additional note about leading blanks. Space characters after a tab count as ``leading'', so each moves you over 1/10" in the printout regardless of the font you're using. To extend the above example, you could get to column 26 by putting two spaces after the third tab. This method of using tabs for columnar alignment will not necessarily give the most pleasing results, and EP provides several alternatives, however they are all more trouble to use. And note that the tab character referred to in the preceding discussion is a real tab -- a control-I in the input text file. If you use WordStar in ``document'' mode, the tab key does not give a tab character, but just some spaces, and EP will have no means of telling that a tab was intended. \s Blank lines A line with nothing on it in the input text file is a signal for EP to start a new paragraph. Ordinarily this means ending the last paragraph (i.e. a blank line causes a break) and skipping down one line in the printout. A line ``with nothing on it'' here means one that appears empty when you are editing. It could have spaces or tabs on it, but it still counts as blank. At the cost of a few introductory commands, other actions can be triggered by blank lines. See the section on Paragraphs in EPREF.DOC. ``{Hanging-indent}'' is especially useful for formatting bibliographies. \s Braces The left and right braces are usually just printed, but if you choose, you can set things up so that braces have a special significance. This is useful for the common situation where a document requires only two fonts or print modes, primarily. Say you just want some words or phrases in italic, and you don't need to print any braces. Then braces can be used to enclose the italic portions of text after you've inserted the following two commands: \x \use-braces \{\italic\} #z This associates the italic mode with braces. Now braces will not be printed, but instead a left brace will turn on italicization and a right brace will turn it off. By following a similar procedure, any font together with any combination of print modes can be associated with braces. \s Control characters An economical way of issuing a whole set of EP commands which must often be used together is to define a macro command. In turn, macro commands can be associated with any of those control characters that are not required for some other use (like CR, e.g.). Without going into detail at this point on the use of macros, I will just give an example which defines ^U as an underline toggle. Since other printing programs sometimes use ^U this way, you might be able to save yourself the trouble of a lot of reediting of old text files which assume such a convention. \x \u$ \xu+\if xu>1 {\xu 0}\under-line = xu\. #z Bolding, alternate character spacing, and so on, could be handled similarly. \h Syntax of Commands An embedded command consists of an escape character, followed by a command ``word'', and then, in some cases, a numerical argument or text enclosed in braces. Spaces and tabs after `\\', after the command word or a numerical argument are not printed. The escape character is either a dot `.' at the very beginning of a line, or else a backslash `\\', which can occur anywhere in the line. A command word is either one or two characters long, and in most cases the character are both alphabetic letters (where the `$' counts as alphabetic). When this is so, it doesn't matter whether the letters are upper or lower case, and the command word can alternatively be written in a long form, in which the above two letters are the first two of the word, or the first letters of each part of a compound word. E.g., the following all have the same effect: \x \pl 11" \PLENGTH 11" \page-length 11" \Piranha-logo 11" #z \s The \\font command This command has as its argument the name of a file which has letter font data. At most the first 8 characters of the name are used, and the file extension is supplied. The following would both load in the data of the disk file CRAWMODE.FN2: \x \fo crawmode \font CrawModern #z For easier reading, compound names can be used for fonts. In this case the actual filename will be made up of letters taken from each part of the compound. Expressed schematically, the rule is (4_to 8)-(2_to 4)-(1_to 2)_...-1, meaning that for the first part, the beginning letters to a maximum of 4 are extracted or, if there is no subsequent part to the compound, to a maximum of 8, and so on. Here are some examples: Venus-Bold refers to file VENUBOLD.FN2 Venus-Title refers to file VENUTITL.FN2 Venus-Bold-Title refers to file VENUBOTI.FN2 Venus-Bold-Condensed-Title would refer to file VENUBOCT.FN2 Venus-Bold-Extra-Condensed-Title would refer to file VENUBOET.FN2 After the name may come, optionally, braces surrounding text that is to be printed using the named font, following which the font previously in use will be restored. Instead of the name of a font, a number can be used. Number 0 refers to the Epson built-in font, and 1-7 refer to previously referenced letter fonts, in the order in which they were referred to. Although any number of fonts may be used in a document, if more than 7 are used, one must take special care, since EP sees all those after the 6th as having the same number, \italic {viz.} 7. Since the font of a character is internally encoded by number, when it is time to print an output line, the last font referenced after the 6th is used for all ``number 7'' characters. A consequence of this is that characters from the 7th and 8th fonts, e.g., can not be together on the same output line. The order in which fonts are referred to also has significance in case a letter font file does not have definitions for all characters (you might want a set of superscript numbers or swash capitals, for instance). When EP finds that a character is undefined, it searches lower numbered fonts for a character to replace it. \s Numeric Arguments Many EP commands have a numeric argument. E.g. {\\line-length 60} sets the line length to a value of 60. But 60 what? Since the widths of characters differ from each other and also differ from font to font, and not all commands refer to widths, the conventions for interpreting numbers after commands have to be somewhat involved. In this particular case, the `60' would mean 60 columns, where a column is reckoned to be 1/10 of an inch, thus, 6 inches. In the case of other commands, such as `{\\font}' which selects a letter font by number, a similar interpretation would not be appropriate. So here are the conventions used. Numeric arguments are interpreted in one of four different ways, and in the list of commands given in EPREF, these interpretations are symbolized by `n', `b', `h', `v'. The `n' means ``plain old number'', as for example the number of a letter font after `{\\font}'. The `b' means Boolean; i.e. an ``on'' versus ``off'' value. For the Boolean arguments, `0' means ``off'' and `1' means ``on''. Whenever a command takes a numerical argument but none is given, the value `1' is assumed. The `h' and `v' mean ``horizontal measure'' and ``vertical measure'', respectively. There is a choice about how to give these measures -- they can be given in terms of dots, points, inches, columns, or lines. Unless the number is followed by a special symbol, columns is assumed for horizontal measures and lines for vertical measures. If the number is followed by a dot `.', this means ``dots''; `p' or `P' means points; double-quote `"' means ``inches''. So {\\ad 2"} would mean ``set the adjust value (the left margin) to 2 inches''. The measures are related to one another in the following ways: 1 point = 3 dots, 1 column = 8 points, 1 inch = 10 columns as a horizontal measure, but 1 inch = 72 points as a vertical measure. \br Thus, a horizontal dot is 1/240th of an inch, which corresponds to the maximum horizontal dot-density on the FX-80, and a vertical dot is 1/216th of an inch, which corresponds to the maximum vertical dot-density. The height of a line is the character height plus the space left between lines -- the `leading'. The letter font characters are 8 points high unless the `{\\character-height}' command has been used to assign a different nominal value. When {character-height} has its default value of 8 points, the height of a line is this 8 points plus the leading, however that has been set using the `{\\leading}' command (the default is 2 points, giving a line height of 10 points). \h Multiple Columns The multiple column facility is probably not usable for running text without the use of the preprocessing program EPMC. It may be of direct use for some simple charts. Here are the commands for a little 3 column figure: \x \ center Horse-Kick Deaths \skip \ gutter 4 \ numberof-columns 3 Year 1862 \break 21\break 0.15 % Years 1863-65\break 85\break 0.18 % Year 1866 \break 8\break 0.03 % \ numberof-columns 1 \skip \ center figure 12. #z In printing the above, the line is split into 3 equal width columns separated by 4/10" of white space, a ``gutter''. There is no method provided for selecting the positions or widths of the columns independently of one another, although some adjustments can be made using the {indent} command (see below). In general, after setting the {gutter} width between columns, multiple column printing begins when the number of columns is set to some value greater than 1 and ends when it is set to a value less than 2 (\it{i.e.,} 0 and 1 are equivalent). In multiple column mode, when EP comes to what would ordinarily be a new output line, the line is instead placed in the next column. Until, that is, each column is filled and it is time to start a new line. EP cannot do concatenation in multiple column mode. Unless you use {break} commands, as I did in the above example, each line of each column will correspond to an input line with some printable text on it (i.e. not consisting entirely of commands). It is convenient to split up the input lines with {break}'s, because if you don't, then what reads downward in the text file will read across the columns. (The preprocessor EPMC allows concatenation and changes things so that text will read down the columns.) During multiple column formatting, the sense of some commands is reoriented toward the output column. To illustrate, I will repeat the above example in a slightly elaborated form. \x \center Horse-Kick Deaths \skip \gutter 4 \{ \numberof-columns 3 \emphasized \ce Year 1862 \break\ra 21\in 32p\ital\. 0.15 % \ce Years 1863-65\break\ra 85\break 0.18 % \ce Year 1866 \break\ra 8\break 0.03 % \numberof-columns 1 }\in 0 \skip \center figure 12. #z Now, due to the {center} commands, the entries in the first column will be centered \ital{within this column.} In the second column, the numbers will be right adjusted to the end of their own column, and in the third column, each percentage is moved over 32 points from where the column starts by the {indent} command. The {indent} affects only the third column. The two print mode commands in the example affect only a single column. Since the {emphasized} command was encountered when EP was processing text destined for the first column, this entire column will be emphasized, but the other two columns will be unaffected. Similarly, the material in the third column will be italicized, but not that in the first two columns. The print mode commands and the {indent} command will affect following single-column text -- their effect is local to a column but not local to multiple column mode. This is the reason for the `{\\\(123)}' and the `{\\in 0}' in the example. The commands that behave this way in multiple column mode are the Line Format commands {justify, center, right-adjust, co-lumn,} indentation commands, and all print mode commands. {Ta-b} commands work relative to the beginning of a column, but there is only one set of tab stops for all the columns. Text blocks, also, run up and down the columns. Commands that change the height of characters or the space between lines will affect all columns, since EP prints an entire row of columns at once.