{ @Reference
     @Tag { knuth1984tex }
     @Type { Book }
     @Author { Donald E. Knuth }
     @Title { The {@TeX}Book }
     @Publisher { Addison-Wesley }
     @Year { 1984 }
}

{ @Reference
     @Tag { adobe1990ps }
     @Type { Book }
     @Author { Adobe Systems, Inc. }
     @Title { PostScript Language Reference Manual, Second Edition }
     @Publisher { Addison-Wesley }
     @Year { 1990 }
}

{ @Reference
     @Tag { jensen1975pascal }
     @Type { Book }
     @Author { K. Jensen and N. Wirth }
     @Title { Pascal User Manual and Report }
     @Publisher { Springer-Verlag }
     @Year { 1975 }
}

{ @Reference
     @Tag { meyer1992eiffel }
     @Type { Book }
     @Author { Bertrand Meyer }
     @Title { Eiffel:  The Language }
     @Publisher { Prentice-Hall }
     @Year { 1992 }
}

{ @Reference
     @Tag { reid1980scribe }
     @Type { InProceedings }
     @Author { Brian K. Reid }
     @Title { A High-Level Approach to Computer Document Production }
     @InTitle { Proceedings of the 7th Symposium on the Principles
of Programming Languages (POPL), Las Vegas NV }
     @Pages { 24--31 }
     @Year { 1980 }
}

{ @Reference
     @Tag { strunk1979style }
     @Type { Book }
     @Author { William Strunk and E. B. White }
     @Title { The Elements of Style }
     @Publisher { Macmillan }
     @Edition { Third Edition }
     @Year { 1979 }
}

