diff options
Diffstat (limited to 'Master/texmf-doc/doc/english/latex2e-help-texinfo/latex2e.texi')
-rw-r--r-- | Master/texmf-doc/doc/english/latex2e-help-texinfo/latex2e.texi | 6474 |
1 files changed, 0 insertions, 6474 deletions
diff --git a/Master/texmf-doc/doc/english/latex2e-help-texinfo/latex2e.texi b/Master/texmf-doc/doc/english/latex2e-help-texinfo/latex2e.texi deleted file mode 100644 index f9c7070c6a7..00000000000 --- a/Master/texmf-doc/doc/english/latex2e-help-texinfo/latex2e.texi +++ /dev/null @@ -1,6474 +0,0 @@ -\input texinfo -@c $Id: latex2e.texi 234 2008-06-10 18:27:54Z karl $ -@comment %**start of header (This is for running Texinfo on a region.) -@setfilename latex2e.info -@set UPDATED June 2008 -@set VERSION 2.0 -@settitle @LaTeX{}2e reference manual @value{VERSION} -@comment %**end of header (This is for running Texinfo on a region.) - -@c xx merge http://ctan.org/tex-archive/info/latex-info/ -@c xx latex 2.09 should be pretty much complete now, but -@c new stuff in latex2e is surely missing. - -@copying -This document is version @value{VERSION} (@value{UPDATED}) of an -unofficial reference manual for @LaTeX{}, a document preparation -system. @LaTeX{} is a macro package for @TeX{}. - -This was originally translated from @file{LATEX.HLP} v1.0a in the VMS -Help Library. The pre-translation version was written by -George@tie{}D. Greenwade of Sam Houston State University. The -@LaTeX{}@tie{}2.09 version was written by Stephen Gilmore. The -@LaTeX{}2e version was adapted from this by Torsten Martinsen. Karl -Berry made further updates and additions, and gratefully acknowledges -using @cite{Hypertext Help with @LaTeX{}}, by Sheldon Green, and the -@cite{@LaTeX{} Command Summary} (for @LaTeX{} 2.09) by L.@tie{}Botway -and C.@tie{}Biemesderfer (published by the @TeX{} Users Group as -@cite{@TeX{}niques} number 10), as reference material (text was not -directly copied). - -Copyright @copyright{} 2007, 2008 Karl Berry.@* -Copyright @copyright{} 1988, 1994, 2007 Stephen Gilmore.@* -Copyright @copyright{} 1994, 1995, 1996 Torsten Martinsen. - -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. -@end copying - -@dircategory TeX -@direntry -* LaTeX2e: (latex2e). Unofficial LaTeX reference manual. -@end direntry - -@tex -\global\hbadness=4444 % don't complain much -@end tex - -@titlepage -@title @LaTeX{}: Structured documents for @TeX{} -@subtitle unofficial @LaTeX{} reference manual -@subtitle version @value{VERSION}, @value{UPDATED} -@author -@page -@vskip 0pt plus 1filll -@insertcopying -@end titlepage - -@shortcontents -@contents - -@node Top -@top @LaTeX{}2e - -This document is version @value{VERSION} (@value{UPDATED}) of an -unofficial reference manual for @LaTeX{}, a document preparation -system. It is intended to cover @LaTeX{}2e, which has been the -standard version of @LaTeX{} for many years. - -@cindex Knuth, Donald E. -@cindex Lamport, Leslie -@cindex @LaTeX{} Project team -@LaTeX{} is implemented as a macro package for Donald@tie{}E. Knuth's -@TeX{} typesetting program. @LaTeX{} was originally created by Leslie -Lamport; it is now maintained by a group of volunteers -(@url{http://latex-project.org}). The official documentation written -by the @LaTeX{} project is available there. Again, the present -document is unofficial and has not been reviewed by the @LaTeX{} -maintainers. - -@menu -* Overview:: What is @LaTeX{}? -* Starting & ending:: The standard beginning and end of a document. -* Document classes:: Some of the various classes available. -* Typefaces:: And fonts, such as bold, italics etc. -* Layout:: Controlling the page layout. -* Sectioning:: How to section properly. -* Cross references:: Automatic referencing. -* Environments:: Such as enumerate & itemize. -* Line breaking:: Influencing line breaks. -* Page breaking:: Influencing page breaks. -* Footnotes:: How to produce footnotes. -* Definitions:: Define your own commands etc. -* Counters:: Internal counters used by @LaTeX{}. -* Lengths:: The length commands. -* Making paragraphs:: Paragraph commands. -* Math formulas:: How to create mathematical formulas. -* Modes:: Paragraph, Math or LR modes. -* Page Styles:: Various styles of page layout. -* Spaces:: Horizontal and vertical space. -* Boxes:: Making boxes. -* Special insertions:: Inserting reserved and special characters. -* Splitting the input:: Dealing with big files by splitting. -* Front/back matter:: Tables of contents, glossaries, indexes. -* Letters:: The letter class. -* Terminal Input/Output:: User interaction. -* Command Line:: System-independent command-line behavior. -* Document templates:: Starter templates for various document classes. -* Command Index:: Alphabetical list of @LaTeX{} commands. -* Concept Index:: General index. -@end menu - - -@node Overview -@chapter Overview of @LaTeX{} - -@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 main output file, which is one of: - -@enumerate -@item -If invoked as @command{latex}, a ``Device Independent'' (@file{.dvi}) -file. This contains commands that can be translated into commands for -a variety of output devices. You can view such @file{.dvi} output of -@LaTeX{} by using a program such as @command{xdvi} (display directly) -or @command{dvips} (convert to PostScript). - -@item -If invoked as @command{pdflatex}, a ``Portable Document Format'' -(@file{.pdf}) file. Typically, this is a self-contained file, with -all fonts and images embedded. This can be very useful, but it does -make the output much larger than the @file{.dvi} produced from the -same document. -@end enumerate - -There are other less-common variants of @LaTeX{} (and @TeX{}) as well, -which can produce HTML, XML, and other things. - -@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 - -A @LaTeX{} command begins with the command name, which consists of a -@code{\} followed by either (a)@tie{}a string of letters or (b)@tie{}a -single non-letter. Arguments contained in square brackets, @code{[]}, -are optional while arguments contained in braces, @code{@{@}}, are -required. - -@LaTeX{} is case sensitive. Enter all commands in lower case unless -explicitly directed to do otherwise. - - -@node Starting & ending -@chapter Starting & ending - -@cindex starting & ending -@cindex ending & starting - -A minimal input file looks like the following: - -@example -\documentclass@{@var{class}@} -\begin@{document@} -@var{your text} -\end@{document@} -@end example - -@noindent -where the @var{class} is a valid document class for @LaTeX{}. -@xref{Document classes}, for details of the various document classes -available locally. - -@cindex preamble, defined -You may include other @LaTeX{} commands between the @code{\documentclass} -and the @code{\begin@{document@}} commands (this area is called the -@dfn{preamble}). - - -@node Document classes -@chapter Document classes - -@cindex document classes -@cindex classes of documents -@findex \documentclass - -The class of a given document is defined with the command: - -@example -\documentclass[@var{options}]@{@var{class}@} -@end example - -@noindent -The @code{\documentclass} command must be the first command in a -@LaTeX{} source file. - -@findex article @r{class} -@findex report @r{class} -@findex book @r{class} -@findex letter @r{class} -@findex slides @r{class} -Built-in @LaTeX{} document @var{class} names are (many other document -classes are available as add-ons; @pxref{Overview}): - -@example -article report book letter slides -@end example - -@c xx briefly describe each one - -Standard @var{options} are described below. - -@menu -* Document class options:: Global options. -@end menu - - -@node Document class options -@section Document class options - -@cindex document class options -@cindex options, document class -@cindex class options -@cindex global options - -You can specify so-called @dfn{global options} or @dfn{class options} -to the @code{\documentclass} command by enclosing them in square -brackets as usual. To specify more than one @var{option}, separate -them with a comma: - -@example -\documentclass[@var{option1},@var{option2},...]@{@var{class}@} -@end example - -Here is the list of the standard class options. - -@findex 10pt @r{option} -@findex 11pt @r{option} -@findex 12pt @r{option} -All of the standard classes except @code{slides} accept the following -options for selecting the typeface size (default is @code{10pt}): - -@example -10pt 11pt 12pt -@end example - -@findex a4paper @r{option} -@findex a5paper @r{option} -@findex b5paper @r{option} -@findex executivepaper @r{option} -@findex legalpaper @r{option} -@findex letterpaper @r{option} -All of the standard classes accept these options for selecting the paper -size (default is @code{letterpaper}): - -@example -a4paper a5paper b5paper executivepaper legalpaper letterpaper -@end example - -@findex draft @r{option} -@findex final @r{option} -@findex fleqn @r{option} -@findex landscape @r{option} -@findex leqno @r{option} -@findex openbib @r{option} -@findex titlepage @r{option} -@findex notitlepage @r{option} -Miscellaneous other options: - -@table @code -@item draft, final -@cindex black boxes, omitting -mark/do not mark overfull boxes with a big black box; default is @code{final}. -@item fleqn -Put displayed formulas flush left; default is centered. -@item landscape -Selects landscape format; default is portrait. -@item leqno -Put equation numbers on the left side of equations; default is the right side. -@item openbib -Use ``open'' bibliography format. -@item titlepage, notitlepage -Specifies whether the title page is separate; default depends on the class. -@end table - -These options are not available with the slides class: - -@findex onecolumn @r{option} -@findex twocolumn @r{option} -@findex oneside @r{option} -@findex twoside @r{option} -@findex openright @r{option} -@findex openany @r{option} -@table @code -@item onecolumn -@itemx twocolumn -Typeset in one or two columns; default is @code{onecolumn}. - -@item oneside -@itemx twoside -@findex \evensidemargin -@findex \oddsidemargin -Selects one- or two-sided layout; default is @code{oneside}, except -for the @code{book} class. - -The @code{\evensidemargin} (@code{\oddsidemargin} parameter determines -the distance on even (odd) numbered pages between the left side of the -page and the text's left margin. The defaults vary with the paper -size and whether one- or two-side layout is selected. For one-sided -printing the text is centered, for two-sided, @code{\oddsidemargin} is -40% of the difference between @code{\paperwidth} and @code{\textwidth} -with @code{\evensidemargin} the remainder. - -@item openright -@itemx openany -Determines if a chapter should start on a -right-hand page; default is @code{openright} for book. -@end table - -The @code{slides} class offers the option @code{clock} for printing -the time at the bottom of each note. - - -@cindex packages, loading -@cindex loading additional packages -@findex \usepackage -Additional packages are loaded like this: - -@example -\usepackage[@var{options}]@{@var{pkg}@} -@end example - -To specify more than one @var{pkg}, you can separate them with a -comma, or use multiple @code{\usepackage} commands. - -@cindex global options -@cindex options, global -Any options given in the @code{\documentclass} command that are unknown -by the selected document class are passed on to the packages loaded with -@code{\usepackage}. - - -@node Typefaces -@chapter Typefaces - -@cindex typefaces -@cindex fonts - -Two important aspects of selecting a @dfn{font} are specifying a size -and a style. The @LaTeX{} commands for doing this are described here. - -@menu -* Font styles:: Select roman, italics etc. -* Font sizes:: Select point size. -* Low-level font commands:: Select encoding, family, series, shape. -@end menu - - -@node Font styles -@section Font styles - -@cindex font styles -@cindex typeface styles -@cindex styles of text - -The following type style commands are supported by @LaTeX{}. - -These commands are used like @code{\textit@{italic text@}}. The -corresponding command in parenthesis is the ``declaration form'', which -takes no arguments. The scope of the declaration form lasts until the -next type style command or the end of the current group. - -The declaration forms are cumulative; i.e., you can say either -@code{\sffamily\bfseries} or @code{\bfseries\sffamily} to get bold -sans serif. - -You can also use the environment form of the declaration forms; for instance, -@code{\begin@{ttfamily@}...\end@{ttfamily@}}. - -@table @code -@item \textrm (\rmfamily) -@findex \textrm -@findex \rmfamily -Roman. - -@item \textit (\itshape) -@findex \textit -@findex \itshape -Italics. - -@item \emph -@findex \emph -@cindex emphasis -Emphasis (switches between @code{\textit} and @code{\textrm}). - -@item \textmd (\mdseries) -@findex \textmd -@findex \mdseries -Medium weight (default). - -@item \textbf (\bfseries) -@findex \textbf -@findex \bfseries -Boldface. -@item \textup (\upshape) -@findex \textup -@findex \upshape -Upright (default). The opposite of slanted. -@item \textsl (\slshape) -@findex \textsl -@findex \slshape -Slanted. -@item \textsf (\sffamily) -@findex \textsf -@findex \sffamily -Sans serif. -@item \textsc (\scshape) -@findex \textsc -@findex \scshape -Small caps. -@item \texttt (\ttfamily) -@findex \texttt -@findex \ttfamily -Typewriter. -@item \textnormal (\normalfont) -@findex \textnormal -@findex \normalfont -Main document font. -@item \mathrm -@findex \mathrm -Roman, for use in math mode. -@item \mathbf -@findex \mathbf -Boldface, for use in math mode. -@item \mathsf -@findex \mathsf -Sans serif, for use in math mode. -@item \mathtt -@findex \mathtt -Typewriter, for use in math mode. - -@item \mathit -@itemx (\mit) -Italics, for use in math mode. - -@item \mathnormal -@findex \mathnormal -For use in math mode, e.g. inside another type style declaration. -@item \mathcal -@findex \mathcal -`Calligraphic' letters, for use in math mode. -@end table - -In addition, the command -@code{\mathversion@{bold@}} -@findex \mathversion -can be used for switching to bold letters and symbols in -formulas. @code{\mathversion@{normal@}} restores the default. - -@LaTeX{} also provides these commands, which unconditionally switch to -the given style, that is, are @emph{not} cumulative. They are used -differently than the above commands, too: @code{@{\@var{cmd} ...@}} -instead of @code{\@var{cmd}@{...@}}. These are two very different -things. - -@ftable @code -@item \bf -@cindex bold font -Switch to @b{bold face}. - -@item \cal -@cindex script letters for math -@cindex calligraphic letters for math -Switch to calligraphic letters for math. - -@item \em -@cindex emphasis -Emphasis (italics within roman, roman within italics). - -@item \it -@cindex italic font -Italics. - -@item \rm -@cindex roman font -Roman. - -@item \sc -@cindex small caps font -Small caps. - -@item \sf -@cindex sans serif font -Sans serif. - -@item \sl -@cindex slanted font -@cindex oblique font -Slanted (oblique). - -@item \tt -@cindex typewriter font -@cindex monospace font -@cindex fixed-width font -Typewriter (monospace, fixed-width). - -@end ftable - - -@node Font sizes -@section Font sizes -@cindex font sizes -@cindex typeface sizes -@cindex sizes of text - -The following standard type size commands are supported by @LaTeX{}. -The table shows the command name and the corresponding actual font -size used (in points) with the @samp{10pt}, @samp{11pt}, and -@samp{12pt} document size options, respectively (@pxref{Document class -options}). - -@findex \tiny -@findex \scriptsize -@findex \footnotesize -@findex \small -@findex \normalsize -@findex \large -@findex \Large -@findex \LARGE -@findex \huge -@findex \Huge - -@multitable {@code{\normalsize} (default)} {24.88} {24.88} {24.88} -@headitem Command @tab @code{10pt} @tab @code{11pt} @tab @code{12pt} -@item @code{\tiny} -@tab 5 @tab 6 @tab 6 -@item @code{\scriptsize} -@tab 7 @tab 8 @tab 8 -@item @code{\footnotesize} -@tab 8 @tab 9 @tab 10 -@item @code{\small} -@tab 9 @tab 10 @tab 10.95 -@item @code{\normalsize} (default) -@tab 10 @tab 10.95 @tab 12 -@item @code{\large} -@tab 12 @tab 12 @tab 14.4 -@item @code{\Large} -@tab 14.4 @tab 14.4 @tab 17.28 -@item @code{\LARGE} -@tab 17.28 @tab 17.28 @tab 20.74 -@item @code{\huge} -@tab 20.74 @tab 20.74 @tab 24.88 -@item @code{\Huge} -@tab 24.88 @tab 24.88 @tab 24.88 -@end multitable - -The commands as listed here are ``declaration forms''. The scope of -the declaration form lasts until the next type style command or the -end of the current group. You can also use the environment form of -these commands; for instance, @code{\begin@{tiny@}...\end@{tiny@}}. - - -@node Low-level font commands -@section Low-level font commands -@cindex low-level font commands -@cindex font commands, low-level - -These commands are primarily intended for writers of macros and -packages. The commands listed here are only a subset of the available -ones. - -@table @code -@item \fontencoding@{enc@} -@findex \fontencoding -Select font encoding. Valid encodings include @code{OT1} and @code{T1}. - -@item \fontfamily@{family@} -@findex \fontfamily -Select font family. Valid families include: - -@itemize @bullet -@item @code{cmr} for Computer Modern Roman -@item @code{cmss} for Computer Modern Sans Serif -@item @code{cmtt} for Computer Modern Typewriter -@end itemize - -and numerous others. - -@item \fontseries@{series@} -@findex \fontseries -Select font series. Valid series include: - -@itemize @bullet -@item @code{m} Medium (normal) -@item @code{b} Bold -@item @code{c} Condensed -@item @code{bc} Bold condensed -@item @code{bx} Bold extended -@end itemize - -and various other combinations. - -@item \fontshape@{shape@} -@findex \fontshape -Select font shape. Valid shapes are: - -@itemize @bullet -@item @code{n} Upright (normal) -@item @code{it} Italic -@item @code{sl} Slanted (oblique) -@item @code{sc} Small caps -@item @code{ui} Upright italics -@item @code{ol} Outline -@end itemize - -The two last shapes are not available for most font families. - -@item \fontsize@{size@}@{skip@} -@findex \fontsize -@findex \baselineskip -Set font size. The first parameter is the font size to switch to and -the second is the line spacing to use; this is stored in a parameter -named @code{\baselineskip}. The unit of both parameters defaults to -pt. The default @code{\baselineskip} for the Computer Modern typeface -is 1.2 times the @code{\fontsize}. - -@findex \baselinestretch -@cindex @code{setspace} package -The line spacing is also multiplied by the value of the -@code{\baselinestretch} parameter when the type size changes; the -default is 1. However, the best way to ``double space'' a document, -if you should be unlucky enough to have to produce such, is to use the -@code{setspace} package; see -@url{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=linespace}. - -@item \selectfont -@findex \selectfont -The changes made by calling the four font commands described above do -not come into effect until @code{\selectfont} is called. - -@item \usefont@{enc@}@{family@}@{series@}@{shape@} -@findex \usefont -The same as invoking @code{\fontencoding}, @code{\fontfamily}, -@code{\fontseries} and @code{\fontshape} with the given parameters, -followed by @code{\selectfont}. -@end table - - -@node Layout -@chapter Layout -@cindex layout commands - -Miscellaneous commands for controlling the general layout of the page. - -@menu -* \onecolumn:: Use one-column layout. -* \twocolumn:: Use two-column layout. -* \flushbottom:: Make all text pages the same height. -* \raggedbottom:: Allow text pages of differing height. -* Page layout parameters:: \headheight \footskip. -@end menu - - -@node \onecolumn -@section @code{\onecolumn} -@findex \onecolumn -@cindex one-column output - -The @code{\onecolumn} declaration starts a new page and produces -single-column output. This is the default. - - -@node \twocolumn -@section @code{\twocolumn} -@findex \twocolumn -@cindex multicolumn text -@cindex two-column output - -Synopsis: - -@example -\twocolumn[@var{text1col}] -@end example - -The @code{\twocolumn} declaration starts a new page and produces -two-column output. If the optional @var{text1col} argument is present, -it is typeset in one-column mode before the two-column typesetting -starts. - -These parameters control typesetting in two-column output: - -@ftable @code -@item \columnsep -The distance between columns (35pt by default). - -@item \columnseprule -The width of the rule between columns; the default is 0pt, so there is no rule. - -@item \columnwidth -The width of the current column; this is equal to @code{\textwidth} in -single-column text. - -@end ftable - -These parameters control float behavior in two-column output: - -@ftable @code -@item \dbltopfraction -Maximum fraction at the top of a two-column page that may be occupied -by floats. Default @samp{.7}, can be usefully redefined to (say) -@samp{.9} to avoid going to float pages so soon. - -@item \dblfloatpagefraction -The minimum fraction of a float page that must be occupied by floats, -for a two-column float page. Default @samp{.5}. - -@item \dblfloatsep -Distance between floats at the top or bottom of a two-column float -page. Default @samp{12pt plus2pt minus2pt} for @samp{10pt} and -@samp{11pt} documents, @samp{14pt plus2pt minus4pt} for @samp{12pt}. - -@item \dbltextfloatsep -Distance between a multi-column float at the top or bottom of a page -and the main text. Default @samp{20pt plus2pt minus4pt}. - -@end ftable - - -@node \flushbottom -@section @code{\flushbottom} - -@findex \flushbottom - -The @code{\flushbottom} declaration makes all text pages the same -height, adding extra vertical space where necessary to fill out the -page. - -This is the default if @code{twocolumn} mode is selected -(@pxref{Document class options}). - - -@node \raggedbottom -@section @code{\raggedbottom} -@findex \raggedbottom -@cindex stretch, omitting vertical - -The @code{\raggedbottom} declaration makes all pages the natural -height of the material on that page. No rubber lengths will be -stretched. - - -@node Page layout parameters -@section Page layout parameters - -@cindex page layout parameters -@cindex parameters, page layout -@cindex layout, page parameters for -@cindex header, parameters for -@cindex footer, parameters for -@cindex running header and footer - -@ftable @code -@item \headheight -Height of the box that contains the running head. Default is -@samp{30pt}, except in the @code{book} class, where it varies with the -type size. - -@item \headsep -Vertical distance between the bottom of the header line and the top of -the main text. Default is @samp{25pt}, except in the @code{book} -class, where it varies with the type size. - -@item \footskip -Distance from the baseline of the last line of text to the baseline of -the page footer. Default is @samp{30pt}, except in the @code{book} -class, where it varies with the type size. - -@item \linewidth -Width of the current line; the default varies with the font size, -paper width, two-column mode, etc. For an @code{article} document in -@samp{10pt}, it's set to @samp{345pt}; in two-column mode, that -becomes @samp{229.5pt}. - -@item \textheight -The normal vertical height of the page body; the default varies with -the font size, document class, etc. For an @code{article} or -@code{report} document in @samp{10pt}, it's set to -@samp{43\baselineskip}; for @code{book}, it's @samp{41\baselineskip}. -For @samp{11pt}, it's @samp{38\baselineskip} and for @samp{12pt}, -@samp{36\baselineskip}. - -@item \textwidth -The normal horizontal width of the page body; the default varies as -usual. For an @code{article} or @code{report} document, it's -@samp{345pt} at @samp{10pt}, @samp{360pt} at @samp{11pt}, and -@samp{390pt} at @samp{12pt}. For a @code{book} document, it's -@samp{4.5in} at @samp{10pt}, and @samp{5in} at @samp{11pt} or @samp{12pt}. - -@item \topmargin -Space between the top of the @TeX{} page (one inch from the top of the -paper, by default) and the top of the header. The default is computed -based on many other parameters: @code{\paperheight @minus{} 2in @minus{} -\headheight @minus{} \headsep @minus{} \textheight @minus{} \footskip}, and -then divided by two. - -@item \topskip -Minimum distance between the top of the page body and the baseline of -the first line of text. For the standard clases, the default is the -same as the font size, e.g., @samp{10pt} at @samp{10pt}. - -@end ftable - - -@node Sectioning -@chapter Sectioning -@cindex sectioning - -Sectioning commands provide the means to structure your text into units: - -@ftable @code -@item \part -@item \chapter -(report and book class only) -@item \section -@item \subsection -@item \subsubsection -@item \paragraph -@item \subparagraph -@end ftable - -All sectioning commands take the same general form, e.g., - -@example -\chapter[@var{toctitle}]@{@var{title}@} -@end example - -In addition to providing the heading @var{title} in the main text, the -section title 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 text in these places as in the main text. -To handle this, the sectioning commands have an optional argument -@var{toctitle} that, when given, specifies the text for these other -places. - -@cindex *-form of sectioning commands -Also, all sectioning commands have @code{*}-forms that print -@var{title} as usual, but do not include a number and do not make an -entry in the table of contents. For instance: - -@example -\section*@{Preamble@} -@end example - -@findex \appendix -@cindex appendix, creating -The @code{\appendix} command changes the way following sectional units -are numbered. The @code{\appendix} command itself generates no text -and does not affect the numbering of parts. The normal use of this -command is something like - -@example -\chapter@{A Chapter@} -@dots{} -\appendix -\chapter@{The First Appendix@} -@end example - - -@node Cross references -@chapter Cross references -@cindex cross references - -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:: Assign a symbolic name to a piece of text. -* \pageref:: Refer to a page number. -* \ref:: Refer to a section, figure or similar. -@end menu - - -@node \label -@section @code{\label} -@findex \label - -Synopsis: - -@example -\label@{@var{key}@} -@end example - -A @code{\label} command appearing in ordinary text assigns to -@var{key} the number of the current sectional unit; one appearing -inside a numbered environment assigns that number to @var{key}. - -A @var{key} name can consist of any sequence of letters, digits, or -punctuation characters. Upper and lowercase letters are distinguished. - -To avoid accidentally creating two labels with the same name, it is -common to use labels consisting of a prefix and a suffix separated by -a colon or period. Some conventionally-used prefixes: - -@table @code -@item ch -for chapters -@item sec -for lower-level sectioning commands -@item fig -for figures -@item tab -for tables -@item eq -for equations -@end table - -Thus, a label for a figure would look like @code{fig:snark} or -@code{fig.snark}. - - -@node \pageref -@section @code{\pageref@{@var{key}@}} -@findex \pageref -@cindex cross referencing with page number -@cindex page number, cross referencing - -Synopsis: - -@example -\pageref@{@var{key}@} -@end example - -The @code{\pageref}@{@var{key}@} command produces the page number of -the place in the text where the corresponding -@code{\label}@{@var{key}@} command appears. - - -@node \ref -@section @code{\ref@{@var{key}@}} -@findex \ref -@cindex cross referencing, symbolic -@cindex section number, cross referencing -@cindex equation number, cross referencing -@cindex figure number, cross referencing -@cindex footnote number, cross referencing - -Synopsis: - -@example -\ref@{@var{key}@} -@end example - -The @code{\ref} command produces the number of the sectional unit, -equation, footnote, figure, @dots{}, of the corresponding -@code{\label} command (@pxref{\label}). It does not produce any text, -such as the word `Section' or `Figure', just the bare number itself. - - -@node Environments -@chapter Environments -@cindex environments - -@findex \begin -@findex \end - -@LaTeX{} provides many environments for marking off certain text. -Each environment begins and ends in the same manner: - -@example -\begin@{@var{envname}@} -... -\end@{@var{envname}@} -@end example - -@menu -* abstract:: Produce an abstract. -* array:: Math arrays. -* center:: Centred lines. -* description:: Labelled lists. -* displaymath:: Formulas that appear on their own line. -* document:: Enclose the whole document. -* enumerate:: Numbered lists. -* eqnarray:: Sequences of aligned equations. -* equation:: Displayed equation. -* figure:: Floating figures. -* flushleft:: Flushed left lines. -* flushright:: Flushed right lines. -* itemize:: Bulleted lists. -* letter:: Letters. -* list:: Generic list environment. -* math:: In-line math. -* minipage:: Miniature page. -* picture:: Picture with text, arrows, lines and circles. -* quotation:: Indented environment with paragraph indentation. -* quote:: Indented environment with no paragraph indentation. -* tabbing:: Align text arbitrarily. -* table:: Floating tables. -* tabular:: Align text in columns. -* thebibliography:: Bibliography or reference list. -* theorem:: Theorems, lemmas, etc. -* titlepage:: For hand crafted title pages. -* verbatim:: Simulating typed input. -* verse:: For poetry and other things. -@end menu - - -@node abstract -@section @code{abstract} - -@findex abstract @r{environment} -@cindex abstracts - -Synopsis: -@example -\begin@{abstract@} -... -\end@{abstract@} -@end example - -Environment for producing an abstract, possibly of multiple paragraphs. - - -@node array -@section @code{array} -@findex array @r{environment} -@cindex arrays, math - -Synopsis: - -@example -\begin@{array@}@{@var{template}@} -@var{col1 text}&@var{col1 text}&@var{coln}@}\\ -... -\end@{array@} -@end example - -Math arrays are produced with the @code{array} environment, normally -within an @code{equation} environment (@pxref{equation}). It has a -single mandatory @var{template} argument describing the number of -columns and the alignment within them. Each column @var{col} is -specified by a single letter that tells how items in that row should -be formatted, as follows: - -@table @code -@item c -centered -@item l -flush left -@item r -flush right -@end table - -@findex \\ (for @code{array}) -Column entries are separated by @code{&}. Column entries may include -other @LaTeX{} commands. Each row of the array is terminated with -@code{\\}. - -@findex @@@{...@} -In the template, the construct @code{@@@{@var{text}@}} puts @var{text} -between columns in each row. - -Here's an example: - -@example -\begin@{equation@} - \begin@{array@}@{lrc@} - left1 & right1 & centered1 \\ - left2 & right2 & centered2 \\ - \end@{array@} -\end@{equation@} -@end example - -@findex \arraycolsep -The @code{\arraycolsep} parameter defines half the width of the space -separating columns; the default is @samp{5pt}. @xref{tabular}, for other -parameters which affect formatting in @code{array} environments, -namely @code{\arrayrulewidth} and @code{\arraystretch}. - -The @code{array} environment can only be used in math mode. - - -@node center -@section @code{center} - -@findex center @r{environment} -@cindex centering text, environment for - -Synopsis: - -@example -\begin@{center@} -@var{line1} \\ -@var{line2} \\ -\end@{center@} -@end example - -@findex \\ (for @code{center}) -The @code{center} environment allows you to create a paragraph -consisting of lines that are centered within the left and right -margins on the current page. Each line is terminated with the -string @code{\\}. - -@menu -* \centering:: Declaration form of the @code{center} environment. -@end menu - - -@node \centering -@subsection @code{\centering} - -@findex \centering -@cindex centering text, declaration for - -The @code{\centering} declaration corresponds to the @code{center} -environment. This declaration can be used inside an environment such -as @code{quote} or in a @code{parbox}. Thus, 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. - -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 such as quote) that ends the paragraph unit. - -Here's an example: - -@example -\begin@{quote@} -\centering -first line \\ -second line \\ -\end@{quote@} -@end example - - -@node description -@section @code{description} - -@findex description @r{environment} -@cindex labelled lists, creating -@cindex description lists, creating - -Synopsis: - -@example -\begin@{description@} -\item [@var{label1}] @var{item1} -\item [@var{label2}] @var{item2} -... -\end@{description@} -@end example - -@findex \item -The @code{description} environment is used to make labelled lists. Each -@var{label} is typeset in bold, flush right. The @var{item} text may -contain multiple paragraphs. - -@cindex bold typewriter, avoiding -@cindex typewriter labels in lists -Another variation: since the bold style is applied to the labels, if -you typeset a label in typewriter using @code{\texttt}, you'll get -bold typewriter: @code{\item[\texttt@{bold and typewriter@}]}. This -may be too bold, among other issues. To get just typewriter, use -@code{\tt}, which resets all other style variations: @code{\item[@{\tt -plain typewriter@}]}. - -For details about list spacing, see @ref{itemize}. - - -@node displaymath -@section @code{displaymath} - -@findex displaymath @r{environment} - -Synopsis: -@example -\begin@{displaymath@} -@var{math} -\end@{displaymath@} -@end example - -@noindent or - -@example -\[@var{math}\] -@end example - -The @code{displaymath} environment (@code{\[...\]} is a synonym) -typesets the @var{math} text on its own line, centered by default. -The global @code{fleqn} option makes equations flush left; see -@ref{Document class options}. - -No equation number is added to @code{displaymath} text; to get an -equation number, use the @code{equation} environment (@pxref{equation}). - - -@node document -@section @code{document} - -@findex document @r{environment} - -The @code{document} environment encloses the body of a document. -It is required in every @LaTeX{} document. @xref{Starting & ending}. - - -@node enumerate -@section @code{enumerate} - -@findex enumerate @r{environment} -@cindex lists of items, numbered - -Synopsis: - -@example -\begin@{enumerate@} -\item @var{item1} -\item @var{item2} -... -\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, such as -@code{itemize} (@pxref{itemize}) and @code{description} -(@pxref{description}). - -@findex \item -Each item of an enumerated list begins with an @code{\item} command. -There must be at least one @code{\item} command within the environment. - -By default, the numbering at each level is done like this: - -@enumerate -@item 1., 2., @dots{} -@item (a), (b), @dots{} -@item i., ii., @dots{} -@item A., B., @dots{} -@end enumerate - -@findex \enumi -@findex \enumii -@findex \enumiii -@findex \enumiv -The @code{enumerate} environment uses the counters @code{\enumi} -through @code{\enumiv} counters (@pxref{Counters}). If the optional -argument to @code{\item} is given, the counter is not incremented for -that item. - -@findex \labelenumi -@findex \labelenumii -@findex \labelenumiii -@findex \labelenumiv -The @code{enumerate} environment uses the commands @code{\labelenumi} -through @code{\labelenumiv} to produce the default label. So, you can -use @code{\renewcommand} to change the labels (@pxref{\newcommand & -\renewcommand}). For instance, to have the first level use uppercase -letters: - -@findex \Alph @r{example} -@example -\renewcommand@{\labelenumi@}@{\Alph@{enumi@}@} -@end example - - - -@node eqnarray -@section @code{eqnarray} - -@findex eqnarray @r{environment} -@cindex equations, aligning -@cindex aligning Equations - -@example -\begin@{eqnarray@} @r{(or @code{eqnarray*})} -@var{formula1} \\ -@var{formula2} \\ -... -\end@{eqnarray@} -@end example - -@findex \\ (for @code{eqnarray}) -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{&}. - -@findex \\* (for @code{eqnarray}) -@code{\\*} can also be used to separate equations, with its normal -meaning of not allowing a page break at that line. - -@findex \nonumber -@cindex equation numbers, omitting -An equation number is placed on every line unless that line has a -@code{\nonumber} command. Alternatively, The @code{*}-form of the -environment (@code{\begin@{eqnarray*@} ... \end@{eqnarray*@}}) will -omit equation numbering entirely, while otherwise being the same as -@code{eqnarray}. - -@findex \lefteqn -The command @code{\lefteqn} is used for splitting long formulas across -lines. It typesets its argument in display style flush left in a box of -zero width. - - -@node equation -@section @code{equation} - -@findex equation @r{environment} -@cindex equations, environment for -@cindex formulas, environment for - -Synopsis: - -@example -\begin@{equation@} -@var{math} -\end@{equation@} -@end example - -The @code{equation} environment starts a @code{displaymath} -environment (@pxref{displaymath}), e.g., centering the @var{math} text -on the page, and also places an equation number in the right margin. - - -@node figure -@section @code{figure} -@findex figure -@cindex inserting figures -@cindex figures, inserting - -@example -\begin@{figure@}[@var{placement}] -@var{figbody} -\label@{@var{label@}} -\caption[@var{loftitle}]@{@var{text}@} -\end@{figure@} -@end example - -Figures are objects that are not part of the normal text, and are -instead ``floated'' to a convenient place, such as the top of a page. -Figures will not be split between two pages. - -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: - -@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 classes use the default placement -@code{tbp}. - -The body of the figure is made up of whatever text, @LaTeX{} commands, etc. -you wish. - -@findex \caption -The @code{\caption} command specifies caption @var{text} for the -figure. The caption is numbered by default. If @var{loftitle} is -present, it is used in the list of figures instead of @var{text} -(@pxref{Tables of contents}). - -@c xx float-placement, float-caption sections? -@ftable @code -@findex \bottomfraction -The maximum fraction of the page allowed to be occuped by floats at -the bottom; default @samp{.3}. - -@item \floatpagefraction -The minimum fraction of a float page that must be occupied by floats; -default @samp{.5}. - -@item \floatsep -Space between floats at the top or bottom of a page; default -@samp{12pt plus2pt minus2pt}. - -@item \intextsep -Space above and below a float in the middle of the main text; default -@samp{12pt plus2pt minus2pt} for @samp{10pt} and @samp{11pt} styles, -@samp{14pt plus4pt minus4pt} for @samp{12pt}. - -@item \textfloatsep -Space between the last (first) float at the top (bottom) of a page; -default @samp{20pt plus2pt minus4pt}. - -@item \textfraction -Minimum fraction of a page that must be text; if floats take up too -much space to preserve this much text, floats will be moved to a -different page. The default is @samp{.2}. - -@item \topfraction -Maximum fraction at the top of a page that may be occupied before -floats; default is @samp{.7}. - -@end ftable - - -@node flushleft -@section @code{flushleft} -@findex flushleft @r{environment} -@cindex left-justifying text, environment for -@cindex ragged right text, environment for - -@example -\begin@{flushleft@} -@var{line1} \\ -@var{line2} \\ -... -\end@{flushleft@} -@end example - -@findex \\ @r{for @code{flushleft}} -The @code{flushleft} environment allows you to create a paragraph -consisting of lines that are flush to the left-hand margin and ragged -right Each line must be terminated with the string @code{\\}. - -@menu -* \raggedright:: Declaration form of the @code{flushleft} environment. -@end menu - - -@node \raggedright -@subsection @code{\raggedright} -@findex \raggedright -@cindex ragged right text -@cindex left-justifying text -@cindex justification, ragged right - -The @code{\raggedright} declaration corresponds to the -@code{flushleft} environment. This declaration can be used inside an -environment such as @code{quote} or in a @code{parbox}. - -Unlike the @code{flushleft} environment, the @code{\raggedright} -command does not start a new paragraph; it only 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 that ends the paragraph unit. - - -@node flushright -@section @code{flushright} -@findex flushright @r{environment} -@cindex ragged left text, environment for -@cindex right-justifying text, environment for - -@example -\begin@{flushright@} -@var{line1} \\ -@var{line2} \\ -... -\end@{flushright@} -@end example - -@findex \\ (for @code{flushright}) -The @code{flushright} environment allows you to create a paragraph -consisting of lines that are flush to the right-hand margin and ragged -left. Each line must be terminated with the string @code{\\}. - -@menu -* \raggedleft:: Declaration form of the @code{flushright} environment. -@end menu - - -@node \raggedleft -@subsection @code{\raggedleft} -@findex \raggedleft -@cindex ragged left text -@cindex justification, ragged left -@cindex right-justifying text - -The @code{\raggedleft} declaration corresponds to the -@code{flushright} environment. This declaration can be used inside an -environment such as @code{quote} or in a @code{parbox}. - -Unlike the @code{flushright} environment, the @code{\raggedleft} -command does not start a new paragraph; it only 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 that ends the paragraph unit. - - -@node itemize -@section @code{itemize} -@findex itemize @r{environment} -@findex \item -@cindex lists of items -@cindex unordered lists -@cindex bulleted lists - -Synopsis: - -@example -\begin@{itemize@} -\item @var{item1} -\item @var{item2} -... -\end@{itemize@} -@end example - -The @code{itemize} environment produces an ``unordered'', ``bulleted'' -list. Itemizations can be nested within one another, up to four -levels deep. They can also be nested within other paragraph-making -environments, such as @code{enumerate} (@pxref{enumerate}). - -Each item of an @code{itemize} list begins with an @code{\item} command. -There must be at least one @code{\item} command within the environment. - -By default, the marks at each level look like this: - -@enumerate -@item @bullet{} -@item @b{-@w{-}} (bold en-dash) -@item * -@iftex -@item @math{\cdot} (centered dot) -@end iftex -@ifnottex -@item . (centered dot, rendered here as a period) -@end ifnottex -@end enumerate - -@findex \labelitemi -@findex \labelitemii -@findex \labelitemiii -@findex \labelitemiv -The @code{itemize} environment uses the commands @code{\labelitemi} -through @code{\labelitemiv} to produce the default label. So, you can -use @code{\renewcommand} to change the labels. For instance, to have -the first level use diamonds: - -@example -\renewcommand@{\labelitemi@}@{$\diamond$@} -@end example - -@findex \leftmargin -@findex \leftmargini -@findex \leftmarginii -@findex \leftmarginiii -@findex \leftmarginiv -@findex \leftmarginv -@findex \leftmarginvi -The @code{\leftmargini} through @code{\leftmarginvi} parameters define -the distance between the left margin of the enclosing environment and -the left margin of the list. By convention, @code{\leftmargin} is set -to the appropriate @code{\leftmargin@var{N}} when a new level of -nesting is entered. - -The defaults vary from @samp{.5em} (highest levels of nesting) to -@samp{2.5em} (first level), and are a bit reduced in two-column mode. -This example greatly reduces the margin space for outermost lists: - -@example -\setlength@{\leftmargini@}@{1.25em@} % default 2.5em -@end example - -@c xx should be in its own generic section -Some parameters that affect list formatting: - -@ftable @code -@item \itemindent -Extra indentation before each item in a list; default zero. - -@item \labelsep -Space between the label and text of an item; default @samp{.5em}. - -@item \labelwidth -Width of the label; default @samp{2em}, or @samp{1.5em} in two-column mode. - -@item \listparindent -Extra indentation added to second and subsequent paragraphs within a -list item; default @samp{0pt}. - -@item \rightmargin -Horizontal distance between the right margin of the list and the -enclosing environment; default @samp{0pt}, except in the @code{quote}, -@code{quotation}, and @code{verse} environments, where it is set equal -to @code{\leftmargin}. - -@end ftable - -Parameters affecting vertical spacing between list items (rather -loose, by default). - -@ftable @code -@item \itemsep -Vertical space between items. The default is @code{2pt plus1pt -minus1pt} for @code{10pt} documents, @code{3pt plus2pt minus1pt} for -@code{11pt}, and @code{4.5pt plus2pt minus1pt} for @code{12pt}. - -@item \parsep -Extra vertical space between paragraphs within a list item. Defaults -are the same as @code{\itemsep}. - -@item \topsep -Vertical space between the first item and the preceding paragraph. -The default is @code{4pt plus2pt minus2pt} for @code{10pt} documents, -@code{6pt plus2pt minus2pt} for @code{11pt}, and @code{9pt plus3pt -minus5pt} for @code{12pt}. - -@item \partopsep -Extra space added to @code{\topsep} when the list environment starts a -paragraph. The default is @code{2pt plus1pt minus1pt} for @code{10pt} -documents, @code{3pt plus1pt minus1pt} for @code{11pt}, and @code{3pt -plus2pt minus2pt} for @code{12pt}. - -@item \topsep -Extra vertical space added before an initial and after a final list -item. Its value is changed with list level and font size changes; for -instance, within a first-level list at @samp{10pt}, it is @samp{4pt -plus2pt minus2pt}. - -@end ftable - -@findex \parskip @r{example} -Especially for lists with short items, it may be desirable to elide -space between items. Here is an example defining an @code{itemize*} -environment with no extra spacing between items, or between paragraphs -within a single item (@code{\parskip} is not list-specific, -@pxref{\parskip}): - -@example -\newenvironment@{itemize*@}% - @{\begin@{itemize@}% - \setlength@{\itemsep@}@{0pt@}% - \setlength@{\parsep@}@{0pt@}@}% - \setlength@{\parskip@}@{0pt@}@}% - @{\end@{itemize@}@} -@end example - - -@node letter -@section @code{letter} environment: writing letters -@findex letter - -This environment is used for creating letters. @xref{Letters}. - - -@node list -@section @code{list} -@findex list -@cindex lists of items, generic - -The @code{list} environment is a generic environment which is used for -defining many of the more specific environments. It is seldom used in -documents, but often in macros. - -@example -\begin@{list@}@{@var{labeling}@}@{@var{spacing}@} -\item @var{item1} -\item @var{item2} -... -\end@{list@} -@end example - -The mandatory @var{labeling} argument specifies how items should be -labelled (unless the optional argument is supplied to @code{\item}). -This argument is a piece of text that is inserted in a box to form the -label. It can and usually does contain other @LaTeX{} commands. - -The mandatory @var{spacing} argument contains commands to change the -spacing parameters for the list. This argument will most often be -empty, i.e., @code{@{@}}, which leaves the default spacing. - - -@node math -@section @code{math} - -@findex math @r{environment} -@cindex in-line formulas - -Synopsis: - -@example -\begin@{math@} -@var{math} -\end@{math@} -@end example - -The @code{math} environment inserts the given @var{math} within the -running text. @code{\(...\))} and @code{$...$} are synonyms. -@xref{Math formulas}. - - -@node minipage -@section @code{minipage} - -@findex minipage @r{environment} -@cindex minipage, creating a - -@example -\begin@{minipage@}[@var{position}]@{@var{width}@} -@var{text} -\end@{minipage@} -@end example - -The @code{minipage} environment typesets its body @var{text} in a -block that will not be broken across pages (similar to the -@code{\parbox} command, @pxref{\parbox}). You may use other -paragraph-making environments inside a minipage (unlike @code{\parbox}). - -@c (xxref positions) -It takes an optional @var{position} argument for placing @var{text}, -and a mandatory @var{width} argument for specifying the line width. - -@cindex indentation of paragraphs, in minipage -@cindex paragraph indentation, in minipage -@findex \parindent -By default, paragraphs are not indented in the @code{minipage} -environment. You can restore indentation with a command such as -@code{\setlength@{\parindent@}@{1pc@}} command. - -@cindex footnotes in figures -@cindex figures, footnotes in -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 (@pxref{Counters}). - -However, don't put one minipage inside another if you are using -footnotes; they may wind up at the bottom of the wrong minipage. - - -@node picture -@section @code{picture} - -@findex picture -@cindex creating pictures -@cindex pictures, creating - -@example -\begin@{picture@}(width,height)(x offset,y offset) -@dots{} @var{picture commands} @dots{} -\end@{picture@} -@end example - -@findex \unitlength -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{0.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 should only change the value of @code{\unitlength}, -using the @code{\setlength} command, outside of a @code{picture} -environment. - -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. - -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 @LaTeX{} in determining -how much room to leave for it. - -Everything that appears in a picture is drawn by the @code{\put} -command. The command - -@example -\put (11.3,-.3)@{...@} -@end example - -@noindent puts the object specified by @code{...} in the -picture, with its reference point at coordinates @math{(11.3,-.3)}. -The reference points for various objects will be described below. - -@findex lR box -The @code{\put} command creates an @dfn{LR box}. You can put anything -that can go in an @code{\mbox} (@pxref{\mbox}) in the text argument of -the @code{\put} command. When you do this, the reference point will -be the lower left corner of the box. - -The @code{picture} commands are described in the following sections. - -@menu -* \circle:: Draw a circle. -* \makebox (picture):: Draw a box of the specified size. -* \framebox (picture):: Draw a box with a frame around it. -* \dashbox:: Draw a dashed box. -* \frame:: Draw a frame around an object. -* \line:: Draw a straight line. -* \linethickness:: Set the line thickness. -* \thicklines:: A heavier line thickness. -* \thinlines:: The default line thickness. -* \multiput:: Draw multiple instances of an object. -* \oval:: Draw an ellipse. -* \put:: Place an object at a specified place. -* \shortstack:: Make a pile of objects. -* \vector:: Draw a line with an arrow. -@end menu - - -@node \circle -@subsection @code{\circle} -@findex \circle - -@example -\circle[*]@{@var{diameter}@} -@end example - -The @code{\circle} command produces a circle with a diameter as close -to the specified one as possible. The @code{*}-form of the command -draws a solid circle. - -Circles up to 40 pt can be drawn. - - -@node \makebox (picture) -@subsection @code{\makebox} -@findex \makebox (picture) - -@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}. - - -@node \framebox (picture) -@subsection @code{\framebox} -@findex \framebox - -Synopsis: - -@example -\framebox(@var{width},@var{height})[@var{pos}]@{...@} -@end example - -The @code{\framebox} command is like @code{\makebox} (see previous -section), except that it puts a frame around the outside of the box -that it creates. - -@findex \fboxrule -@findex \fboxsep -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. - - -@node \dashbox -@subsection @code{\dashbox} - -@findex \dashbox - -Draws a box with a dashed line. Synopsis: - -@example -\dashbox@{@var{dlen}@}(@var{rwidth},@var{rheight})[@var{pos}]@{@var{text}@} -@end example - -@code{\dashbox} creates a dashed rectangle around @var{text} in a -@code{picture} environment. Dashes are @var{dlen} units long, and the -rectangle has overall width @var{rwidth} and height @var{rheight}. -The @var{text} is positioned at optional @var{pos}. @c xxref positions. - -A dashed box looks best when the @code{rwidth} and @code{rheight} are -multiples of the @code{dlen}. - - -@node \frame -@subsection @code{\frame} -@findex \frame - -Synopsis: - -@example -\frame@{@var{text}@} -@end example - -The @code{\frame} command puts a rectangular frame around @var{text}. -The reference point is the bottom left corner of the frame. No extra -space is put between the frame and the object. - - -@node \line -@subsection @code{\line} -@findex \line - -Synopsis: - -@example -\line(@var{xslope},@var{yslope})@{@var{length}@} -@end example - -The @code{\line} command draws a line with the given @var{length} and -slope @var{xslope}/@var{yslope}. - -Standard @LaTeX{} can only draw lines with @math{@var{slope} = x/y}, -where @math{x} and @math{y} have integer values from @minus{}6 -through@tie{}6. For lines of any slope, not to mention other shapes, -see the @code{curve2e} and many many other packages on CTAN. - - -@node \linethickness -@subsection @code{\linethickness} -@findex \linethickness - -The @code{\linethickness@{@var{dim}@}} command declares the thickness -of horizontal and vertical lines in a picture environment to be -@var{dim}, which must be a positive length. - -@code{\linethickness} does not affect the thickness of slanted lines, -circles, or the quarter circles drawn by @code{\oval}. - - -@node \thicklines -@subsection @code{\thicklines} -@findex \thicklines - -The @code{\thicklines} command is an alternate line thickness for -horizontal and vertical lines in a picture environment; -cf.@tie{}@ref{\linethickness} and @ref{\thinlines}. - - -@node \thinlines -@subsection @code{\thinlines} -@findex \thinlines - -The @code{\thinlines} command is the default line thickness for -horizontal and vertical lines in a picture environment; -cf.@tie{}@ref{\linethickness} and @ref{\thicklines}. - - -@node \multiput -@subsection @code{\multiput} -@findex \multiput - -Synopsis: -@example -\multiput(@var{x},@var{y})(@var{delta_x},@var{delta_y})@{@var{n}@}@{@var{obj}@} -@end example - -The @code{\multiput} command copies the object @var{obj} in a regular -pattern across a picture. @var{obj} is first placed at position -@math{(x,y)}, then at @math{(x+\delta x,y+\delta y)}, and so on, -@var{n} times. - - -@node \oval -@subsection @code{\oval} -@findex \oval - -Synopsis: - -@example -\oval(@var{width},@var{height})[@var{portion}] -@end example - -The @code{\oval} command produces a rectangle with rounded corners. -The optional argument @var{portion} allows you to select part of the -oval via the following: - -@table @code -@item t -selects the top portion; -@item b -selects the bottom portion; -@item r -selects the right portion; -@item l -selects the left portion. -@end table - -The ``corners'' of the oval are made with quarter circles with a -maximum radius of 20@dmn{pt}, so large ``ovals'' will look more like -boxes with rounded corners. - - -@node \put -@subsection @code{\put} - -@findex \put - -@code{\put(x coord,y coord)@{ ... @}} - -The @code{\put} command places the item specified by the mandatory -argument at the given coordinates. - - -@node \shortstack -@subsection @code{\shortstack} -@findex \shortstack - -Synopsis: - -@example -\shortstack[@var{position}]@{...\\...\\...@} -@end example - -The @code{\shortstack} command produces a stack of objects. The valid -positions are: - -@table @code -@item r -Move the objects to the right of the stack. -@item l -Move the objects to the left of the stack -@item c -Move the objects to the centre of the stack (default) -@end table - -@findex \\ @r{(for @code{\shortstack} objects)} -Objects are separated with @code{\\}. - - -@node \vector -@subsection @code{\vector} -@findex \vector - -Synopsis: - -@example -\vector(@var{x-slope},@var{y-slope})@{@var{length}@} -@end example - -The @code{\vector} command draws a line with an arrow of the specified -length and slope. The @math{x} and @math{y} values must lie between -@minus{}4 and +4, inclusive. - - -@node quotation -@section @code{quotation} - -@findex quotation -@cindex quoted text with paragraph indentation, displaying -@cindex displaying quoted text with paragraph indentation -@cindex paragraph indentations in quoted text - -Synopsis: - -@example -\begin@{quotation@} -@var{text} -\end@{quotation@} -@end example - -The margins of the @code{quotation} environment are indented on both -the left and the right. The text is justified at both margins. -Leaving a blank line between text produces a new paragraph. - -Unlike the @code{quote} environment, each paragraph is indented -normally. - - -@node quote -@section @code{quote} - -@findex quote -@cindex quoted text without paragraph indentation, displaying -@cindex displaying quoted text without paragraph indentation -@cindex paragraph indentations in quoted text, omitting - -Snyopsis: - -@example -\begin@{quote@} -@var{text} -\end@{quote@} -@end example - -The margins of the @code{quote} environment are indented on both the -left and the right. The text is justified at both margins. Leaving a -blank line between text produces a new paragraph. - -Unlike the @code{quotation} environment, paragraphs are not indented. - - -@node tabbing -@section @code{tabbing} - -@findex tabbing @r{environment} -@cindex tab stops, using -@cindex lining text up in columns using tab stops -@cindex alignment via tabbing - -Synopsis: - -@example -\begin@{tabbing@} -@var{row1col1} \= @var{row1col2} \= @var{row1col3} \= @var{row1col4} \\ -@var{row2col1} \> \> @var{row2col3} \\ -... -\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 as -was done on an ordinary typewriter. It is best suited for cases where -the width of each column is constant and known in advance. - -This environment can be broken across pages, unlike the @code{tabular} -environment. - -The following commands can be used inside a @code{tabbing} enviroment: - -@ftable @code -@item \\ @r{tabbing} -End a line. - -@item \= @r{(tabbing)} -Sets a tab stop at the current position. - -@item \> @r{(tabbing)} -@findex \> -Advances to the next tab stop. - -@item \< -Put following text to the left of the local margin (without changing -the margin). Can only be used at the start of the line. - -@item \+ -Moves the left margin of the next and all the -following commands one tab stop to the right, beginning tabbed line if -necessary. - -@item \- -Moves the left margin of the next and all the -following commands one tab stop to the left, beginning tabbed line if -necessary. - -@item \' @r{(tabbing)} -Moves everything that you have typed so far in the -current column, i.e. everything 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. - -@item \` @r{(tabbing)} -Allows you to put text flush right against any tab stop, including tab -stop@tie{}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. - -@item \a @r{(tabbing)} -@findex \a' @r{(acute accent in tabbing)} -@findex \a` @r{(grave accent in tabbing)} -@findex \a= @r{(macron accent in tabbing)} -In a @code{tabbing} environment, the commands @code{\=}, @code{\'} and -@code{\`} do not produce accents as usual (@pxref{Accents}). Instead, -the commands @code{\a=}, @code{\a'} and @code{\a`} are used. - -@item \kill -Sets tab stops without producing text. Works just like @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. - -@item \poptabs -@findex \poptabs -Restores the tab stop positions saved by the last @code{\pushtabs}. - -@item \pushtabs -Saves all current tab stop positions. Useful for temporarily changing -tab stop positions in the middle of a @code{tabbing} environment. - -@item \tabbingsep -Distance to left of tab stop moved by @code{\'}. - -@end ftable - -This example typesets a Pascal function in a traditional format: - -@example -\begin@{tabbing@} -function \= fact(n : integer) : integer;\\ - \> begin \= \+ \\ - \> if \= n $>$ 1 then \+ \\ - fact := n * fact(n-1) \- \\ - else \+ \\ - fact := 1; \-\- \\ - end;\\ -\end@{tabbing@} -@end example - - -@node table -@section @code{table} - -@findex table -@cindex tables, creating -@cindex creating tables - -Synopsis: - -@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. - -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: - -@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} classes use the default -placement @code{[tbp]}. - -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. - - -@node tabular -@section @code{tabular} -@findex tabular @r{environment} -@cindex lines in tables -@cindex lining text up in tables - -Synopsis: - -@example -\begin@{tabular@}[pos]@{cols@} -column 1 entry & column 2 entry ... & column n entry \\ -... -\end@{tabular@} -@end example - - or - -@example -\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. - -@findex \\ @r{for @code{tabular}} -@code{\\} must be used to specify the end of each row of the table, -except for the last, where it is optional---unless an @code{\hline} -command (to put a rule below the table) follows. - -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 centre 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 @code{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 - -Parameters that control formatting: -@c xx defaults, own node (xref from array)? - -@ftable @code -@item \arrayrulewidth -Thickness of the rule created by @code{|}, @code{\hline}, and -@code{\vline} in the @code{tabular} and @code{array} environments; the -default is @samp{.4pt}. - -@item \arraystretch -Scaling of spacing between rows in the @code{tabular} and @code{array} -environments; default is @samp{1},for no scaling. - -@item \doublerulesep -Horizontal distance between the vertical rules produced by @code{||} -in the @code{tabular} and @code{array} environments; default is @samp{2pt}. - -@item \tabcolsep -Half the width of the space between columns; default is @samp{6pt}. - -@end ftable - -These commands can be used inside a @code{tabular} environment: - -@menu -* \multicolumn:: Make an item spanning several columns. -* \cline:: Draw a horizontal line spanning some columns. -* \hline:: Draw a horizontal line spanning all columns. -* \vline:: Draw a vertical line. -@end menu - - -@node \multicolumn -@subsection @code{\multicolumn} -@findex \multicolumn - -Synopsis: -@example -\multicolumn@{@var{cols}@}@{@var{pos}@}@{@var{text}@} -@end example - -The @code{\multicolumn} command makes an entry that spans several -columns. The first mandatory argument, @var{cols}, specifies the -number of columns to span. The second mandatory argument, @var{pos}, -specifies the formatting of the entry; @code{c} for centered, @code{l} -for flushleft, @code{r} for flushright. The third mandatory argument, -@var{text}, specifies what text to put in the entry. - -Here's an example showing two columns separated by an en-dash; -@code{\multicolumn} is used for the heading: - -@example -\begin@{tabular@}@{r@@@{--@}l@} -\multicolumn@{2@}@{c@}@{\bf Unicode@}\cr - 0x80&0x7FF \cr - 0x800&0xFFFF \cr -0x10000&0x1FFFF \cr -\end@{tabular@} -@end example - - -@node \cline -@subsection @code{\cline} -@findex \cline - -Synopsis: - -@example -\cline@{@var{i}-@var{j}@} -@end example - -The @code{\cline} command draws horizontal lines across the columns -specified, beginning in column @var{i} and ending in column @var{j}, -which are specified in the mandatory argument. - - -@node \hline -@subsection @code{\hline} -@findex \hline - -The @code{\hline} command draws a horizontal line the width of the -enclosing @code{tabular} or @code{array} environment. It's most -commonly used to draw a line at the top, bottom, and between the rows -of a table. - - -@node \vline -@subsection @code{\vline} -@findex \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. - - -@node thebibliography -@section @code{thebibliography} - -@findex thebibliography -@cindex bibliography, creating (manually) - -Synopsis: - -@example -\begin@{thebibliography@}@{@var{widest-label}@} -\bibitem[@var{label}]@{@var{cite_key@}} -... -\end@{thebibliography@} -@end example - -The @code{thebibliography} environment produces a bibliography or -reference list. - -In the @code{article} class, this reference list is labelled -``References''; in the @code{report} class, it is labelled -``Bibliography''. You can change the label (in the standard classes) -by redefining the command @code{\refname}. For instance, this -eliminates it entirely: - -@example -\renewcommand@{\refname@}@{@} -@end example - -The mandatory @var{widest-label} argument is text that, when typeset, -is as wide as the widest item label produced by the @code{\bibitem} -commands. It is typically given as @code{9} for bibliographies with -less than 10 references, @code{99} for ones with less than 100, etc. - -@menu -* \bibitem:: Specify a bibliography item. -* \cite:: Refer to a bibliography item. -* \nocite:: Include an item in the bibliography. -* Using BibTeX:: Automatic generation of bibliographies. -@end menu - - -@node \bibitem -@subsection @code{\bibitem} - -@findex \bibitem - -Synopsis: -@example -\bibitem[@var{label}]@{@var{cite_key}@} -@end example - -The @code{\bibitem} command generates an entry labelled by -@var{label}. If the @var{label} argument is missing, a number is -automatically generated using the @code{enumi} counter. The -@var{cite_key} is any sequence of letters, numbers, and punctuation -symbols not containing a comma. - -This command writes an entry to the @file{.aux} file containing the -item's @var{cite_key} and label. When the @file{.aux} file is read by -the @code{\begin@{document@}} command, the item's @code{label} is -associated with @code{cite_key}, causing references to @var{cite_key} -with a @code{\cite} command (see next section) to produce the -associated label. - - -@node \cite -@subsection @code{\cite} - -@findex \cite - -Synopsis: - -@example -\cite[@var{subcite}]@{@var{keys} -@end example - -The @var{keys} argument is a list of one or more citation keys, -separated by commas. This command generates an in-text citation to -the references associated with @var{keys} by entries in the -@file{.aux} file. - -The text of the optional @var{subcite} argument appears after the -citation. For example, @code{\cite[p.~314]@{knuth@}} might produce -`[Knuth, p.@tie{}314]'. - - -@node \nocite -@subsection @code{\nocite} -@findex \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. - - -@node Using BibTeX -@subsection Using Bib@TeX{} - -@cindex using Bib@TeX{} -@cindex bib@TeX{}, using -@cindex bibliography, creating (automatically) -@findex \bibliographystyle -@findex \bibliography - -If you use the Bib@TeX{} program by Oren Patashnik (highly -recommended if you need a bibliography of more than a couple of -titles) to maintain your bibliography, you don't use the -@code{thebibliography} environment (@pxref{thebibliography}). Instead, -you include the lines - -@example -\bibliographystyle@{@var{bibstyle}@} -\bibliography@{@var{bibfile1},@var{bibfile2}@} -@end example - -The @code{\bibliographystyle} command does not produce any output of -its own. Rather, it defines the style in which the bibliography will -be produced: @var{bibstyle} refers to a file -@var{bibstyle}@file{.bst}, which defines how your citations will look. -The standard @var{style} names distributed with Bib@TeX{} are: - -@table @code -@item alpha -Sorted alphabetically. Labels are formed from name of author and year of -publication. -@item plain -Sorted alphabetically. Labels are numeric. -@item unsrt -Like @code{plain}, but entries are in order of citation. -@item abbrv -Like @code{plain}, but more compact labels. -@end table - -In addition, numerous other Bib@TeX{} style files exist tailored to -the demands of various publications. See -@url{http://www.ctan.org/tex-archive/biblio/bibtex/contrib}. - -The @code{\bibliography} command is what actually produces the -bibliography. The argument to @code{\bibliography} refers to files -named @file{@var{bibfile}.bib}, which should contain your database in -Bib@TeX{} format. Only the entries referred to via @code{\cite} and -@code{\nocite} will be listed in the bibliography. - - -@node theorem -@section @code{theorem} - -@findex theorem @r{environment} -@cindex theorems, typesetting - -Synopsis: - -@example -\begin@{theorem@} -@var{theorem-text} -\end@{theorem@} -@end example - -The @code{theorem} environment produces ``Theorem @var{n}'' in -boldface followed by @var{theorem-text}, where the numbering -possibilities for @var{n} are described under @code{\newtheorem} -(@pxref{\newtheorem}). - - -@node titlepage -@section @code{titlepage} - -@findex titlepage @r{environment} -@cindex making a title page -@cindex title pages, creating - -Synopsis: - -@example -\begin@{titlepage@} -@var{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 may be useful on title pages -(@pxref{\today}). - -You can use the @code{\maketitle} command (@pxref{\maketitle}) to -produce a standard title page without a @code{titlepage} environment. - - -@node verbatim -@section @code{verbatim} - -@findex verbatim @r{environment} -@cindex verbatim text -@cindex simulating typed text -@cindex typed text, simulating -@cindex code, typesetting -@cindex computer programs, typesetting - -Synopsis: - -@example -\begin@{verbatim@} -@var{literal-text} -\end@{verbatim@} -@end example - -The @code{verbatim} environment is a paragraph-making environment in -which @LaTeX{} produces exactly what you type in; for instance the -@code{\} character produces a printed @samp{\}. It turns @LaTeX{} -into a typewriter with carriage returns and blanks having the same -effect that they would on a typewriter. - -The @code{verbatim} uses a monospaced typewriter-like font (@code{\tt}). - -@menu -* \verb:: The macro form of the @code{verbatim} environment. -@end menu - -@node \verb -@subsection @code{\verb} - -@findex \verb -@cindex verbatim text, inline - -Synopsis: - -@example -\verb@var{char}@var{literal-text}@var{char} -\verb*@var{char}@var{literal-text}@var{char} -@end example - -The @code{\verb} command typesets @var{literal-text} as it is input, -including special characters and spaces, using the typewriter -(@code{\tt}) font. No spaces are allowed between @code{\verb} or -@code{\verb*} and the delimiter @var{char}, which begins and ends the -verbatim text. The delimiter must not appear in @var{literal-text}. - -@cindex visible space -The @code{*}-form differs only in that spaces are printed with a -``visible space'' character. -@tex -(Namely, {\tt\char`\ }.) -@end tex - - -@node verse -@section @code{verse} - -@findex verse @r{environment} -@cindex poetry, an environment for - -Synopsis: - -@example -\begin@{verse@} -@var{line1} \\ -@var{line2} \\ -... -\end@{verse@} -@end example - -The @code{verse} environment is designed for poetry, though you may find -other uses for it. - -@findex \\ @r{for @code{verse}} -The margins are indented on the left and the right, paragraphs are not -indented, and the text is not justified. Separate the lines of each -stanza with @code{\\}, and use one or more blank lines to separate the -stanzas. - - -@node Footnotes -@chapter Footnotes -@cindex footnotes, creating - -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. - -@menu -* \footnote:: Insert a footnote. -* \footnotemark:: Insert footnote mark only. -* \footnotetext:: Insert footnote text only. -* Footnote parameters:: Parameters for footnote formatting. -@end menu - - -@node \footnote -@section @code{\footnote} -@findex \footnote - -Synopsis: - -@example -\footnote[@var{number}]@{@var{text}@} -@end example - -The @code{\footnote} command places the numbered footnote @var{text} -at the bottom of the current page. The optional argument @var{number} -changes the default footnote number. - -This command can only be used in outer paragraph mode; i.e., you -cannot use it in sectioning commands like @code{\chapter}, in figures, -tables or in a @code{tabular} environment. (See following sections.) -@c xx mention packages that fix this - - -@node \footnotemark -@section @code{\footnotemark} -@findex \footnotemark - -With no optional argument, the @code{\footnotemark} command puts the -current footnote number in the text. This command can be used in -inner paragraph mode. You give the text of the footnote separately, -with the @code{\footnotetext} command. - -This command can be used to produce several consecutive footnote -markers referring to the same footnote with - -@example -\footnotemark[\value@{footnote@}] -@end example - -after the first @code{\footnote} command. - - -@node \footnotetext -@section @code{\footnotetext} -@findex \footnotetext - -Synopsis: - -@example -\footnotetext[@var{number}]@{@var{text}@} -@end example - -The @code{\footnotetext} command places @var{text} at the bottom of -the page as a footnote. This command can come anywhere after the -@code{\footnotemark} command. The @code{\footnotetext} command must -appear in outer paragraph mode. - -The optional argument @var{number} changes the default footnote number. - - -@node Footnote parameters -@section Footnote parameters - -@cindex footnote parameters - -@ftable @code -@item \footnoterule -Produces the rule separating the main text on a page from the page's -footnotes. Default dimensions: @code{0.4pt} thick (or wide), and -@code{0.4\columnwidth} long in the standard document classes (except -slides, where it does not appear). - -@item \footnotesep -The height of the strut placed at the beginning of the footnote. By -default, this is set to the normal strut for @code{\footnotesize} -fonts (@pxref{Font sizes}), therefore there is no extra space between -footnotes. This is @samp{6.65pt} for @samp{10pt}, @samp{7.7pt} for -@samp{11pt}, and @samp{8.4pt} for @samp{12pt}. - -@end ftable - - -@node Definitions -@chapter Definitions -@cindex definitions - -@LaTeX{} has support for making new commands of many different kinds. - -@c xx everything in this chapter needs examples. - -@menu -* \newcommand & \renewcommand:: (Re)define a new command. -* \newcounter:: Define a new counter. -* \newlength:: Define a new length. -* \newsavebox:: Define a new box. -* \newenvironment & \renewenvironment:: Define a new environment. -* \newtheorem:: Define a new theorem-like environment. -* \newfont:: Define a new font name. -* \protect:: Using tricky commands. -@end menu - - -@node \newcommand & \renewcommand -@section @code{\newcommand} & @code{\renewcommand} -@findex \newcommand -@cindex commands, defining new ones -@cindex defining a new command -@cindex new commands, defining - -@code{\newcommand} and @code{\renewcommand} define and redefine a -command, respectively. Synopses: - -@example - \newcommand@{@var{cmd}@}[@var{nargs}]@{@var{defn}@} -\renewcommand@{@var{cmd}@}[@var{nargs}]@{@var{defn}@} - \newcommand@{@var{cmd}@}[@var{nargs}][@var{default}]@{@var{defn}@} -\renewcommand@{@var{cmd}@}[@var{nargs}][@var{default}]@{@var{defn}@} -@end example - - -@table @var -@item cmd -The command name beginning with @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 nargs -An optional integer from 1 to 9 specifying the number of arguments -that the command will take. The default is for the command to have no -arguments. - -@item default -If this optional parameter is present, it means that the command's -first argument is optional. When the new command is called, the -default value of the optional argument (i.e., if it is not specified -in the call) is the string @samp{def}. - -@item defn -The text to be substituted for every occurrence of @code{cmd}; a -construct of the form @code{#@var{n}} in @var{defn} is replaced by the -text of the @var{n}th argument. - -@end table - - -@node \newcounter -@section @code{\newcounter} -@findex \newcounter -@cindex counters, defining new - -Synopsis: - -@example -\newcounter@{@var{cnt}@}[@var{countername}] -@end example - -The @code{\newcounter} command defines a new counter named @var{cnt}. -The new counter is initialized to zero. - -Given the optional argument @code{[@var{countername}]}, @var{cnt} -will be reset whenever @var{countername} is incremented. - -@xref{Counters}, for more information about counters. - - -@node \newlength -@section @code{\newlength} -@findex \newlength -@cindex lengths, defining new - -Synopsis: - -@example -\newlength@{\@var{arg}@} -@end example - -The @code{\newlength} command defines the mandatory argument as a -@code{length} command with a value of @code{0in}. The argument must -be a control sequence, as in @code{\newlength@{\foo@}}. An error -occurs if @code{\foo} is already defined. - -@xref{Lengths}, for how to set the new length to a nonzero value, and -for more information about lengths in general. - - -@node \newsavebox -@section @code{\newsavebox} -@findex \newsavebox - -Synopsis: - -@example -\newsavebox@{@var{cmd}@} -@end example - -Defines @code{\@var{cmd}}, which must be a command name not already -defined, to refer to a new bin for storing boxes. - - -@node \newenvironment & \renewenvironment -@section @code{\newenvironment} & @code{\renewenvironment} -@findex \newenvironment -@findex \renewenvironment -@cindex environments, defining -@cindex defining new environments -@cindex redefining environments - -Synopses: - -@example - \newenvironment@{@var{env}@}[@var{nargs}]@{@var{begdef}@}@{@var{enddef}@} - \newenvironment@{@var{env}@}[@var{nargs}][@var{default}]@{@var{begdef}@}@{@var{enddef}@} -\renewenvironment@{@var{env}@}[@var{nargs}]@{@var{begdef}@}@{@var{enddef}@} -@end example - -These commands define or redefine an environment @var{env}, that is, -@code{\begin@{@var{env}@} @dots{} \end@{@var{env}@}}. - -@table @var -@item env -The name of the environment. For @code{\newenvironment}, @var{env} -must not be an existing environment, and the command @code{\@var{env}} -must be undefined. For @code{\renewenvironment}, @var{env} must be -the name of an existing environment. - -@item nargs -An integer from 1 to 9 denoting the number of arguments of -the newly-defined environment. The default is no arguments. - -@item default -If this is specified, the first argument is optional, and @var{default} -gives the default value for that argument. - -@item begdef -The text expanded at every occurrence of @code{\begin@{@var{env}@}}; a -construct of the form @code{#@var{n}} in @var{begdef} is replaced by -the text of the @var{n}th argument. - -@item enddef -The text expanded at every occurrence of @code{\end@{@var{env}@}}. It -may not contain any argument parameters. - -@end table - - -@node \newtheorem -@section @code{\newtheorem} -@findex \newtheorem -@cindex theorems, defining -@cindex defining new theorems - -@example -\newtheorem@{@var{newenv}@}@{@var{label}@}[@var{within}] -\newtheorem@{@var{newenv}@}[@var{numbered_like}]@{@var{label}@} -@end example - -This command defines a theorem-like environment. Arguments: - -@table @var -@item newenv -The name of the environment to be defined; must not be the name of an -existing environment or otherwise defined. - -@item label -The text printed at the beginning of the environment, before the -number. For example, @samp{Theorem}. - -@item numbered_like -(Optional.) The name of an already defined theorem-like environment; -the new environment will be numbered just like @var{numbered_like}. - -@item within -(Optional.) The name of an already defined counter, a sectional unit. -The new theorem counter will be reset at the same time as the -@var{within} counter. - -@end table - -At most one of @var{numbered_like} and @var{within} can be specified, -not both. - - -@node \newfont -@section @code{\newfont} -@findex \newfont -@cindex fonts, new commands for -@cindex defining new fonts - -Synopsis: - -@example -\newfont@{@var{cmd}@}@{@var{fontname}@} -@end example - -Defines a control sequence @code{\@var{cmd}}, which must not already -be defined, to make @var{fontname} be the current font. The file -looked for on the system is named @file{@var{fontname}.tfm}. - -This is a low-level command for setting up to use an individual font. -More commonly, fonts are defined in families through @file{.fd} files. - - -@node \protect -@section @code{\protect} -@findex \protect - -@cindex fragile commands -@cindex moving arguments -Footnotes, line breaks, any command that has an optional argument, and -many more are so-called @dfn{fragile} commands. When a fragile -command is used in certain contexts, called @dfn{moving arguments}, it -must be preceded by @code{\protect}. In addition, any fragile -commands within the arguments must have their own @code{\protect}. - -Some examples of moving arguments are @code{\caption} -(@pxref{figure}), @code{\thanks} (@pxref{\maketitle}), and -@-expressions in @code{tabular} and @code{array} environments -(@pxref{tabular}). - -@cindex robust commands -Commands which are not fragile are called @dfn{robust}. They must not -be preceded by @code{\protect}. - -See also: - -@smallexample -@exdent @url{http://www-h.eng.cam.ac.uk/help/tpl/textprocessing/teTeX/latex/latex2e-html/fragile.html} -@exdent @url{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=protect} -@end smallexample - -@c xx really need examples. - - -@node Counters -@chapter Counters -@cindex counters, a list of -@cindex variables, a list of - -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{\}. -(@code{enumi}--@code{enumiv} are used for the nested enumerate -environment.) Below is a list of the counters used in @LaTeX{}'s -standard document classes to control numbering. - -@example -part paragraph figure enumi -chapter subparagraph table enumii -section page footnote enumiii -subsection equation mpfootnote enumiv -subsubsection -@end example - -@menu -* \alph \Alph \arabic \roman \Roman \fnsymbol:: Print value of a counter. -* \usecounter:: Use a specified counter in a list environment. -* \value:: Use the value of a counter in an expression. -* \setcounter:: Set the value of a counter. -* \addtocounter:: Add a quantity to a counter. -* \refstepcounter:: Add to counter, resetting subsidiary counters. -* \stepcounter:: Add to counter, resetting subsidiary counters. -* \day \month \year:: Numeric date values. -@end menu - - -@node \alph \Alph \arabic \roman \Roman \fnsymbol -@section @code{\alph \Alph \arabic \roman \Roman \fnsymbol}: Printing counters - -All of these commands take a single counter as an argument, for -instance, @code{\alph@{enumi@}}. - -@ftable @code -@item \alph -prints @var{counter} using lowercase letters: `a', `b', @enddots{} - -@item \Alph -uses uppercase letters: `A', `B', @enddots{} - -@item \arabic -uses Arabic numbers: `1', `2', @enddots{} - -@item \roman -uses lowercase roman numerals: `i', `ii', @enddots{} - -@item \roman -uses uppercase roman numerals: `I', `II', @enddots{} - -@item \fnsymbol -prints the value of @var{counter} in a specific sequence of nine -symbols (conventionally used for labeling footnotes). The value of -@var{counter} must be between@tie{}1 and@tie{}9, inclusive. - -@tex -Here are the symbols: -$\ast$ $\dagger$ $\ddagger$ $\S$ $\P$ $\parallel$ -$\ast\ast$ $\dagger\dagger$ $\ddagger\ddagger$ -@end tex -@ifnottex -The symbols mostly aren't supported in Info, but here are the names: -@display -asterix(*) dagger ddagger section-sign paragraph-sign parallel -double-asterix(**) double-dagger double-ddagger -@end display -@end ifnottex - -@end ftable - - -@node \usecounter -@section @code{\usecounter@{@var{counter}@}} -@findex \usecounter -@cindex list items, specifying counter -@cindex numbered items, specifying counter - -Synopsis: - -@example -\usecounter@{@var{counter}@} -@end example - -The @code{\usecounter} command is used in the second argument of the -@code{list} environment to specify @var{counter} to be used to number -the list items. - - -@node \value -@section @code{\value@{@var{counter}@}} -@findex \value -@cindex counters, getting value of - -Synopsis: - -@example -\value@{@var{counter}@} -@end example - -The @code{\value} command produces the value of @var{counter}. It can -be used anywhere @LaTeX{} expects a number, for example: - -@example -\setcounter@{myctr@}@{3@} -\addtocounter@{myctr@}@{1@} -\hspace@{\value@{myctr@}\parindent@} -@end example - - -@node \setcounter -@section @code{\setcounter@{@var{counter}@}@{@var{value}@}} -@findex \setcounter -@cindex counters, setting -@cindex setting counters - -Synopsis: - -@example -\setcounter@{@var{\counter}@}@{@var{value}@} -@end example - -The @code{\setcounter} command sets the value of @var{\counter} to the -@var{value} argument. - - -@node \addtocounter -@section @code{\addtocounter@{@var{counter}@}@{@var{value}@}} -@findex \addtocounter - -The @code{\addtocounter} command increments @var{counter} by the -amount specified by the @var{value} argument, which may be negative. - - -@node \refstepcounter -@section @code{\refstepcounter@{@var{counter}@}} -@findex \refstepcounter - -The @code{\refstepcounter} command works in the same way as -@code{\stepcounter} @xref{\stepcounter}, except it also defines the -current @code{\ref} value to be the result of @code{\thecounter}. - - -@node \stepcounter -@section @code{\stepcounter@{@var{counter}@}} -@findex \stepcounter - -The @code{\stepcounter} command adds one to @var{counter} and -resets all subsidiary counters. - - -@node \day \month \year -@section @code{\day \month \year}: Predefined counters -@findex \day -@findex \month -@findex \year - -@LaTeX{} defines counters for the day of the month (@code{\day}, -1--31), month of the year (@code{\month}, 1--12), and year -(@code{\year}, Common Era). When @TeX{} starts up, they are -set to the current values on the system where @TeX{} is running. They -are not updated as the job progresses. - -The related command @code{\today} produces a string representing the -current day (@pxref{\today}). - - -@node Lengths -@chapter Lengths -@cindex lengths, defining and using - -A @code{length} is a measure of distance. Many @LaTeX{} commands take a -length as an argument. - -@menu -* \setlength:: Set the value of a length. -* \addtolength:: Add a quantity to a length. -* \settodepth:: Set a length to the depth of something. -* \settoheight:: Set a length to the height of something. -* \settowidth:: Set a length to the width of something. -* Predefined lengths:: Lengths that are, like, predefined. -@end menu - - -@node \setlength -@section @code{\setlength@{\@var{len}@}@{@var{value}@}} -@findex \setlength -@cindex lengths, setting - -The @code{\setlength} sets the value of @var{\len} to the @var{value} -argument, which can be expressed in any units that @LaTeX{} -understands, i.e., inches (@code{in}), millimeters (@code{mm}), points -(@code{pt}), big points (@code{bp}, etc. - - -@node \addtolength -@section \addtolength@{@var{\len}@}@{@var{amount}@} -@findex \addtolength -@cindex lengths, adding to - -The @code{\addtolength} command increments a ``length command'' -@var{\len} by the amount specified in the @var{amount} argument, which -may be negative. - - -@node \settodepth -@section @code{\settodepth} -@findex \settodepth - -@code{\settodepth@{\gnat@}@{text@}} - -The @code{\settodepth} command sets the value of a @code{length} command -equal to the depth of the @code{text} argument. - - -@node \settoheight -@section @code{\settoheight} -@findex \settoheight - -@code{\settoheight@{\gnat@}@{text@}} - -The @code{\settoheight} command sets the value of a @code{length} command -equal to the height of the @code{text} argument. - - - -@node \settowidth -@section @code{\settowidth@{\@var{len}@}@{@var{text}@}} -@findex \settowidth - -The @code{\settowidth} command sets the value of the command @var{\len} -to the width of the @var{text} argument. - - - -@node Predefined lengths -@section Predefined lengths -@cindex lengths, predefined -@cindex predefined lengths - -@code{\width} -@findex \width - -@code{\height} -@findex \height - -@code{\depth} -@findex \depth - -@code{\totalheight} -@findex \totalheight - -These length parameters can be used in the arguments of the box-making -commands (@pxref{Boxes}). They specify the natural width etc. of the -text in the box. @code{\totalheight} equals @code{\height} + -@code{\depth}. To make a box with the text stretched to double the -natural size, e.g., say - -@code{\makebox[2\width]@{Get a stretcher@}} - - -@node Line breaking -@chapter Line breaking -@cindex line breaking -@cindex breaking lines - -The first thing @LaTeX{} does when processing ordinary text is to -translate your input file into a sequence of glyphs and spaces. To -produce a printed document, this sequence must be broken into lines -(and these lines must be broken into pages). - -@LaTeX{} usually does the line (and page) breaking for you, but in -some environments, you do the line breaking yourself with the -@code{\\} command, and you can always manually force breaks. - -@menu -* \\:: Start a new line. -* \obeycr & \restorecr:: Make each input line start a new output line. -* \newline:: Break the line -* \- (hyphenation):: Insert explicit hyphenation. -* \fussy:: Be fussy about line breaking. -* \hyphenation:: Tell @LaTeX{} how to hyphenate a word. -* \linebreak & \nolinebreak:: Forcing & avoiding line breaks. -* \sloppy:: Be sloppy about line breaking. -@end menu - - -@node \\ -@section @code{\\}[*][@var{morespace}] -@findex \\ @r{force line break} -@cindex new line, starting -@cindex line break, forcing - -The @code{\\} command tells @LaTeX{} to start a new line. It has an -optional argument, @var{morespace}, 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. - - -@node \obeycr & \restorecr -@section @code{\obeycr} & @code{\restorecr} -@findex \obeycr -@findex \restorecr -@cindex new line, output as input - -The @code{\obeycr} command makes a return in the input file -(@samp{^^M}, internally) the same as @code{\\} (followed by -@code{\relax}). So each new line in the input will also be a new line -in the output. - -@code{\restorecr} restores normal line-breaking behavior. - - -@node \newline -@section @code{\newline} -@findex \newline -@cindex new line, starting (paragraph mode) - -The @code{\newline} command breaks the line at the present point, with -no stretching of the text before it. It can only be used in paragraph -mode. - - -@node \- (hyphenation) -@section @code{\-} (discretionary hyphen) -@findex \- @r{(hyphenation)} -@cindex hyphenation, forcing - -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 most of the correct hyphenation points, and almost never use an -incorrect one. The @code{\-} command is used for the exceptional -cases. - -When you insert @code{\-} commands in a word, the word will only be -hyphenated at those points and not at any of the hyphenation points -that @LaTeX{} might otherwise have chosen. - - - -@node \fussy -@section @code{\fussy} -@findex \fussy - -The declaration @code{\fussy} (which is the default) makes @TeX{} -picky about line breaking. This usually avoids too much space between -words, at the cost of an occasional overfull box. - -This command cancels the effect of a previous @code{\sloppy} command -(@pxref{\sloppy}. - - -@node \sloppy -@section @code{\sloppy} - -The declaration @code{\sloppy} makes @TeX{} less fussy about line -breaking. This will avoid overfull boxes, at the cost of loose -interword spacing. - -Lasts until a @code{\fussy} command is issued (@pxref{\fussy}). - - -@node \hyphenation -@section @code{\hyphenation} -@findex \hyphenation -@cindex hyphenation, defining - -Synopsis: - -@example -\hyphenation@{@var{word-one} @var{word-two}@} -@end example - -The @code{\hyphenation} command declares allowed hyphenation points -with a @code{-} character in the given words. The words are separated -by spaces. @TeX{} will only hyphenate if the word matches exactly, no -inflections are tried. Multiple @code{\hyphenation} commands -accumulate. Some examples (the default @TeX{} hyphenation patterns -misses the hyphenations in these words): - -@example -\hyphenation@{ap-pen-dix col-umns data-base data-bases@} -@end example - - -@node \linebreak & \nolinebreak -@section @code{\linebreak} & @code{\nolinebreak} -@findex \linebreak -@findex \nolinebreak -@cindex line breaks, forcing -@cindex line breaks, preventing - -Synopses: - -@example -\linebreak[@var{priority}] -\nolinebreak[@var{priority}] -@end example - -By default, the @code{\linebreak} (@code{\nolinebreak}) command forces -(prevents) a line break at the current position. For -@code{\linebreak}, the spaces in the line are stretched out so that it -extends to the right margin as usual. - -With the optional argument @var{priority}, you can convert the command -from a demand to a request. The @var{priority} must be a number from -0 to@tie{}4. The higher the number, the more insistent the request. - - -@node Page breaking -@chapter Page breaking -@cindex page breaking -@cindex breaking pages - -@LaTeX{} starts new pages asynchronously, when enough material has -accumulated to fill up a page. Usually this happens automatically, -but sometimes you may want to influence the breaks. - -@menu -* \cleardoublepage:: Start a new right-hand page. -* \clearpage:: Start a new page. -* \newpage:: Start a new page. -* \enlargethispage:: Enlarge the current page a bit. -* \pagebreak & \nopagebreak:: Forcing & avoiding page breaks. -@end menu - - -@node \cleardoublepage -@section @code{\cleardoublepage} - -@findex \cleardoublepage -@cindex starting on a right-hand 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. - - -@node \clearpage -@section @code{\clearpage} -@findex \clearpage -@cindex flushing floats and starting a page -@cindex starting a new page and clearing floats - -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. - - -@node \newpage -@section @code{\newpage} -@findex \newpage -@cindex new page, starting -@cindex starting a new page - -The @code{\newpage} command ends the current page, but does not clear -floats (see @code{\clearpage} above). - - -@node \enlargethispage -@section @code{\enlargethispage} -@findex \enlargethispage -@cindex enlarge current page - -@code{\enlargethispage@{size@}} - -@code{\enlargethispage*@{size@}} - -Enlarge the @code{\textheight} for the current page by the specified -amount; e.g. @code{\enlargethispage@{\baselineskip@}} will allow one -additional line. - -The starred form tries to squeeze the material together on the page as -much as possible. This is normally used together with an explicit -@code{\pagebreak}. - - -@node \pagebreak & \nopagebreak -@section @code{\pagebreak} & @code{\nopagebreak} -@findex \pagebreak -@findex \nopagebreak -@cindex page break, forcing -@cindex page break, preventing - -Synopses: - -@example -\pagebreak[@var{priority}] -\nopagebreak[@var{priority}] -@end example - -By default, the @code{\pagebreak} (@code{\nopagebreak}) command forces -(prevents) a page break at the current position. For -@code{\linebreak}, the vertical space on the page is stretched out -where possible so that it extends to the normal bottom margin. - -With the optional argument @var{priority}, you can convert the -@code{\pagebreak} command from a demand to a request. The number must -be a number from 0 to@tie{}4. The higher the number, the more -insistent the request is. - - -@node Making paragraphs -@chapter Making paragraphs -@cindex making paragraphs -@cindex paragraphs - -A paragraph is ended by one or more completely blank lines---lines not -containing even a @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:: Indent this paragraph. -* \noindent:: Do not indent this paragraph. -* \parskip:: Space added before paragraphs. -* Marginal notes:: Putting remarks in the margin. -@end menu - - -@node \indent -@section @code{\indent} -@findex \indent -@findex \parindent -@cindex indent, forcing - -@code{\indent} produces a horizontal space whose width equals the -width of the @code{\parindent} length, the normal paragraph -indentation. It is used to add paragraph indentation where it would -otherwise be suppressed. - -The default value for @code{\parindent} is @code{1em} in two-column -mode, otherwise @code{15pt} for @code{10pt} documents, @code{17pt} for -@code{11pt}, and @code{1.5em} for @code{12pt}. - - -@node \noindent -@section @code{\noindent} -@findex \noindent -@cindex indent, suppressing - -When used at the beginning of the paragraph, @code{\noindent} -suppresses any paragraph indentation. It has no effect when used in -the middle of a paragraph. - - -@node \parskip -@section @code{\parskip} -@findex \parskip -@cindex vertical space before paragraphs - -@code{\parskip} is a rubber length defining extra vertical space added -before each paragraph. The default is @code{0pt plus1pt}. - - -@node Marginal notes -@section Marginal notes -@cindex marginal notes -@cindex notes in the margin -@cindex remarks in the margin -@findex \marginpar - -Synopsis: - -@example -\marginpar[@var{left}]@{@var{right}@} -@end example - -The @code{\marginpar} command creates a note in the margin. The first -line of the note will have the same baseline as the line in the text -where the @code{\marginpar} occurs. - -When you only specify the mandatory argument @var{right}, the text -will be placed - -@itemize @bullet -@item -in the right margin for one-sided layout; -@item -in the outside margin for two-sided layout; -@item -in the nearest margin for two-column layout. -@end itemize - -@findex \reversemarginpar -@findex \normalmarginpar -The command @code{\reversemarginpar} places subsequent marginal notes -in the opposite (inside) margin. @code{\normalmarginpar} places them -in the default position. - -When you specify both arguments, @var{left} is used for the left -margin, and @var{right} is used for the right margin. - -The first word will normally not be hyphenated; you can enable -hyphenation there by beginning the node with @code{\hspace@{0pt@}}. - -These parameters affect the formatting of the note: - -@ftable @code -@item \marginparpush -Minimum vertical space between notes; default @samp{7pt} for -@samp{12pt} documents, @samp{5pt} else. - -@item \marginparsep -Horizontal space between the main text and the note; default -@samp{11pt} for @samp{10pt} documents, @samp{10pt} else. - -@item \marginparwidth -Width of the note itself; default for a one-sided @samp{10pt} document -is @samp{90pt}, @samp{83pt} for @samp{11pt}, and @samp{68pt} for -@samp{12pt}; @samp{17pt} more in each case for a two-sided document. -In two column mode, the default is @samp{48pt}. - -@end ftable - - -@node Math formulas -@chapter Math formulas -@cindex math formulas -@cindex formulas, math -@cindex math mode, entering - -@findex math @r{environment} -@findex displaymath @r{environment} -@findex equation @r{environment} -There are three environments that put @LaTeX{} in math mode: - -@table @code -@item math -For formulas that appear right in the text. -@item displaymath -For formulas 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 - -@findex \( -@findex \) -@findex \[ -@findex \] -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 -\(...\) @r{instead of} \begin@{math@}...\end@{math@} -\[...\] @r{instead of} \begin@{displaymath@}...\end@{displaymath@} -@end example - -@findex $ -In fact, the @code{math} environment is so common that it has an even -shorter form: - -@example -$ ... $ @r{instead of} \(...\) -@end example - -@findex \boldmath -@findex \unboldmath -The @code{\boldmath} command changes math letters and symbols to be in -a bold font. It is used @emph{outside} of math mode. Conversely, the -@code{\unboldmath} command changes math glyphs to be in a normal font; -it too is used @emph{outside} of math mode. - -@c xx own section? Math fonts? -@findex \displaystyle -The @code{\displaystyle} declaration forces the size and style of the -formula to be that of @code{displaymath}, e.g., with limits above and -below summations. For example -@example -$\displaystyle \sum_@{n=0@}^\infty x_n $ -@end example - -@c xx see also \cal, \mathcal - -@menu -* Subscripts & Superscripts:: Also known as exponent or index. -* Math symbols:: Various mathematical squiggles. -* Math functions:: Math function names like sin and exp. -* Math accents:: Accents in math. -* Spacing in math mode:: Thick, medium, thin and negative spaces. -* Math Miscellany:: Stuff that doesn't fit anywhere else. -@end menu - - -@node Subscripts & Superscripts -@section Subscripts & Superscripts -@cindex superscript -@cindex subscript -@cindex exponent -@findex _ -@findex ^ - -To get an expression @i{exp} to appear as a subscript, you just type -@code{_@{}@i{exp}@code{@}}. To get @i{exp} to appear as a -superscript, you type @code{^@{}@i{exp}@code{@}}. @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. - - -@node Math symbols -@section Math symbols -@cindex math symbols -@cindex symbols, math -@cindex greek letters - -@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 pi symbol (@math{\pi}) in your output. - -@ftable @code -@item \| -@math{\|} - -@item \aleph -@math{\aleph} - -@item \alpha -@math{\alpha} - -@item \amalg -@math{\amalg} (binary operation) - -@item \angle -@math{\angle} - -@item \approx -@math{\approx} (relation) - -@item \ast -@math{\ast} (binary operation) - -@item \asymp -@math{\asymp} (relation) - -@item \backslash -\ (delimiter) - -@item \beta -@math{\beta} - -@item \bigcap -@math{\bigcap} - -@item \bigcirc -@math{\bigcirc} (binary operation) - -@item \bigcup -@math{\bigcup} - -@item \bigodot -@math{\bigodot} - -@item \bigoplus -@math{\bigoplus} - -@item \bigotimes -@math{\bigotimes} - -@item \bigtriangledown -@math{\bigtriangledown} (binary operation) - -@item \bigtriangleup -@math{\bigtriangleup} (binary operation) - -@item \bigsqcup -@math{\bigsqcup} - -@item \biguplus -@math{\biguplus} - -@item \bigcap -@math{\bigvee} - -@item \bigwedge -@math{\bigwedge} - -@item \bot -@math{\bot} - -@item \bowtie -@math{\bowtie} (relation) - -@item \Box -(square open box symbol) @c xx not in plain - -@item \bullet -@cindex bullet symbol -@math{\bullet} (binary operation) - -@item \cap -@math{\cap} (binary operation) - -@item \cdot -@math{\cdot} (binary operation) - -@item \chi -@math{\chi} - -@item \circ -@math{\circ} (binary operation) - -@item \clubsuit -@math{\clubsuit} - -@item \cong -@math{\cong} (relation) - -@item \coprod -@math{\coprod} - -@item \cup -@math{\cup} (binary operation) - -@item \dagger -@math{\dagger} (binary operation) - -@item \dashv -@math{\dashv} (relation) - -@item \ddagger -@math{\dagger} (binary operation) - -@item \Delta -@math{\Delta} - -@item \delta -@math{\delta} - -@item \Diamond -bigger @math{\diamond} @c xx not in plain - -@item \diamond -@math{\diamond} (binary operation) - -@item \diamondsuit -@math{\diamondsuit} - -@item \div -@math{\div} (binary operation) - -@item \doteq -@math{\doteq} (relation) - -@item \downarrow -@math{\downarrow} (delimiter) - -@item \Downarrow -@math{\Downarrow} (delimiter) - -@item \ell -@math{\ell} - -@item \emptyset -@math{\emptyset} - -@item \epsilon -@math{\epsilon} - -@item \equiv -@math{\equiv} (relation) - -@item \eta -@math{\eta} - -@item \exists -@math{\exists} - -@item \flat -@math{\flat} - -@item \forall -@math{\forall} - -@item \frown -@math{\frown} (relation) - -@item \Gamma -@math{\Gamma} - -@item \gamma -@math{\gamma} - -@item \ge -@math{\ge} - -@item \geq -@math{\geq} (relation) - -@item \gets -@math{\gets} - -@item \gg -@math{\gg} (relation) - -@item \hbar -@math{\hbar} - -@item \heartsuit -@math{\heartsuit} - -@item \hookleftarrow -@math{\hookleftarrow} - -@item \hookrightarrow -@math{\hookrightarrow} - -@item \iff -@math{\iff} - -@item \Im -@math{\Im} - -@item \in -@math{\in} (relation) - -@item \infty -@math{\infty} - -@item \int -@math{\int} - -@item \iota -@math{\iota} - -@item \Join -condensed bowtie symbol (relation) @c xx not in plain - -@item \kappa -@math{\kappa} - -@item \Lambda -@math{\Lambda} - -@item \lambda -@math{\lambda} - -@item \land -@math{\land} - -@item \langle -@math{\langle} (delimiter) - -@item \lbrace -@math{\lbrace} (delimiter) - -@item \lbrack -@math{\lbrack} (delimiter) - -@item \lceil -@math{\lceil} (delimiter) - -@item \le -@math{\le} - -@item \leadsto -@c xx missing from plain - -@item \Leftarrow -@math{\Leftarrow} - -@item \leftarrow -@math{\leftarrow} - -@item \leftharpoondown -@math{\leftharpoondown} - -@item \leftharpoonup -@math{\leftharpoonup} - -@item \Leftrightarrow -@math{\Leftrightarrow} - -@item \leftrightarrow -@math{\leftrightarrow} - -@item \leq -@math{\leq} (relation) - -@item \lfloor -@math{\lfloor} (delimiter) - -@item \lhd -(left-pointing arrow head) @c xx not in plain - -@item \ll -@math{\ll} (relation) - -@item \lnot -@math{\lnot} - -@item \longleftarrow -@math{\longleftarrow} - -@item \longleftrightarrow -@math{\longleftrightarrow} - -@item \longmapsto -@math{\longmapsto} - -@item \longrightarrow -@math{\longrightarrow} - -@item \lor -@math{\lor} - -@item \mapsto -@math{\mapsto} - -@item \mho -@c xx not in plain - -@item \mid -@math{\mid} (relation) - -@item \models -@math{\models} (relation) - -@item \mp -@math{\mp} (binary operation) - -@item \mu -@math{\mu} - -@item \nabla -@math{\nabla} - -@item \natural -@math{\natural} - -@item \ne -@math{\ne} - -@item \nearrow -@math{\nearrow} - -@item \neg -@math{\neg} - -@item \neq -@math{\neq} (relation) - -@item \ni -@math{\ni} (relation) - -@item \not -Overstrike a following operator with a /, as in @math{\not=}. - -@item \notin -@math{\ni} - -@item \nu -@math{\nu} - -@item \nwarrow -@math{\nwarrow} - -@item \odot -@math{\odot} (binary operation) - -@item \oint -@math{\oint} - -@item \Omega -@math{\Omega} - -@item \omega -@math{\omega} - -@item \ominus -@math{\ominus} (binary operation) - -@item \oplus -@math{\oplus} (binary operation) - -@item \oslash -@math{\oslash} (binary operation) - -@item \otimes -@math{\otimes} (binary operation) - -@item \owns -@math{\owns} - -@item \parallel -@math{\parallel} (relation) - -@item \partial -@math{\partial} - -@item \perp -@math{\perp} (relation) - -@item \phi -@math{\phi} - -@item \Pi -@math{\Pi} - -@item \pi -@math{\pi} - -@item \pm -@math{\pm} (binary operation) - -@item \prec -@math{\prec} (relation) - -@item \preceq -@math{\preceq} (relation) - -@item \prime -@math{\prime} - -@item \prod -@math{\prod} - -@item \propto -@math{\propto} (relation) - -@item \Psi -@math{\Psi} - -@item \psi -@math{\psi} - -@item \rangle -@math{\rangle} (delimiter) - -@item \rbrace -@math{\rbrace} (delimiter) - -@item \rbrack -@math{\rbrack} (delimiter) - -@item \rceil -@math{\rceil} (delimiter) - -@item \Re -@math{\Re} - -@item \rfloor -@math{\rfloor} - -@item \rhd -(binary operation) @c xx not in plain @math{\rhd} - -@item \rho -@math{\rho} - -@item \Rightarrow -@math{\Rightarrow} - -@item \rightarrow -@math{\rightarrow} - -@item \rightharpoondown -@math{\rightharpoondown} - -@item \rightharpoonup -@math{\rightharpoonup} - -@item \rightleftharpoons -@math{\rightleftharpoons} - -@item \searrow -@math{\searrow} - -@item \setminus -@math{\setminus} (binary operation) - -@item \sharp -@math{\sharp} - -@item \Sigma -@math{\Sigma} - -@item \sigma -@math{\sigma} - -@item \sim -@math{\sim} (relation) - -@item \simeq -@math{\simeq} (relation) - -@item \smallint -@math{\smallint} - -@item \smile -@math{\smile} (relation) - -@item \spadesuit -@math{\spadesuit} - -@item \sqcap -@math{\sqcap} (binary operation) - -@item \sqcup -@math{\sqcup} (binary operation) - -@item \sqsubset -(relation) @c not in plain (@math{\sqsubset}) - -@item \sqsubseteq -@math{\sqsubseteq} (relation) - -@item \sqsupset -(relation) @c not in plain (@math{\sqsupset}) - -@item \sqsupseteq -@math{\sqsupseteq} (relation) - -@item \star -@math{\star} (binary operation) - -@item \subset -@math{\subset} (relation) - -@item \subseteq -@math{\subseteq} (relation) - -@item \succ -@math{\succ} (relation) - -@item \succeq -@math{\succeq} (relation) - -@item \sum -@math{\sum} - -@item \supset -@math{\supset} (relation) - -@item \supseteq -@math{\supseteq} (relation) - -@item \surd -@math{\surd} - -@item \swarrow -@math{\swarrow} - -@item \tau -@math{\tau} - -@item \theta -@math{\theta} - -@item \times -@math{\times} (binary operation) - -@item \to -@math{\to} - -@item \top -@math{\top} - -@item \triangle -@math{\triangle} - -@item \triangleleft -@math{\triangleleft} (binary operation) - -@item \triangleright -@math{\triangleright} (binary operation) - -@item \unlhd -left-pointing arrowhead with line under (binary operation) @c not in plain - -@item \unrhd -right-pointing arrowhead with line under (binary operation) @c not in plain - -@item \Uparrow -@math{\Uparrow} (delimiter) - -@item \uparrow -@math{\uparrow} (delimiter) - -@item \Updownarrow -@math{\Updownarrow} (delimiter) - -@item \updownarrow -@math{\updownarrow} (delimiter) - -@item \uplus -@math{\uplus} (binary operation) - -@item \Upsilon -@math{\Upsilon} - -@item \upsilon -@math{\upsilon} - -@item \varepsilon -@math{\varepsilon} - -@item \varphi -@math{\varphi} - -@item \varpi -@math{\varpi} - -@item \varrho -@math{\varrho} - -@item \varsigma -@math{\varsigma} - -@item \vartheta -@math{\vartheta} - -@item \vdash -@math{\vdash} (relation) - -@item \vee -@math{\vee} (binary operation) - -@item \Vert -@math{\Vert} (delimiter) - -@item \vert -@math{\vert} (delimiter) - -@item \wedge -@math{\wedge} (binary operation) - -@item \wp -@math{\wp} - -@item \wr -@math{\wr} (binary operation) - -@item \Xi -@math{\Xi} - -@item \xi -@math{\xi} - -@item \zeta -@math{\zeta} - -@end ftable - - -@node Math functions -@section Math functions -@cindex math functions -@cindex functions, math - -These commands produce roman function names in math mode with proper -spacing. - -@ftable @code -@item \arccos -@math{\arccos} - -@item \arcsin -@math{\arcsin} - -@item \arctan -@math{\arctan} - -@item \arg -@math{\arg} - -@item \bmod -Binary modulo operator (@math{x \bmod y}) - -@item \cos -@math{\cos} - -@item \cosh -@math{\cosh} - -@item \cot -@math{\cos} - -@item \coth -@math{\cosh} - -@item \csc -@math{\csc} - -@item \deg -@math{\deg} - -@item \det -@math{\deg} - -@item \dim -@math{\dim} - -@item \exp -@math{\exp} - -@item \gcd -@math{\gcd} - -@item \hom -@math{\hom} - -@item \inf -@math{\inf} - -@item \ker -@math{\ker} - -@item \lg -@math{\lg} - -@item \lim -@math{\lim} - -@item \liminf -@math{\liminf} - -@item \limsup -@math{\limsup} - -@item \ln -@math{\ln} - -@item \log -@math{\log} - -@item \max -@math{\max} - -@item \min -@math{\min} - -@item \pmod -parenthesized modulus, as in (@math{\pmod 2^n - 1}) - -@item \Pr -@math{\Pr} - -@item \sec -@math{\sec} - -@item \sin -@math{\sin} - -@item \sinh -@math{\sinh} - -@item \sup -@math{\sup} - -@item \tan -@math{\tan} - -@item \tanh -@math{\tanh} - -@end ftable - - -@node Math accents -@section Math accents -@cindex math accents -@cindex accents, mathematical - -@LaTeX{} provides a variety of commands for producing accented letters -in math. These are different from accents in normal text -(@pxref{Accents}). - -@ftable @code -@item \acute -@cindex acute accent, math -Math acute accent: @math{\acute{x}}. - -@item \breve -@cindex breve accent, math -Math breve accent: @math{\breve{x}}. - -@item \check -@cindex check accent, math -@cindex h@'a@v{c}ek accent, math -Math h@'a@v{c}ek (check) accent: @math{\check{x}}. - -@item \ddot -@cindex double dot accent, math -Math dieresis accent: @math{\ddot{x}}. - -@item \dot -@cindex overdot accent, math -@cindex dot over accent, math -Math dot accent: @math{\dot{x}}. - -@item \grave -@cindex grave accent, math -Math grave accent: @math{\grave{x}}. - -@item \hat -@cindex hat accent, math -@cindex circumflex accent, math -Math hat (circumflex) accent: @math{\hat{x}}. - -@item \imath -@cindex dotless i, math -Math dotless i. - -@item \jmath -@cindex dotless j, math -Math dotless j. - -@item \tilde -@cindex tilde accent, math -Math tilde accent: @math{\tilde{x}}. - -@item \vec -@cindex vector symbol, math -Math vector symbol: @math{\vec{x}}. - -@item \widehat -@cindex wide hat accent, math -Math wide hat accent: @math{\widehat{x+y}}. - -@item \widehat -@cindex wide tile accent, math -Math wide tilde accent: @math{\widetilde{x+y}}. - -@end ftable - - -@node Spacing in math mode -@section Spacing in math mode -@cindex spacing within math mode -@cindex math mode, spacing - -In a @code{math} environment, @LaTeX{} ignores the spaces you type and -puts in the spacing according to the normal rules for mathematics -texts. If you want different spacing, @LaTeX{} provides the following -commands for use in math mode: - -@table @code -@item \; -@findex \; -A thick space (@math{5\over18\,}quad). -@item \: -@itemx \> -@findex \: -@findex \> -Both of these produce a medium space (@math{2\over9\,}quad). -@item \, -@findex \, -A thin space (@math{1\over6\,}quad); not restricted to math mode. -@item \! -A negative thin space (@math{-{1\over6}\,}quad). -@end table - - -@node Math Miscellany -@section Math Miscellany -@cindex math Miscellany - -@ftable @code - -@item \* -@cindex discretionary multiplication -@cindex multiplication symbol, discretionary line break -A ``discretionary'' multiplication symbol, at which a line break is -allowed. - -@item \cdots -A horizontal ellipsis with the dots raised to the center of the line. -@tex -As in: `$\cdots$'. -@end tex - -@item \ddots -A diagonal ellipsis: @math{\ddots}. - -@item \frac@{num@}@{den@} -@findex \frac -Produces the fraction @code{num} divided by @code{den}. - -@iftex -eg. -@tex -${1}\over{4}$ -@end tex -@end iftex - -@item \left @var{delim1} ... \right @var{delim2} -@findex \right -@cindex null delimiter -The two delimiters need not match; @samp{.} acts as a null delimiter, -producing no output. The delimiters are sized according to the math -in between. Example: @code{\left( \sum_i=1^10 a_i \right]}. - -@item \overbrace@{@var{text}@} -Generates a brace over @var{text}. -For example, @math{\overbrace{x+\cdots+x}^{k \rm\;times}}. - -@item \overline@{@var{text}@} -Generates a horizontal line over @var{tex}. -For exampe, @math{\overline{x+y}}. - -@item \sqrt[@var{root}]@{arg@} -Produces the representation of the square root of @var{arg}. The -optional argument @var{root} determines what root to produce. For -example, the cube root of @code{x+y} would be typed as -@code{$\sqrt[3]@{x+y@}$}. -@tex -In @TeX{}, the result looks like this: -$\root 3 \of x+y$. -@end tex - -@item \stackrel@{@var{text}@}@{@var{relation}@} -Puts @var{text} above @var{relation}. For example, -@code{\stackrel@{f@}@{\longrightarrow@}}. -@tex -In @TeX{}, the result looks like this: -$\buildrel f \over \longrightarrow$. -@end tex - -@item \underbrace@{math@} -Generates @var{math} with a brace underneath. -@tex -In @TeX{}, the result looks like this: -$\underbrace{x+y+z}_{>\,0}$. -@end tex - -@item \underline@{text@} -Causes @var{text}, which may be either math mode or not, to be -underlined. -@tex -In @TeX{}, the result looks like this: -$\underline{z}$ -@end tex - -@item \vdots -@findex \vdots -Produces a vertical ellipsis. -@tex -In @TeX{}, the result looks like this: -$\vdots$. -@end tex - -@end ftable - - -@node Modes -@chapter Modes -@cindex modes -@cindex paragraph mode -@cindex math mode -@cindex left-to-right mode -@cindex lR mode - - -When @LaTeX{} is processing your input text, it is always in one of three -modes: - -@itemize @bullet -@item -Paragraph mode -@item -Math mode -@item -Left-to-right mode, called LR mode for short -@end itemize - -@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''. - - -@node Page Styles -@chapter Page Styles -@cindex styles, page -@cindex page styles - -The @code{\documentclass} command determines the size and position of -the page's head and foot. The page style determines what goes in them. - -@menu -* \maketitle:: Generate a title page. -* \pagenumbering:: Set the style used for page numbers. -* \pagestyle:: Change the headings/footings style. -* \thispagestyle:: Change the headings/footings style for this page. -@end menu - - -@node \maketitle -@section @code{\maketitle} -@cindex titles, making -@findex \maketitle - -The @code{\maketitle} command generates a title on a separate title -page---except in the @code{article} class, where the title is placed -at the top of the first page. Information used to produce the title -is obtained from the following declarations: - -@ftable @code -@item \author@{@var{name} \and @var{name2}@} -@cindex author, for titlepage -@findex \\ @r{for @code{\author}} -@findex \and @r{for @code{\author}} -The @code{\author} command declares the document author(s), where the -argument 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. - -@item \date@{@var{text}@} -@cindex date, for titlepage -The @code{\date} command declares @var{text} to be the document's -date. With no @code{\date} command, the current date (@pxref{\today}) -is used. - -@item \thanks@{@var{text}@} -@cindex thanks, for titlepage -@cindex credit footnote -The @code{\thanks} command produces a @code{\footnote} to the title, -usually used for credit acknowledgements. - -@item \title@{@var{text}@} -@cindex title, for titlepage -@findex \\ @r{for @code{\title}} -The @code{\title} command declares @var{text} to be the title of the -document. Use @code{\\} to force a line break, as usual. - -@end ftable - - -@node \pagenumbering -@section @code{\pagenumbering} -@findex \pagenumbering -@cindex page numbering style - -Synopsis: - -@example -\pagenumbering@{@var{style}@} -@end example - -Specifies the style of page numbers, according to @var{style}: - -@table @code -@item arabic -arabic numerals -@item roman -lowercase Roman numerals -@item Roman -uppercase Roman numerals -@item alph -lowercase letters -@item Alph -uppercase letters -@end table - - -@node \pagestyle -@section @code{\pagestyle} -@findex \pagestyle -@cindex header style -@cindex footer style -@cindex running header and footer style - -Synopsis: - -@example -\pagestyle@{@var{style}@} -@end example - -The @code{\pagestyle} command specifies how the headers and footers -are typeset from the current page onwards. Values for @var{style}: - -@table @code -@item plain -Just a plain page number. - -@item empty -Empty headers and footers, e.g., no page numbers. - -@item headings -Put running headers on each page. The document style specifies what -goes in the headers. - -@item myheadings -Custom headers, specified via the @code{\markboth} or the -@code{\markright} commands. - -@end table - -Here are the descriptions of @code{\markboth} and @code{\markright}: - -@ftable @code -@item \markboth@{@var{left}@}@{@var{right}@} -Sets both the left and the right heading. A ``left-hand heading'' -(@var{left}) is generated by the last @code{\markboth} command before -the end of the page, while a ``right-hand heading'' (@var{right} 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. - -@item \markright@{@var{right}@} -Sets the right heading, leaving the left heading unchanged. - -@end ftable - - -@node \thispagestyle -@section @code{\thispagestyle@{@var{style}@}} -@findex \thispagestyle - -The @code{\thispagestyle} command works in the same manner as the -@code{\pagestyle} command (see previous section) except that it -changes to @var{style} for the current page only. - - -@node Spaces -@chapter Spaces -@cindex spaces - -@LaTeX{} has many ways to produce white (or filled) space. - -Another space-producing command is @code{\,} to produce a ``thin'' -space (usually 1/6@dmn{quad}). It can be used in text mode, but is -more often useful in math mode (@pxref{Spacing in math mode}). - -@menu -Horizontal space -* \hspace:: Fixed horizontal space. -* \SPACE:: Normal interword space. -* \AT:: Ending a sentence. -* \thinspace:: One-sixth of an em. -* \/:: Per-character italic correction. -* \hfill:: Stretchable horizontal space. -* \hrulefill:: Stretchable horizontal rule. -* \dotfill:: Stretchable horizontal dots. - -Vertical space -* \addvspace:: Add arbitrary vertical space if needed. -* \bigskip \medskip \smallskip:: Fixed vertical spaces. -* \vfill:: Infinitely stretchable vertical space. -* \vspace:: Add arbitrary vertical space. -@end menu - - -@node \hspace -@section @code{\hspace} -@findex \hspace - -Synopsis: - -@example -\hspace[*]@{@var{length}@} -@end example - -The @code{\hspace} command adds horizontal space. The @var{length} -argument can be expressed in any terms that @LaTeX{} understands: -points, inches, etc. It is a rubber length. You can add both -negative and positive space with an @code{\hspace} command; adding -negative space is like backspacing. - -@LaTeX{} normally removes horizontal space that comes at the beginning -or end of a line. To preserve this space, use the optional @code{*} -form. - - -@node \hfill -@section @code{\hfill} - -@findex \hfill -The @code{\hfill} fill command produces a ``rubber length'' which has -no natural space but can stretch or shrink horizontally as far as -needed. - -@findex \fill -The @code{\fill} parameter is the rubber length itself (technically, -the glue value @samp{0pt plus1fill}); thus, @code{\hspace\fill} is -equivalent to @code{\hfill}. - - -@node \SPACE -@section @code{\SPACE} -@findex \SPACE -@findex \TAB -@findex \NEWLINE - -The @code{\ } (space) command produces a normal interword space. It's -useful after punctuation which shouldn't end a sentence. For example -@code{Knuth's article in Proc.\ Amer.\ Math\. Soc.\ is fundamental}. -It is also often used after control sequences, as in @code{\TeX\ is a -nice system.} - -In normal circumstances, @code{\}@key{tab} and @code{\}@key{newline} -are equivalent to @code{\ }. - - -@node \AT -@section @code{\@@} -@findex \@@ - -The @code{\@@} command makes the following punctuation character end a -sentence even if it normally would not. This is typically used after -a capital letter. Here are side-by-side examples with and without -@code{\@@}: - -@example -@dots{} in C\@@. Pascal, though @dots{} -@dots{} in C. Pascal, though @dots{} -@end example - -@noindent produces - -@c Texinfo does it differently, but the result is the same. -@quotation -@dots{} in C@. Pascal, though @dots{} -@dots{} in C. Pascal, though @dots{} -@end quotation - - -@node \thinspace -@section @code{\thinspace} -@findex \thinspace - -@code{\thinspace} produces an unbreakable and unstretchable space that -is 1/6 of an em. This is the proper space to use in nested quotes, as -in '@dmn{''}. - - -@node \/ -@section @code{\/} -@findex \/ - -The @code{\/} command produces an @dfn{italic correction}. This is a -small space defined by the font designer for a given character, -to avoid the character colliding with whatever follows. The italic -@i{f} character typically has a large italic correction value. - -If the following character is a period or comma, it's not necessary to -insert an italic correction, since those punctuation symbols have a -very small height. However, with semicolons or colons, as well as -normal letters, it can help. Compare -@tex -{\it f\/: f\/;} -@end tex -@ifnottex -@i{f: f;} (in the @TeX{} output, the `f's are nicely separated) -@end ifnottex -with @i{f: f;}. - -Despite the name, roman characters can also have an italic -correction. Compare -@tex -pdf\/\TeX{} -@end tex -@ifnottex -pdf@TeX{} (in the @TeX{} output, there is a small space after the `f') -@end ifnottex -with pdf@TeX{}. - - -@node \hrulefill -@section @code{\hrulefill} -@findex \hrulefill - -The @code{\hrulefill} fill command produces a ``rubber length'' which can -stretch or shrink horizontally. It will be filled with a horizontal -rule. - - -@node \dotfill -@section @code{\dotfill} - -@findex \dotfill - -The @code{\dotfill} command produces a ``rubber length'' that fills -with dots instead of just white space. - - -@c xx undone -@node \addvspace -@section @code{\addvspace} -@findex \addvspace -@cindex vertical space -@cindex space, inserting vertical - -@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}. - - -@node \bigskip \medskip \smallskip -@section @code{\bigskip \medskip \smallskip} - -These commands produce a given amount of space. - -@table @code -@item \bigskip -@findex \bigskip -@findex \bigskipamount -The same as @code{\vspace@{bigskipamount@}}, ordinarily about one line -space (with stretch and shrink). - -@item \medskip -@findex \medskip -@findex \medskipamount -The same as @code{\vspace@{medskipamount@}}, ordinarily -about half of a line space (with stretch and shrink). - -@item \smallskip -@findex \smallskip -@findex \smallskipamount -The same as @code{\vspace@{smallskipamount@}}, ordinarily about a -quarter of a line space (with stretch and shrink). - -@end table - -The @code{\...amount} parameters are determined by the document class. - - -@node \vfill -@section @code{\vfill} -@findex \vfill - -The @code{\vfill} fill command produces a rubber length (glue) which -can stretch or shrink vertically as far as needed. It's equivalent to -@code{\vspace@{\fill@}} (@pxref{\hfill}). - - -@node \vspace -@section @code{\vspace[*]@{@var{length}@}} -@findex \vspace - -Synopsis: - -@example -\vspace[*]@{@var{length}@} -@end example - -The @code{\vspace} command adds the vertical space @var{length}, i.e., -a rubber length. @var{length} can be negative or positive. - -Ordinarily, @LaTeX{} removes vertical space added by @code{\vspace} at -the top or bottom of a page. With the optional @code{*} argument, the -space is not removed. - - -@node Boxes -@chapter Boxes - -@cindex boxes - -All the predefined length parameters (@pxref{Predefined lengths}) can be -used in the arguments of the box-making commands. - -@menu -* \mbox:: Horizontal boxes. -* \fbox and \framebox:: Put a frame around a box. -* lrbox:: An environment like \sbox. -* \makebox:: Box, adjustable position. -* \parbox:: Box with text in paragraph mode. -* \raisebox:: Raise or lower text. -* \savebox:: Like \makebox, but save the text for later use. -* \sbox:: Like \mbox, but save the text for later use. -* \usebox:: Print saved text. -@end menu - - -@node \mbox -@section @code{\mbox@{@var{text@}}} -@findex \mbox - -@cindex hyphenation, preventing -The @code{\mbox} command creates a box just wide enough to hold the -text created by its argument. The @var{text} is not broken into -lines, so it can be used to prevent hyphenation. - - -@node \fbox and \framebox -@section @code{\fbox} and @code{\framebox} - -@findex \fbox -@findex \framebox - -Synopses: - -@example -\fbox@{@var{text}@} -\framebox[@var{width}][@var{position}]@{@var{text}@} -@end example - -The @code{\fbox} and @code{\framebox} commands are like @code{\mbox}, -except that they put a frame around the outside of the box being created. - -In addition, the @code{\framebox} command allows for explicit -specification of the box width with the optional @var{width} argument -(a dimension), and positioning with the optional @var{position} -argument. @c xxref - -@findex \fboxrule -@findex \fboxsep -Both commands produce a rule of thickness @code{\fboxrule} (default -@samp{.4pt}), and leave a space of @code{\fboxsep} (default -@samp{3pt}) between the rule and the contents of the box. - -@xref{\framebox (picture)}, for the @code{\framebox} command in the -@code{picture} environment. - - -@node lrbox -@section @code{lrbox} -@findex lrbox - -@code{\begin@{lrbox@}@{cmd@} text \end@{lrbox@}} - -This is the environment form of @code{\sbox}. - -The text inside the environment is saved in the box @code{cmd}, which -must have been declared with @code{\newsavebox}. - - - -@node \makebox -@section @code{\makebox} -@findex \makebox - -Synopsis: - -@example -\makebox[@var{width}][@var{position}]@{@var{text}@} -@end example - -The @code{\makebox} command creates a box just wide enough to contain -the @var{text} specified. The width of the box is specified by the -optional @var{width} argument. The position of the text within the box -is determined by the optional @var{position} argument, which may take -the following values: - -@table @code -@item c -Centered (default). -@item l -Flush left. -@item r -Flush right. -@item s -Stretch (justify) across entire @var{width}; @var{text} must contain -stretchable space for this to work. -@end table - -@code{\makebox} is also used within the picture environment -@pxref{\makebox (picture)}. - - -@node \parbox -@section @code{\parbox} -@findex \parbox - -Synopsis: - -@example -\parbox[@var{position}][@var{height}][@var{inner-pos}]@{@var{width}@}@{@var{text}@} -@end example - -The @code{\parbox} command produces a box whose contents are created -in @code{paragraph} mode. It should be used to make a box small -pieces of text, with nothing fancy inside. In particular, you -shouldn't use any 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 (@pxref{minipage}). - -@code{\parbox} has two mandatory arguments: - -@table @var -@item width -the width of the parbox; -@item text -the text that goes inside the parbox. -@end table - -The optional @var{position} argument allows you to align either the -top or bottom line in the parbox with the baseline of the surrounding -text (default is top). - -The optional @var{height} argument overrides the natural height of the box. - -The @var{inner-pos} argument controls the placement of the text inside -the box, as follows; if it is not specified, @var{position} is used. - -@table @code -@item t -text is placed at the top of the box. -@item c -text is centered in the box. -@item b -text is placed at the bottom of the box. -@item s -stretch vertically; the text must contain vertically stretchable space -for this to work. -@end table - - -@node \raisebox -@section @code{\raisebox} -@findex \raisebox - -Synopsis: - -@example -\raisebox@{distance@}[@var{height}][@var{depth}]@{text@} -@end example - -The @code{\raisebox} command raises or lowers @var{text}. The first -mandatory argument specifies how high @var{text} is to be raised (or -lowered if it is a negative amount). @var{text} itself is processed -in LR mode. - -The optional arguments @var{height} and @var{depth} are dimensions. -If they are specified, @LaTeX{} treats @var{text} as extending a -certain distance above the baseline (height) or below (depth), -ignoring its natural height and depth. - - -@node \savebox -@section @code{\savebox} -@findex \savebox - -Synopsis: - -@example -\savebox@{@var{\boxcmd}@}[@var{width}][@var{pos}]@{@var{text}@} -@end example - -This command typeset @var{text} in a box just as with @code{\makebox} -(@pxref{\makebox}), except that instead of printing the resulting box, -it saves it in the box labeled @var{\boxcmd}, which must have been -declared with @code{\newsavebox} (@pxref{\newsavebox}). - - -@node \sbox -@section @code{\sbox@{@var{\boxcmd}@}@{@var{text}@}} -@findex \sbox - -Synopsis: - -@example -\sbox@{@var{\boxcmd}@}@{@var{text}@} -@end example - -@code{\sbox} types @var{text} in a box just as with @code{\mbox} -(@pxref{\mbox}) except that instead of the resulting box being -included in the normal output, it is saved in the box labeled -@var{\boxcmd}. @var{\boxcmd} must have been previously declared with -@code{\newsavebox} (@pxref{\newsavebox}). - - -@node \usebox -@section @code{\usebox@{@var{\boxcmd}} -@findex \usebox - -Synopsis: - -@example -\usebox@{@var{\boxcmd}@} -@end example - -@code{\usebox} producesthe box most recently saved in the bin -@var{\boxcmd} by a @code{\savebox} command (@pxref{\savebox}). - - -@node Special insertions -@chapter Special insertions - -@LaTeX{} provides commands for inserting characters that have a -special meaning do not correspond to simple characters you can type. - -@menu -* Reserved characters:: Inserting # $ % & ~ _ ^ \ @{ @} -* Text symbols:: Inserting other non-letter symbols in text. -* Accents:: Inserting accents. -* Non-English characters:: Inserting other non-English characters. -* \rule:: Inserting lines and rectangles. -* \today:: Inserting today's date. -@end menu - - -@node Reserved characters -@section Reserved characters -@cindex reserved characters -@cindex characters, reserved - -The following characters play a special role in @LaTeX{} and are called -``reserved characters'' or ``special characters''. - -@example -# $ % & ~ _ ^ \ @{ @} -@end example - -@findex \# -@findex \$ -@findex \% -@findex \& -@findex \_ -@findex \@{ -@findex \@} -Whenever you write one of these characters into your file, @LaTeX{} -will do something special. If you simply want the character to be -printed as itself, include a @code{\} in front of the character. For -example, @code{\$} will produce @code{$} in your output. - -@findex \backslash -One exception to this rule is @code{\} itself, because @code{\\} has -its own special (context-dependent) meaning. A roman \ is produced by -typing @code{$\backslash$} in your file, and a typewriter @code{\} is -produced by using @samp{\} in a verbatim command (@pxref{verbatim}). - -@findex \~ -@findex \^ -Also, @code{\~} and @code{\^} place tilde and circumflex accents over -the following letter, as in @~{o} and @^{o} (@pxref{Accents}); to get -a standalone @code{~} or @code{^}, you can again use a verbatim -command. - -@findex \symbol -@cindex accessing any character of a font - -Finally, you can access any character of the current font once you -know its number by using the @code{\symbol} command. For example, the -visible space character used in the @code{\verb*} command has the code -decimal 32, so it can be typed as @code{\symbol@{32@}}. - -You can also specify octal numbers with @code{'} or hexadecimal numbers -with @code{"}, so the previous example could also be written as -@code{\symbol@{'40@}} or @code{\symbol@{"20@}}. - - -@node Text symbols -@section Text symbols - -@cindex text symbols -@LaTeX{} provides commands to generate a number of non-letter symbols -in running text. - -@ftable @code - -@item \copyright -@cindex copyright symbol -The copyright symbol, @copyright{}. - -@item \dag -@cindex dagger, in text -The dagger symbol (in text). - -@item \ddag -@cindex double dagger, in text -The double dagger symbol (in text). - -@item \LaTeX -@cindex @LaTeX{} logo -@cindex logo, @LaTeX{} -The @LaTeX{} logo. - -@item \ldots -@cindex ellipsis -An ellipsis (three dots at the baseline): `@dots{}'. This -command also works in math mode. - -@item \lq -@cindex left quote -@cindex opening quote -Left (opening) quote: `. - -@item \P -@cindex paragraph sign -@cindex pilcrow -Paragraph sign (pilcrow). - -@item \pounds -@cindex pounds symbol -@cindex sterling symbol -English pounds sterling. - -@item \rq -@cindex right quote -@cindex closing quote -Right (closing) quote: '. - -@item \S -@cindex section symbol -Section symbol. - -@item \TeX -@cindex @TeX{} logo -@cindex logo, @TeX{} -The @TeX{} logo. - -@end ftable - - -@node Accents -@section Accents - -@cindex accents -@cindex characters, accented -@cindex letters, accented - -@LaTeX{} has wide support for many of the world's scripts and -languages, through the @code{babel} package and related support. This -section does not attempt to cover all that support. It merely the -core @LaTeX{} commands for creating accented characters. - -@table @code -@item \" -@findex \" @r{(umlaut accent)} -@cindex umlaut accent -Produces an umlaut, as in @"{o}. - -@item \' -@findex \' @r{(acute accent)} -@cindex acute accent -Produces an acute accent, as in @'{o}. In the @code{tabbing} -environment, pushes current column to the right of the previous column -(@pxref{tabbing}). - -@item \. -@findex \. @r{(dot-over accent)} -@cindex dot accent -@cindex dot-over accent -Produces a dot accent over the following, as in @dotaccent{o}. - -@item \= -@findex \= @r{(macron accent)} -@cindex macron accent -@cindex overbar accent -@cindex bar-over accent -Produces a macron (overbar) accent over the following, as in @={o}. - -@item \^ -@findex \^ @r{(circumflex accent)} -@cindex circumflex accent -@cindex hat accent -Produces a circumflex (hat) accent over the following, as in @^{o}. - -@item \` -@findex \` @r{(grave accent)} -@cindex grave accent -Produces a grave accent over the following, as in @`{o}. In the -@code{tabbing} environment, move following text to the right margin -(@pxref{tabbing}). - -@item \~ -@findex \~ @r{(tilde accent)} -@cindex tilde accent -Produces a tilde accent over the following, as in @~{n}. - -@item \b -@findex \b @r{(bar-under accent)} -@cindex bar-under accent -Produces a bar accent under the following, as in @ubaraccent{o}. - -@item \bar -@findex \bar @r{(macron, bar-over accent)} -@cindex bar-over accent -@cindex macron accent -Produces a macron accent over the following, as in @={o}. - -@item \c -@findex \c @r{(cedilla accent)} -@cindex cedilla accent -Produces a cedilla accent under the following, as in @c{c}. - -@item \d -@findex \d @r{(dot-under accent)} -@cindex dot-under accent -Produces a dot accent under the following, as in @udotaccent{o}. - -@item \H -@findex \H @r{(Hungarian umlaut accent)} -@cindex hungarian umlaut accent -Produces a long Hungarian umlaut accent over the following, as in @H{o}. - -@item \i -@findex \i @r{(dotless i)} -@cindex dotless i -Produces a dotless i, as in `@dotless{i}'. - -@item \j -@findex \j @r{(dotless j)} -@cindex dotless j -Produces a dotless j, as in `@dotless{j}'. - -@item \t -@findex \t @r{(tie-after accent)} -@cindex tie-after accent -Produces a tie-after accent, as in `@tieaccent{oo}'. - -@item \u -@findex \u @r{(breve accent)} -@cindex breve accent -Produces a breve accent, as in `@u{o}'. - -@item \v -@findex \v @r{(breve accent)} -@cindex hacek accent -@cindex check accent -Produces a h@'a@v{c}ek (check) accent, as in `@v{o}'. - -@end table - - -@node Non-English characters -@section Non-English characters - -@cindex special characters -@cindex non-English characters -@cindex characters, non-English -@cindex letters, non-English - -Here are the basic @LaTeX{} commands for inserting characters commonly -used in languages other than English. - -@table @code - -@item \aa -@itemx \AA -@findex \aa (@aa{}) -@findex \AA (@AA{}) -@cindex aring -@aa{} and @AA{}. - -@item \ae -@itemx \AE -@findex \ae (@ae{}) -@findex \AE (@AE{}) -@cindex ae ligature -@ae{} and @AE{}. - -@item \l -@itemx \L -@findex \l (@l{}) -@findex \L (@L{}) -@cindex polish l -@l{} and @L{}. - -@item \o -@itemx \O -@findex \o (@o{}) -@findex \O (@O{}) -@cindex oslash -@o{} and @O{}. - -@item \oe -@itemx \OE -@findex \oe (@oe{}) -@findex \OE (@OE{}) -@cindex oe ligature -@oe{} and @OE{}. - -@item \ss -@findex \ss (@ss{}) -@cindex es-zet German letter -@cindex sharp S letters -@ss{}. - -@end table - - -@node \rule -@section @code{\rule} -@findex \rule - -Synopsis: - -@example -\rule[@var{raise}]@{@var{width}@}@{@var{thickness}@} -@end example - -The @code{\rule} command produces @dfn{rules}, that is, lines or -rectangles. The arguments are: - -@table @var -@item raise -How high to raise the rule (optional). - -@item width -The length of the rule (mandatory). - -@item thickness -The thickness of the rule (mandatory). -@end table - - -@node \today -@section @code{\today} -@findex \today - -The @code{\today} command produces today's date, in the format -@samp{@var{month} @var{dd}, @var{yyyy}}; for example, `July 4, 1976'. -It uses the predefined counters @code{\day}, @code{\month}, and -@code{\year} (@pxref{\day \month \year}) to do this. It is not -updated as the program runs. - -@cindex @code{datetime} package -The @code{datetime} package, among others, can produce a wide variety -of other date formats. - - -@node Splitting the input -@chapter Splitting the input -@cindex splitting the input file -@cindex input file - -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{}. - -@menu -* \include:: Conditionally include a file. -* \includeonly:: Determine which files are included. -* \input:: Unconditionally include a file. -@end menu - - -@node \include -@section @code{\include} -@findex \include - -Synopsis: - -@example -\include@{@var{file}@} -@end example - -If no @code{\includeonly} command is present, the @code{\include} -command executes @code{\clearpage} to start a new page -(@pxref{\clearpage}), then reads @var{file}, then does another -@code{\clearpage}. - -Given an @code{\includeonly} command, the @code{\include} actions are -only run if @var{file} is listed as an argument to -@code{\includeonly}. See the next section. - -@cindex nested @code{\include}, not allowed -The @code{\include} command may not appear in the preamble or in a file -read by another @code{\include} command. - - -@node \includeonly -@section \@code{includeonly} -@findex \includeonly - -Synopsis: - -@example -\includeonly@{@var{file1},@var{file2},...@} -@end example - -The @code{\includeonly} command controls which files will be read by -subsequent @code{\include} commands. The list of filenames is -comma-separated. Each @var{file} must exactly match a filename -specified in a @code{\include} command for the selection to be -effective. - -This command can only appear in the preamble. - - -@node \input -@section \input -@findex \input - -Synopsis: - -@example -\input@{@var{file}@} -@end example - -The @code{\input} command causes the specified @var{file} to be read -and processed, as if its contents had been inserted in the current -file at that point. - -If @var{file} does not end in @samp{.tex} (e.g., @samp{foo} or -@samp{foo.bar}), it is first tried with that extension (@samp{foo.tex} -or @samp{foo.bar.tex}). If that is not found, the original @var{file} -is tried (@samp{foo} or @samp{foo.bar}). - - -@node Front/back matter -@chapter Front/back matter - -@menu -* Tables of contents:: -* Glossaries:: -* Indexes:: -@end menu - - -@node Tables of contents -@section Tables of contents - -@cindex table of contents, creating - -@findex \tableofcontents -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. A previous run must -have generated a @file{.toc} file. - -The @code{\tableofcontents} command produces a heading, but it does -not automatically start a new page. If you want a new page after the -table of contents, write a @code{\newpage} command after the -@code{\tableofcontents} command. - -@findex \listoffigures -@findex \listoftables -The analagous commands @code{\listoffigures} and @code{\listoftables} -produce a list of figures and a list of tables, respectively. -Everything works exactly the same as for the table of contents. - -@findex \nofiles -The command @code{\nofiles} overrides these commands, and -@emph{prevents} any of these lists from being generated. - -@menu -* \addcontentsline:: Add an entry to table of contents etc. -* \addtocontents:: Add text directly to table of contents file etc. -@end menu - - -@node \addcontentsline -@subsection \addcontentsline -@findex \addcontentsline@{@var{ext}@}@{@var{unit}@}@{@var{text}@} -@cindex table of contents entry, manually adding - -The @code{\addcontentsline} command adds an entry to the specified list -or table where: - -@table @var -@item ext -The extension of the file on which information is to be written, -typically one of: @code{toc} (table of contents), @code{lof} (list of -figures), or @code{lot} (list of tables). - -@item unit -The name of the sectional unit being added, typically one of the -following, matching the value of the @var{ext} argument: - -@table @code -@item toc -The name of the sectional unit: @code{part}, @code{chapter}, -@code{section}, @code{subsection}, @code{subsubsection}. -@item lof -For the list of figures. -@item lot -For the list of tables. -@end table - -@item entry -The actual text of the entry. -@end table - -@findex \contentsline -What is written to the @file{.@var{ext}} file is the -command @code{\contentsline@{@var{unit}@}@{@var{name}@}}. - -@c ?? how hardwired are these values? other unit names? - - -@node \addtocontents -@subsection \addtocontents -@findex \addtocontents@{@var{ext}@}@{@var{text}@} - -The @code{\addtocontents} command adds text (or formatting commands) -directly to the @file{.}@var{ext} file that generates the table of -contents or lists of figures or tables. - -@table @var -@item ext -The extension of the file on which information is to be written: -@file{toc} (table of contents), @file{lof} (list of figures), or -@file{lot} (list of tables). - -@item text -The text to be written. -@end table - - -@node Glossaries -@section Glossaries -@cindex glossaries - -@findex \makeglossary -The command @code{\makeglossary} enables creating glossaries. - -@findex \glossary -@cindex @file{.glo} file -The command @code{\glossary@{@var{text}@}} writes a glossary entry for -@var{text} to an auxiliary file with the @file{.glo} extension. - -@findex \glossaryentry -Specifically, what gets written is the command -@code{\glossaryentry@{@var{text}@}@{@var{pageno}@}}, where -@var{pageno} is the current @code{\thepage} value. - -The @code{glossary} package on CTAN provides support for fancier -glossaries. - - -@node Indexes -@section Indexes -@cindex indexes - -@findex \makeindex -The command @code{\makeindex} enables creating indexes. - -@findex \index -@cindex @file{.idx} file -The command @code{\index@{@var{text}@}} writes a glossary entry for -@var{text} to an auxiliary file with the @file{.idx} extension. - -@findex \indexentry -Specifically, what gets written is the command -@code{\indexentry@{@var{text}@}@{@var{pageno}@}}, where @var{pageno} -is the current @code{\thepage} value. - -The rubber length @code{\indexspace} is inserted before each new -letter in the index; its default value is @samp{10pt plus5pt -minus3pt}. - -@cindex @command{makeindex} program -@cindex @command{xindy} program -@cindex @file{.ind} file - -The @file{.idx} file can then be sorted with an external command, -typically @command{makeindex} or @command{xindy}, resulting in a -@file{.ind} file, which can then be used to typeset the index. - - -@node Letters -@chapter Letters -@cindex letters -@cindex creating letters - -You can use @LaTeX{} to typeset letters, both personal and business. The -@code{letter} document class is designed to make a number of letters at -once, although you can make just one if you so desire. - -Your @file{.tex} source file has the same minimum commands as the other -document classes, i.e., you must have the following commands as a -minimum: - -@example - \documentclass@{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 - -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}, do not work. The letter -closes with a @code{\closing} command. - -@findex \\ @r{for letters} -After the @code{closing}, you can have additional material. The -@code{\cc} command produces the usual ``cc: @dots{}''. There's also a -similar @code{\encl} command for a list of enclosures. With both these -commands, use @code{\\} to separate the items. - -These commands are used with the @code{letter} class. - -@menu -* \address:: Your return address. -* \cc:: Cc list. -* \closing:: Saying goodbye. -* \encl:: List of enclosed material. -* \location:: Your organisation's address. -* \makelabels:: Making address labels. -* \name:: Your name, for the return address. -* \opening:: Saying hello. -* \ps:: Adding a postscript. -* \signature:: Your signature. -* \startbreaks:: Allow page breaks. -* \stopbreaks:: Disallow page breaks. -* \telephone:: Your phone number. -@end menu - - -@node \address -@section \address@{@var{return-address@}} -@findex \address - -The @code{\address} specifies the return address of a letter, 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. - - -@node \cc -@section @code{\cc} - -@findex \cc -@cindex cc list, in letters - -Synopsis: - -@example -\cc@{@var{name1}\\@var{name2}@} -@end example - -Produce a list of @var{name}s the letter was copied to. Each name is -printed on a separate line. - - -@node \closing -@section @code{\closing} - -@findex \closing -@cindex letters, ending -@cindex closing letters - -Synopsis: - -@example -\closing@{text@} -@end example - -A letter closes with a @code{\closing} command, for example, -@example -\closing@{Best Regards,@} -@end example - - -@node \encl -@section @code{\encl} - -@findex \encl -@cindex enclosure list - -Synopsis: - -@example -\encl@{@var{line1}\\@var{line2}@} -@end example - -Declare a list of one more enclosures. - - -@node \location -@section @code{\location} -@findex \location - -@code{\location@{address@}} - -This modifies your organisation's standard address. This only appears -if the @code{firstpage} pagestyle is selected. - - -@node \makelabels -@section @code{\makelabels} -@findex \makelabels - -@code{\makelabels@{number@}} - -If you issue this command in the preamble, @LaTeX{} will create a sheet of -address labels. This sheet will be output before the letters. - - - -@node \name -@section @code{\name} -@findex \name - -@code{\name@{June Davenport@}} - -Your name, used for printing on the envelope together with the return -address. - - -@node \opening -@section @code{\opening@{@var{text}@}} -@findex \opening -@cindex letters, starting - -Synopsis: - -@example -\opening@{@var{text}@} -@end example - -A letter begins with the @code{\opening} command. The mandatory -argument, @var{text}, is whatever text you wish to start your letter. -For instance: - -@example -\opening@{Dear Joe,@} -@end example - - -@node \ps -@section @code{\ps} -@findex \ps -@cindex postscript, in letters - -Use the @code{\ps} command to start a postscript in a letter, after -@code{\closing}. - - -@node \signature -@section @code{\signature@{@var{text}@}} -@findex \signature - -Your name, as it should appear at the end of the letter underneath the -space for your signature. @code{\\} starts a new line within -@var{text} as usual. - - -@node \startbreaks -@section @code{\startbreaks} -@findex \startbreaks - -@code{\startbreaks} - -Used after a @code{\stopbreaks} command to allow page breaks again. - - - -@node \stopbreaks -@section @code{\stopbreaks} -@findex \stopbreaks - -@code{\stopbreaks} - -Inhibit page breaks until a @code{\startbreaks} command occurs. - - - -@node \telephone -@section @code{\telephone} -@findex \telephone - -@code{\telephone@{number@}} - -This is your telephone number. This only appears if the -@code{firstpage} pagestyle is selected. - - -@node Terminal Input/Output -@chapter Terminal Input/Output -@cindex input/Output -@cindex terminal Input/Output - -@menu -* \typein:: Read text from the terminal. -* \typeout:: Write text to the terminal. -@end menu - - -@node \typein -@section @code{\typein[@var{cmd}]@{@var{msg}@}} -@findex \typein - -Synopsis: - -@example -\typein[@var{\cmd}]@{@var{msg}@} -@end example - -@code{\typein} prints @var{msg} on the terminal and causes @LaTeX{} to -stop and wait for you to type a line of input, ending with return. If -the optional @var{\cmd} argument is omitted, the typed input is -processed as if it had been included in the input file in place of the -@code{\typein} command. If the @var{\cmd} argument is present, it -must be a command name. This command name is then defined or -redefined to be the typed input. - - -@node \typeout -@section @code{\typeout@{@var{msg}@}} -@findex \typeout - -Synopsis: - -@example -\typeout@{@var{msg}@} -@end example - -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} (among others) are replaced by their definitions -before being printed. - -@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, independent of surrounding spaces. A @code{^^J} in -@code{msg} prints a newline. - - -@node Command Line -@chapter Command Line -@cindex command Line - -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; e.g. - -@example -latex '\nonstopmode\input foo.tex' -@end example - -@noindent -will process @file{foo.tex} without pausing after every error. - -@cindex @samp{*} prompt -@cindex prompt, @samp{*} -@findex \stop -If @LaTeX{} stops in the middle of the document and gives you a -@samp{*} prompt, it is waiting for input. You can type @code{\stop} -(and return) and it will prematurely end the document. - - - -@node Document templates -@appendix Document templates -@cindex document templates - -Although not reference material, perhaps these document templates will -be useful. - -@menu -* book template:: -* beamer template:: -* tugboat template:: -@end menu - - -@node book template -@section @code{book} template - -@verbatim -\documentclass{book} -\title{Book Class Template} -\author{Alex Author} - -\begin{document} -\maketitle - -\chapter{First} -Some text. - -\chapter{Second} -Some other text. - -\section{A subtopic} -The end. -\end{document} -@end verbatim - - -@node beamer template -@section @code{beamer} template - -The @code{beamer} class creates slides presentations. - -@verbatim -\documentclass{beamer} - -\title{Beamer Class template} -\author{Alex Author} -\date{July 31, 2007} - -\begin{document} - -\maketitle - -% without [fragile], any {verbatim} code gets mysterious errors. -\begin{frame}[fragile] - \frametitle{First Slide} - -\begin{verbatim} - This is \verbatim! -\end{verbatim} - -\end{frame} - -\end{document} - -@end verbatim - - -@node tugboat template -@section @code{tugboat} template - -@cite{TUGboat} is the journal of the @TeX{} Users Group, -@url{http://tug.org/TUGboat}. - -@verbatim -\documentclass{ltugboat} % ltugproc for proceedings - -\usepackage{graphicx} -\usepackage{ifpdf} -\ifpdf - \usepackage[breaklinks,colorlinks,linkcolor=black,citecolor=black, - urlcolor=black]{hyperref} -\else - \usepackage{url} -\fi - -\begin{document} - -\title{Example \TUB\ Regular Article} - -% repeat info for each author. -\author{First Last} -\address{Street Address \\ Town, Postal \\ Country} -\netaddress{user (at) example dot org} -\personalURL{http://example.org/~user/} - -\maketitle - -% The abstract comes after \maketitle in ltugboat. -\begin{abstract} -This is an example article for a regular \TUB{} issue. -\end{abstract} - -\section{Introduction} - -This is an example article for \TUB, from -\url{http://tug.org/TUGboat/location.html}. - -We recommend the graphicx package for image inclusions, and the hyperref -package for active url's (in the \acro{PDF} output). \TUB\ is produced -using \acro{PDF} files exclusively, nowadays. - -The \texttt{ltug*} classes provide these abbreviations, among many others: - -{\small -\begin{verbatim} -\AllTeX \AMS \AmS \AmSLaTeX \AmSTeX \aw \AW -\BibTeX \CandT \CTAN \DTD \DVItoVDU \HTML -\ISBN \ISSN \JTeX \JoT \LAMSTeX \LaTeXe -\Mc \mf \MFB \mtex \pcMF \PCTeX \pcTeX \Pas -\PiC \PiCTeX \plain \POBox \PS -\SC \SGML \SliTeX \TANGLE \TB \TP \TUB \TUG -\tug \UG \UNIX \VAX \VorTeX \XeT \WEB \WEAVE - -\Dash \dash \vellipsis \bull \cents \Dag -\careof \thinskip - -\acro{FRED} -> {\sc fred} % please use! -\cs{fred} -> \fred -\env{fred} -> \begin{fred} -\meta{fred} -> <fred> -\nth{n} -> 1st, 2nd, ... -\sfrac{3/4} -> 3/4 -\booktitle{Book of Fred} -\end{verbatim} -} - -For more information, see the ltubguid document at: -\url{http://mirror.ctan.org/macros/latex/contrib/tugboat} - -Email \verb|tugboat@tug.org| if problems or questions. - - -\bibliographystyle{plain} % we recommend the plain bibliography style -\nocite{book-minimal} % just making the bibliography non-empty -\bibliography{xampl} % xampl.bib comes with BibTeX - - -\makesignature % not in ltugproc -\end{document} -@end verbatim - - -@node Concept Index -@unnumbered Concept Index - -@printindex cp - -@c The name of the `Command Index' node must NOT be altered for ltx-help.el. -@node Command Index -@unnumbered Command Index - -@printindex fn - -@bye |