perm filename EXAMP.DOC[2,TES] blob sn#019979 filedate 1973-01-09 generic text, type T, neo UTF8



STANFORD ARTIFICIAL INTELLIGENCE PROJECT                 January 1973
OPERATING NOTE 70




                                 PUB

                        The Document Compiler



                                 by

                            Larry Tesler



ABSTRACT:

PUB  is  an  advanced  text  justifier  and  page  formatter intended
primarily for use by programmers.  It can automatically number pages,
sections, figures,  footnotes, etc.  and can  print their  numbers in
roman numerals as well as  in digit or letter form.  It  can generate
cross references,  tables of contents,  and indexes.  Page  layout is
flexible,  and  allows  multiple  column  output.    Line  formatting
includes tabs, underlining, superscripts, subscripts,  centering, and
justification.   Macros programmed  in a  SAIL-like string-processing
language can generate text to be printed in the document.  The output
of the compiler is  a file which can  be printed on the  terminal, on
the line printer, or on microfilm.



ACKNOWLEDGMENTS:

Les  Earnest  created  the  concept  of  the  Document  Compiler  and
specified most of its capabilities.

Dan  Swinehart  provided  invaluable advice  and  aid  throughout the
development of PUB.

Russ Taylor programmed the FR-80 preprocessor.

This work  was supported  in part by  the Advanced  Research Projects
Agency of the Department of Defense under Contract SD 183.
SAILON-70                        PUB                           Page i


                          TABLE OF CONTENTS
                          ----- -- --------

SECTION                                                          PAGE



1        INTRODUCTION

              1.1       PURPOSE     .  .  .  .  .  .  .  .  .  .  . 1
              1.2       CAPABILITIES   .  .  .  .  .  .  .  .  .  . 1


         SUBJECT AND COMMAND INDEX  .  .  .  .  .  .  .  .  .  .    I
SAILON-70                        PUB                           Page 1


                              SECTION 1

                            INTRODUCTION




1.1 PURPOSE
    _______


               PUB is a compiler which translates a manuscript into a
                                                    __________
               document.
               ________

               A "manuscript" is an SOS file containing the text of a
               publication interspersed  with control  characters and
               commands.  The function of the compiler is  to arrange
                                              ________
               this text  on formatted pages  under the  direction of
               the control characters and commands.

               Output  is  written  on a  ".DOC"  file  known  as the
               "document".  TYPE, SPOOL  or PRINT it.   Under certain
               conditions, the document can be edited with  TECO (see
               Section  ), but  it is  wiser to  make  corrections in
               the manuscript and then rerun the compiler.

MANUSCRIPT →→→→→→→→ DOCUMENT
           COMPILER



1.2 CAPABILITIES
    ____________


               PUB provides the usual capabilities of a  simple text-
               justifier, including:

>Page numbering
>Optional justification to the right margin
>Centering of titles
>Headings and footings
>Control of Spacing and Indentation
>Underlining

               In  addition,   it  features   advanced  documentation
               capabilities, such as:




                              1.1 - 1.2
Page 2                      INTRODUCTION                    SAILON-70


>Columnar output
>Footnote placement
>Macros
>Index Generation
>Table of contents generation
>Cross-reference to a variable target
>Automatic numbering of equations, tables, notes, etc
>Supersripts and Subscripts
>Microfilm Output

               The  command  language  is a  dialect  of  SAIL Algol,
               providing the user with:

>Block structure
>Conditional command execution
>Conditional text inclusion
>Arithmetic and String calculations
>Embedded Source Files































                                 1.2
SAILON-70                        PUB                           Page I


                      SUBJECT AND COMMAND INDEX

                  (References are to Page numbers)


CAPABILITIES  1	

document  1

INTRODUCTION  1	

manuscript  1

PURPOSE  1