{ @Reference
     @Tag { ossanna1976troff }
     @Type { TechReport }
     @Author { Joseph F. Ossanna }
     @Title { "Nroff/Troff" User's Manual }
     @Number { 54 }
     @Institution { Bell Laboratories }
     @Address { Murray Hill, NJ 07974 }
     @Year { 1976 }
}

{ @Reference
     @Tag { kernighan1975eqn }
     @Type { Article }
     @Author { Brian W. Kernighan and Lorinda L. Cherry }
     @Title { A system for typesetting mathematics }
     @Journal { Communications of the ACM }
     @Volume { 18 }
     @Pages { 182--193 }
     @Year { 1975 }
}

{ @Reference
     @Tag { lesk1976tbl }
     @Type { TechReport }
     @Author { M. E. Lesk }
     @Title { Tbl -- a program to format tables }
     @Number { 49 }
     @Institution { AT"&"T Bell Laboratories }
     @Address { Murray Hill, NJ 07974 }
     @Year { 1976 }
}

{ @Reference
     @Tag { kernighan1982pic }
     @Type { Article }
     @Author { Brian W. Kernighan }
     @Title { PIC -- A language for typesetting graphics }
     @Journal { Software Practice and Experience }
     @Volume { 12 }
     @Pages { 1--21 }
     @Year { 1982 }
}

{ @Reference
     @Tag { bentley1984grap }
     @Type { TechReport }
     @Author { Jon L. Bentley and Brian W. Kernighan }
     @Title { GRAP -- a language for typesetting graphs }
     @Number { 114 (Computing Science) }
     @Institution { AT"&"T Bell Laboratories }
     @Address { Murray Hill, NJ 07974 }
     @Year { 1984 }
}

{ @Reference
     @Tag { ellis1990cpp }
     @Type { Book }
     @Author { Margaret A. Ellis and Bjarne Stroustrup }
     @Title { The annotated C++ reference manual }
     @Publisher { Addison-Wesley }
     @Year { 1990 }
}

{ @Reference
     @Tag { kingston1995lout.program }
     @Type { Book }
     @Author { Jeffrey H. Kingston }
     @Title { The Basser Lout Document Formatting System (Version 3) }
     @TitleNote { Computer program }
     @Year { 1995 }
     @Note { Publicly available in the
@I jeff subdirectory of the home directory of @I ftp to host
@I ftp.cs.su.oz.au with login name @I anonymous or @I ftp and any
non-empty password (e.g. {@I none}).  Lout distributions are also
available from the @I comp.sources.misc newsgroup, and by electronic
mail from the author.  All enquiries to {@I "jeff@cs.su.oz.au" }. }
}

{ @Reference
     @Tag { kingston1995lout.expert }
     @Type { Book }
     @Author { Jeffrey H. Kingston }
     @Title { An Expert's Guide to the Lout Document Formatting
System (Version 3) }
     @Institution { Basser Department of Computer Science }
     @Address { University of Sydney }
     @Year { 1995 }
}

{ @Reference
     @Tag { kingston1995lout.user }
     @Type { Book }
     @Author { Jeffrey H. Kingston }
     @Title { A User's Guide to the Lout Document Formatting
System (Version 3) }
     @Institution { Basser Department of Computer Science }
     @Address { University of Sydney }
     @Year { 1995 }
}

{ @Reference
     @Tag { kingston1994lout.overheads }
     @Type { TechReport }
     @TRType { Overhead transparencies }
     @Author { Jeffrey H. Kingston }
     @Title { A Practical Introduction to the Lout Document Formatting
System }
     @Institution { Basser Department of Computer Science }
     @Address { University of Sydney }
     @Year { 1994 }
}

{ @Reference
     @Tag { kingston1993lout.design }
     @Type { Article }
     @Author { Jeffrey H. Kingston }
     @Title { The design and implementation of the Lout document
formatting language }
     @Journal { Software---Practice and Experience }
     @Volume { 23 }
     @Pages { 1001--1041 }
     @Year { 1993 }
}

{ @Reference
     @Tag { wirth1971pascal }
     @Type { Article }
     @Author { N. Wirth }
     @Title { The programming language Pascal }
     @Journal { Acta Informatica }
     @Volume { 1 }
     @Year { 1975 }
     @Pages { 35--63 }
}

{ @Reference
     @Tag { brooks1991lilac }
     @Type { Article }
     @Author { Kenneth P. Brooks }
     @Title { Lilac:  a two-view document editor }
     @Journal { IEEE Computer }
     @Pages { 7--19 }
     @Year { 1991 }
}

{ @Reference
     @Tag { furuta1982survey }
     @Type { Article }
     @Author { Richard Furuta, Jeffrey Scofield, and Alan Shaw }
     @Title { Document formatting systems:  survey,
concepts, and issues }
     @Journal { Computing Surveys }
     @Volume { 14 }
     @Pages { 417--472 }
     @Year { 1982 }
}

{ @Reference
     @Tag { kernighan1988c }
     @Type { Book }
     @Author { Brian W. Kernighan and Dennis M. Ritchie }
     @Title { The C programming language (second edition) }
     @Publisher { Prentice Hall }
     @Year { 1988 }
}

{ @Reference
     @Tag { vanleunen1992handbook }
     @Type { Book }
     @Author { Mary-Claire van Leunen }
     @Title { A Handbook for Scholars }
     @Publisher { Oxford }
     @Edition { Revised Edition }
     @Year { 1992 }
}

{ @Reference
     @Tag { homer.odyssey }
     @Type { Book }
     @Author { Homer }
     @Title { The Odyssey }
     @TitleNote { Translated by E. V. Rieu }
     @Pinpoint { Chapter VI }
     @Pages { 102--111 }
     @Page { 102 }
     @Publisher { Penguin Books }
     @Address { Harmondsworth, Middlesex }
     @Edition { Penguin Classics Edition }
     @Month { August }
     @Year { 1942 }
     @Note { The date of composition is unknown, but
is thought to be about the tenth century BC. }
}

{ @Reference
     @Tag { rieu1942intro }
     @Type { InBook }
     @Author { E. V. Rieu }
     @Title { Introduction to @I { The Odyssey } }
     @InAuthor { Homer }
     @InTitle { The Odyssey }
     @Publisher { Penguin }
     @Year { 1942 }
}

{ @Reference
     @Tag { christofides1976tsp }
     @Type { TechReport }
     @Author { N. Christofides }
     @Title { Worst-case analysis of a new heuristic
for the travelling salesman problem }
     @Number { 388 }
     @Institution { Graduate School of Industrial
Administration, Carnegie-Mellon University }
     @Address { Pittsburgh, PA }
     @Year { 1976 }
}

{ @Reference
     @Tag { lamport1986latex }
     @Type { Book }
     @Author { Leslie Lamport }
     @Title { @LaTeX User's Guide and Reference Manual }
     @Publisher { Addison-Wesley }
     @Year { 1986 }
}

