01/30/87 compose, comp Syntax as a command: comp paths {-control_args} Function: prepares formatted documents from raw text segments for production on various documentation devices including typesetters, line printers, and user terminals. Output pages are composed from various text blocks and controls provided in input files. Detailed control over page composition is provided by controls in the input file. Arguments: paths are the pathnames of the input files to be formatted. The suffix compin must be the last component of the input file entryname; however, the suffix need not be given in the command line. If two or more pathnames are specified, they are treated as if compose had been invoked separately for each. Up to 200 input files may be given with one invocation of the command. Output is produced in the order in which the pathnames are given in the command line. Input files may be either single segments or multisegment files. Output files for very large documents are converted to multisegment files. The star convention is not supported. Control arguments: all control arguments specified in the command line apply to all input file pathnames given. Control arguments may be freely intermixed with input file pathnames, except for -arguments which must be last in the command line. -annotate {key key key ...}, -ann {key key key ...} shows all font/pointsize changes identified by the optional key (where key may only be "font" at the present time) in an extra column to the right of the formatted text and at the output line in which they occur. The style of a typeset document usually calls for a large number of font/pointsize changes to improve readability. However, when one is limited to a terminal and/or lineprinter for early checkout of the documents, it is very difficult to determine if the changes are all being made correctly. -arguments arg1 ... argn, -ag arg1 ... argn all fields following are string values to be placed in the indefinite set of program built-in variables named "CommandArg1" through "CommandArgn" where "n" is the count of such fields. The program built-in variable "CommandArgCount" is set to "n". If any argument is to contain blanks, it must be given as a quoted string. NOTE: This control argument, if given, must be the last control argument in the command line. -brief, -bf shows only the header line of the defined error line (i.e., the count of errors), both at normal termination and in response to the program_interrupt command. -change_bars {x,p,l,r,d}, -cb {x,p,l,r,d} generates text change symbols in the output according to the parameters given. Change symbols are shown in the text margins as determined by controls in the text. (The default for change symbol generation is OFF.) All the parameters for this control argument are optional but, if any are given, they must appear in the order shown. If any parameter is skipped, its separating comma must still be given. Skipped parameters retain their default values. The parameters are: x a change level character. If the optional change level character in any change-bar control is less than x (in the ASCII collating sequence sense), then no text change symbols are inserted for those controls. The x character may be either numeric or alphabetic. (The default value for x is the SP (ASCII code 040) character.) p a symbol placement key character. It may have the values "l" for left margin, "r" for right margin, "i" for inside margin, or "o" for outside margin. (The default for p is "o".) l the definition of the text change symbol to be placed to the left of text. It must be of the form n{string} where string is any character string and n is the separation from the text. (The default value for string is a vertical bar (|) and the default value for n is 1. The n may be given without string, but string may not be given without n.) r the definition of the text change symbol to be placed to the right of text. It must be of the same form as l above. d the definition of the text deletion symbol. It must be of the same form as l above except that the default for string is the asterisk (*). -change_bars_art {x,p,l,r,d}, -cba {x,p,l,r,d} as for -change_bars above except that the strings in the l, r, and d fields may be given as conventional artwork symbols. (The default values for the strings are also artwork symbols.) -check, -ck performs syntax checking on the input file(s) by processing all text and controls but does not produce any output. (The default for this feature is OFF.) -device {name}, -dv {name} prepares output compatible with the device specified. This control argument is used when the target device for output is not the default device for the output mode selected. (If the -output_file control argument is given, the default device is "printer"; if it is not, the default device is "ascii".) Any device for which name.comp_dsm exists is a supported device. NOTE: A list of supported devices is available online. To examine the list, type: list_comp_dsm (lcdsm) -from {n}, -fm {n} starts printed output at page n. This control argument is mutually exclusive with the -pages control argument. You must give the desired structured page number; for example, to print the fourth page of Section 3, you must give "-page 3-4". (The default value of n is 1.) -galley {n1}{,n2}, -gl {n1}{,n2} produces galley format (continuous single-column text without page headers and footers) output for lines n1 through n2 of the input file. (The default value of n1 is 1 and the default value for n2 is the last line in the input file.) If n2 is not given, the comma need not be given. If n1 is not given, a comma must precede a given value for n2. (The default for this feature is OFF.) -hyphenate {n}, -hyph {n}, -hph {n} changes the default hyphenation mode from OFF to ON. The optional parameter n is the length of the smallest separated word part. (The default value of n is 2.) -indent {n}, -ind {n} adds n spaces at the left page margin of the output. This space is in addition to any indention given in the text. (The default value of n is 0, that is, at the left-hand mechanical stop of the output device.) -input_file path, -if path the name of an input file even though path may have the appearance of a numeric parameter or a control argument. -linespace {n}, -ls {n} changes the default line spacing value to n. The linespace control uses n as a minimum value. (The default value for n is 1.) -noart, -noa disables the conversion of conventional artwork constructs and inserts space into the output at the positions that such constructs would occupy. (The default for the artwork conversion feature is ON.) -nobell, -nob suppresses the audible BELL signal when signalling the "waiting" state to the user when the -stop or -wait control argument is used. -nofill, -nof sets the default fill mode to OFF. (The default fill mode is ON.) -number, -nb prints input line numbers at the left margin of the output. The line numbers have the form "i n" where i is the index number of an inserted file. A list of inserted files showing the index numbers is written on user_output after completion of all text processing. (The default for this feature is OFF.) -number_append, -nba same as for -number above except that the insert file list is appended to the compout file (if any), starting with a new page. -number_brief, -nbb prints input line numbers at the left margin of the output as for the -number control argument but the list of inserted files is not produced. -output_file {path}, -of {path} directs the formatted output to a file instead of to the user's terminal. The assumed output device is the Multics online printer but may be changed with the -device control argument. If path is not given, then the output for all given input files is written to individual output files whose names are formed by replacing the suffix compin of the input file entrynames with the suffix compout. If path is given, then output for all given input files is accumulated in that single bulk output file. (The default for this feature is OFF; that is, formatted output is written back to the user's terminal.) -pages page_list, -pgs page_list specifies a blank-separated list of selected pages to be printed. Each element in the page_list must be either a single page, n, or a range of pages, n,n, where n is a structured page number as for -from above. The page numbers given must steadily increase without duplication. At least one page must be specified and up to 100 list elements may be given. This control argument is mutually exclusive with the -from and -to control arguments. (The default for this feature is OFF.) NOTE: Page number structures containing parentheses are changed by the command processor and must be given as quoted strings. -pages_changed {x}, -pgc {x} specifies that, of the pages selected for printing (either all pages or some subset of pages selected through use of the -pages, -from and -to control arguments), only those pages containing text within the range of an active change-bar control or within the scope of the dot_page documentation macro are actually printed. The base pages of the dot page set (for example, page 3 of the set 3, 3.1, 3.2) are not considered part of the dot page set. This control argument is independent of the -change_bars and -change_bars_art control arguments, either of which must be given to cause the text change marks to be created. The optional parameter x chooses the change bar level and must match the x parameter given with -change_bars for proper operation. (The default value for x is SP (ASCII 040) and chooses all active change levels.) -parameter {STR}, -pm {STR} assigns STR as the value of the built-in variable "Parameter". (The default value for STR is an empty string.) -passes n, -pass n processes the input file n times to permit proper evaluation of expressions containing variables that are defined following their reference(s) in the text. No output is produced until the last pass. (The default value for n is 1.) -stop, -sp waits for a newline character (ASCII code 012) from the user before beginning each page of output and after the last page. The pause is signalled by giving two BEL/HT sequences and returning the print head to the left margin. If only a newline is typed, the next page is printed. If a q is typed, the command invocation is terminated gracefully. If an r is typed, the page just printed is reprinted. (The default for this feature is OFF.) -to n ends output after the page numbered n where n is a structured page number as for the -from control argument above. This control argument is mutually exclusive with the -pages control argument. (The default value for n is the last page.) -wait, -wt waits for a newline character (ASCII code 012) before beginning the first page of output to the terminal, but not between pages (see the -stop control argument above). (The default for this feature is OFF.) Notes: The program supports the severity active function with the following severity schedule: 0 - No errors 2 - User errors (undefined variables, misspellings, invalid control parameters, etc.) that prevent specific actions 3 - Missing/inaccessible insert files 4 - Program errors/limitations and/or internal inconsistencies that may cause a formatter abort 5 - Command line errors that prevent any execution The compose command directly supports the facility to change print wheels on "diablo" type terminals during printing of a document. The standard device modules for "diablo" terminals assign print wheels as follows: Diablo Index Order# Name 1 38101-01 PICA 10 (or equivalent 10-pitch wheel) 2 38510 APL 10 3 38102-01 ELITE 12 (or equivalent 12-pitch wheel) Type "help compose.controls" for a summary of compose controls and "help compose.builtins" for a list of builtin variables. Type "help convert_runoff" for information on converting runoff input files. Type "help compose.artwork.gi" for information on constructing artwork.gi within compose. ----------------------------------------------------------- Historical Background This edition of the Multics software materials and documentation is provided and donated to Massachusetts Institute of Technology by Group BULL including BULL HN Information Systems Inc. as a contribution to computer science knowledge. This donation is made also to give evidence of the common contributions of Massachusetts Institute of Technology, Bell Laboratories, General Electric, Honeywell Information Systems Inc., Honeywell BULL Inc., Groupe BULL and BULL HN Information Systems Inc. to the development of this operating system. Multics development was initiated by Massachusetts Institute of Technology Project MAC (1963-1970), renamed the MIT Laboratory for Computer Science and Artificial Intelligence in the mid 1970s, under the leadership of Professor Fernando Jose Corbato. Users consider that Multics provided the best software architecture for managing computer hardware properly and for executing programs. Many subsequent operating systems incorporated Multics principles. Multics was distributed in 1975 to 2000 by Group Bull in Europe , and in the U.S. by Bull HN Information Systems Inc., as successor in interest by change in name only to Honeywell Bull Inc. and Honeywell Information Systems Inc. . ----------------------------------------------------------- Permission to use, copy, modify, and distribute these programs and their documentation for any purpose and without fee is hereby granted,provided that the below copyright notice and historical background appear in all copies and that both the copyright notice and historical background and this permission notice appear in supporting documentation, and that the names of MIT, HIS, BULL or BULL HN not be used in advertising or publicity pertaining to distribution of the programs without specific prior written permission. Copyright 1972 by Massachusetts Institute of Technology and Honeywell Information Systems Inc. Copyright 2006 by BULL HN Information Systems Inc. Copyright 2006 by Bull SAS All Rights Reserved