Document Formatting Systems: Survey, Concepts, and Issues
Figure 3. Document description for RUNOFF to produce the document of Figure 2. Command lines begin with a period (.). The other hnes are text lines. Since there was no significant blank character m RUNOFF (unpaddable space character), " .nojust" is invoked before the itemized listing to prevent extra spaces from being inserted into the lines. Filling of lines continues. ".adjust" restores justification. " . indent" resets the left margin, " .undent" decreases the ". indent" for the one line following. The underlined word in the next to last paragraph would have to be produced by the editor (TYPSET) before runmng RUNOFF since RUNOFF did not have facilities for underlining. crete document was viewed on a line printer with uppercase and lowercase letters. Again, as with RUNOFF, many commands manipulate concrete page-oriented physical objects: groups of lines (filling, justification, defining length) and pages (breakup, numbering, defining height, multiple columnation, specifying headers and footers). Others, however, address more logical, content-oriented, objects: words (producing alphabetical listing of words used), phrases (underlining, centering, capitalizing, horizontal spacing between sentences), and paragraphs (indenting, placing blank lines between paragraphs, eliminating widows). Unlike the treatment of characters in RUNOFF, FORMAT's operations may apply to individual characters (specifying case, overprinting). Horizontal spacing commands (tabbing) as well as vertical spacing commands are also provided. Figure 4 presents the document of Figure 2 specified for processing by FORMAT. Three types of commands are present. The character-level commands are reserved characters that appear in the text but have special meanings. Phrase-level commands are single letters that may be grouped together. A group of phrase-level commands is preceded by the escape character ")" and terminated by a blank. Some phrase-level commands specify a particular action (e.g., terminating the current line), and others act as toggles (i.e., the first use starts an action, the next terminates it). The third type of command, the paragraph-level command, does not cause immediate formatting actions but establishes values for the general attributes of the document, for example, the left margin position, the page length, or the meaning associated with special characters. Computing Surveys, Vol. 14, No. 3, September 1982 Document Formatting Systems • 425 )v INDENTATION OF COLUMNS ON LEFT AND RIGHT IS ( 0 , 0 ) , ( B . 0 ) PARAGRAPH INDENT IS 0 PRINT POSITIONS SEPARATION LINES BETWEEN PARAGRAPHS ARE 1 TABS ARE SET AT RELATIVE COLUMN POSITIONS 5 NONTRIVIAL BLANK IS REPRESENTED BY SFECIAL CHARACTER 44 (# ) GO )Me CALL FOR PAPERS )MCLLP CTHE AIM OF THIS CONFERENCE IS TO SURVEY THE STATE OF THE ART OF COMPUTER AIDS FOR DOCUMENT PREPARATION. )P CPAPERS ARE SOLICITED ON )LLH2W1 ##)T ¢PICTURE EDITING )HLLH2W1 ##)T ¢TEXT PROCESSING )HLLH2W2 ##)T ¢ALGORITHMS AND SOFTWARE FOR DOCUMENT PREPARATION AND OTHER RELATED TOPICS. )HP ¢DETAILED ABSTRACTS SHOULD NOT EXCEED FIVE PAGES; THEY )U MUST )U BE SENT BEFOR E ¢OCTOBER 31, 1980 TO THE CPROGRAM ¢CHAIRMAN. ¢SELECTED AUTHORS WILL BE NOTIFIE D BY ¢NOVEMBER 30. )P CDURATION OF ONE PRESENTATION WILL BE OF EITHER 25 OR 45 M INUTES. Figure 4. Document description for FORMAT to produce the document of Figure 2. The lines following the ")V" until the line containing GO are paragraph-level commands, defining global attributes which hold until they are reset. Each symbol within the text following the escape symbol ")"and preceding the next blank is a phrase-level command which has a more limited scope of action. Some, such as ")P", the begin paragraph command, and ")L", the terminate current line command, have an immediate effect. Others, such as ")M", center phrase, and ")¢ ", capitalize phrase, serve as toggles. The first appearance turns the action on, the next turns the action back off. Character-level commands, represented by special symbols (¢, capitalize next character, and #, significant blank, in this document) affect the next character only. Notice that ¢ is both a phrase-level and a character-level command. Input is expected to come from cards. Characters are converted to lower case unless a "capitalize" command is in effect. The end of a line has no special significance within the input. No macro facility is provided and it is not possible to modify the actions of par t icular commands . I t is possible to redefine the reserved charac te rs t ha t invoke various characterlevel commands . Arguments , when present , are literals. No expressions or var iables are allowed. T h e t r e a t m e n t of the documen t descript ion as one long string of charac ters makes direct correct ion of the descript ion extraordinarily difficult. For example, ending a word in column 80 of a card requires leaving column 1 of the next card blank. Therefore , one mus t use the associated editor to effect any changes. Fur ther , the documen t description is difficult to read as it reflects so little of the s t ructure of the document . Some rud imen ta ry features are provided to help handle some of the more rout ine writing tasks, in part icular , the paragraphleve l c o m m a n d D I C T I O N A R Y which produces an a lphabet ized list of the words used in the document . In this paper, features of this kind are collectively known as writer's workbench features. (The t e rm "wri ter ' s workbench" was inspired by E. Ivie ' s " P r o g r a m m e r ' s Workbench" [IvIE77, REID80a, CHER81].) Clearly this is an ear ly system, inflexible and low level in na ture b y today ' s s tandards; for example, to produce t en b lank lines, one m u s t en te r " ) L L L L L L L L L L L " . T h e style of input has been designed to use the entire punched card, no t for readabi l i ty