diff options
Diffstat (limited to 'obsolete/info/latex-help-texinfo')
-rw-r--r-- | obsolete/info/latex-help-texinfo/README_for_latex.texi | 11 | ||||
-rw-r--r-- | obsolete/info/latex-help-texinfo/latex.texi | 5713 |
2 files changed, 5724 insertions, 0 deletions
diff --git a/obsolete/info/latex-help-texinfo/README_for_latex.texi b/obsolete/info/latex-help-texinfo/README_for_latex.texi new file mode 100644 index 0000000000..dde2e0a7b5 --- /dev/null +++ b/obsolete/info/latex-help-texinfo/README_for_latex.texi @@ -0,0 +1,11 @@ + +The files latex.texi and latex2.texi contain TeXinfo sources which +document Leslie Lamport's LaTeX macro package for TeX. The files were +produced from George Greenwade's LATEX.HLP file. + +You can use the function `texinfo-format-buffer' from within Emacs to +generate an Info file or run TeX on the file to generate a DVI file. +The index can be generated using the FSF's texindex program. + + +Stephen Gilmore, stg@dcs.ed.ac.uk, August 26th 1993 diff --git a/obsolete/info/latex-help-texinfo/latex.texi b/obsolete/info/latex-help-texinfo/latex.texi new file mode 100644 index 0000000000..b187b6261b --- /dev/null +++ b/obsolete/info/latex-help-texinfo/latex.texi @@ -0,0 +1,5713 @@ +\input texinfo @c -*-texinfo-*- + + +@tex +\gdef\LaTeX{{\rm L\kern-.36em\raise.3ex\hbox{\sc a}\kern-.15em% + T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX\kern.125em}} +@end tex + +@comment %**start of header (This is for running Texinfo on a region.) +@setfilename ../info/latex +@ifinfo +@settitle LaTeX help 1.1 +@end ifinfo +@iftex +@settitle @LaTeX help 1.1 +@end iftex +@comment %**end of header (This is for running Texinfo on a region.) + +@iftex +@finalout +@end iftex + +@ifinfo +This file documents LaTeX, a document preparation system. LaTeX is a +macro package for TeX. + +This is edition 1.1 of the LaTeX documentation, and is for the Texinfo +that is distributed as part of Version 18 of GNU Emacs. It uses version +2.90 of the texinfo.tex input file. + +This is translated from LATEX.HLP v1.0a in the VMS Help Library. The +pre-translation version was written by George D. Greenwade of Sam +Houston State University. + + +Copyright 1988,1994 Free Software Foundation, Inc. + +Permission is granted to make and distribute verbatim copies of +this manual provided the copyright notice and this permission notice +are preserved on all copies. + +@ignore +Permission is granted to process this file through TeX and print the +results, provided the printed document carries copying permission +notice identical to this one except for the removal of this paragraph +(this paragraph not being relevant to the printed manual). +@end ignore + +Permission is granted to copy and distribute modified versions of this +manual under the conditions for verbatim copying, provided that the entire +resulting derived work is distributed under the terms of a permission +notice identical to this one. + +Permission is granted to copy and distribute translations of this manual +into another language, under the above conditions for modified versions, +except that the sections entitled ``Distribution'' and ``General Public +License'' may be included in a translation approved by the author instead +of in the original English. +@end ifinfo + +@setchapternewpage odd +@titlepage +@sp 11 + +@comment A hack to get the LaTeX logo to appear big in the title. + +@tex +\font\tempA = cmr10 scaled \magstep4 +\font\tempB = cmr8 scaled \magstep4 +\centerline{\tempA L\kern-.36em\raise.3ex\hbox{\tempB A}\kern-.15em% + T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX} +@end tex +@sp 2 +@center The macro package for @TeX +@sp 2 +@center by +@center Leslie Lamport. +@sp 2 +@center Edition 1.1 +@sp 2 +@center July 1993 + +@comment Include the Distribution inside the titlepage environment so +@comment that headings are turned off. + +@page +@vskip 0pt plus 1filll + +This is edition 1.1 of the @LaTeX documentation, and is for the Texinfo +that is distributed as part of Version 18 of GNU Emacs. It uses version +2.90 of the @file{texinfo.tex} input file. + +This is translated from LATEX.HLP v1.0a in the VMS Help Library. +This pre-translation version was written by George D. Greenwade of +Sam Houston State University. It has been edited to this form by Paul +Nothard of Edinburgh University. + +The original (latex.texi and latex2.texi) was distributed by +Stephen Gilmore, stg@dcs.ed.ac.uk, August 26th 1993. + +Version 1.1 was made by Piet van Oostrum <piet@cs.ruu.nl> on Dec 14, +1993 by merging and cleaning up latex.texi and latex2.texi. + +@sp 2 + +This Texinfo file may be copied and distributed in accordance with the +usual copying permissions of the Free Software Foundation. These +permissions are given in the General Public License section of the ``GNU +Emacs Manual''. This software comes with NO WARRANTY. + +@sp 2 + +Permission is granted to make and distribute verbatim copies of this +manual provided the copyright notice and this permission notice are +preserved on all copies. + +Permission is granted to copy and distribute modified versions of this +manual under the conditions for verbatim copying, provided that the +entire resulting derived work is distributed under the terms of a +permission notice identical to this one. + +Permission is granted to copy and distribute translations of this manual +into another language, under the above conditions for modified versions, +except that the sections entitled ``Distribution'' and ``General Public +License'' may be included in a translation approved by the author +instead of in the original English. +@end titlepage + +@node Top, License, (dir), (dir) + +@menu + +* License:: Licensing information. +* Overview:: What is LaTeX? +* Commands:: Commands within a LaTeX document. +* Parameters:: The command line. + +also available... + +* List of Commands:: An alphabetical list of all LaTex commands. +* Index:: An alphabetical "Concept Index". + +@end menu + +@comment **************************************** +@comment *************** LICENSE **************** +@comment **************************************** + +@comment LEVEL1 +@node License, Overview, Top, Top +@comment node-name, next, previous, up +@unnumbered Licensing Information + + The programs currently being distributed that relate to Texinfo +include two portions of GNU Emacs, plus two other separate programs +(@code{texindex} and @code{texinfo.tex}). These programs are +@dfn{free}; this means that everyone is free to use them and free to +redistribute them on a free basis. The Texinfo related programs are not +in the public domain; they are copyrighted and there are restrictions on +their distribution, but these restrictions are designed to permit +everything that a good cooperating citizen would want to do. What is +not allowed is to try to prevent others from further sharing any version +of these programs that they might get from you. + + Specifically, we want to make sure that you have the right to give +away copies of the programs that relate to Texinfo, that you receive +source code or else can get it if you want it, that you can change these +programs or use pieces of them in new free programs, and that you know +you can do these things. + + To make sure that everyone has such rights, we have to forbid you to +deprive anyone else of these rights. For example, if you distribute +copies of the Texinfo related programs, you must give the recipients all +the rights that you have. You must make sure that they, too, receive or +can get the source code. And you must tell them their rights. + + Also, for our own protection, we must make certain that everyone finds +out that there is no warranty for the programs that relate to Texinfo. +If these programs are modified by someone else and passed on, we want +their recipients to know that what they have is not what we distributed, +so that any problems introduced by others will not reflect on our +reputation. + + The precise conditions of the licensees for the programs currently +being distributed that relate to Texinfo are found in the General Public +Licensees that accompany them. The programs that are part of GNU Emacs +are covered by the GNU Emacs copying terms (@pxref{License, , , emacs, +The GNU Emacs Manual}), +and other programs are covered by licensees that are contained in their +source files. + + +@comment **************************************** +@comment ************** OVERVIEW **************** +@comment **************************************** + +@comment LEVEL1 +@node Overview, Commands, License, Top +@comment node-name, next, previous, up + +@ifinfo +@chapter Overview of LaTeX and Local Guide + +The LaTeX command typesets a file of text using the TeX program and the +LaTeX Macro package for TeX. To be more specific, it processes an input +file containing the text of a document with interspersed commands that +describe how the text should be formatted. It produces at least three +files as output: +@enumerate +@item +A "Device Independent", or @file{.dvi} file. This contains commands that +can be translated into commands for a variety of output devices. You +can view the output of LaTeX by using a program such as @code{xdvi}, +which actually uses the @file{.dvi} file. +@item +A "transcript" or @file{.log} file that contains summary information and +diagnostic messages for any errors discovered in the input file. +@item +An "auxiliary" or @file{.aux} file. This is used by LaTeX itself, for +things such as sectioning. +@end enumerate + +For a description of what goes on inside TeX, you should consult +@cite{The TeXbook} by Donald E. Knuth, ISBN 0-201-13448-9, published +jointly by the American Mathematical Society and Addison-Wesley +Publishing Company. + +For a description of LaTeX, you should consult: + +@cite{LaTeX: A Document Preparation System}, by Leslie Lamport, ISBN +0-201-15790-X, published jointly by the American Mathematical Society +and Addison-Wesley Publishing Company, 1985. + +@cite{LaTeX for Engineers & Scientists}, by David J. Buerger, ISBN +0-07-008845-4, McGraw-Hill, 1990. + +@cite{The LaTeX Cookbook}, by F. Teagle, Informatics Department, +Rutherford Appelton Laboratory, Chilton, Didcot, Oxon, OX11 0QX, 1991. + +@cite{LaTeX for Everyone}, by Jane Hahn, available from PCTeX in +California, and from the TeX Users Group, 1991. + +@cite{LaTeX Line by Line: Tips and Techniques for Document Processing} +by Antoni Diller, Chichester: John Wiley and Sons, 1992. + +@cite{A Guide to LaTeX}, by Helmut Kopka and Patrick Daly, +Addison-Wesley, 1992. + +@end ifinfo + +@iftex +@chapter Overview of @LaTeX and Local Guide +@cindex Overview of @LaTeX +@cindex @LaTeX overview + +The @LaTeX command typesets a file of text using the @TeX@ program and the +@LaTeX Macro package for @TeX. To be more specific, it processes an input +file containing the text of a document with interspersed commands that +describe how the text should be formatted. It produces at least three +files as output: +@enumerate +@item +A "Device Independent", or @file{.dvi} file. This contains commands that +can be translated into commands for a variety of output devices. You +can view the output of @LaTeX by using a program such as @code{xdvi}, +which actually uses the @file{.dvi} file. +@item +A "transcript" or @file{.log} file that contains summary information and +diagnostic messages for any errors discovered in the input file. +@item +An "auxiliary" or @file{.aux} file. This is used by @LaTeX itself, for +things such as sectioning. +@end enumerate + +For a description of what goes on inside @TeX, you should consult +@cite{The @TeX book} by Donald E. Knuth, ISBN 0-201-13448-9, published +jointly by the American Mathematical Society and Addison-Wesley +Publishing Company. + +For a description of @LaTeX, you should consult: + +@cite{@LaTeX: A Document Preparation System}, by Leslie Lamport, ISBN +0-201-15790-X, published jointly by the American Mathematical Society +and Addison-Wesley Publishing Company, 1985. + +@cite{@LaTeX for Engineers & Scientists}, by David J. Buerger, ISBN +0-07-008845-4, McGraw-Hill, 1990. + +@cite{The @LaTeX Cookbook}, by F. Teagle, Informatics Department, +Rutherford Appelton Laboratory, Chilton, Didcot, Oxon, OX11 0QX, 1991. + +@cite{@LaTeX for Everyone}, by Jane Hahn, available from PC@TeX in +California, and from the @TeX@ Users Group, 1991. + +@cite{@LaTeX Line by Line: Tips and Techniques for Document Processing} +by Antoni Diller, Chichester: John Wiley and Sons, 1992. + +@cite{A Guide to @LaTeX}, by Helmut Kopka and Patrick Daly, +Addison-Wesley, 1992. + +@end iftex + + +@comment **************************************** +@comment ************** COMMANDS **************** +@comment **************************************** + +@comment LEVEL1 +@node Commands, Counters, Overview, Top +@comment node-name, next, previous, up +@chapter Commands + +@ifinfo +A LaTeX command begins with the command name, which consists of a +@code{\} followed by either (a) a string of letters or (b) a single +non-letter. Arguments contained in square brackets, @code{[]}, are +optional while arguments contained in braces, @code{@{@}}, are required. + +NOTE: LaTeX is case sensitive. Enter all commands in lower case +unless explicitly directed to do otherwise. +@end ifinfo + +@iftex +A @LaTeX command begins with the command name, which consists of a +@code{\} followed by either (a) a string of letters or (b) a single +non-letter. Arguments contained in square brackets, @code{[]}, are +optional while arguments contained in braces, @code{@{@}}, are required. + +NOTE: @LaTeX is case sensitive. Enter all commands in lower case +unless explicitly directed to do otherwise. +@end iftex + +@menu +* Counters:: Information on internal counters. +* Cross References:: Automatic referencing. +* Definitions:: Define your own commands etc. +* Document Styles:: Some of the various styles available. +* Environments:: Such as enumerate & itemize. +* Footnotes:: How to produce footnotes. +* Lengths:: The length commands. +* Letters:: The letter style. +* Line & Page Breaking:: How do insert pagebreaks etc. +* Making Paragraphs:: Paragraph commands. +* Math Formulae:: How to create mathematical formulae. +* Modes:: Paragraph, Math or LR modes. +* Page Styles:: Various styles of page layout. +* Sectioning:: How to section properly. +* Spaces & Boxes:: All the associated commands. +* Special Characters:: Special reserved characters. +* Splitting the Input:: Dealing with big files by splitting. +* Starting & Ending:: The formal start & end layouts. +* Table of Contents:: How to create a table of contents. +* Terminal Input/Output:: User interaction. +* Typefaces:: Such as bold, italics etc. + +@end menu + + +@comment *************************************** +@comment **** Command's LEVEL2 Starts Here. **** +@comment *************************************** + +@comment ************************* +@comment ******* Counters ******** +@comment ************************* + +@comment LEVEL2 +@node Counters, \addtocounter, Commands, Commands +@comment node-name, next, previous, up +@section Counters +@cindex Counters, a list of +@cindex Variables, a list of... (see also Counters) + +@ifinfo +Everything LaTeX numbers for you has a counter associated with it. The +name of the counter is the same as the name of the environment or +command that produces the number, except with no @code{\}. (enumi - +enumiv are used for the nested enumerate environment.) Below is a list +of the counters used in LaTeX's standard document styles to control +numbering. +@end ifinfo + +@iftex +Everything @LaTeX numbers for you has a counter associated with it. The +name of the counter is the same as the name of the environment or +command that produces the number, except with no @code{\}. (enumi - +enumiv are used for the nested enumerate environment.) Below is a list +of the counters used in @LaTeX 's standard document styles to control +numbering. +@end iftex + +@example + part paragraph figure enumi + chapter subparagraph table enumii + section page footnote enumiii + subsection equation mpfootnote enumiv + subsubsection +@end example + +@menu +* \addtocounter:: +* \alph:: +* \arabic:: +* \fnsymbol:: +* \newcounter:: +* \roman:: +* \setcounter:: +* \usecounter:: +* \value:: + +@end menu + +@comment ******************* +@comment ** \addtocounter ** +@comment ******************* + +@comment LEVEL3 +@node \addtocounter, \alph, Counters, Counters +@comment node-name, next, previous, up +@subsection \addtocounter +@cindex Counters, adding to + +@code{\addtocounter@{counter@}@{value@}} + +The @code{\addtocounter} command increments the @code{counter} by the +amount specified by the @code{value} argument. The @code{value} +argument can be negative. + + +@comment ************ +@comment ** \alph *** +@comment ************ + +@comment LEVEL3 +@node \alph, \arabic, \addtocounter, Counters +@comment node-name, next, previous, up +@subsection \alph + +@code{\alph@{counter@}} + +This command causes the value of the @code{counter} to be printed in +alphabetic characters. The @code{\alph} command causes lower case +alphabetic alphabetic characters, i.e., @code{a, b, c...} while the +@code{\Alph} command causes upper case alphabetic characters, i.e., +@code{A, B, C...}. + + +@comment ************** +@comment ** \arabic *** +@comment ************** + +@comment LEVEL3 +@node \arabic, \fnsymbol, \alph, Counters +@comment node-name, next, previous, up +@subsection \arabic + +@code{\arabic@{counter@}} + +The @code{\arabic} command causes the value of the @code{counter} to be +printed in arabic numbers, i.e., @code{3}. + + +@comment *************** +@comment ** \fnsymbol ** +@comment *************** + +@comment LEVEL3 +@node \fnsymbol, \newcounter, \arabic, Counters +@comment node-name, next, previous, up +@subsection \fnsymbol + +@code{\fnsymbol@{counter@}} + +The @code{\fnsymbol} command causes the value of the @code{counter} to +be printed in a specific sequence of nine symbols that can be used for +numbering footnotes. + +@iftex +eg. From 1-9: +@tex +$\ast$ $\dagger$ $\ddagger$ $\S$ $\P$ $\parallel$ $\ast \ast$ $\dagger +\dagger$ $\ddagger \ddagger$ +@end tex +@end iftex + + +NB. @code{counter} must have a value between 1 and 9 inclusive. + + +@comment ***************** +@comment ** \newcounter ** +@comment ***************** + +@comment LEVEL3 +@node \newcounter, \roman, \fnsymbol, Counters +@comment node-name, next, previous, up +@subsection \newcounter +@cindex Counters, creating + +@code{\newcounter@{foo@}[counter]} + +The @code{\newcounter} command defines a new counter named @code{foo}. +The optional argument @code{[counter]} causes the counter @code{foo} to +be reset whenever the counter named in the optional argument is +incremented. + + +@comment ************ +@comment ** \roman ** +@comment ************ + +@comment LEVEL3 +@node \roman, \setcounter, \newcounter, Counters +@comment node-name, next, previous, up +@subsection \roman + +@code{\roman@{counter@}} + +This command causes the value of the @code{counter} to be printed in +roman numerals. The @code{\roman} command causes lower case roman +numerals, i.e., @code{i, ii, iii...}, while the @code{\Roman} command +causes upper case roman numerals, i.e., @code{I, II, III...}. + + +@comment ***************** +@comment ** \setcounter ** +@comment ***************** + +@comment LEVEL3 +@node \setcounter, \usecounter, \roman, Counters +@comment node-name, next, previous, up +@subsection \setcounter +@cindex Counters, setting + +@code{\setcounter@{counter@}@{value@}} + +The @code{\setcounter} command sets the value of the @code{counter} to +that specified by the @code{value} argument. + + +@comment ***************** +@comment ** \usecounter ** +@comment ***************** + +@comment LEVEL3 +@node \usecounter, \value, \setcounter, Counters +@comment node-name, next, previous, up +@subsection \usecounter +@cindex Counters, use of +@cindex Using Counters + +@code{\usecounter@{counter@}} + +The @code{\usecounter} command is used in the second argument of the +@code{list} environment to allow the counter specified to be used to +number the list items. + + +@comment ************ +@comment ** \value ** +@comment ************ + +@comment LEVEL3 +@node \value, Cross References, \usecounter, Counters +@comment node-name, next, previous, up +@subsection \value +@cindex Counters, use of +@cindex Using Counters + +@code{\value@{counter@}} + +@ifinfo +The @code{\value} command produces the value of the @code{counter} named +in the mandatory argument. It can be used where LaTeX expects an +integer or number, such as the second argument of a @code{\setcounter} +or @code{\addtocounter} command, or in: +@end ifinfo + +@iftex +The @code{\value} command produces the value of the @code{counter} named +in the mandatory argument. It can be used where @LaTeX expects an +integer or number, such as the second argument of a @code{\setcounter} +or @code{\addtocounter} command, or in: +@end iftex + +@example + \hspace@{\value@{foo@}\parindent@} +@end example + +It is useful for doing arithmetic with counters. + +@page + +@comment ************************* +@comment **** Cross References *** +@comment ************************* + +@comment LEVEL2 +@node Cross References, \label, \value, Commands +@comment node-name, next, previous, up +@section Cross References +@cindex Cross referencing + +One reason for numbering things like figures and equations is to refer +the reader to them, as in "See Figure 3 for more details." + +@menu +* \label:: +* \pageref:: +* \ref:: +@end menu + +@comment ************************* +@comment **** \label ************* +@comment ************************* + +@comment LEVEL3 +@node \label, \pageref, Cross References, Cross References +@comment node-name, next, previous, up +@subsection \label +@cindex Cross referencing + +@code{\label@{key@}} + +A @code{\label} command appearing in ordinary text assigns to the +@code{key} the number of the current sectional unit; one appearing +inside a numbered environment assigns that number to the @code{key}. + +A @code{key} can consist of any sequence of letters, digits, or +punctuation characters. Upper and lowercase letters are different. + + +@comment ************************* +@comment **** \pageref *********** +@comment ************************* + +@comment LEVEL3 +@node \pageref, \ref, \label, Cross References +@comment node-name, next, previous, up +@subsection \pageref +@cindex Cross referencing + +@code{\pageref@{key@}} + +The @code{\pageref} command produces the page number of the place in the +text where the corresponding @code{\label} command appears. ie. where +@code{\label@{key@}} appears. + + +@comment ************************* +@comment **** \ref *************** +@comment ************************* + +@comment LEVEL3 +@node \ref, Definitions, \pageref, Cross References +@comment node-name, next, previous, up +@subsection \ref +@cindex Cross referencing + +@code{\ref@{key@}} + +The @code{\ref} command produces the number of the sectional unit, +equation number, ... of the corresponding @code{\label} command. + +@page + +@comment ************************* +@comment **** Definitions ******** +@comment ************************* + +@comment LEVEL2 +@node Definitions, \newcommand, \ref, Commands +@comment node-name, next, previous, up +@section Definitions + +@menu +* \newcommand:: +* \newenvironment:: +* \newtheorem:: +* \newfont:: +@end menu + + +@comment ************************* +@comment **** \newcommand ******** +@comment ************************* + +@comment LEVEL3 +@node \newcommand, \newenvironment, Definitions, Definitions +@comment node-name, next, previous, up +@subsection \newcommand +@cindex Commands, defining new ones +@cindex Defining a new command + +@example + \newcommand@{cmd@}[args]@{def@} + \renewcommand@{cmd@}[args]@{def@} +@end example + +These commands define (or redefine) a command. + +@table @code +@item cmd +A command name beginning with a @code{\}. For @code{\newcommand} it +must not be already defined and must not begin with @code{\end}; for +@code{\renewcommand} it must already be defined. + +@item args +An integer from 1 to 9 denoting the number of arguments of the command +being defined. The default is for the command to have no arguments. + +@item def +The text to be substituted for every occurrence of @code{cmd}; a +parameter of the form @code{#n} in @code{cmd} is replaced by the text of +the nth argument when this substitution takes place. + +@end table + + +@comment ************************* +@comment **** \newenvironment **** +@comment ************************* + +@comment LEVEL3 +@node \newenvironment, \newtheorem, \newcommand, Definitions +@comment node-name, next, previous, up +@subsection \newenvironment +@cindex Environments, defining +@cindex Defining new environments + +@example + \newenvironment@{nam@}[args]@{begdef@}@{enddef@} + \renewenvironment@{nam@}[args]@{begdef@}@{enddef@} +@end example + +These commands define or redefine an environment. + +@table @code +@item nam +The name of the environment. For @code{\newenvironment} there must be +no currently defined environment by that name, and the command +@code{\nam} must be undefined. For @code{\renewenvironment} the +environment must already be defined. + +@item args +An integer from 1 to 9 denoting the number of arguments of +the newly-defined environment. The default is no arguments. + +@item begdef +The text substituted for every occurrence of @code{\begin@{nam@}}; a +parameter of the form @code{#n} in @code{cmd} is replaced by the text of +the nth argument when this substitution takes place. + +@item enddef +The text substituted for every occurrence of @code{\end@{nam@}}. It may +not contain any argument parameters. + +@end table + + +@comment ************************* +@comment **** \newtheorem ******** +@comment ************************* + +@comment LEVEL3 +@node \newtheorem, \newfont, \newenvironment, Definitions +@comment node-name, next, previous, up +@subsection \newtheorem +@cindex Theorems, defining +@cindex Defining new theorems + +@example + \newtheorem@{env_name@}@{caption@}[within] + \newtheorem@{env_name@}[numbered_like]@{caption@} +@end example + +This command defines a theorem-like environment. + +@table @code +@item env_name +The name of the environment to be defined. A string of letters. It must +not be the name of an existing environment or counter. + +@item caption +The text printed at the beginning of the environment, right before the +number. This may simply say "Theorem", for example. + +@item within +The name of an already defined counter, usually of a sectional unit. +Provides a means of resetting the new theorem counter @strong{within} +the sectional unit. + +@item numbered_like +The name of an already defined theorem-like environment. + +@end table + +The @code{\newtheorem} command may have at most one optional argument. + + +@comment ************************* +@comment **** \newfont *********** +@comment ************************* + +@comment LEVEL3 +@node \newfont, Document Styles, \newtheorem, Definitions +@comment node-name, next, previous, up +@subsection \newfont +@cindex Fonts, new commands for +@cindex Defining new fonts + +@code{\newfont@{cmd@}@{font_name@}} + +Defines the command name @code{cmd}, which must not be currently +defined, to be a declaration that selects the font named +@code{font_name} to be the current font. + +@page + +@comment ************************* +@comment **** Document Styles **** +@comment ************************* + +@comment LEVEL2 +@node Document Styles, \flushbottom, \newfont, Commands +@comment node-name, next, previous, up +@section Document Styles +@cindex Document Styles +@cindex Styles of document +@cindex article style +@cindex report style +@cindex book style +@cindex letter style + +@ifinfo +Valid LaTeX document styles include: +@end ifinfo + +@iftex +Valid @LaTeX document styles include: +@end iftex + +@itemize @bullet +@item +article +@item +report +@item +letter +@item +book +@end itemize + +Other document styles are often available. @xref{Overview}, for details. +They are selected with the following command: + +@code{\documentstyle [options] @{style@}} + +The options for the different styles are: + +@enumerate +@item +@code{article} - 11pt, 12pt, twoside, twocolumn, draft, fleqn, leqno, acm +@item +@code{report} - 11pt, 12pt, twoside, twocolumn, draft, fleqn, leqno, acm +@item +@code{letter} - 11pt, 12pt, fleqn, leqno, acm +@item +@code{book} - 11pt, 12pt, twoside, twocolumn, draft, fleqn, leqno +@end enumerate + +If you specify more than one option, they must be separated by a comma. + +@menu +* \flushbottom:: +* \onecolumn:: +* \raggedbottom:: +* \twocolumn:: +@end menu + + +@comment ************************* +@comment **** \flushbottom ******* +@comment ************************* + +@comment LEVEL3 +@node \flushbottom, \onecolumn, Document Styles, Document Styles +@comment node-name, next, previous, up +@subsection \flushbottom + +The @code{\flushbottom} declaration makes all text pages the same +height, adding extra vertical space when necessary to fill out the page. + +This is the standard for the book style. + + +@comment ************************* +@comment **** \onecolumn ********* +@comment ************************* + +@comment LEVEL3 +@node \onecolumn, \raggedbottom, \flushbottom, Document Styles +@comment node-name, next, previous, up +@subsection \onecolumn + +The @code{\onecolumn} declaration starts a new page and produces +single-column output. + + +@comment ************************* +@comment **** \raggedbottom ****** +@comment ************************* + +@comment LEVEL3 +@node \raggedbottom, \twocolumn, \onecolumn, Document Styles +@comment node-name, next, previous, up +@subsection \raggedbottom + +The @code{\raggedbottom} declaration makes all pages the height of the +text on that page. No extra vertical space is added. + +@comment ************************* +@comment **** \twocolumn ********* +@comment ************************* + +@comment LEVEL3 +@node \twocolumn, Environments, \raggedbottom, Document Styles +@comment node-name, next, previous, up +@subsection \twocolumn +@cindex Multicolumn text + +The @code{\twocolumn} declaration starts a new page and produces +two-column output. + +@page + +@comment ************************* +@comment **** Environments ******* +@comment ************************* + +@comment LEVEL2 +@node Environments, array, \twocolumn, Commands +@comment node-name, next, previous, up +@section Environments +@cindex Environments + +@ifinfo +LaTeX provides a number of different paragraph-making environments. +Each environment begins and ends in the same manner. +@end ifinfo + +@iftex +@LaTeX provides a number of different paragraph-making environments. +Each environment begins and ends in the same manner. +@end iftex + +@example + \begin@{environment-name@} + . + . + . + \end@{environment-name@} +@end example + +@menu +* array:: +* center:: +* description:: +* enumerate:: +* eqnarray:: +* equation:: +* figure:: +* flushleft:: +* flushright:: +* itemize:: +* list:: +* minipage:: +* picture:: +* quotation:: +* quote:: +* tabbing:: +* table:: +* tabular:: +* thebibliography:: +* theorem:: +* titlepage:: +* verbatim:: +* verse:: +@end menu + + +@comment ************************* +@comment **** array ************** +@comment ************************* + +@comment LEVEL3 +@node array, center, Environments, Environments +@comment node-name, next, previous, up +@subsection array +@cindex Arrays + +@example +\begin@{array@}@{col1col2...coln@} +column 1 entry & column 2 entry ... & column n entry \\ + . + . + . +\end@{array@} +@end example + +Math arrays are produced with the array environment. It has a single +mandatory argument describing the number of columns and the alignment +within them. Each column, @code{coln}, is specified by a single letter +that tells how items in that row should be formatted. + +@itemize @bullet +@item +@code{c} - for centred +@item +@code{l} - for flushleft +@item +@code{r} - for flushright +@end itemize + +@ifinfo +Column entries must be separated by an @code{&}. Column entries may +include other LaTeX commands. Each row of the array must be terminated +with the string @code{\\}. +@end ifinfo + +@iftex +Column entries must be separated by an @code{&}. Column entries may +include other @LaTeX commands. Each row of the array must be terminated +with the string @code{\\}. +@end iftex + +@comment ************************* +@comment **** center ************* +@comment ************************* + +@comment LEVEL3 +@node center, \centering, array, Environments +@comment node-name, next, previous, up +@subsection center +@cindex Centering text +@cindex Formatting text + +@example + \begin@{center@} + Text on line 1 \\ + Text on line 2 \\ + . + . + . + \end@{center@} +@end example + +The @code{center} environment allows you to create a paragraph consisting of +lines that are centred within the left and right margins on the current +page. Each line must be terminated with the string @code{\\}. + +@menu +* \centering:: +@end menu + + +@comment ***************** +@comment ** \centering *** +@comment ***************** + +@comment LEVEL4 +@node \centering, description, center, center +@comment node-name, next, previous, up +@subsubsection \centering +@cindex Centering text +@cindex Formatting Text + +This declaration corresponds to the @code{center} environment. This +declaration can be used inside an environment such as @code{quote} or in +a @code{parbox}. The text of a figure or table can be centered on the +page by putting a @code{\centering} command at the beginning of the +figure or table environment. + +@ifinfo +Unlike the @code{center} environment, the @code{\centering} command does +not start a new paragraph; it simply changes how LaTeX formats paragraph +units. To affect a paragraph unit's format, the scope of the +declaration must contain the blank line or @code{\end} command (of an +environment like quote) that ends the paragraph unit. +@end ifinfo + +@iftex +Unlike the @code{center} environment, the @code{\centering} command does +not start a new paragraph; it simply changes how @LaTeX formats paragraph +units. To affect a paragraph unit's format, the scope of the +declaration must contain the blank line or @code{\end} command (of an +environment like quote) that ends the paragraph unit. +@end iftex + + +@comment ************************* +@comment **** description ******** +@comment ************************* + +@comment LEVEL3 +@node description, enumerate, \centering, Environments +@comment node-name, next, previous, up +@subsection description +@cindex description Environments +@cindex Environments + +@example + \begin@{description@} + \item [label] First item + \item [label] Second item + . + . + . + \end@{description@} +@end example + +The @code{description} environment is used to make labelled lists. The +@code{label} is bold face and flushed right. + + +@comment ************************* +@comment **** enumerate ********** +@comment ************************* + +@comment LEVEL3 +@node enumerate, eqnarray, description, Environments +@comment node-name, next, previous, up +@subsection enumerate +@cindex enumerate Environment +@cindex Environments +@cindex Lists of items + +@example + \begin@{enumerate@} + \item First item + \item Second item + . + . + . + \end@{enumerate@} +@end example + +The @code{enumerate} environment produces a numbered list. Enumerations +can be nested within one another, up to four levels deep. They can also +be nested within other paragraph-making environments. + +Each item of an enumerated list begins with an @code{\item} command. +There must be at least one @code{\item} command within the environment. + + +@comment ************************* +@comment **** eqnarray *********** +@comment ************************* + +@comment LEVEL3 +@node eqnarray, equation, enumerate, Environments +@comment node-name, next, previous, up +@subsection eqnarray +@cindex eqnarray Environment +@cindex Environments + +@example + \begin@{eqnarray@} + math formula 1 \\ + math formula 2 \\ + . + . + . + \end@{eqnarray@} +@end example + +The @code{eqnarray} environment is used to display a sequence of +equations or inequalities. It is very much like a three-column +@code{array} environment, with consecutive rows separated by @code{\\} +and consecutive items within a row separated by an @code{&}. An +equation number is placed on every line unless that line has a +@code{\nonumber} command. + + +@comment ************************* +@comment **** equation *********** +@comment ************************* + +@comment LEVEL3 +@node equation, figure, eqnarray, Environments +@comment node-name, next, previous, up +@subsection equation +@cindex equation Environment +@cindex Environments + +@example + \begin@{equation@} + math formula + \end@{equation@} +@end example + +The @code{equation} environment centres your equation on the page and places +the equation number in the right margin. + +@comment ************************* +@comment **** figure ************* +@comment ************************* + +@comment LEVEL3 +@node figure, flushleft, equation, Environments +@comment node-name, next, previous, up +@subsection figure +@cindex figure Environment +@cindex Environments +@cindex Inserting figures + +@example + \begin@{figure@}[placement] + + body of the figure + + \caption@{figure title@} + \end@{figure@} +@end example + +Figures are objects that are not part of the normal text, and are +usually "floated" to a convenient place, like the top of a page. +Figures will not be split between two pages. + +@ifinfo +The optional argument @code{[placement]} determines where LaTeX will try +to place your figure. There are four places where LaTeX can possibly +put a float: +@end ifinfo + +@iftex +The optional argument @code{[placement]} determines where @LaTeX will try +to place your figure. There are four places where @LaTeX can possibly +put a float: +@end iftex + +@enumerate +@item +@code{h} (Here) - at the position in the text where the figure +environment appears. +@item +@code{t} (Top) - at the top of a text page. +@item +@code{b} (Bottom) - at the bottom of a text page. +@item +@code{p} (Page of floats) - on a separate float page, which is a page +containing no text, only floats. +@end enumerate + +The standard report and article styles use the default placement +@code{tbp}. + +@ifinfo +The body of the figure is made up of whatever text, LaTeX commands, etc. +you wish. The @code{\caption} command allows you to title your figure. +@end ifinfo + +@iftex +The body of the figure is made up of whatever text, @LaTeX commands, etc. +you wish. The @code{\caption} command allows you to title your figure. +@end iftex + + +@comment ************************* +@comment **** flushleft ********** +@comment ************************* + +@comment LEVEL3 +@node flushleft, \raggedright, figure, Environments +@comment node-name, next, previous, up +@subsection flushleft +@cindex Environments + +@example + \begin@{flushleft@} + Text on line 1 \\ + Text on line 2 \\ + . + . + . + \end@{flushleft@} +@end example + +The @code{flushleft} environment allows you to create a paragraph +consisting of lines that are flushed left, to the left-hand margin. +Each line must be terminated with the string @code{\\}. + +@menu +* \raggedright:: +@end menu + +@comment ***************** +@comment * \raggedright ** +@comment ***************** + +@comment LEVEL4 +@node \raggedright, flushright, flushleft, flushleft +@comment node-name, next, previous, up +@subsubsection \raggedright +@cindex Environments + +This declaration corresponds to the @code{flushleft} environment. This +declaration can be used inside an environment such as @code{quote} or in +a @code{parbox}. + +@ifinfo +Unlike the @code{flushleft} environment, the @code{\raggedright} command +does not start a new paragraph; it simply changes how LaTeX formats +paragraph units. To affect a paragraph unit's format, the scope of the +declaration must contain the blank line or @code{\end} command (of an +environment like quote) that ends the paragraph unit. +@end ifinfo + +@iftex +Unlike the @code{flushleft} environment, the @code{\raggedright} command +does not start a new paragraph; it simply changes how @LaTeX formats +paragraph units. To affect a paragraph unit's format, the scope of the +declaration must contain the blank line or @code{\end} command (of an +environment like quote) that ends the paragraph unit. +@end iftex + + +@comment ************************* +@comment **** flushright ********* +@comment ************************* + +@comment LEVEL3 +@node flushright, \raggedleft, \raggedright, Environments +@comment node-name, next, previous, up +@subsection flushright + +@example + \begin@{flushright@} + Text on line 1 \\ + Text on line 2 \\ + . + . + . + \end@{flushright@} +@end example + +The @code{flushright} environment allows you to create a paragraph +consisting of lines that are flushed right, to the right-hand margin. +Each line must be terminated with the string @code{\\}. + +@menu +* \raggedleft:: +@end menu + +@comment ***************** +@comment * \raggedleft *** +@comment ***************** + +@comment LEVEL4 +@node \raggedleft, itemize, flushright, flushright +@comment node-name, next, previous, up +@subsubsection \raggedleft + +This declaration corresponds to the @code{flushright} environment. This +declaration can be used inside an environment such as @code{quote} or in +a @code{parbox}. + +@ifinfo +Unlike the @code{flushright} environment, the @code{\raggedleft} command +does not start a new paragraph; it simply changes how LaTeX formats +paragraph units. To affect a paragraph unit's format, the scope of the +declaration must contain the blank line or @code{\end} command (of an +environment like quote) that ends the paragraph unit. +@end ifinfo + +@iftex +Unlike the @code{flushright} environment, the @code{\raggedleft} command +does not start a new paragraph; it simply changes how @LaTeX formats +paragraph units. To affect a paragraph unit's format, the scope of the +declaration must contain the blank line or @code{\end} command (of an +environment like quote) that ends the paragraph unit. +@end iftex + +@comment ************************* +@comment **** itemize ************ +@comment ************************* + +@comment LEVEL3 +@node itemize, list, \raggedleft, Environments +@comment node-name, next, previous, up +@subsection itemize +@cindex itemize Environment +@cindex Lists of items +@cindex Environments + +@example + \begin@{itemize@} + \item First item + \item Second item + . + . + . + \end@{itemize@} +@end example + +The @code{itemize} environment produces a "bulleted" list. Itemizations +can be nested within one another, up to four levels deep. They can also +be nested within other paragraph-making environments. + +Each item of an @code{itemized} list begins with an @code{\item} command. +There must be at least one @code{\item} command within the environment. + + +@comment ************************* +@comment **** list *************** +@comment ************************* + +@comment LEVEL3 +@node list, minipage, itemize, Environments +@comment node-name, next, previous, up +@subsection list +@cindex Environments +@cindex list Environment +@cindex Lists of items + +@example + \begin@{list@}@{label@}@{spacing@} + \item First item + \item Second item + . + . + . + \end@{list@} +@end example + +@ifinfo +The @code{@{label@}} argument specifies how items should be labelled. +This argument is a piece of text that is inserted in a box to form the +label. This argument can and usually does contain other LaTeX commands. +@end ifinfo + +@iftex +The @code{@{label@}} argument specifies how items should be labelled. +This argument is a piece of text that is inserted in a box to form the +label. This argument can and usually does contain other @LaTeX commands. +@end iftex + +The @code{@{spacing@}} argument contains commands to change the spacing +parameters for the list. This argument will most often be null, i.e., +@code{@{@}}. This will select all default spacing which should suffice +for most cases. + + +@comment ************************* +@comment **** minipage *********** +@comment ************************* + +@comment LEVEL3 +@node minipage, picture, list, Environments +@comment node-name, next, previous, up +@subsection minipage +@cindex minipage Environment +@cindex Environments + +@example + \begin@{minipage@}[position]@{width@} + text + \end@{minipage@} +@end example + +The @code{minipage} environment is similar to a @code{\parbox} command. +It takes the same optional @code{position} argument and mandatory +@code{width} argument. You may use other paragraph-making environments +inside a minipage. + +Footnotes in a @code{minipage} environment are handled in a way that is +particularly useful for putting footnotes in figures or tables. A +@code{\footnote} or @code{\footnotetext} command puts the footnote at +the bottom of the minipage instead of at the bottom of the page, and it +uses the @code{mpfootnote} counter instead of the ordinary +@code{footnote} counter. + +NOTE: Don't put one minipage inside another if you are using footnotes; +they may wind up at the bottom of the wrong minipage. + + +@comment ************************* +@comment **** picture ************ +@comment ************************* + +@comment LEVEL3 +@node picture, \circle, minipage, Environments +@comment node-name, next, previous, up +@subsection picture +@cindex Environments +@cindex picture Environment +@cindex Creating pictures + +@example + \begin@{picture@}(width,height)(x offset,y offset) + . + picture commands + . + \end@{picture@} +@end example + +@ifinfo +The @code{picture} environment allows you to create just about any kind +of picture you want containing text, lines, arrows and circles. You +tell LaTeX where to put things in the picture by specifying their +coordinates. A coordinate is a number that may have a decimal point and +a minus sign - a number like @code{5}, @code{2.3} or @code{-3.1416}. A +coordinate specifies a length in multiples of the unit length +@code{\unitlength}, so if @code{\unitlength} has been set to @code{1cm}, +then the coordinate 2.54 specifies a length of 2.54 centimeters. You +can change the value of @code{\unitlength} anywhere you want, using the +@code{\setlength} command, but strange things will happen if you try +changing it inside the picture environment. +@end ifinfo + +@iftex +The @code{picture} environment allows you to create just about any kind +of picture you want containing text, lines, arrows and circles. You +tell @LaTeX where to put things in the picture by specifying their +coordinates. A coordinate is a number that may have a decimal point and +a minus sign - a number like @code{5}, @code{2.3} or @code{-3.1416}. A +coordinate specifies a length in multiples of the unit length +@code{\unitlength}, so if @code{\unitlength} has been set to @code{1cm}, +then the coordinate 2.54 specifies a length of 2.54 centimeters. You +can change the value of @code{\unitlength} anywhere you want, using the +@code{\setlength} command, but strange things will happen if you try +changing it inside the picture environment. +@end iftex + +A position is a pair of coordinates, such as @code{(2.4,-5)}, specifying +the point with x-coordinate @code{2.4} and y-coordinate @code{-5}. +Coordinates are specified in the usual way with respect to an origin, +which is normally at the lower-left corner of the picture. Note that +when a position appears as an argument, it is not enclosed in braces; +the parentheses serve to delimit the argument. + +The @code{picture} environment has one mandatory argument, which is a +@code{position}. It specifies the size of the picture. The environment +produces a rectangular box with width and height determined by this +argument's x- and y-coordinates. + +The @code{picture} environment also has an optional @code{position} +argument, following the @code{size} argument, that can change the +origin. (Unlike ordinary optional arguments, this argument is not +contained in square brackets.) The optional argument gives the +coordinates of the point at the lower-left corner of the picture +(thereby determining the origin). For example, if @code{\unitlength} +has been set to @code{1mm}, the command... +@example + \begin@{picture@}(100,200)(10,20) +@end example +...produces a picture of width 100 millimeters and height 200 +millimeters, whose lower-left corner is the point (10,20) and whose +upper-right corner is therefore the point (110,220). When you first +draw a picture, you will omit the optional argument, leaving the origin +at the lower-left corner. If you then want to modify your picture by +shifting everything, you just add the appropriate optional argument. + +@ifinfo +The environment's mandatory argument determines the nominal size of the +picture. This need bear no relation to how large the picture really is; +LaTeX will happily allow you to put things outside the picture, or even +off the page. The picture's nominal size is used by TeX in determining +how much room to leave for it. +@end ifinfo + +@iftex +The environment's mandatory argument determines the nominal size of the +picture. This need bear no relation to how large the picture really is; +@LaTeX will happily allow you to put things outside the picture, or even +off the page. The picture's nominal size is used by TeX in determining +how much room to leave for it. +@end iftex + +Everything that appears in a picture is drawn by the @code{\put} +command. The command... +@example + \put (11.3,-.3)@{...@} +@end example +...puts the object specified by @code{...} in the picture, with its +reference point at coordinates (11.3,-.3). The reference points for +various objects will be described below. + +The @code{\put} command creates an @code{LR box}. You can put anything +in the text argument of the @code{\put} command that you'd put into the +argument of an @code{\mbox} and related commands. When you do this, the +reference point will be the lower left corner of the box. + +@menu +* \circle:: +* \dashbox:: +* \frame:: +* \framebox (picture):: +* \line:: +* \linethickness:: +* \makebox (picture):: +* \multiput:: +* \oval:: +* \put:: +* \shortstack:: +* \vector:: +@end menu + + +@comment ***************** +@comment *** \circle ***** +@comment ***************** + +@comment LEVEL4 +@node \circle, \dashbox, picture, picture +@comment node-name, next, previous, up +@subsubsection \circle + +@code{\circle[*]@{diameter@}} + +@ifinfo +The @code{\circle} command produces a circle of the specified diameter. +If the @code{*}-form of the command is used, LaTeX draws a solid circle. +@end ifinfo + +@iftex +The @code{\circle} command produces a circle of the specified diameter. +If the @code{*}-form of the command is used, @LaTeX draws a solid circle. +@end iftex + +@comment ***************** +@comment *** \dashbox **** +@comment ***************** + +@comment LEVEL4 +@node \dashbox, \frame, \circle, picture +@comment node-name, next, previous, up +@subsubsection \dashbox + +@code{\dashbox@{dash_length@}(width,height)@{...@}} + +The @code{\dashbox} has an extra argument which specifies the width of +each dash. A dashed box looks best when the @code{width} and +@code{height} are multiples of the @code{dash_length}. + + +@comment ***************** +@comment *** \frame ****** +@comment ***************** + +@comment LEVEL4 +@node \frame, \framebox (picture), \dashbox, picture +@comment node-name, next, previous, up +@subsubsection \frame + +@code{\frame@{...@}} + +The @code{\frame} command puts a rectangular frame around the object +specified in the argument. The reference point is the bottom left +corner of the frame. No extra space is put between the frame and the +object. + + +@comment ************************** +@comment *** \framebox (picture) ** +@comment ************************** + +@comment LEVEL4 +@node \framebox (picture), \line, \frame, picture +@comment node-name, next, previous, up +@subsubsection \framebox + +@code{\framebox(width,height)[position]@{...@}} + +The @code{\framebox} command is exactly the same as the @code{\makebox} +command, except that it puts a frame around the outside of the box that +it creates. + +The @code{framebox} command produces a rule of thickness +@code{\fboxrule}, and leaves a space @code{\fboxsep} between the rule +and the contents of the box. + +@comment ***************** +@comment *** \line ******* +@comment ***************** + +@comment LEVEL4 +@node \line, \linethickness, \framebox (picture), picture +@comment node-name, next, previous, up +@subsubsection \line + +@code{\line(x slope,y slope)@{length@}} + +The @code{\line} command draws a line of the specified @code{length} and +@code{slope}. + + +@comment ****************** +@comment * \linethickness * +@comment ****************** + +@comment LEVEL4 +@node \linethickness, \makebox (picture), \line, picture +@comment node-name, next, previous, up +@subsubsection \linethickness + +@code{\linethickness@{dimension@}} + +Declares the thickness of horizontal and vertical lines in a picture +environment to be @code{dimension}, which must be a positive length. It +does not affect the thickness of slanted lines and circles, or the +quarter circles drawn by @code{\oval} to form the corners of an oval. + + +@comment ************************* +@comment *** \makebox (picture) ** +@comment ************************* + +@comment LEVEL4 +@node \makebox (picture), \multiput, \linethickness, picture +@comment node-name, next, previous, up +@subsubsection \makebox + +@code{\makebox(width,height)[position]@{...@}} + +The @code{\makebox} command for the picture environment is similar to +the normal @code{\makebox} command except that you must specify a +@code{width} and @code{height} in multiples of @code{\unitlength}. + +The optional argument, @code{[position]}, specifies the quadrant that +your text appears in. You may select up to two of the following: + +@itemize @bullet +@item +@code{t} - Moves the item to the top of the rectangle +@item +@code{b} - Moves the item to the bottom +@item +@code{l} - Moves the item to the left +@item +@code{r} - Moves the item to the right +@end itemize + +@xref{\makebox}. + +@comment ***************** +@comment *** \multiput *** +@comment ***************** + +@comment LEVEL4 +@node \multiput, \oval, \makebox (picture), picture +@comment node-name, next, previous, up +@subsubsection \multiput + +@code{\multiput(x coord,y coord)(delta x,delta y)@{number of copies@}@{object@}} + +The @code{\multiput} command can be used when you are putting the same +object in a regular pattern across a picture. + + +@comment ***************** +@comment *** \oval ***** +@comment ***************** + +@comment LEVEL4 +@node \oval, \put, \multiput, picture +@comment node-name, next, previous, up +@subsubsection \oval + +@code{\oval(width,height)[portion]} + +The @code{\oval} command produces a rectangle with rounded corners. The +optional argument, @code{[portion]}, allows you to select part of the +oval. + +@itemize @bullet +@item +@code{t} - Selects the top portion +@item +@code{b} - Selects the bottom portion +@item +@code{r} - Selects the right portion +@item +@code{l} - Selects the left portion +@end itemize + + +@comment ***************** +@comment *** \put ******** +@comment ***************** + +@comment LEVEL4 +@node \put, \shortstack, \oval, picture +@comment node-name, next, previous, up +@subsubsection \put + +@code{\put(x coord,y coord)@{ ... @}} + +The @code{\put} command places the item specified by the mandatory +argument at the given coordinates. + + +@comment ***************** +@comment *** \shortstack * +@comment ***************** + +@comment LEVEL4 +@node \shortstack, \vector, \put, picture +@comment node-name, next, previous, up +@subsubsection \shortstack + +@code{\shortstack[position]@{... \\ ... \\ ...@}} + +The @code{\shortstack} command produces a stack of objects. The valid +positions are: + +@itemize @bullet +@item +@code{r} - Moves the objects to the right of the stack +@item +@code{l} - Moves the objects to the left of the stack +@item +@code{c} - Moves the objects to the center of the stack (default) +@end itemize + + +@comment ***************** +@comment *** \vector ***** +@comment ***************** + +@comment LEVEL4 +@node \vector, quotation, \shortstack, picture +@comment node-name, next, previous, up +@subsubsection \vector + +@code{\vector(x slope,y slope)@{length@}} + +The @code{\vector} command draws a line with an arrow of the specified +length and slope. The @code{x} and @code{y} values must lie between -4 +and +4, inclusive. + + +@comment ************************* +@comment **** quotation ********** +@comment ************************* + +@comment LEVEL3 +@node quotation, quote, \vector, Environments +@comment node-name, next, previous, up +@subsection quotation +@cindex Environments +@cindex quotation Environment + +@example + \begin@{quotation@} + text + \end@{quotation@} +@end example + +The margins of the @code{quotation} environment are indented on the left +and the right. The text is justified at both margins and there is +paragraph indentation. Leaving a blank line between text produces a new +paragraph. + + +@comment ************************* +@comment **** quote ************** +@comment ************************* + +@comment LEVEL3 +@node quote, tabbing, quotation, Environments +@comment node-name, next, previous, up +@subsection quote +@cindex Environments +@cindex \quote Environment + +@example + \begin@{quote@} + text + \end@{quote@} +@end example + +The margins of the @code{quote} environment are indented on the left and +the right. The text is justified at both margins. Leaving a blank line +between text produces a new paragraph. + + +@comment ************************* +@comment **** tabbing ************ +@comment ************************* + +@comment LEVEL3 +@node tabbing, \=, quote, Environments +@comment node-name, next, previous, up +@subsection tabbing +@cindex Environments +@cindex tabbing Environment + +@example + \begin@{tabbing@} + text \= more text \= still more text \= last text \\ + second row \> \> more \\ + . + . + . + \end@{tabbing@} +@end example + +The @code{tabbing} environment provides a way to align text in columns. +It works by setting tab stops and tabbing to them much the way you do +with an ordinary typewriter. + +@menu +* \= :: +* \> :: +* \< :: +* \+ :: +* \- (tabbing) :: +* \A :: +* \` :: +* \kill :: +@end menu + + +@comment ***************** +@comment *** \= ******** +@comment ***************** + +@comment LEVEL4 +@node \=, \>, tabbing, tabbing +@comment node-name, next, previous, up +@subsubsection \= + +The @code{\=} command sets the tab stops. + + +@comment ***************** +@comment *** \> ******** +@comment ***************** + +@comment LEVEL4 +@node \>, \<, \=, tabbing +@comment node-name, next, previous, up +@subsubsection \> + +@ifinfo +The @code{\>} command causes LaTeX to advance to the next tab stop. +@end ifinfo + +@iftex +The @code{\>} command causes @LaTeX to advance to the next tab stop. +@end iftex + +@comment ***************** +@comment *** \< ******** +@comment ***************** + +@comment LEVEL4 +@node \<, \+, \>, tabbing +@comment node-name, next, previous, up +@subsubsection \< + +The @code{\<} command allows you to put something to the left of the +local margin without changing the margin. + + +@comment ***************** +@comment *** \+ ******** +@comment ***************** + +@comment LEVEL4 +@node \+, \- (tabbing), \<, tabbing +@comment node-name, next, previous, up +@subsubsection \+ + +The @code{\+} command moves the left margin of the next and all the +following commands one tab stop to the right. + + +@comment ********************* +@comment *** \- (tabbing) *** +@comment ********************* + +@comment LEVEL4 +@node \- (tabbing), \A, \+, tabbing +@comment node-name, next, previous, up +@subsubsection \- + +The @code{\-} command moves the left margin of the next and all the +following commands one tab stop to the left. + + +@comment ***************** +@comment *** \' ******** +@comment ***************** + +@comment LEVEL4 +@node \A, \`, \- (tabbing), tabbing +@comment node-name, next, previous, up +@subsubsection \' + +The @code{\'} command moves everything that you have typed so far in the +current column, everything starting from the most recent @code{\>}, +@code{\<}, @code{\'}, @code{\\}, or @code{\kill} command, to the right +of the previous column, flush against the current column's tab stop. + + +@comment ***************** +@comment *** \` ******** +@comment ***************** + +@comment LEVEL4 +@node \`, \kill, \A, tabbing +@comment node-name, next, previous, up +@subsubsection \` + +The @code{\`} command allows you to put text flushed right against any +tab stop, including tab stop 0. However, it can't move text to the +right of the last column because there's no tab stop there. The +@code{\`} command moves all the text that follows it, up to the +@code{\\} or @code{\end@{tabbing@}} command that ends the line, to the +right margin of the tabbing environment. There must be no @code{\>} or +@code{\'} command between the @code{\`} and the command that ends the +line. + + +@comment ***************** +@comment *** \kill ***** +@comment ***************** + +@comment LEVEL4 +@node \kill, table, \`, tabbing +@comment node-name, next, previous, up +@subsubsection \kill + +The @code{\kill} command allows you to set tab stops without producing +text. It works just like the @code{\\} except that it throws away the +current line instead of producing output for it. The effect of any +@code{\=}, @code{\+} or @code{\-} commands in that line remain in +effect. + + + +@comment ************************* +@comment **** table ************** +@comment ************************* + +@comment LEVEL3 +@node table, tabular, \kill, Environments +@comment node-name, next, previous, up +@subsection table +@cindex Environments +@cindex table Environment + +@example + \begin@{table@}[placement] + + body of the table + + \caption@{table title@} + \end@{table@} +@end example + +Tables are objects that are not part of the normal text, and are +usually "floated" to a convenient place, like the top of a page. +Tables will not be split between two pages. + +@ifinfo +The optional argument @code{[placement]} determines where LaTeX will try +to place your table. There are four places where LaTeX can possibly put +a float: +@end ifinfo + +@iftex +The optional argument @code{[placement]} determines where @LaTeX will try +to place your table. There are four places where @LaTeX can possibly put +a float: +@end iftex + + +@itemize @bullet +@item +@code{h} : Here - at the position in the text where the table +environment appears. +@item +@code{t} : Top - at the top of a text page. +@item +@code{b} : Bottom - at the bottom of a text page. +@item +@code{p} : Page of floats - on a separate float page, which is a page +containing no text, only floats. +@end itemize + +The standard @code{report} and @code{article} styles use the default +placement @code{[tbp]}. + +@ifinfo +The body of the table is made up of whatever text, LaTeX commands, etc., +you wish. The @code{\caption} command allows you to title your table. +@end ifinfo + +@iftex +The body of the table is made up of whatever text, LaTeX commands, etc., +you wish. The @code{\caption} command allows you to title your table. +@end iftex + + +@comment ************************* +@comment **** tabular ************ +@comment ************************* + +@comment LEVEL3 +@node tabular, \cline, table, Environments +@comment node-name, next, previous, up +@subsection tabular +@cindex Environment +@cindex tabular Environment + +@example + \begin@{tabular@}[pos]@{cols@} + column 1 entry & column 2 entry ... & column n entry \\ + . + . + . + \end@{tabular@} + + or + + \begin@{tabular*@}@{width@}[pos]@{cols@} + column 1 entry & column 2 entry ... & column n entry \\ + . + . + . + \end@{tabular*@} +@end example + +These environments produce a box consisting of a sequence of rows of +items, aligned vertically in columns. The mandatory and optional +arguments consist of: + +@table @code +@item width +Specifies the width of the @code{tabular*} environment. There must be +rubber space between columns that can stretch to fill out the specified +width. +@item pos +Specifies the vertical position; default is alignment on the center of +the environment. + +@itemize @bullet +@item +@code{t} - align on top row +@item +@code{b} - align on bottom row +@end itemize + +@item cols +Specifies the column formatting. It consists of a sequence of the +following specifiers, corresponding to the sequence of columns and +intercolumn material. + +@itemize @bullet + +@item +@code{l} - A column of left-aligned items. +@item +@code{r} - A column of right-aligned items. +@item +@code{c} - A column of centred items. +@item +@code{|} - A vertical line the full height and depth of the environment. +@item +@code{@@@{text@}} - This inserts text in every row. An @@-expression +suppresses the intercolumn space normally inserted between columns; any +desired space between the inserted text and the adjacent items must be +included in text. An @code{\extracolsep@{wd@}} command in an +@@-expression causes an extra space of width @code{wd} to appear to the +left of all subsequent columns, until countermanded by another +@code{\extracolsep} command. Unlike ordinary intercolumn space, this +extra space is not suppressed by an @@-expression. An +@code{\extracolsep} command can be used only in an @@-expression in the +@code{cols} argument. +@item +@code{p@{wd@}} - Produces a column with each item typeset in a parbox of +width @code{wd}, as if it were the argument of a @code{\parbox[t]@{wd@}} +command. However, a @code{\\} may not appear in the item, except in the +following situations: +@enumerate +@item +inside an environment like @code{minipage}, @code{array}, or @code{tabular}. +@item +inside an explicit @code{\parbox}. +@item +in the scope of a @code{\centering}, @code{\raggedright}, or @code{\raggedleft} +declaration. The latter declarations must appear inside braces or an +environment when used in a @code{p-column} element. +@end enumerate +@item +@code{*@{num@}@{cols@}} - Equivalent to @code{num} copies of +@code{cols}, where @code{num} is any positive integer and @code{cols} is +any list of column-specifiers, which may contain another +@code{*-expression}. + +@end itemize + +@end table + +@menu +* \cline:: +* \hline:: +* \multicolumn:: +* \vline:: +@end menu + + +@comment ***************** +@comment *** \cline **** +@comment ***************** + +@comment LEVEL4 +@node \cline, \hline, tabular, tabular +@comment node-name, next, previous, up +@subsubsection \cline + +@code{\cline@{i-j@}} + +The @code{\cline} command draws horizontal lines across the columns +specified, beginning in column @code{i} and ending in column @code{j}, +which are identified in the mandatory argument. + +@comment ***************** +@comment *** \hline **** +@comment ***************** + +@comment LEVEL4 +@node \hline, \multicolumn, \cline, tabular +@comment node-name, next, previous, up +@subsubsection \hline + +The @code{\hline} command will draw a horizontal line the width of the +table. It's most commonly used to draw a line at the top, bottom, and +between the rows of the table. + +@comment ***************** +@comment ** \multicolumn * +@comment ***************** + +@comment LEVEL4 +@node \multicolumn, \vline, \hline, tabular +@comment node-name, next, previous, up +@subsubsection \multicolumn + +@code{\multicolumn@{cols@}@{pos@}@{text@}} + +The @code{\multicolumn} is used to make an entry that spans several +columns. The first mandatory argument, @code{cols}, specifies the +number of columns to span. The second mandatory argument, @code{pos}, +specifies the formatting of the entry; @code{c} for centred, @code{l} +for flushleft, @code{r} for flushright. The third mandatory argument, +@code{text}, specifies what text is to make up the entry. + +@comment ***************** +@comment *** \vline **** +@comment ***************** +@comment LEVEL4 +@node \vline, thebibliography, \multicolumn, tabular +@comment node-name, next, previous, up +@subsubsection \vline + +The @code{\vline} command will draw a vertical line extending the full +height and depth of its row. An @code{\hfill} command can be used to +move the line to the edge of the column. It can also be used in an +@@-expression. + + +@comment ************************* +@comment **** thebibliography **** +@comment ************************* + +@comment LEVEL3 +@node thebibliography, \bibitem, \vline, Environments +@comment node-name, next, previous, up +@subsection thebibliography +@cindex Environments +@cindex thebibliography Environment +@cindex Bibliography, creating + +@example + \begin@{thebibliography@}@{widest-label@} + \bibitem[label]@{cite_key@} + . + . + . + \end@{thebibliography@} +@end example + +The @code{thebibliography} environment produces a bibliography or +reference list. In the @code{article} style, this reference list is +labelled "References"; in the @code{report} style, it is labelled +"Bibliography". + +@itemize @bullet +@item +@code{widest-label}: Text that, when printed, is approximately as wide +as the widest item label produces by the @code{\bibitem} commands. +@end itemize + +@menu +* \bibitem:: +* \cite:: +* \nocite:: +@end menu + + +@comment ***************** +@comment *** \bibitem **** +@comment ***************** +@comment LEVEL4 +@node \bibitem, \cite, thebibliography, thebibliography +@comment node-name, next, previous, up +@subsubsection \bibitem + +@code{\bibitem[label]@{cite_key@}} + +The @code{\bibitem} command generates an entry labelled by @code{label}. +If the @code{label} argument is missing, a number is generated as the +@code{label}, using the @code{enumi} counter. The @code{cite_key} is +any sequence of letters, numbers, and punctuation symbols not containing +a comma. This command writes an entry on the @file{.aux} file +containing @code{cite_key} and the item's @code{label}. When this +@file{.aux} file is read by the @code{\begin@{document@}} command, the +item's @code{label} is associated with @code{cite_key}, causing the +reference to @code{cite_key} by a @code{\cite} command to produce the +associated @code{label}. + + +@comment ***************** +@comment *** \cite ******* +@comment ***************** +@comment LEVEL4 +@node \cite, \nocite, \bibitem, thebibliography +@comment node-name, next, previous, up +@subsubsection \cite + +@code{\cite[text]@{key_list@}} + +The @code{key_list} argument is a list of citation keys. This command +generates an in-text citation to the references associated with the keys +in @code{key_list} by entries on the @file{.aux} file read by the +@code{\begin@{document@}} command. + + +@comment ***************** +@comment *** \nocite ***** +@comment ***************** +@comment LEVEL4 +@node \nocite, theorem, \cite, thebibliography +@comment node-name, next, previous, up +@subsubsection \nocite + +@code{\nocite@{key_list@}} + +The @code{\nocite} command produces no text, but writes @code{key_list}, +which is a list of one or more citation keys, on the @file{.aux} file. + + +@comment ************************* +@comment **** theorem ************ +@comment ************************* + +@comment LEVEL3 +@node theorem, titlepage, \nocite, Environments +@comment node-name, next, previous, up +@subsection theorem +@cindex Environments +@cindex theorem Environment + +@example + \begin@{theorem@} + theorem text + \end@{theorem@} +@end example + +The @code{theorem} environment produces "Theorem x" in boldface followed +by your theorem text. + + +@comment ************************* +@comment **** titlepage ********** +@comment ************************* + +@comment LEVEL3 +@node titlepage, verbatim, theorem, Environments +@comment node-name, next, previous, up +@subsection titlepage +@cindex Environments +@cindex titlepage Environment +@cindex Making a title page +@cindex Title pages, creating + +@example + \begin@{titlepage@} + text + \end@{titlepage@} +@end example + +The @code{titlepage} environment creates a title page, i.e. a page with no +printed page number or heading. It also causes the following page to be +numbered page one. Formatting the title page is left to you. The +@code{\today} command comes in handy for title pages. + + + +@comment ************************* +@comment **** verbatim *********** +@comment ************************* + +@comment LEVEL3 +@node verbatim, \verb, titlepage, Environments +@comment node-name, next, previous, up +@subsection verbatim +@cindex Environment +@cindex verbatim Environment + +@example + \begin@{verbatim@} + text + \end@{verbatim@} +@end example + +@ifinfo +The @code{verbatim} environment is a paragraph-making environment that +gets LaTeX to print exactly what you type in. It turns LaTeX into a +typewriter with carriage returns and blanks having the same effect that +they would on a typewriter. +@end ifinfo + +@iftex +The @code{verbatim} environment is a paragraph-making environment that +gets @LaTeX to print exactly what you type in. It turns @LaTeX into a +typewriter with carriage returns and blanks having the same effect that +they would on a typewriter. +@end iftex + +@menu +* \verb:: +@end menu + +@comment ***************** +@comment *** \verb ******* +@comment ***************** +@comment LEVEL4 +@node \verb, verse, verbatim, verbatim +@comment node-name, next, previous, up +@subsubsection \verb +@cindex verbatim Environment + +@code{\verb char literal_text char \verb*char literal_text char} + +Typesets @code{literal_text} exactly as typed, including special +characters and spaces, using a typewriter (@code{\tt}) type style. +There may be no space between @code{\verb} or @code{\verb*} and +@code{char} (space is shown here only for clarity). The @code{*-form} +differs only in that spaces are printed. + + +@comment ************************* +@comment **** verse ************** +@comment ************************* + +@comment LEVEL3 +@node verse, Footnotes, \verb, Environments +@comment node-name, next, previous, up +@subsection verse +@cindex Environments +@cindex verse Environment +@cindex Poetry, an environment for + +@example + \begin@{verse@} + text + \end@{verse@} +@end example + +The @code{verse} environment is designed for poetry, though you may find +other uses for it. + + +@page + +@comment ************************************ +@comment **** LEVEL2 Starts Here again. **** +@comment ************************************ + + +@comment ************************* +@comment **** Footnotes ********** +@comment ************************* + +@comment LEVEL2 +@node Footnotes, \footnote, verse, Commands +@comment node-name, next, previous, up +@section Footnotes +@cindex Footnotes, creating + +@code{Footnotes} can be produced in one of two ways. They can be +produced with one command, the @code{\footnote} command. They can also +be produced with two commands, the @code{\footnotemark} and the +@code{\footnotetext} commands. See the specific command for information +on why you would use one over the other. + +@menu +* \footnote:: +* \footnotemark:: +* \footnotetext:: +@end menu + + +@comment ********************** +@comment **** \footnote ******* +@comment ********************** + +@comment LEVEL3 +@node \footnote, \footnotemark, Footnotes, Footnotes +@comment node-name, next, previous, up +@subsection \footnote + +@code{\footnote[number]@{text@}} + +The @code{\footnote} command places the numbered footnote @code{text} at +the bottom of the current page. The optional argument, @code{number}, +is used to change the default footnote number. This command can only be +used in outer paragraph mode. + + +@comment ********************** +@comment **** \footnotemark *** +@comment ********************** + +@comment LEVEL3 +@node \footnotemark, \footnotetext, \footnote, Footnotes +@comment node-name, next, previous, up +@subsection \footnotemark + +The @code{\footnotemark} command puts the footnote @code{number} in the +text. This command can be used in inner paragraph mode. The text of +the footnote is supplied by the @code{\footnotetext} command. + + +@comment ********************** +@comment **** \footnotetext *** +@comment ********************** + +@comment LEVEL3 +@node \footnotetext, Lengths, \footnotemark, Footnotes +@comment node-name, next, previous, up +@subsection \footnotetext + +@code{\footnotetext[number]@{text@}} + +The @code{\footnotetext} command produces the @code{text} to be placed +at the bottom of the page. This command can come anywhere after the +@code{\footnotemark} command. The @code{\footnotetext} command must +appear in outer paragraph mode. + +The optional argument, @code{number}, is used to change the default +footnote number. + +@page + +@comment ************************* +@comment ******* Lengths ********* +@comment ************************* + +@comment LEVEL2 +@node Lengths, \newlength, \footnotetext, Commands +@comment node-name, next, previous, up +@section Lengths +@cindex Lengths, defining and using + +@ifinfo +A @code{length} is a measure of distance. Many LaTeX commands take a +length as an argument. +@end ifinfo + +@iftex +A @code{length} is a measure of distance. Many @LaTeX commands take a +length as an argument. +@end iftex + +@menu +* \newlength:: +* \setlength:: +* \addtolength:: +* \settowidth:: +@end menu + + +@comment ********************** +@comment **** \newlength ****** +@comment ********************** + +@comment LEVEL3 +@node \newlength, \setlength, Lengths, Lengths +@comment node-name, next, previous, up +@subsection \newlength +@cindex Lengths, defining and using + +@code{\newlength@{\gnat@}} + +The @code{\newlength} command defines the mandatory argument, +@code{\gnat}, as a @code{length} command with a value of @code{0in}. An +error occurs if a @code{\gnat} command already exists. + + +@comment ********************** +@comment **** \setlength ****** +@comment ********************** + +@comment LEVEL3 +@node \setlength, \addtolength, \newlength, Lengths +@comment node-name, next, previous, up +@subsection \setlength +@cindex Lengths, defining and using + +@code{\setlength@{\gnat@}@{length@}} + +@ifinfo +The @code{\setlength} command is used to set the value of a +@code{length} command. The @code{length} argument can be expressed in +any terms of length LaTeX understands, i.e., inches (@code{in}), +millimeters (@code{mm}), points (@code{pt}), etc. +@end ifinfo + +@iftex +The @code{\setlength} command is used to set the value of a +@code{length} command. The @code{length} argument can be expressed in +any terms of length @LaTeX understands, i.e., inches (@code{in}), +millimeters (@code{mm}), points (@code{pt}), etc. +@end iftex + + +@comment ********************** +@comment **** \addtolength **** +@comment ********************** + +@comment LEVEL3 +@node \addtolength, \settowidth, \setlength, Lengths +@comment node-name, next, previous, up +@subsection \addtolength +@cindex Lengths, defining and using + +@code{\addtolength@{\gnat@}@{length@}} + +The @code{\addtolength} command increments a "length command" by the +amount specified in the @code{length} argument. It can be a negative +amount. + +@comment ********************** +@comment **** \settowidth ***** +@comment ********************** + +@comment LEVEL3 +@node \settowidth, Letters, \addtolength, Lengths +@comment node-name, next, previous, up +@subsection \settowidth +@cindex Lengths, defining and using + +@code{\settowidth@{\gnat@}@{text@}} + +The @code{\settowidth} command sets the value of a @code{length} command +equal to the width of the @code{text} argument. + +@page + +@comment ************************* +@comment ******* Letters ********* +@comment ************************* + +@comment LEVEL2 +@node Letters, \opening, \settowidth, Commands +@comment node-name, next, previous, up +@section Letters +@cindex Letters +@cindex Creating Letters + +@ifinfo +You can use LaTeX to typeset letters, both personal and business. The +@code{letter} document style is designed to make a number of letters at +once, although you can make just one if you so desire. +@end ifinfo + +@iftex +You can use @LaTeX to typeset letters, both personal and business. The +@code{letter} document style is designed to make a number of letters at +once, although you can make just one if you so desire. +@end iftex + +Your @file{.tex} source file has the same minimum commands as the other +document styles, i.e., you must have the following commands as a +minimum: +@example + \documentstyle@{letter@} + \begin@{document@} + ... letters ... + \end@{document@} +@end example + +Each letter is a @code{letter} environment, whose argument is the name +and address of the recipient. For example, you might have: +@example + \begin@{letter@}@{Mr. Joe Smith\\ 2345 Princess St. + \\ Edinburgh, EH1 1AA@} + ... + \end@{letter@} +@end example + +@ifinfo +The letter itself begins with the @code{\opening} command. The text of +the letter follows. It is typed as ordinary LaTeX input. Commands that +make no sense in a letter, like @code{\chapter}, don't work. The letter +closes with a @code{\closing} command. +@end ifinfo + +@iftex +The letter itself begins with the @code{\opening} command. The text of +the letter follows. It is typed as ordinary @LaTeX input. Commands that +make no sense in a letter, like @code{\chapter}, don't work. The letter +closes with a @code{\closing} command. +@end iftex + +After the @code{closing}, you can have additional material. The +@code{\cc} command produces the usual "cc: ...". There's also a similar +@code{\encl} command for a list of enclosures. + +@menu +* \opening:: +* \closing:: +* Declarations:: +@end menu + + +@comment ****************** +@comment ** \opening ****** +@comment ****************** + +@comment LEVEL3 +@node \opening, \closing, Letters, Letters +@comment node-name, next, previous, up +@subsection \opening +@cindex Letters + +@code{\opening@{text@}} + +The letter begins with the @code{\opening} command. The mandatory +argument, @code{text}, is whatever text you wish to start your letter, +i.e., +@example + \opening@{Dear Joe,@} +@end example + + +@comment ****************** +@comment ** \closing ****** +@comment ****************** + +@comment LEVEL3 +@node \closing, Declarations, \opening, Letters +@comment node-name, next, previous, up +@subsection \closing +@cindex Letters + +@code{\closing@{text@}} + +The letter closes with a @code{\closing} command, i.e., +@example + \closing@{Best Regards,@} +@end example + + +@comment ****************** +@comment ** Declarations ** +@comment ****************** + +@comment LEVEL3 +@node Declarations, \address, \closing, Letters +@comment node-name, next, previous, up +@subsection Declarations +@cindex Letters + +The following commands are declarations which take a single argument. + +@menu +* \address:: +* \signature:: +* \location:: +* \telephone:: +@end menu + +@comment ************** +@comment ** \address ** +@comment ************** + +@comment LEVEL4 +@node \address, \signature, Declarations, Declarations +@comment node-name, next, previous, up +@subsection \address +@cindex Letters + +@code{\address@{Return address@}} + +The return address, as it should appear on the letter and the envelope. +Separate lines of the address should be separated by @code{\\} commands. +If you do not make an @code{\address} declaration, then the letter will +be formatted for copying onto your organisation's standard letterhead. +(@xref{Overview}, for details on your local implementation). If you +give an @code{\address} declaration, then the letter will be formatted +as a personal letter. + + +@comment ************** +@comment * \signature * +@comment ************** + +@comment LEVEL4 +@node \signature, \location, \address, Declarations +@comment node-name, next, previous, up +@subsection \signature +@cindex Letters + +@code{\signature@{Your name@}} + +Your name, as it should appear at the end of the letter underneath the +space for your signature. Items that should go on separate lines should +be separated by @code{\\} commands. + + +@comment ************** +@comment * \location ** +@comment ************** + +@comment LEVEL4 +@node \location, \telephone, \signature, Declarations +@comment node-name, next, previous, up +@subsection \location +@cindex Letters + +@code{\location@{address@}} + +This modifies your organisation's standard address. This only appears +if the @code{firstpage} pagestyle is selected. + +@comment ************** +@comment * \telephone * +@comment ************** + +@comment LEVEL4 +@node \telephone, Line & Page Breaking, \location, Declarations +@comment node-name, next, previous, up +@subsection \telephone +@cindex Letters + +@code{\telephone@{number@}} + +This is your telephone number. This only appears if the +@code{firstpage} pagestyle is selected. + + +@page + +@comment ************************* +@comment * Line & Page Breaking ** +@comment ************************* + +@comment LEVEL2 +@node Line & Page Breaking, \\, \telephone, Commands +@comment node-name, next, previous, up +@section Line & Page Breaking +@cindex Page Breaking +@cindex Line Breaking +@cindex Page Formatting + +@ifinfo +The first thing LaTeX does when processing ordinary text is to translate +your input file into a string of glyphs and spaces. To produce a +printed document, this string must be broken into lines, and these lines +must be broken into pages. In some environments, you do the line +breaking yourself with the @code{\\} command, but LaTeX usually does it +for you. +@end ifinfo + +@iftex +The first thing @LaTeX does when processing ordinary text is to +translate your input file into a string of glyphs and spaces. To +produce a printed document, this string must be broken into lines, and +these lines must be broken into pages. In some environments, you do the +line breaking yourself with the @code{\\} command, but @LaTeX usually +does it for you. +@end iftex + +@menu +* \\:: +* \- (hyphenation):: +* \cleardoublepage:: +* \clearpage:: +* \hyphenation:: +* \linebreak:: +* \newline:: +* \newpage:: +* \nolinebreak:: +* \nopagebreak:: +* \pagebreak:: +@end menu + + +@comment ****************** +@comment ****** \\ ******** +@comment ****************** + +@comment LEVEL3 +@node \\, \- (hyphenation), Line & Page Breaking, Line & Page Breaking +@comment node-name, next, previous, up +@subsection \\ +@cindex Newline + +@code{\\[*][extra-space]} + +@ifinfo +The @code{\\} command tells LaTeX to start a new line. It has an +optional argument, @code{extra-space}, that specifies how much extra +vertical space is to be inserted before the next line. This can be a +negative amount. + +The @code{\\*} command is the same as the ordinary @code{\\} command +except that it tells LaTeX not to start a new page after the line. +@end ifinfo + +@iftex +The @code{\\} command tells @LaTeX to start a new line. It has an +optional argument, @code{extra-space}, that specifies how much extra +vertical space is to be inserted before the next line. This can be a +negative amount. + +The @code{\\*} command is the same as the ordinary @code{\\} command +except that it tells @LaTeX not to start a new page after the line. +@end iftex + + +@comment ********************** +@comment ** \- (hyphenation) ** +@comment ********************** + +@comment LEVEL3 +@node \- (hyphenation), \cleardoublepage, \\, Line & Page Breaking +@comment node-name, next, previous, up +@subsection \- +@cindex Hyphenation + +@ifinfo +The @code{\-} command tells LaTeX that it may hyphenate the word at that +point. LaTeX is very good at hyphenating, and it will usually find all +correct hyphenation points. The @code{\-} command is used for the +exceptional cases. +@end ifinfo + +@iftex +The @code{\-} command tells @LaTeX that it may hyphenate the word at that +point. @LaTeX is very good at hyphenating, and it will usually find all +correct hyphenation points. The @code{\-} command is used for the +exceptional cases. +@end iftex + +@comment ******************** +@comment * \cleardoublepage * +@comment ******************** + +@comment LEVEL3 +@node \cleardoublepage, \clearpage, \- (hyphenation), Line & Page Breaking +@comment node-name, next, previous, up +@subsection \cleardoublepage +@cindex Flushing a page + +The @code{\cleardoublepage} command ends the current page and causes all +figures and tables that have so far appeared in the input to be printed. +In a two-sided printing style, it also makes the next page a right-hand +(odd-numbered) page, producing a blank page if necessary. + + +@comment ****************** +@comment ** \clearpage **** +@comment ****************** + +@comment LEVEL3 +@node \clearpage, \hyphenation, \cleardoublepage, Line & Page Breaking +@comment node-name, next, previous, up +@subsection \clearpage +@cindex Flushing a page + +The @code{\clearpage} command ends the current page and causes all +figures and tables that have so far appeared in the input to be printed. + + +@comment ****************** +@comment ** \hyphenation ** +@comment ****************** + +@comment LEVEL3 +@node \hyphenation, \linebreak, \clearpage, Line & Page Breaking +@comment node-name, next, previous, up +@subsection \hyphenation +@code{\hyphenation@{words@}} +@cindex Hyphenation + +The @code{\hyphenation} command declares allowed hyphenation points, +where @code{words} is a list of words, separated by spaces, in which +each hyphenation point is indicated by a @code{-} character. + + +@comment ****************** +@comment ** \linebreak **** +@comment ****************** + +@comment LEVEL3 +@node \linebreak, \newline, \hyphenation, Line & Page Breaking +@comment node-name, next, previous, up +@subsection \linebreak +@cindex Line Breaks + +@code{\linebreak[number]} + +@ifinfo +The @code{\linebreak} command tells LaTeX to break the current line at +the point of the command. With the optional argument, @code{number}, +you can convert the @code{\linebreak} command from a demand to a +request. The number must be a number from 0 to 4. The higher the +number, the more insistent the request is. + +The @code{\linebreak} command causes LaTeX to stretch the line so it +extends to the right margin. +@end ifinfo + +@iftex +The @code{\linebreak} command tells @LaTeX to break the current line at +the point of the command. With the optional argument, @code{number}, +you can convert the @code{\linebreak} command from a demand to a +request. The number must be a number from 0 to 4. The higher the +number, the more insistent the request is. + +The @code{\linebreak} command causes @LaTeX to stretch the line so it +extends to the right margin. +@end iftex + +@comment ****************** +@comment ** \newline ****** +@comment ****************** + +@comment LEVEL3 +@node \newline, \newpage, \linebreak, Line & Page Breaking +@comment node-name, next, previous, up +@subsection \newline +@cindex Newline + +The @code{\newline} command breaks the line right where it is. The +@code{\newline} command can be used only in paragraph mode. + + +@comment ****************** +@comment ** \newpage ****** +@comment ****************** + +@comment LEVEL3 +@node \newpage, \nolinebreak, \newline, Line & Page Breaking +@comment node-name, next, previous, up +@subsection \newpage +@cindex New Page + +The @code{\newpage} command ends the current page. + + +@comment ****************** +@comment * \nolinebreak *** +@comment ****************** + +@comment LEVEL3 +@node \nolinebreak, \nopagebreak, \newpage, Line & Page Breaking +@comment node-name, next, previous, up +@subsection \nolinebreak + +@code{\nolinebreak[number]} + +@ifinfo +The @code{\nolinebreak} command prevents LaTeX from breaking the current +line at the point of the command. With the optional argument, +@code{number}, you can convert the @code{\nolinebreak} command from a +demand to a request. The number must be a number from 0 to 4. The +higher the number, the more insistent the request is. +@end ifinfo + +@iftex +The @code{\nolinebreak} command prevents @LaTeX from breaking the current +line at the point of the command. With the optional argument, +@code{number}, you can convert the @code{\nolinebreak} command from a +demand to a request. The number must be a number from 0 to 4. The +higher the number, the more insistent the request is. +@end iftex + +@comment ****************** +@comment ** \nopagebreak ** +@comment ****************** + +@comment LEVEL3 +@node \nopagebreak, \pagebreak, \nolinebreak, Line & Page Breaking +@comment node-name, next, previous, up +@subsection \nopagebreak + +@code{\nopagebreak[number]} + +@ifinfo +The @code{\nopagebreak} command prevents LaTeX from breaking the current +page at the point of the command. With the optional argument, +@code{number}, you can convert the @code{\nopagebreak} command from a +demand to a request. The number must be a number from 0 to 4. The +higher the number, the more insistent the request is. +@end ifinfo + +@iftex +The @code{\nopagebreak} command prevents @LaTeX from breaking the current +page at the point of the command. With the optional argument, +@code{number}, you can convert the @code{\nopagebreak} command from a +demand to a request. The number must be a number from 0 to 4. The +higher the number, the more insistent the request is. +@end iftex + +@comment ****************** +@comment ** \pagebreak **** +@comment ****************** + +@comment LEVEL3 +@node \pagebreak, Making Paragraphs, \nopagebreak, Line & Page Breaking +@comment node-name, next, previous, up +@subsection \pagebreak +@cindex Page breaking + +@code{\pagebreak[number]} + +@ifinfo +The @code{\pagebreak} command tells LaTeX to break the current page at +the point of the command. With the optional argument, @code{number}, +you can convert the @code{\pagebreak} command from a demand to a +request. The number must be a number from 0 to 4. The higher the +number, the more insistent the request is. +@end ifinfo + +@iftex +The @code{\pagebreak} command tells @LaTeX to break the current page at +the point of the command. With the optional argument, @code{number}, +you can convert the @code{\pagebreak} command from a demand to a +request. The number must be a number from 0 to 4. The higher the +number, the more insistent the request is. +@end iftex + + +@page + +@comment ************************* +@comment *** Making Paragraphs *** +@comment ************************* + +@comment LEVEL2 +@node Making Paragraphs, \indent, \pagebreak, Commands +@comment node-name, next, previous, up +@section Making Paragraphs +@cindex Making Paragraphs +@cindex Paragraphs + +A paragraph is ended by one or more completely blank lines -- lines not +containing even an @code{%}. A blank line should not appear where a new +paragraph cannot be started, such as in math mode or in the argument of +a sectioning command. + +@menu +* \indent:: +* \noindent:: +* \par:: +@end menu + +@comment ****************** +@comment ** \indent ******* +@comment ****************** + +@comment LEVEL3 +@node \indent, \noindent, Making Paragraphs, Making Paragraphs +@comment node-name, next, previous, up +@subsection \indent +@cindex Paragraphs + +@code{\indent} + +This produces a horizontal space whose width equals the width of the +paragraph indentation. It is used to add paragraph indentation where it +would otherwise be suppressed. + +@comment ****************** +@comment ** \noindent ***** +@comment ****************** + +@comment LEVEL3 +@node \noindent, \par, \indent, Making Paragraphs +@comment node-name, next, previous, up +@subsection \noindent +@cindex Paragraphs + +@code{\noindent} + +When used at the beginning of the paragraph, it suppresses the paragraph +indentation. It has no effect when used in the middle of a paragraph. + + +@comment ****************** +@comment ** \par ********** +@comment ****************** + +@comment LEVEL3 +@node \par, Math Formulae, \noindent, Making Paragraphs +@comment node-name, next, previous, up +@subsection \par +@cindex Paragraphs + +Equivalent to a blank line; often used to make command or environment +definitions easier to read. + + +@page + +@comment ************************* +@comment **** Math Formulae ****** +@comment ************************* + +@comment LEVEL2 +@node Math Formulae, Subscripts & Superscripts, \par, Commands +@comment node-name, next, previous, up +@section Math Formulae +@cindex Math Formulae +@cindex Formulae, maths +@cindex Math mode + +@ifinfo +There are three environments that put LaTeX in math mode: +@end ifinfo +@iftex +There are three environments that put @LaTeX in math mode: +@end iftex +@table @code +@item math +For Formulae that appear right in the text. +@item displaymath +For Formulae that appear on their own line. +@item equation +The same as the displaymath environment except that it adds an equation +number in the right margin. +@end table + +The @code{math} environment can be used in both paragraph and LR mode, +but the @code{displaymath} and @code{equation} environments can be used +only in paragraph mode. The @code{math} and @code{displaymath} +environments are used so often that they have the following short forms: +@example + \(...\) instead of \begin@{math@}...\end@{math@} + + \[...\] instead of \begin@{displaymath@}...\end@{displaymath@} +@end example + +In fact, the @code{math} environment is so common that it has an even +shorter form: +@example + $ ... $ instead of \(...\) +@end example + +@menu +* Subscripts & Superscripts:: +* Math Symbols:: +* Spacing in Math Mode:: +* Math Miscellany:: +@end menu + +@comment ***************************** +@comment * Subscripts & Superscripts * +@comment ***************************** + +@comment LEVEL3 +@node Subscripts & Superscripts, Math Symbols, Math Formulae, Math Formulae +@comment node-name, next, previous, up +@subsection Subscripts & Superscripts +@cindex Math mode +@cindex Superscript +@cindex Subscript + +@ifinfo +To get an expression @code{exp} to appear as a subscript, you just type +@code{_@{exp@}}. To get @code{exp} to appear as a superscript, you type +@code{^@{exp@}}. LaTeX handles superscripted superscripts and all of +that stuff in the natural way. It even does the right thing when +something has both a subscript and a superscript. +@end ifinfo + +@iftex +To get an expression @code{exp} to appear as a subscript, you just type +@code{_@{exp@}}. To get @code{exp} to appear as a superscript, you type +@code{^@{exp@}}. @LaTeX handles superscripted superscripts and all of +that stuff in the natural way. It even does the right thing when +something has both a subscript and a superscript. +@end iftex + + +@comment ****************** +@comment ** Math Symbols ** +@comment ****************** + +@comment LEVEL3 +@node Math Symbols, Spacing in Math Mode, Subscripts & Superscripts, Math Formulae +@comment node-name, next, previous, up +@subsection Math Symbols +@cindex Math mode +@cindex Maths symbols +@cindex Symbols + +@ifinfo +LaTeX provides almost any mathematical symbol you're likely to need. The +commands for generating them can be used only in math mode. For +example, if you include @code{$\pi$} in your source, you will get the +symbol "pi" in your output. +@end ifinfo + +@iftex +@LaTeX provides almost any mathematical symbol you're likely to need. The +commands for generating them can be used only in math mode. For +example, if you include @code{$\pi$} in your source, you will get the +symbol +@tex +$\pi$ +@end tex +in your output. +@end iftex + +@comment ************************ +@comment * Spacing in Math Mode * +@comment ************************ + +@comment LEVEL3 +@node Spacing in Math Mode, Math Miscellany, Math Symbols, Math Formulae +@comment node-name, next, previous, up +@subsection Spacing in Math Mode +@cindex Spacing, within Math mode +@cindex Math mode, spacing + +@ifinfo +In a @code{math} environment, LaTeX ignores the spaces you type and puts +in the spacing that it thinks is best. LaTeX formats mathematics the +way it's done in mathematics texts. If you want different spacing, +LaTeX provides the following four commands for use in math mode: +@end ifinfo +@iftex +In a @code{math} environment, @LaTeX ignores the spaces you type and puts +in the spacing that it thinks is best. @LaTeX formats mathematics the +way it's done in mathematics texts. If you want different spacing, +@LaTeX provides the following four commands for use in math mode: +@end iftex +@enumerate +@item +@code{\;} - a thick space +@item +@code{\:} - a medium space +@item +@code{\,} - a thin space +@item +@code{\!} - a negative thin space +@end enumerate + + +@comment ******************* +@comment * Math Miscellany * +@comment ******************* + +@comment LEVEL3 +@node Math Miscellany, Modes, Spacing in Math Mode, Math Formulae +@comment node-name, next, previous, up +@subsection Math Miscellany +@cindex Maths Miscellany +@cindex Math mode + +@table @code + +@item \cdots +The @code{\cdots} command produces a horizontal ellipsis where the dots +are raised to the center of the line. + +@iftex +eg. +@tex +$\cdots$ +@end tex +@end iftex + +@item \ddots +The @code{\ddots} command produces a diagonal ellipsis. + +@iftex +eg. +@tex +$\ddots$ +@end tex +@end iftex + +@item \frac +@code{\frac@{num@}@{den@}} +The @code{\frac} command produces the fraction @code{num} divided by @code{den}. + +@iftex +eg. +@tex +${1}\over{4}$ +@end tex +@end iftex + +@item \ldots +The @code{\ldots} command produces an ellipsis. This command works in +any mode, not just math mode. + +@iftex +eg. +@tex +$\ldots$ +@end tex +@end iftex + +@item \overbrace +@code{\overbrace@{text@}} +The @code{\overbrace} command generates a brace over text. + +@iftex +eg. +@tex +$\overbrace{x+\cdots+x}^{k \rm\;times}$ +@end tex +@end iftex + +@item \overline +@code{\overline@{text@}} +The @code{\overline} command causes the argument text to be overlined. + +@iftex +eg. +@tex +$\overline{x}$ +@end tex +@end iftex + +@item \sqrt +@code{\sqrt[root]@{arg@}} +The @code{\sqrt} command produces the square root of its argument. The +optional argument, @code{root}, determines what root to produce, i.e., +the cube root of @code{x+y} would be typed as @code{$\sqrt[3]@{x+y@}$}. + +@iftex +eg. +@tex +$\sqrt{x-1}$ +@end tex +@end iftex + +@item \underbrace +@code{\underbrace@{text@}} +The @code{\underbrace} command generates text with a brace underneath. + +@iftex +eg. +@tex +$\underbrace{x+y+z}_{>\,0}$ +@end tex +@end iftex + +@item \underline +@code{\underline@{text@}} +The @code{\underline} command causes the argument text to be underlined. +This command can also be used in paragraph and LR modes. + +@iftex +eg. +@tex +$\underline{z}$ +@end tex +@end iftex + +@item \vdots +The @code{\vdots} command produces a vertical ellipsis. + +@iftex +eg. +@tex +$\vdots$ +@end tex +@end iftex + +@end table + + +@page + +@comment ************************* +@comment ******* Modes *********** +@comment ************************* + +@comment LEVEL2 +@node Modes, Page Styles, Math Miscellany, Commands +@comment node-name, next, previous, up +@section Modes +@cindex Modes +@cindex Paragraph mode +@cindex Math mode +@cindex Left-to-right mode +@cindex LR mode + +@ifinfo +When LaTeX is processing your input text, it is always in one of three +modes: +@end ifinfo + +@iftex +When @LaTeX is processing your input text, it is always in one of three +modes: +@end iftex + +@itemize @bullet +@item +Paragraph mode +@item +Math mode +@item +Left-to-right mode, called LR mode for short +@end itemize + + +@ifinfo +LaTeX changes mode only when it goes up or down a staircase to a +different level, though not all level changes produce mode changes. +Mode changes occur only when entering or leaving an environment, or when +LaTeX is processing the argument of certain text-producing commands. + +"Paragraph mode" is the most common; it's the one LaTeX is in when +processing ordinary text. In that mode, LaTeX breaks your text into +lines and breaks the lines into pages. LaTeX is in "math mode" when +it's generating a mathematical formula. In "LR mode", as in paragraph +mode, LaTeX considers the output that it produces to be a string of +words with spaces between them. However, unlike paragraph mode, LaTeX +keeps going from left to right; it never starts a new line in LR mode. +Even if you put a hundred words into an @code{\mbox}, LaTeX would keep +typesetting them from left to right inside a single box, and then +complain because the resulting box was too wide to fit on the line. + +LaTeX is in LR mode when it starts making a box with an @code{\mbox} +command. You can get it to enter a different mode inside the box - for +example, you can make it enter math mode to put a formula in the box. +There are also several text-producing commands and environments for +making a box that put LaTeX in paragraph mode. The box make by one of +these commands or environments will be called a @code{parbox}. When +LaTeX is in paragraph mode while making a box, it is said to be in +"inner paragraph mode". Its normal paragraph mode, which it starts out +in, is called "outer paragraph mode". +@end ifinfo + +@iftex +@LaTeX changes mode only when it goes up or down a staircase to a +different level, though not all level changes produce mode changes. +Mode changes occur only when entering or leaving an environment, or when +@LaTeX is processing the argument of certain text-producing commands. + +"Paragraph mode" is the most common; it's the one @LaTeX is in when +processing ordinary text. In that mode, @LaTeX breaks your text into +lines and breaks the lines into pages. @LaTeX is in "math mode" when +it's generating a mathematical formula. In "LR mode", as in paragraph +mode, @LaTeX considers the output that it produces to be a string of +words with spaces between them. However, unlike paragraph mode, @LaTeX +keeps going from left to right; it never starts a new line in LR mode. +Even if you put a hundred words into an @code{\mbox}, @LaTeX would keep +typesetting them from left to right inside a single box, and then +complain because the resulting box was too wide to fit on the line. + +@LaTeX is in LR mode when it starts making a box with an @code{\mbox} +command. You can get it to enter a different mode inside the box - for +example, you can make it enter math mode to put a formula in the box. +There are also several text-producing commands and environments for +making a box that put @LaTeX in paragraph mode. The box make by one of +these commands or environments will be called a @code{parbox}. When +@LaTeX is in paragraph mode while making a box, it is said to be in +"inner paragraph mode". Its normal paragraph mode, which it starts out +in, is called "outer paragraph mode". +@end iftex + +@page + +@comment ************************* +@comment ***** Page Styles ******* +@comment ************************* + +@comment LEVEL2 +@node Page Styles, \maketitle, Modes, Commands +@comment node-name, next, previous, up +@section Page Styles +@cindex Styles, pages +@cindex Page styles + +The @code{\documentstyle} command determines the size and position of +the page's head and foot. The page style determines what goes in them. + +@menu +* \maketitle:: +* \pagenumbering:: +* \pagestyle:: +* \thispagestyle:: +@end menu + + +@comment ****************** +@comment ** \maketitle **** +@comment ****************** + +@comment LEVEL3 +@node \maketitle, \author, Page Styles, Page Styles +@comment node-name, next, previous, up +@subsection \maketitle +@cindex Title making +@cindex \maketitle Style + +@code{\maketitle} + +The @code{\maketitle} command generates a title on a separate title page +- except in the @code{article} style, where the title normally goes at +the top of the first page. Information used to produce the title is +obtained from the following declarations: + +@xref{Page Styles} for the commands to give the information. + +@menu +* \author:: +* \date:: +* \thanks:: +* \title:: +@end menu + + +@comment *********** +@comment * \author * +@comment *********** + +@comment LEVEL4 +@node \author, \date, \maketitle, \maketitle +@comment node-name, next, previous, up +@subsection \author +@cindex Author, for titlepage + +@code{\author@{names@}} + +The @code{\author} command declares the author(s), where @code{names} is +a list of authors separated by @code{\and} commands. Use @code{\\} to +separate lines within a single author's entry -- for example, to give +the author's institution or address. + +NOTE: The @code{milstd} and @code{book-form} styles have re-defined the +@code{\maketitle} command. The @code{\title} declaration is the only +command of those shown below that has any meaning. + + +@comment *********** +@comment ** \date ** +@comment *********** + +@comment LEVEL4 +@node \date, \thanks, \author, \maketitle +@comment node-name, next, previous, up +@subsection \date +@cindex Date, for titlepage + +@code{\date@{text@}} + +The @code{\date} command declares text to be the document's date. With +no @code{\date} command, the current date is used. + + +@comment *********** +@comment * \thanks * +@comment *********** + +@comment LEVEL4 +@node \thanks, \title, \date, \maketitle +@comment node-name, next, previous, up +@subsection \thanks +@cindex Thanks, for titlepage + +@code{\thanks@{text@}} + +The @code{\thanks} command produces a @code{footnote} to the title. + + +@comment *********** +@comment * \title ** +@comment *********** + +@comment LEVEL4 +@node \title, \pagenumbering, \thanks, \maketitle +@comment node-name, next, previous, up +@subsection \title +@cindex Title, for titlepage + +@code{\title@{text@}} + +@ifinfo +The @code{\title} command declares @code{text} to be the title. Use +@code{\\} to tell LaTeX where to start a new line in a long title. +@end ifinfo + +@iftex +The @code{\title} command declares @code{text} to be the title. Use +@code{\\} to tell @LaTeX where to start a new line in a long title. +@end iftex + + +@comment ****************** +@comment * \pagenumbering * +@comment ****************** + +@comment LEVEL3 +@node \pagenumbering, \pagestyle, \title, Page Styles +@comment node-name, next, previous, up +@subsection \pagenumbering +@cindex Pagenumbering +@cindex Page Styles + +@code{\pagenumbering@{num_style@}} + +Specifies the style of page numbers. Possible values of @code{num_style} are: + +@itemize @bullet +@item +@code{arabic} - Arabic numerals +@item +@code{roman} - Lowercase roman numerals +@item +@code{Roman} - Uppercase roman numerals +@item +@code{alph} - Lowercase letters +@item +@code{Alph} - Uppercase letters +@end itemize + + +@comment ****************** +@comment ** \pagestyle **** +@comment ****************** + +@comment LEVEL3 +@node \pagestyle, \mark, \pagenumbering, Page Styles +@comment node-name, next, previous, up +@subsection \pagestyle +@code{\pagestyle@{option@}} +@cindex Page Styles +@cindex Page Styles, changing + +The @code{\pagestyle} command changes the style from the current page on +throughout the remainder of your document. + +The valid options are: + +@itemize @bullet +@item +@code{plain} - Just a plain page number. +@item +@code{empty} - Produces empty heads and feet - no page numbers. +@item +@code{headings} - Puts running headings on each page. The document +style specifies what goes in the headings. +@item +@code{myheadings} - You specify what is to go in the heading with the +@code{\markboth} or the @code{\markright} commands. +@end itemize + +@menu +* \mark:: +@end menu + + +@comment *********** +@comment ** \mark ** +@comment *********** + +@comment LEVEL4 +@node \mark, \thispagestyle, \pagestyle, \pagestyle +@comment node-name, next, previous, up +@subsection \mark + +@example +\markboth@{left head@}@{right head@} +\markright@{right head@} +@end example + +@ifinfo +The @code{\markboth} and @code{\markright} commands are used in +conjunction with the page style @code{myheadings} for setting either +both or just the right heading. In addition to their use with the +@code{myheadings} page style, you can use them to override the normal +headings in the @code{headings} style, since LaTeX uses these same +commands to generate those heads. You should note that a "left-hand +heading" is generated by the last @code{\markboth} command before the +end of the page, while a "right-hand heading" is generated by the first +@code{\markboth} or @code{\markright} that comes on the page if there is +one, otherwise by the last one before the page. +@end ifinfo + +@iftex +The @code{\markboth} and @code{\markright} commands are used in +conjunction with the page style @code{myheadings} for setting either +both or just the right heading. In addition to their use with the +@code{myheadings} page style, you can use them to override the normal +headings in the @code{headings} style, since @LaTeX uses these same +commands to generate those heads. You should note that a "left-hand +heading" is generated by the last @code{\markboth} command before the +end of the page, while a "right-hand heading" is generated by the first +@code{\markboth} or @code{\markright} that comes on the page if there is +one, otherwise by the last one before the page. +@end iftex + +@comment ****************** +@comment * \thispagestyle * +@comment ****************** + +@comment LEVEL3 +@node \thispagestyle, Sectioning, \mark, Page Styles +@comment node-name, next, previous, up +@subsection \thispagestyle + +@code{\thispagestyle@{option@}} + +The @code{\thispagestyle} command works in the same manner as the +@code{\pagestyle} command except that it changes the style for the +current page only. + + +@page + +@comment ************************* +@comment ***** Sectioning ******** +@comment ************************* + +@comment LEVEL2 +@node Sectioning, \appendix, \thispagestyle, Commands +@comment node-name, next, previous, up +@section Sectioning +@cindex Sectioning +@cindex chapter, Sectioning +@cindex subsubsection, Sectioning +@cindex subsection, Sectioning +@cindex paragraph, Sectioning +@cindex subparagraph, Sectioning +@cindex subsubparagraph, Sectioning +@cindex subsubsubparagraph, Sectioning + +Sectioning commands provide the means to structure your text into units. + +@itemize @bullet +@item +@code{\part} +@item +@code{\chapter} (report style only) +@item +@code{\section} +@item +@code{\subsection} +@item +@code{\subsubsection} +@item +@code{\paragraph} +@item +@code{\subparagraph} +@item +@code{\subsubparagraph} (milstd and book-form styles only) +@item +@code{\subsubsubparagraph} (milstd and book-form styles only) +@end itemize + +All sectioning commands take the same general form, i.e., + +@code{\chapter[optional]@{title@}} + +In addition to providing the heading in the text, the mandatory argument +of the sectioning command can appear in two other places: + +@enumerate +@item +The table of contents +@item +The running head at the top of the page +@end enumerate + +You may not want the same thing to appear in these other two places as +appears in the text heading. To handle this situation, the sectioning +commands have an @code{optional} argument that provides the text for +these other two purposes. + +The "sectioning commands" have @code{*-forms} that print a @code{title}, +but do not include a number and do not make an entry in the table of +contents. For example, the @code{*-form} of the @code{\subsection} +command could look like: + +@code{\subsection*@{Example subsection@}} + +@menu +* \appendix:: +@end menu + + +@comment *************** +@comment ** \appendix ** +@comment *************** + +@comment LEVEL3 +@node \appendix, Spaces & Boxes, Sectioning, Sectioning +@comment node-name, next, previous, up +@subsection \appendix +@cindex Appendix, creating + +@code{\appendix} + +The @code{\appendix} command changes the way sectional units are +numbered. The @code{\appendix} command generates no text and does not +affect the numbering or parts. + + +@page + +@comment ************************* +@comment **** Spaces & Boxes ***** +@comment ************************* + +@comment LEVEL2 +@node Spaces & Boxes, \addvspace, \appendix, Commands +@comment node-name, next, previous, up +@section Spaces & Boxes +@cindex Spaces & Boxes + +@menu +* \addvspace:: +* \bigskip:: +* \dotfill:: +* \fbox:: +* \framebox:: +* \hfill:: +* \hrulefill:: +* \hspace:: +* \makebox:: +* \mbox:: +* \medskip:: +* \newsavebox:: +* \parbox:: +* \raisebox:: +* \rule:: +* \savebox:: +* \smallskip:: +* \usebox:: +* \vfill:: +* \vspace:: +@end menu + + +@comment **************** +@comment ** \addvspace ** +@comment **************** + +@comment LEVEL3 +@node \addvspace, \bigskip, Spaces & Boxes, Spaces & Boxes +@comment node-name, next, previous, up +@subsection \addvspace +@cindex Spaces & Boxes + +@code{\addvspace@{length@}} + +The @code{\addvspace} command normally adds a vertical space of height +length. However, if vertical space has already been added to the same +point in the output by a previous @code{\addvspace} command, then this +command will not add more space than needed to make the natural length +of the total vertical space equal to @code{length}. + + +@comment *************** +@comment ** \bigskip *** +@comment *************** + +@comment LEVEL3 +@node \bigskip, \dotfill, \addvspace, Spaces & Boxes +@comment node-name, next, previous, up +@subsection \bigskip +@cindex Spaces & Boxes + +The @code{\bigskip} command is equivalent to +@code{\vspace@{bigskipamount@}} where @code{bigskipamount} is determined +by the document style. + + +@comment *************** +@comment ** \dotfill *** +@comment *************** + +@comment LEVEL3 +@node \dotfill, \fbox, \bigskip, Spaces & Boxes +@comment node-name, next, previous, up +@subsection \dotfill +@cindex Spaces & Boxes + +The @code{\dotfill} command produces a "rubber length" that produces dots +instead of just spaces. + + +@comment *************** +@comment ** \fbox ****** +@comment *************** + +@comment LEVEL3 +@node \fbox, \framebox, \dotfill, Spaces & Boxes +@comment node-name, next, previous, up +@subsection \fbox +@cindex Spaces & Boxes + +@code{\fbox@{text@}} + +The @code{\fbox} command is exactly the same as the @code{\mbox} +command, except that it puts a frame around the outside of the box that +it creates. + + +@comment *************** +@comment ** \framebox ** +@comment *************** + +@comment LEVEL3 +@node \framebox, \hfill, \fbox, Spaces & Boxes +@comment node-name, next, previous, up +@subsection \framebox +@cindex Spaces & Boxes + +@code{\framebox[width][position]@{text@}} + +The @code{\framebox} command is exactly the same as the @code{\makebox} +command, except that it puts a frame around the outside of the box that +it creates. + +The framebox command produces a rule of thickness @code{\fboxrule}, and +leaves a space @code{\fboxsep} between the rule and the contents of the +box. + + +@comment *************** +@comment ** \hfill ***** +@comment *************** + +@comment LEVEL3 +@node \hfill, \hrulefill, \framebox, Spaces & Boxes +@comment node-name, next, previous, up +@subsection \hfill +@cindex Spaces & Boxes + +The @code{\hfill} fill command produces a "rubber length" which can +stretch or shrink horizontally. It will be filled with spaces. + + +@comment **************** +@comment ** \hrulefill ** +@comment **************** + +@comment LEVEL3 +@node \hrulefill, \hspace, \hfill, Spaces & Boxes +@comment node-name, next, previous, up +@subsection \hrulespace +@cindex Spaces & Boxes + +The @code{\hrulefill} fill command produces a "rubber length" which can +stretch or shrink horizontally. It will be filled with a horizontal +rule. + + +@comment *************** +@comment ** \hspace **** +@comment *************** + +@comment LEVEL3 +@node \hspace, \makebox, \hrulefill, Spaces & Boxes +@comment node-name, next, previous, up +@subsection \hspace +@cindex Spaces & Boxes + +@code{\hspace[*]@{length@}} + +@ifinfo +The @code{\hspace} command adds horizontal space. The length of the +space can be expressed in any terms that LaTeX understands, i.e., +points, inches, etc. You can add negative as well as positive space +with an @code{\hspace} command. Adding negative space is like +backspacing. + +LaTeX removes horizontal space that comes at the end of a line. If you +don't want LaTeX to remove this space, include the optional @code{*} +argument. Then the space is never removed. +@end ifinfo + +@iftex +The @code{\hspace} command adds horizontal space. The length of the +space can be expressed in any terms that @LaTeX understands, i.e., +points, inches, etc. You can add negative as well as positive space +with an @code{\hspace} command. Adding negative space is like +backspacing. + +@LaTeX removes horizontal space that comes at the end of a line. If you +don't want @LaTeX to remove this space, include the optional @code{*} +argument. Then the space is never removed. +@end iftex + + +@comment ************** +@comment ** \makebox ** +@comment ************** + +@comment LEVEL3 +@node \makebox, \mbox, \hspace, Spaces & Boxes +@comment node-name, next, previous, up +@subsection \makebox +@cindex Spaces & Boxes + +@code{\makebox[width][position]@{text@}} + +The @code{\makebox} command creates a box just wide enough to contain +the @code{text} specified. The width of the box is specified by the +optional @code{width} argument. The position of the text within the box +is determined by the optional @code{position} argument. + +@itemize @bullet +@item +@code{c} - centered (default) +@item +@code{l} - flushleft +@item +@code{r} - flushright +@end itemize + +@xref{\makebox (picture)}. + +@comment *************** +@comment ** \mbox ****** +@comment *************** + +@comment LEVEL3 +@node \mbox, \medskip, \makebox, Spaces & Boxes +@comment node-name, next, previous, up +@subsection \mbox +@cindex Spaces & Boxes + +@code{\mbox@{text@}} + +The @code{\mbox} command creates a box just wide enough to hold the text +created by its argument. + + +@comment *************** +@comment ** \medskip *** +@comment *************** + +@comment LEVEL3 +@node \medskip, \newsavebox, \mbox, Spaces & Boxes +@comment node-name, next, previous, up +@subsection \medskip +@cindex Spaces & Boxes + +The @code{\medskip} command is equivalent to +@code{\vspace@{medskipamount@}} where @code{medskipamount} is determined +by the document style. + + +@comment **************** +@comment ** \newsavebox * +@comment **************** + +@comment LEVEL3 +@node \newsavebox, \parbox, \medskip, Spaces & Boxes +@comment node-name, next, previous, up +@subsection \newsavebox +@cindex Spaces & Boxes + +@code{\newsavebox@{cmd@}} + +Declares @code{cmd}, which must be a command name that is not already +defined, to be a bin for saving boxes. + + +@comment *************** +@comment ** \parbox **** +@comment *************** + +@comment LEVEL3 +@node \parbox, \raisebox, \newsavebox, Spaces & Boxes +@comment node-name, next, previous, up +@subsection \parbox +@cindex Spaces & Boxes + +@code{\parbox[position]@{width@}@{text@}} + +A @code{parbox} is a box whose contents are created in @code{paragraph} +mode. The @code{\parbox} has two mandatory arguments: + +@itemize @bullet +@item +@code{width} - specifies the width of the parbox, and +@item +@code{text} - the text that goes inside the parbox. +@end itemize + +@ifinfo +LaTeX will position a @code{parbox} so its center lines up with the +center of the text line. An optional first argument, @code{position}, +allows you to line up either the top or bottom line in the parbox. +@end ifinfo + +@iftex +@LaTeX will position a @code{parbox} so its center lines up with the center of +the text line. An optional first argument, @code{position}, allows you +to line up either the top or bottom line in the parbox. +@end iftex + +A @code{\parbox} command is used for a parbox containing a small piece +of text, with nothing fancy inside. In particular, you shouldn't use +any of the paragraph-making environments inside a @code{\parbox} +argument. For larger pieces of text, including ones containing a +paragraph-making environment, you should use a @code{minipage} +environment. + + +@comment *************** +@comment ** \raisebox ** +@comment *************** + +@comment LEVEL3 +@node \raisebox, \rule, \parbox, Spaces & Boxes +@comment node-name, next, previous, up +@subsection \raisebox +@cindex Spaces & Boxes + +@code{\raisebox@{distance@}[extend-above][extend-below]@{text@}} + +The @code{\raisebox} command is used to raise or lower text. The first +mandatory argument specifies how high the text is to be raised (or +lowered if it is a negative amount). The text itself is processed in +@code{LR mode}. + +@ifinfo +Sometimes it's useful to make LaTeX think something has a different size +than it really does - or a different size than LaTeX would normally +think it has. The @code{\raisebox} command lets you tell LaTeX how tall +it is. + +The first optional argument, @code{extend-above}, makes LaTeX think that +the text extends above the line by the amount specified. The second +optional argument, @code{extend-below}, makes LaTeX think that the text +extends below the line by the amount specified. +@end ifinfo + +@iftex +Sometimes it's useful to make @LaTeX think something has a different +size than it really does - or a different size than @LaTeX would +normally think it has. The @code{\raisebox} command lets you tell +@LaTeX how tall it is. + +The first optional argument, @code{extend-above}, makes @LaTeX think +that the text extends above the line by the amount specified. The +second optional argument, @code{extend-below}, makes @LaTeX think that +the text extends below the line by the amount specified. +@end iftex + + +@comment *************** +@comment ** \rule ****** +@comment *************** + +@comment LEVEL3 +@node \rule, \savebox, \raisebox, Spaces & Boxes +@comment node-name, next, previous, up +@subsection \rule +@cindex Spaces & Boxes + +@code{\rule[raise-height]@{width@}@{thickness@}} + +The @code{\rule} command is used to produce horizontal lines. The +arguments are defined as follows: + +@itemize @bullet +@item +@code{raise-height} - specifies how high to raise the rule (optional) +@item +@code{width} - specifies the length of the rule (mandatory) +@item +@code{thickness} - specifies the thickness of the rule (mandatory) +@end itemize + + +@comment *************** +@comment ** \savebox *** +@comment *************** + +@comment LEVEL3 +@node \savebox, \smallskip, \rule, Spaces & Boxes +@comment node-name, next, previous, up +@subsection \savebox +@cindex Spaces & Boxes + +@example + \sbox@{cmd@}[text] + \savebox@{cmd@}[width][pos]@{text@} +@end example + +These commands typeset @code{text} in a box just as for @code{\mbox} or +@code{\makebox}. However, instead of printing the resulting box, they +save it in bin @code{cmd}, which must have been declared with +@code{\newsavebox}. + + +@comment **************** +@comment ** \smallskip ** +@comment **************** + +@comment LEVEL3 +@node \smallskip, \usebox, \savebox, Spaces & Boxes +@comment node-name, next, previous, up +@subsection \smallskip +@cindex Spaces & Boxes + +@code{\smallskip} + +The @code{\smallskip} command is equivalent to +@code{\vspace@{smallskipamount@}} where @code{smallskipamount} is +determined by the document style. + + +@comment *************** +@comment ** \usebox **** +@comment *************** + +@comment LEVEL3 +@node \usebox, \vfill, \smallskip, Spaces & Boxes +@comment node-name, next, previous, up +@subsection \usebox +@cindex Spaces & Boxes + +@code{\usebox@{cmd@}} + +Prints the box most recently saved in bin @code{cmd} by a +@code{\savebox} command. + + +@comment *************** +@comment ** \vfill ***** +@comment *************** + +@comment LEVEL3 +@node \vfill, \vspace, \usebox, Spaces & Boxes +@comment node-name, next, previous, up +@subsection \vfill +@cindex Spaces & Boxes + +The @code{\vfill} fill command produces a rubber length which can +stretch or shrink vertically. + + +@comment *************** +@comment ** \vspace **** +@comment *************** + +@comment LEVEL3 +@node \vspace, Special Characters, \vfill, Spaces & Boxes +@comment node-name, next, previous, up +@subsection \vspace +@cindex Spaces & Boxes + +@code{\vspace[*]@{length@}} + +@ifinfo +The @code{\vspace} command adds vertical space. The length of the space +can be expressed in any terms that LaTeX understands, i.e., points, +inches, etc. You can add negative as well as positive space with an +@code{\vspace} command. + +LaTeX removes vertical space that comes at the end of a page. If you +don't want LaTeX to remove this space, include the optional @code{*} +argument. Then the space is never removed. +@end ifinfo + +@iftex +The @code{\vspace} command adds vertical space. The length of the space +can be expressed in any terms that @LaTeX understands, i.e., points, +inches, etc. You can add negative as well as positive space with an +@code{\vspace} command. + +@LaTeX removes vertical space that comes at the end of a page. If you +don't want @LaTeX to remove this space, include the optional @code{*} +argument. Then the space is never removed. +@end iftex + + +@page + +@comment ************************* +@comment ** Special Characters *** +@comment ************************* + +@comment LEVEL2 +@node Special Characters, Splitting the Input, \vspace, Commands +@comment node-name, next, previous, up +@section Special Characters +@cindex Special Characters +@cindex Characters, special + +@ifinfo +The following characters play a special role in LaTeX and are called +"special printing characters", or simply "special characters". +@end ifinfo + +@iftex +The following characters play a special role in @LaTeX and are called +"special printing characters", or simply "special characters". +@end iftex + +@example + # $ % & ~ _ ^ \ @{ @} +@end example +Whenever you put one of these special characters into your file, you are +doing something special. If you simply want the character to be printed +just as any other letter, include a @code{\} in front of the character. +For example, @code{\$} will produce @code{$} in your output. + +The exception to the rule is the @code{\} itself because @code{\\} has +its own special meaning. A @code{\} is produced by typing +@code{$\backslash$} in your file. + + +@page + +@comment ************************* +@comment ** Splitting the Input ** +@comment ************************* + +@comment LEVEL2 +@node Splitting the Input, \include, Special Characters, Commands +@comment node-name, next, previous, up +@section Splitting the Input +@cindex Splitting the input file +@cindex Input file, splitting + +@ifinfo +A large document requires a lot of input. Rather than putting the whole +input in a single large file, it's more efficient to split it into +several smaller ones. Regardless of how many separate files you use, +there is one that is the root file; it is the one whose name you type +when you run LaTeX. +@end ifinfo + +@iftex +A large document requires a lot of input. Rather than putting the whole +input in a single large file, it's more efficient to split it into +several smaller ones. Regardless of how many separate files you use, +there is one that is the root file; it is the one whose name you type +when you run @LaTeX. +@end iftex + +@menu +* \include:: +* \includeonly:: +* \input:: +@end menu + + +@comment *************** +@comment ** \include *** +@comment *************** + +@comment LEVEL3 +@node \include, \includeonly, Splitting the Input, Splitting the Input +@comment node-name, next, previous, up +@subsection \include + +@code{\include@{file@}} + +The @code{\include} command is used in conjunction with the +@code{\includeonly} command for selective inclusion of files. The +@code{file} argument is the first name of a file, denoting +@file{file.tex}. If @code{file} is one the file names in the file list +of the @code{\includeonly} command or if there is no @code{\includeonly} +command, the @code{\include} command is equivalent to +@example +\clearpage \input@{file@} \clearpage +@end example +except that if the file @file{file.tex} does not exist, then a warning +message rather than an error is produced. If the file is not in the +file list, the @code{\include} command is equivalent to @code{\clearpage}. + +The @code{\include} command may not appear in the preamble or in a file +read by another @code{\include} command. + + +@comment ******************* +@comment ** \includeonly *** +@comment ******************* + +@comment LEVEL3 +@node \includeonly, \input, \include, Splitting the Input +@comment node-name, next, previous, up +@subsection \includeonly + +@code{\includeonly@{file_list@}} + +The @code{\includeonly} command controls which files will be read in by +an @code{\include} command. It can only appear in the preamble. + +@comment *************** +@comment ** \input ***** +@comment *************** + +@comment LEVEL3 +@node \input, Starting & Ending, \includeonly, Splitting the Input +@comment node-name, next, previous, up +@subsection \input + +@code{\input@{file@}} + +The @code{\input} command causes the indicated @code{file} to be read and +processed, exactly as if its contents had been inserted in the current +file at that point. The file name may be a complete file name with +extension or just a first name, in which case the file @file{file.tex} +is used. + + +@page + +@comment ************************* +@comment *** Starting & Ending *** +@comment ************************* + +@comment LEVEL2 +@node Starting & Ending, Table of Contents, \input, Commands +@comment node-name, next, previous, up +@section Starting & Ending +@cindex Starting & Ending +@cindex Ending & Starting + +Your input file must contain the following commands as a minimum... + +@example + \documentstyle@{style@} + \begin@{document@} + ... your text goes here ... + \end@{document@} +@end example +@ifinfo +...where the @code{style} selected is one the valid styles for LaTeX. +@xref{Document Styles}, and also @pxref{Overview}, for details of the +various document styles available locally. + +You may include other LaTeX commands between the @code{\documentstyle} +and the @code{\begin@{document@}} commands. +@end ifinfo + +@iftex +...where the @code{style} selected is one the valid styles for @LaTeX. +@xref{Document Styles}, and also @pxref{Overview}, for details of the +various document styles available locally. + +You may include other @LaTeX commands between the @code{\documentstyle} +and the @code{\begin@{document@}} commands. +@end iftex + + +@page + +@comment ************************* +@comment *** Table of Contents *** +@comment ************************* + +@comment LEVEL2 +@node Table of Contents, \addcontentsline, Starting & Ending, Commands +@comment node-name, next, previous, up +@section Table of Contents +@cindex Table of Contents, creating + +@ifinfo +A table of contents is produced with the @code{\tableofcontents} +command. You put the command right where you want the table of contents +to go; LaTeX does the rest for you. It produces a heading, but it does +not automatically start a new page. If you want a new page after the +table of contents, include a @code{\newpage} command after the +@code{\tableofcontents} command. +@end ifinfo + +@iftex +A table of contents is produced with the @code{\tableofcontents} +command. You put the command right where you want the table of contents +to go; @LaTeX does the rest for you. It produces a heading, but it does +not automatically start a new page. If you want a new page after the +table of contents, include a @code{\newpage} command after the +@code{\tableofcontents} command. +@end iftex + +There are similar commands @code{\listoffigures} and +@code{\listoftables} for producing a list of figures and a list of +tables, respectively. Everything works exactly the same as for the +table of contents. + +NOTE: If you want any of these items to be generated, you cannot +have the @code{\nofiles} command in your document. + +@menu +* \addcontentsline:: +* \addtocontents:: +@end menu + + +@comment ******************** +@comment * \addcontentsline * +@comment ******************** + +@comment LEVEL3 +@node \addcontentsline, \addtocontents, Table of Contents, Table of Contents +@comment node-name, next, previous, up +@subsection \addcontentsline + +@code{\addcontentsline@{file@}@{sec_unit@}@{entry@}} + +The @code{\addcontentsline} command adds an entry to the specified list +or table where... + +@itemize @bullet +@item +@code{file} is the extension of the file on which information is to be +written: @code{toc} (table of contents), @code{lof} (list of figures), +or @code{lot} (list of tables). +@item +@code{sec_unit} controls the formatting of the entry. It should be one +of the following, depending upon the value of the file argument: +@enumerate +@item +@code{toc} - the name of the sectional unit, such as part or subsection. +@item +@code{lof} - figure +@item +@code{lot} - table +@end enumerate +@item +@code{entry} is the text of the entry. +@end itemize + + +@comment ****************** +@comment * \addtocontents * +@comment ****************** + +@comment LEVEL3 +@node \addtocontents, Terminal Input/Output, \addcontentsline, Table of Contents +@comment node-name, next, previous, up +@subsection \addtocontents + +@code{\addtocontents@{file@}@{text@}} + +The @code{\addtocontents} command adds text (or formatting commands) directly +to the file that generates the table of contents or list of figures or +tables. + +@itemize @bullet +@item +@code{file} is the extension of the file on which information is to be +written: @code{toc} (table of contents), @code{lof} (list of figures), +or @code{lot} (list of tables). +@item +@code{text} is the information to be written. +@end itemize + + +@page + +@comment ************************* +@comment * Terminal Input/Output * +@comment ************************* + +@comment LEVEL2 +@node Terminal Input/Output, \typeout, \addtocontents, Commands +@comment node-name, next, previous, up +@section Terminal Input/Output +@cindex Input/Output +@cindex Terminal Input/Output + +@menu +* \typeout:: +* \typein:: +@end menu + + +@comment ************** +@comment * \typeout *** +@comment ************** + +@comment LEVEL3 +@node \typeout, \typein, Terminal Input/Output, Terminal Input/Output +@comment node-name, next, previous, up +@subsection \typeout + +@code{\typeout@{msg@}} + +Prints @code{msg} on the terminal and in the @code{log} file. Commands +in @code{msg} that are defined with @code{\newcommand} or +@code{\renewcommand} are replaced by their definitions before being +printed. + +@ifinfo +LaTeX's usual rules for treating multiple spaces as a single space and +ignoring spaces after a command name apply to @code{msg}. A +@code{\space} command in @code{msg} causes a single space to be printed. +@end ifinfo + +@iftex +@LaTeX's usual rules for treating multiple spaces as +a single space and ignoring spaces after a command name apply to +@code{msg}. A @code{\space} command in @code{msg} causes a single space +to be printed. +@end iftex + + +@comment ************** +@comment * \typein **** +@comment ************** + +@comment LEVEL3 +@node \typein, Typefaces, \typeout, Terminal Input/Output +@comment node-name, next, previous, up +@subsection \typein + +@code{\typein[cmd]@{msg@}} + +@ifinfo +Prints @code{msg} on the terminal and causes LaTeX to stop and wait for +you to type a line of input, ending with return. If the @code{cmd} +argument is missing, the typed input is processed as if it had been +included in the input file in place of the @code{\typein} command. If +the @code{cmd} argument is present, it must be a command name. This +command name is then defined or redefined to be the typed input. +@end ifinfo + +@iftex +Prints @code{msg} on the terminal and causes @LaTeX to stop and wait for +you to type a line of input, ending with return. If the @code{cmd} +argument is missing, the typed input is processed as if it had been +included in the input file in place of the @code{\typein} command. If +the @code{cmd} argument is present, it must be a command name. This +command name is then defined or redefined to be the typed input. +@end iftex + + +@page + +@comment ************************* +@comment ***** Typefaces ********* +@comment ************************* + +@comment LEVEL2 +@node Typefaces, Styles, \typein, Commands +@comment node-name, next, previous, up +@section Typefaces +@cindex Typefaces +@cindex Fonts + +The @code{typeface} is specified by giving the "size" and "style". A +typeface is also called a "font". + +@menu +* Styles:: +* Sizes:: +@end menu + + +@comment ************** +@comment ** Styles **** +@comment ************** + +@comment LEVEL3 +@node Styles, Sizes, Typefaces, Typefaces +@comment node-name, next, previous, up +@subsection \Styles +@cindex Font Styles +@cindex Typeface Styles +@cindex Styles of text + +@ifinfo +The following type style commands are supported by LaTeX. +@end ifinfo + +@iftex +The following type style commands are supported by @LaTeX. +@end iftex + +@table @code +@item \rm +Roman. +@item \it +Italics. +@item \em +Emphasis (toggles between \it and \rm). +@item \bf +Boldface. +@item \sl +Slanted. +@item \sf +Sans serif. +@item \sc +Small caps. +@item \tt +Typewriter. +@end table + + +@comment ************** +@comment ** Sizes ***** +@comment ************** + +@comment LEVEL3 +@node Sizes, Parameters, Styles, Typefaces +@comment node-name, next, previous, up +@subsection Sizes +@cindex Font Sizes +@cindex Typeface Sizes +@cindex Sizes of text + +@ifinfo +The following type size commands are supported by LaTeX. +@end ifinfo + +@iftex +The following type size commands are supported by @LaTeX. +@end iftex + +@table @code +@item \tiny + +@item \scriptsize + +@item \footnotesize + +@item \small + +@item \normalsize +(default) + +@item \large + +@item \Large +(capital "l") + +@item \LARGE +(all caps) + +@item \huge + +@item \Huge +(capital "h") +@end table + + +@page +@comment **************************************** +@comment ************* PARAMETERS *************** +@comment **************************************** + +@comment LEVEL1 +@node Parameters, List of Commands, Sizes, Top +@comment node-name, next, previous, up +@chapter Parameters + +@ifinfo +The input file specification indicates the file to be formatted; TeX +uses @file{.tex} as a default file extension. If you omit the input file +entirely, TeX accepts input from the terminal. You specify command +options by supplying a string as a parameter to the command. eg. + +@code{latex "\scrollmode\input foo.tex"} + +...will process @file{foo.tex} without pausing after every error. + +Output files are always created in the current directory. When you fail +to specify an input file name, TeX bases the output names on the file +specification associated with the logical name TEX_OUTPUT, typically +@code{texput.log}. +@end ifinfo + +@iftex +The input file specification indicates the file to be formatted; @TeX@ +uses @file{.tex} as a default file extension. If you omit the input file +entirely, @TeX@ accepts input from the terminal. You specify command +options by supplying a string as a parameter to the command. eg. + +@code{latex "\scrollmode\input foo.tex"} + +...will process @file{foo.tex} without pausing after every error. + +Output files are always created in the current directory. When you fail +to specify an input file name, @TeX@ bases the output names on the file +specification associated with the logical name TEX_OUTPUT, typically +@code{texput.log}. +@end iftex + +@page +@comment ************************* +@comment *** List of Commands **** +@comment ************************* + +@comment LEVEL2 +@node List of Commands, Index, Parameters, Top +@comment node-name, next, previous, up +@section Alphabetical List of Commands + + +@menu +* _{exp} (subscript):: +* ^{exp} (superscript):: +* \\:: +* \- (hyphenation):: +* \;:: +* \COLON:: +* \COMMA:: +* \!:: +* \=:: +* \>:: +* \<:: +* \+:: +* \- (tabbing):: +* \A:: +* \`:: +* \addcontentsline:: +* \addtocontents:: +* \addtocounter:: +* \address:: +* \addtolength:: +* \addvspace:: +* \alph:: +* \appendix:: +* \arabic:: +* array:: +* \author:: +* \bf:: +* \bibitem:: +* \bigskip:: +* \cdots:: +* center:: +* \centering:: +* \circle:: +* \cite:: +* \cleardoublepage:: +* \clearpage:: +* \cline:: +* \closing:: +* \dashbox:: +* \date:: +* \ddots:: +* description:: +* \dotfill:: +* \em:: +* enumerate:: +* eqnarray:: +* equation:: +* figure:: +* \fbox:: +* \flushbottom:: +* flushleft:: +* flushright:: +* \fnsymbol:: +* \footnote:: +* \footnotemark:: +* \footnotesize:: +* \footnotetext:: +* \frac:: +* \frame:: +* \framebox:: +* \hfill:: +* \hline:: +* \hrulefill:: +* \hspace:: +* \huge:: +* \Huge (capital "h"):: +* \hyphenation:: +* \include:: +* \includeonly:: +* \indent:: +* \input:: +* \it:: +* itemize:: +* \kill:: +* \label:: +* \large:: +* \Large (capital "l"):: +* \LARGE (all caps):: +* \ldots:: +* \line:: +* \linebreak:: +* \linethickness:: +* list:: +* \location:: +* \makebox:: +* \maketitle:: +* \mark:: +* \mbox:: +* \medskip:: +* minipage:: +* \multicolumn:: +* \multiput:: +* \newcommand:: +* \newcounter:: +* \newenvironment:: +* \newfont:: +* \newlength:: +* \newline:: +* \newpage:: +* \newsavebox:: +* \newtheorem:: +* \nocite:: +* \noindent:: +* \nolinebreak:: +* \normalsize:: +* \nopagebreak:: +* \onecolumn:: +* \opening:: +* \oval:: +* \overbrace:: +* \overline:: +* \pagebreak:: +* \pagenumbering:: +* \pageref:: +* \pagestyle:: +* \par:: +* \parbox:: +* picture:: +* \put:: +* quotation:: +* quote:: +* \raggedbottom:: +* \raggedleft:: +* \raggedright:: +* \raisebox:: +* \ref:: +* \rm:: +* \roman:: +* \rule:: +* \savebox:: +* \sc:: +* \scriptsize:: +* \setcounter:: +* \setlength:: +* \settowidth:: +* \sf:: +* \shortstack:: +* \signature:: +* \sl:: +* \small:: +* \smallskip:: +* \sqrt:: +* tabbing:: +* table:: +* tabular:: +* \telephone:: +* \thanks:: +* thebibliography:: +* theorem:: +* \thispagestyle:: +* \tiny:: +* \title:: +* titlepage:: +* \tt:: +* \twocolumn:: +* \typeout:: +* \typein:: +* \underbrace:: +* \underline:: +* \usebox:: +* \usecounter:: +* \value:: +* \vdots:: +* \vector:: +* \verb:: +* verbatim:: +* verse:: +* \vfill:: +* \vline:: +* \vspace:: +@end menu + + +@comment ************************ +@comment ** _{exp} (subscript) ** +@comment ************************ + +@comment LEVEL3 - commands +@node _{exp} (subscript), ^{exp} (superscript), , List of Commands +@comment node-name, next, previous, up +@subsection _@{exp@} (subscript) + +To get an expression @code{exp} to appear as a subscript, you just type +@code{_@{exp@}}. Use in math mode. + +@xref{Math Formulae}. + +@xref{Subscripts & Superscripts}. + + +@comment *************************** +@comment ** ^{exp} (superscript) ** +@comment *************************** + +@comment LEVEL3 - commands +@node ^{exp} (superscript), \;, _{exp} (subscript), List of Commands +@comment node-name, next, previous, up +@subsection ^@{exp@} (superscript) + +To get an expression @code{exp} to appear as a superscript, you just +type @code{^@{exp@}}. Use in math mode. + +@xref{Math Formulae}. + +@xref{Subscripts & Superscripts}. + + +@comment ******** +@comment ** \; ** +@comment ******** + +@comment LEVEL3 - commands +@node \;, \COLON, ^{exp} (superscript), List of Commands +@comment node-name, next, previous, up +@subsection \; + +Include a thick space in math mode. + +@xref{Math Formulae}. + +@xref{Spacing in Math Mode}. + + +@comment ************ +@comment ** \COLON ** +@comment ************ + +@comment LEVEL3 - commands +@node \COLON, \COMMA, \;, List of Commands +@comment node-name, next, previous, up +@subsection \: + +Include a medium space in math mode. + +@xref{Math Formulae}. + +@xref{Spacing in Math Mode}. + + +@comment ************ +@comment ** \COMMA ** +@comment ************ + +@comment LEVEL3 - commands +@node \COMMA, \!, \COLON, List of Commands +@comment node-name, next, previous, up +@subsection \, + +Include a thin space in math mode. + +@xref{Math Formulae}. + +@xref{Spacing in Math Mode}. + + +@comment ******** +@comment ** \! ** +@comment ******** + +@comment LEVEL3 - commands +@node \!, \bf, \COMMA, List of Commands +@comment node-name, next, previous, up +@subsection \! + +Include a negative thin space in math mode. + +@xref{Math Formulae}. + +@xref{Spacing in Math Mode}. + + +@comment ********** +@comment ** \bf *** +@comment ********** + +@comment LEVEL3 - commands +@node \bf, \cdots, \!, List of Commands +@comment node-name, next, previous, up +@subsection \bf + +Boldface typeface. + +@xref{Typefaces}. + +@xref{Styles}. + + +@comment ************* +@comment ** \cdots *** +@comment ************* + +@comment LEVEL3 - commands +@node \cdots, \ddots, \bf, List of Commands +@comment node-name, next, previous, up +@subsection \cdots + +The @code{\cdots} command produces a horizontal ellipsis where the dots +are raised to the center of the line. + +@xref{Math Formulae}. + +@xref{Math Miscellany}. + + +@comment ************* +@comment ** \ddots *** +@comment ************* + +@comment LEVEL3 - commands +@node \ddots, \em, \cdots, List of Commands +@comment node-name, next, previous, up +@subsection \ddots + +The @code{\ddots} command produces a diagonal ellipsis. + +@xref{Math Formulae}. + +@xref{Math Miscellany}. + + + +@comment ********** +@comment ** \em *** +@comment ********** + +@comment LEVEL3 - commands +@node \em, \footnotesize, \ddots, List of Commands +@comment node-name, next, previous, up +@subsection \em + +Emphasis (toggles between @code{\it} and @code{\rm}). + +@xref{Typefaces}. + +@xref{Styles}. + + + +@comment ******************* +@comment ** \footnotesize ** +@comment ******************* + +@comment LEVEL3 - commands +@node \footnotesize, \frac, \em, List of Commands +@comment node-name, next, previous, up +@subsection \footnotesize + +Third smallest of 10 typefaces available. This is the default size for +footnotes. + +@xref{Typefaces}. + +@xref{Sizes}. + + + +@comment ************ +@comment ** \frac *** +@comment ************ + +@comment LEVEL3 - commands +@node \frac, \huge, \footnotesize, List of Commands +@comment node-name, next, previous, up +@subsection \frac + +@code{\frac@{num@}@{den@}} + +The @code{\frac} command produces the fraction @code{num} divided by +@code{den}. + +@xref{Math Formulae}. + +@xref{Math Miscellany}. + + +@comment ************ +@comment ** \huge *** +@comment ************ + +@comment LEVEL3 - commands +@node \huge, \Huge (capital "h"), \frac, List of Commands +@comment node-name, next, previous, up +@subsection \huge + +Second largest of 10 typefaces available. + +@xref{Typefaces}. + +@xref{Sizes}. + + +@comment ************************* +@comment ** \Huge (capital "h") ** +@comment ************************* + +@comment LEVEL3 - commands +@node \Huge (capital "h"), \it, \huge, List of Commands +@comment node-name, next, previous, up +@subsection \Huge + +Largest of 10 typefaces available. All fonts may not be available in +this size. + +@xref{Typefaces}. + +@xref{Sizes}. + + + + +@comment ********** +@comment ** \it *** +@comment ********** + +@comment LEVEL3 - commands +@node \it, \large, \Huge (capital "h"), List of Commands +@comment node-name, next, previous, up +@subsection \it + +Italics typeface. + +@xref{Typefaces}. + +@xref{Styles}. + + + +@comment ************* +@comment ** \large *** +@comment ************* + +@comment LEVEL3 - commands +@node \large, \Large (capital "l"), \it, List of Commands +@comment node-name, next, previous, up +@subsection \large + +Slightly larger than default typeface size. + +@xref{Typefaces}. + +@xref{Sizes}. + + +@comment ************************** +@comment ** \Large (capital "l") ** +@comment ************************** + +@comment LEVEL3 - commands +@node \Large (capital "l"), \LARGE (all caps), \large, List of Commands +@comment node-name, next, previous, up +@subsection \Large + +Fourth largest of typefaces available. Is generally the default for +titles. + +@xref{Typefaces}. + +@xref{Sizes}. + + +@comment *********************** +@comment ** \LARGE (all caps) ** +@comment *********************** + +@comment LEVEL3 - commands +@node \LARGE (all caps), \ldots, \Large (capital "l"), List of Commands +@comment node-name, next, previous, up +@subsection \LARGE + +Third largest of typefaces available. + +@xref{Typefaces}. + +@xref{Sizes}. + + +@comment ************* +@comment ** \ldots *** +@comment ************* + +@comment LEVEL3 - commands +@node \ldots, \normalsize, \LARGE (all caps), List of Commands +@comment node-name, next, previous, up +@subsection \ldots + +The @code{\ldots} command produces an ellipsis. This command works in +any mode, not just math mode. + +@xref{Math Formulae}. + +@xref{Math Miscellany}. + + + +@comment ***************** +@comment ** \normalsize ** +@comment ***************** + +@comment LEVEL3 - commands +@node \normalsize, \overbrace, \ldots, List of Commands +@comment node-name, next, previous, up +@subsection \normalsize + +The size of @code{\normalsize} is defined by as 10pt unless the 11pt or +12pt document style option is used. + +@xref{Typefaces}. + +@xref{Sizes}. + + + +@comment **************** +@comment ** \overbrace ** +@comment **************** + +@comment LEVEL3 - commands +@node \overbrace, \overline, \normalsize, List of Commands +@comment node-name, next, previous, up +@subsection \overbrace + +@code{\overbrace@{text@}} + +The @code{\overbrace} command generates a brace over text. + +@xref{Math Formulae}. + +@xref{Math Miscellany}. + + +@comment *************** +@comment ** \overline ** +@comment *************** + +@comment LEVEL3 - commands +@node \overline, \rm, \overbrace, List of Commands +@comment node-name, next, previous, up +@subsection \overline + +@code{\overline@{text@}} + +The @code{\overline} command causes the argument text to be overlined. + +@xref{Math Formulae}. + +@xref{Math Miscellany}. + + + + +@comment ********** +@comment ** \rm *** +@comment ********** + +@comment LEVEL3 - commands +@node \rm, \sc, \overline, List of Commands +@comment node-name, next, previous, up +@subsection \rm + +Roman typeface (default). + +@xref{Typefaces}. + +@xref{Styles}. + + + +@comment ********** +@comment ** \sc *** +@comment ********** + +@comment LEVEL3 - commands +@node \sc, \scriptsize, \rm, List of Commands +@comment node-name, next, previous, up +@subsection \sc + +Small caps typeface. + +@xref{Typefaces}. + +@xref{Styles}. + + +@comment ***************** +@comment ** \scriptsize ** +@comment ***************** + +@comment LEVEL3 - commands +@node \scriptsize, \sf, \sc, List of Commands +@comment node-name, next, previous, up +@subsection \scriptsize + +Second smallest of 10 typefaces available. + +@xref{Typefaces}. + +@xref{Sizes}. + + + +@comment ********** +@comment ** \sf *** +@comment ********** + +@comment LEVEL3 - commands +@node \sf, \sl, \scriptsize, List of Commands +@comment node-name, next, previous, up +@subsection \sf + +Sans serif typeface. + +@xref{Typefaces}. + +@xref{Styles}. + + + +@comment ********** +@comment ** \sl *** +@comment ********** + +@comment LEVEL3 - commands +@node \sl, \small, \sf, List of Commands +@comment node-name, next, previous, up +@subsection \sl + +Slanted typeface. + +@xref{Typefaces}. + +@xref{Styles}. + + +@comment ************* +@comment ** \small *** +@comment ************* + +@comment LEVEL3 - commands +@node \small, \sqrt, \sl, List of Commands +@comment node-name, next, previous, up +@subsection \small + +Slightly smaller than default typeface size. + +@xref{Typefaces}. + +@xref{Sizes}. + + + +@comment ************ +@comment ** \sqrt *** +@comment ************ + +@comment LEVEL3 - commands +@node \sqrt, \tiny, \small, List of Commands +@comment node-name, next, previous, up +@subsection \sqrt + +@code{\sqrt[root]@{arg@}} + +The @code{\sqrt} command produces the square root of its argument. The +optional argument, @code{root}, determines what root to produce, i.e. +the cube root of @code{x+y} would be typed as @code{$\sqrt[3]@{x+y@}$}. + +@xref{Math Formulae}. + +@xref{Math Miscellany}. + + + + +@comment ************ +@comment ** \tiny *** +@comment ************ + +@comment LEVEL3 - commands +@node \tiny, \tt, \sqrt, List of Commands +@comment node-name, next, previous, up +@subsection \tiny + +Smallest of 10 typefaces available. All fonts may not be available in +this size. + +@xref{Typefaces}. + +@xref{Sizes}. + + + +@comment ********** +@comment ** \tt *** +@comment ********** + +@comment LEVEL3 - commands +@node \tt, \underbrace, \tiny, List of Commands +@comment node-name, next, previous, up +@subsection \tt + +Typewriter typeface. + +@xref{Typefaces}. + +@xref{Styles}. + + + +@comment ***************** +@comment ** \underbrace ** +@comment ***************** + +@comment LEVEL3 - commands +@node \underbrace, \underline, \tt, List of Commands +@comment node-name, next, previous, up +@subsection \underbrace + +@code{\underbrace@{text@}} + +The @code{\underbrace} command generates text with a brace underneath. + +@xref{Math Formulae}. + +@xref{Math Miscellany}. + + +@comment **************** +@comment ** \underline ** +@comment **************** + +@comment LEVEL3 - commands +@node \underline, \vdots, \underbrace, List of Commands +@comment node-name, next, previous, up +@subsection \underline + +@code{\underline@{text@}} + +The @code{\underline} command causes the argument text to be underlined. +This command can also be used in paragraph and LR modes. + +@xref{Math Formulae}. + +@xref{Math Miscellany}. + + +@comment ************* +@comment ** \vdots *** +@comment ************* + +@comment LEVEL3 - commands +@node \vdots, , \underline, List of Commands +@comment node-name, next, previous, up +@subsection \vdots + +The @code{\vdots} command produces a vertical ellipsis. + +@xref{Math Formulae}. + +@xref{Math Miscellany}. + + +@comment ************* +@comment ** \vector ** +@comment ************* + + + + + +@page + +@comment *************************** +@comment ******** INDEX ********* +@comment *************************** + +@comment LEVEL1 +@node Index, , List of Commands, Top +@comment node-name, next, previous, up +@unnumbered Index + +@printindex cp + +@contents + +@bye |