diff options
| author | Craig Jennings <c@cjennings.net> | 2024-04-07 13:41:34 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2024-04-07 13:41:34 -0500 |
| commit | 754bbf7a25a8dda49b5d08ef0d0443bbf5af0e36 (patch) | |
| tree | f1190704f78f04a2b0b4c977d20fe96a828377f1 /assets/info/latex2e.info | |
new repository
Diffstat (limited to 'assets/info/latex2e.info')
| -rw-r--r-- | assets/info/latex2e.info | 21120 |
1 files changed, 21120 insertions, 0 deletions
diff --git a/assets/info/latex2e.info b/assets/info/latex2e.info new file mode 100644 index 00000000..a547df1e --- /dev/null +++ b/assets/info/latex2e.info @@ -0,0 +1,21120 @@ +This is latex2e.info, produced by makeinfo version 6.8 from +latex2e.texi. + +This document is an unofficial reference manual for LaTeX, a document +preparation system, version of January 2022. + + This manual was originally translated from 'LATEX.HLP' v1.0a in the +VMS Help Library. The pre-translation version was written by George D. +Greenwade of Sam Houston State University. The LaTeX 2.09 version was +written by Stephen Gilmore. The LaTeX2e version was adapted from this +by Torsten Martinsen. Karl Berry made further updates and additions, +and gratefully acknowledges using 'Hypertext Help with LaTeX', by +Sheldon Green, and 'LaTeX Command Summary' (for LaTeX 2.09) by L. Botway +and C. Biemesderfer (published by the TeX Users Group as 'TeXniques' +number 10), as reference material. We also gratefully acknowledge +additional material appearing in latex2e-reference by Martin Herbert +Dietze. (From these references no text was directly copied.) + + Copyright 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, +2017, 2018, 2019, 2020, 2021, 2022 Karl Berry. +Copyright 1988, 1994, 2007 Stephen Gilmore. +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. + + 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. +INFO-DIR-SECTION TeX +START-INFO-DIR-ENTRY +* LaTeX2e: (latex2e). Unofficial LaTeX reference manual. +END-INFO-DIR-ENTRY + + +File: latex2e.info, Node: Top, Next: About this document, Up: (dir) + +LaTeX2e: An unofficial reference manual +*************************************** + +This document is an unofficial reference manual (version of January +2022) for LaTeX2e, a document preparation system. + +* Menu: + +* About this document:: Bug reporting, etc. +* Overview:: What is LaTeX? +* Document classes:: Some of the various classes available. +* Fonts:: Italic, bold, typewriter, etc. +* Layout:: Controlling the page layout. +* Sectioning:: Parts, Chapters, Sections, etc. +* 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. +* Color:: Defining and using colors. +* Graphics:: Importing graphics from outside LaTeX. +* 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. +* Input/output:: User interaction. +* Command line interface:: Common command-line options. +* Document templates:: Starter templates for various document classes. +* Index:: General index. + + +File: latex2e.info, Node: About this document, Next: Overview, Prev: Top, Up: Top + +1 About this document +********************* + +This is an unofficial reference manual for the LaTeX2e document +preparation system, which is a macro package for the TeX typesetting +program (*note Overview::). + + This document's home page is <https://latexref.xyz>; it has separate +web pages for each topic. Alternatively. +<https://latexref.xyz/dev/latex2e.html> has the entire document on a +single page. For other output formats, the sources, and plenty more +information, see <https://latexref.xyz/dev/>. + + In this document, we will mostly just use 'LaTeX' rather than +'LaTeX2e', since the previous version of LaTeX (2.09) was frozen decades +ago. + + LaTeX is maintained by a group of volunteers +(<https://latex-project.org>). The official documentation written by +the LaTeX project is available from their web site. The present +document is completely unofficial and has not been written or reviewed +by the LaTeX maintainers. Do not send bug reports or anything else +about this document to them. Instead, please send all comments to +<latexrefman@tug.org>. + + This document is a reference, not a tutorial. There is a vast array +of other information available about LaTeX, at all levels. Here are a +few introductions. + +<https://ctan.org/pkg/latex-doc-ptr> + Two pages of recommended references to LaTeX documentation. + +<https://ctan.org/pkg/first-latex-doc> + Writing your first document, with a bit of both text and math. + +<https://ctan.org/pkg/lshort> + A longer introduction to LaTeX, translated to many languages. + +<https://tug.org/begin.html> + Introduction to the TeX system, including LaTeX, with further + references. + + +File: latex2e.info, Node: Overview, Next: Document classes, Prev: About this document, Up: Top + +2 Overview of LaTeX +******************* + +LaTeX is a system for typesetting documents. It was originally created +by Leslie Lamport in 1984, but has been maintained by a group of +volunteers for many years now (<https://latex-project.org>). It is +widely used, particularly but not exclusively for mathematical and +technical documents. + + A LaTeX user writes an input file containing text to be typeset along +with interspersed commands. The default encoding for the text is UTF-8 +(as of 2018). The commands specify, for example, how the text should be +formatted. + + LaTeX is implemented as a set of related so-called "macros" which use +Donald E. Knuth's TeX typesetting program or one of its derivatives, +collectively known as "engines". Thus, the user produces output, +typically PDF, by giving the input file to a TeX engine. (The following +sections describe all this in more detail.) + + The term LaTeX is also sometimes used to mean the language in which +the input document is marked up, that is, to mean the set of commands +available to a LaTeX user. + + The name LaTeX is short for "Lamport TeX". It is pronounced LAH-teck +or LAY-teck, or sometimes LAY-tecks. Inside a document, produce the +logo with '\LaTeX'. Where use of the logo is not sensible, such as in +plain text, write it as 'LaTeX'. + +* Menu: + +* Starting and ending:: The standard beginning and end of a document. +* Output files:: Files produced. +* TeX engines:: Programs that can compile TeX and LaTeX. +* LaTeX command syntax:: General syntax of LaTeX commands. +* Environment:: An area of the source with distinct behavior. +* CTAN:: Our repository. + + +File: latex2e.info, Node: Starting and ending, Next: Output files, Up: Overview + +2.1 Starting and ending +======================= + +LaTeX files have a simple global structure, with a standard beginning +and ending. This is a small example. + + \documentclass{article} + \begin{document} + Hello, \LaTeX\ world. + \end{document} + +Every LaTeX document has a '\begin{document}' line and an +'\end{document}' line. + +Here, the 'article' is the "document class". It is implemented in a +file 'article.cls'. You can use any document class on your system. A +few document classes are defined by LaTeX itself, and vast array of +others are widely available. *Note Document classes::. + + You can include other LaTeX commands between the '\documentclass' and +the '\begin{document}' commands. This area is called the "preamble". + + The '\begin{document}', '\end{document}' pair defines an +"environment"; the 'document' environment (and no others) is required in +all LaTeX documents (*note document::). LaTeX make available to you +many environments that are documented here (*note Environments::). Many +more are available to you from external packages, most importantly those +available at CTAN (*note CTAN::). + + The following sections discuss how to produce PDF or other output +from a LaTeX input file. + + +File: latex2e.info, Node: Output files, Next: TeX engines, Prev: Starting and ending, Up: Overview + +2.2 Output files +================ + +LaTeX produces a main output file and at least two auxiliary files. The +main output file's name ends in either '.dvi' or '.pdf'. + +'.dvi' + If LaTeX is invoked with the system command 'latex' then it + produces a DeVice Independent file, with extension '.dvi'. You can + view this file with a command such as 'xdvi', or convert it to a + PostScript '.ps' file with 'dvips' or to a Portable Document Format + '.pdf' file with 'dvipdfmx'. The contents of the file can be + dumped in human-readable form with 'dvitype'. A vast array of + other DVI utility programs are available + (<https://mirror.ctan.org/dviware>). + +'.pdf' + If LaTeX is invoked via the system command 'pdflatex', among other + commands (*note TeX engines::), then the main output is a Portable + Document Format (PDF) file. Typically this is a self-contained + file, with all fonts and images included. + + LaTeX always produces at least two additional files. + +'.log' + This transcript file contains summary information such as a list of + loaded packages. It also includes diagnostic messages and perhaps + additional information for any errors. + +'.aux' + Auxiliary information is used by LaTeX for things such as cross + references. For example, the first time that LaTeX finds a forward + reference--a cross reference to something that has not yet appeared + in the source--it will appear in the output as a doubled question + mark '??'. When the referred-to spot does eventually appear in the + source then LaTeX writes its location information to this '.aux' + file. On the next invocation, LaTeX reads the location information + from this file and uses it to resolve the reference, replacing the + double question mark with the remembered location. + + LaTeX may produce yet more files, characterized by the filename +ending. These include a '.lof' file that is used to make a list of +figures, a '.lot' file used to make a list of tables, and a '.toc' file +used to make a table of contents (*note Table of contents etc.::). A +particular class may create others; the list is open-ended. + + +File: latex2e.info, Node: TeX engines, Next: LaTeX command syntax, Prev: Output files, Up: Overview + +2.3 TeX engines +=============== + +LaTeX is a large set of commands that is executed by a TeX program +(*note Overview::). Such a set of commands is called a "format", and is +embodied in a binary '.fmt' file, which can be read much more quickly +than the corresponding TeX source. + + This section gives a terse overview of the TeX programs that are +commonly available (see also *note Command line interface::). + +'latex' +'pdflatex' + In TeX Live (<https://tug.org/texlive>), if LaTeX is invoked via + either the system command 'latex' or 'pdflatex', then the pdfTeX + engine is run (<https://ctan.org/pkg/pdftex>). When invoked as + 'latex', the main output is a '.dvi' file; as 'pdflatex', the main + output is a '.pdf' file. + + pdfTeX incorporates the e-TeX extensions to Knuth's original + program (<https://ctan.org/pkg/etex>), including additional + programming features and bi-directional typesetting, and has plenty + of extensions of its own. e-TeX is available on its own as the + system command 'etex', but this is plain TeX (and produces '.dvi'). + + In other TeX distributions, 'latex' may invoke e-TeX rather than + pdfTeX. In any case, the e-TeX extensions can be assumed to be + available in LaTeX. + +'lualatex' + If LaTeX is invoked via the system command 'lualatex', the LuaTeX + engine is run (<https://ctan.org/pkg/luatex>). This program allows + code written in the scripting language Lua (<http://luatex.org>) to + interact with TeX's typesetting. LuaTeX handles UTF-8 Unicode + input natively, can handle OpenType and TrueType fonts, and + produces a '.pdf' file by default. There is also 'dvilualatex' to + produce a '.dvi' file. + +'xelatex' + If LaTeX is invoked with the system command 'xelatex', the XeTeX + engine is run (<https://tug.org/xetex>). Like LuaTeX, XeTeX + natively supports UTF-8 Unicode and TrueType and OpenType fonts, + though the implementation is completely different, mainly using + external libraries instead of internal code. XeTeX produces a + '.pdf' file as output; it does not support DVI output. + + Internally, XeTeX creates an '.xdv' file, a variant of DVI, and + translates that to PDF using the ('x')'dvipdfmx' program, but this + process is automatic. The '.xdv' file is only useful for + debugging. + +'platex' +'uplatex' + These commands provide significant additional support for Japanese + and other languages; the 'u' variant supports Unicode. See + <https://ctan.org/pkg/ptex> and <https://ctan.org/pkg/uptex>. + + As of 2019, there is a companion '-dev' command and format for all of +the above: + +'dvilualatex-dev' +'latex-dev' +'lualatex-dev' +'pdflatex-dev' +'platex-dev' +'uplatex-dev' +'xelatex-dev' + These are candidates for an upcoming LaTeX release. The main + purpose is to find and address compatibility problems before an + official release. + + These '-dev' formats make it easy for anyone to help test documents + and code: you can run, say, 'pdflatex-dev' instead of 'pdflatex', + without changing anything else in your environment. Indeed, it is + easiest and most helpful to always run the '-dev' versions instead + of bothering to switch back and forth. During quiet times after a + release, the commands will be equivalent. + + These are not daily snapshots or untested development code. They + undergo the same extensive regression testing by the LaTeX team + before being released. + + For more information, see "The LaTeX release workflow and the LaTeX + 'dev' formats" by Frank Mittelbach, 'TUGboat' 40:2, + <https://tug.org/TUGboat/tb40-2/tb125mitt-dev.pdf>. + + +File: latex2e.info, Node: LaTeX command syntax, Next: Environment, Prev: TeX engines, Up: Overview + +2.4 LaTeX command syntax +======================== + +In the LaTeX input file, a command name starts with a backslash +character, '\'. The name itself then consists of either (a) a string of +letters or (b) a single non-letter. + + LaTeX commands names are case sensitive so that '\pagebreak' differs +from '\Pagebreak' (the latter is not a standard command). Most command +names are lowercase, but in any event you must enter all commands in the +same case as they are defined. + + A command may be followed by zero, one, or more arguments. These +arguments may be either required or optional. Required arguments are +contained in curly braces, '{...}'. Optional arguments are contained in +square brackets, '[...]'. Generally, but not universally, if the +command accepts an optional argument, it comes first, before any +required arguments. + + Inside of an optional argument, to use the character close square +bracket (']') hide it inside curly braces, as in '\item[closing bracket +{]}]'. Similarly, if an optional argument comes last, with no required +argument after it, then to make the first character of the following +text be an open square bracket, hide it inside curly braces. + + LaTeX has the convention that some commands have a '*' form that is +related to the form without a '*', such as '\chapter' and '\chapter*'. +The exact difference in behavior varies from command to command. + + This manual describes all accepted options and '*'-forms for the +commands it covers (barring unintentional omissions, a.k.a. bugs). + + As of the 2020-10-01 release of LaTeX, the 'expl3' and 'xparse' +packages are part of the LaTeX2e format. They provide a completely +different underlying programming language syntax. We won't try to cover +them in this document; see the related package documentation and other +LaTeX manuals. + + +File: latex2e.info, Node: Environment, Next: CTAN, Prev: LaTeX command syntax, Up: Overview + +2.5 Environment +=============== + +Synopsis: + + \begin{ENVIRONMENT-NAME} + ... + \end{ENVIRONMENT-NAME} + + An "environment" is an area of LaTeX source, inside of which there is +a distinct behavior. For instance, for poetry in LaTeX put the lines +between '\begin{verse}' and '\end{verse}'. + + \begin{verse} + There once was a man from Nantucket \\ + ... + \end{verse} + + *Note Environments::, for a list of environments. Particularly +notable is that every LaTeX document must have a 'document' environment, +a '\begin{document} ... \end{document}' pair. + + The ENVIRONMENT-NAME at the beginning must exactly match that at the +end. This includes the case where ENVIRONMENT-NAME ends in a +star ('*'); both the '\begin' and '\end' texts must include the star. + + Environments may have arguments, including optional arguments. This +example produces a table. The first argument is optional (and causes +the table to be aligned on its top row) while the second argument is +required (it specifies the formatting of columns). + + \begin{tabular}[t]{r|l} + ... rows of table ... + \end{tabular} + + +File: latex2e.info, Node: CTAN, Prev: Environment, Up: Overview + +2.6 CTAN: The Comprehensive TeX Archive Network +=============================================== + +The Comprehensive TeX Archive Network, CTAN, is the TeX and LaTeX +community's repository of free material. It is a set of Internet sites +around the world that offer material related to LaTeX for download. +Visit CTAN on the web at <https://ctan.org>. + + This material is organized into packages, discrete bundles that +typically offer some coherent functionality and are maintained by one +person or a small number of people. For instance, many publishers have +a package that allows authors to format papers to that publisher's +specifications. + + In addition to the massive holdings, the 'ctan.org' web site offers +features such as search by name or by functionality. + + CTAN is not a single host, but instead is a set of hosts, one of +which is the so-called "master". The master host actively manages the +material, for instance, by accepting uploads of new or updated packages. +For many years, it has been hosted by the German TeX group, DANTE e.V. + + Other sites around the world help out by mirroring, that is, +automatically syncing their collections with the master site and then in +turn making their copies publicly available. This gives users close to +their location better access and relieves the load on the master site. +The list of mirrors is at <https://ctan.org/mirrors>. + + +File: latex2e.info, Node: Document classes, Next: Fonts, Prev: Overview, Up: Top + +3 Document classes +****************** + +The document's overall class is defined with this command, which is +normally the first command in a LaTeX source file. + + \documentclass[OPTIONS]{CLASS} + + The following document CLASS names are built into LaTeX. (Many other +document classes are available as separate packages; *note Overview::.) + +'article' + For a journal article, a presentation, and miscellaneous general + use. + +'book' + Full-length books, including chapters and possibly including front + matter, such as a preface, and back matter, such as an appendix + (*note Front/back matter::). + +'letter' + Mail, optionally including mailing labels (*note Letters::). + +'report' + For documents of length between an 'article' and a 'book', such as + technical reports or theses, which may contain several chapters. + +'slides' + For slide presentations--rarely used nowadays. The 'beamer' + package is perhaps the most prevalent + (<https://ctan.org/pkg/beamer>). *Note beamer template::, for a + small template for a beamer document. + + Standard OPTIONS are described in the next section. + +* Menu: + +* Document class options:: Global options. +* Additional packages:: Bring in packages. +* Class and package construction:: Create new classes and packages. + + +File: latex2e.info, Node: Document class options, Next: Additional packages, Up: Document classes + +3.1 Document class options +========================== + +You can specify "global options" or "class options" to the +'\documentclass' command by enclosing them in square brackets. To +specify more than one OPTION, separate them with a comma. + + \documentclass[OPTION1,OPTION2,...]{CLASS} + + Here is the list of the standard class options. + + All of the standard classes except 'slides' accept the following +options for selecting the typeface size (default is '10pt'): + + 10pt 11pt 12pt + + All of the standard classes accept these options for selecting the +paper size (these show height by width): + +'a4paper' + 210 by 297mm (about 8.25 by 11.75 inches) + +'a5paper' + 148 by 210mm (about 5.8 by 8.3 inches) + +'b5paper' + 176 by 250mm (about 6.9 by 9.8 inches) + +'executivepaper' + 7.25 by 10.5 inches + +'legalpaper' + 8.5 by 14 inches + +'letterpaper' + 8.5 by 11 inches (the default) + + When using one of the engines pdfLaTeX, LuaLaTeX, or XeLaTeX (*note +TeX engines::), options other than 'letterpaper' set the print area but +you must also set the physical paper size. One way to do that is to put +'\pdfpagewidth=\paperwidth' and '\pdfpageheight=\paperheight' in your +document's preamble. + + The 'geometry' package provides flexible ways of setting the print +area and physical page size. + + Miscellaneous other options: + +'draft' +'final' + Mark ('draft') or do not mark ('final') overfull boxes with a black + box in the margin; default is 'final'. + +'fleqn' + Put displayed formulas flush left; default is centered. + +'landscape' + Selects landscape format; default is portrait. + +'leqno' + Put equation numbers on the left side of equations; default is the + right side. + +'openbib' + Use "open" bibliography format. + +'titlepage' +'notitlepage' + Specifies whether there is a separate page for the title + information and for the abstract also, if there is one. The + default for the 'report' class is 'titlepage', for the other + classes it is 'notitlepage'. + + The following options are not available with the 'slides' class. + +'onecolumn' +'twocolumn' + Typeset in one or two columns; default is 'onecolumn'. + +'oneside' +'twoside' + Selects one- or two-sided layout; default is 'oneside', except that + in the 'book' class the default is 'twoside'. + + For one-sided printing, the text is centered on the page. For + two-sided printing, the '\evensidemargin' ('\oddsidemargin') + parameter determines the distance on even (odd) numbered pages + between the left side of the page and the text's left margin, with + '\oddsidemargin' being 40% of the difference between '\paperwidth' + and '\textwidth', and '\evensidemargin' is the remainder. + +'openright' +'openany' + Determines if a chapter should start on a right-hand page; default + is 'openright' for 'book', and 'openany' for 'report'. + + The 'slides' class offers the option 'clock' for printing the time at +the bottom of each note. + + +File: latex2e.info, Node: Additional packages, Next: Class and package construction, Prev: Document class options, Up: Document classes + +3.2 Additional packages +======================= + +Load a package PKG, with the package options given in the +comma-separated list OPTIONS, as here. + + \usepackage[OPTIONS]{PKG}. + + To specify more than one package you can separate them with a comma, +as in '\usepackage{PKG1,PKG2,...}', or use multiple '\usepackage' +commands. + + Any options given in the '\documentclass' command that are unknown to +the selected document class are passed on to the packages loaded with +'\usepackage'. + + +File: latex2e.info, Node: Class and package construction, Prev: Additional packages, Up: Document classes + +3.3 Class and package construction +================================== + +You can create new document classes and new packages. For instance, if +your memos must satisfy some local requirements, such as a standard +header for each page, then you could create a new class 'smcmemo.cls' +and begin your documents with '\documentclass{smcmemo}'. + + What separates a package from a document class is that the commands +in a package are useful across classes while those in a document class +are specific to that class. Thus, a command to set page headers is for +a package while a command to make the page headers say 'Memo from the +SMC Math Department' is for a class. + + Inside of a class or package file you can use the at-sign '@' as a +character in command names without having to surround the code +containing that command with '\makeatletter' and '\makeatother'. *Note +\makeatletter & \makeatother::. This allow you to create commands that +users will not accidentally redefine. Another technique is to preface +class- or package-specific commands with some string to prevent your +class or package from interfering with others. For instance, the class +'smcmemo' might have commands '\smc@tolist', '\smc@fromlist', etc. + +* Menu: + +* Class and package structure:: Layout of the file. +* Class and package commands:: List of commands. + + +File: latex2e.info, Node: Class and package structure, Next: Class and package commands, Up: Class and package construction + +3.3.1 Class and package structure +--------------------------------- + +A class file or package file typically has four parts. + 1. In the "identification part", the file says that it is a LaTeX + package or class and describes itself, using the '\NeedsTeXFormat' + and '\ProvidesClass' or '\ProvidesPackage' commands. + + 2. The "preliminary declarations part" declares some commands and can + also load other files. Usually these commands will be those needed + for the code used in the next part. For example, an 'smcmemo' + class might be called with an option to read in a file with a list + of people for the to-head, as '\documentclass[mathto]{smcmemo}', + and therefore needs to define a command + '\newcommand{\setto}[1]{\def\@tolist{#1}}' used in that file. + + 3. In the "handle options part" the class or package declares and + processes its options. Class options allow a user to start their + document as '\documentclass[OPTION LIST]{CLASS NAME}', to modify + the behavior of the class. An example is when you declare + '\documentclass[11pt]{article}' to set the default document font + size. + + 4. Finally, in the "more declarations part" the class or package + usually does most of its work: declaring new variables, commands + and fonts, and loading other files. + + Here is a starting class file, which should be saved as 'stub.cls' +where LaTeX can find it, for example in the same directory as the '.tex' +file. + + \NeedsTeXFormat{LaTeX2e} + \ProvidesClass{stub}[2017/07/06 stub to start building classes from] + \DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} + \ProcessOptions\relax + \LoadClass{article} + +It identifies itself, handles the class options via the default of +passing them all to the 'article' class, and then loads the 'article' +class to provide the basis for this class's code. + + For more, see the official guide for class and package writers, the +Class Guide, at +<https://www.latex-project.org/help/documentation/clsguide.pdf> (much of +the descriptions here derive from this document), or the tutorial +<https://www.tug.org/TUGboat/tb26-3/tb84heff.pdf>. + + +File: latex2e.info, Node: Class and package commands, Prev: Class and package structure, Up: Class and package construction + +3.3.2 Class and package commands +-------------------------------- + +These are the commands designed to help writers of classes or packages. + +'\AtBeginDvi{specials}' + Save in a box register things that are written to the '.dvi' file + at the beginning of the shipout of the first page of the document. + +'\AtEndOfClass{CODE}' +'\AtEndOfPackage{CODE}' + Hook to insert CODE to be executed when LaTeX finishes processing + the current class or package. You can use these hooks multiple + times; the 'code' will be executed in the order that you called it. + See also *note \AtBeginDocument::. + +'\CheckCommand{CMD}[NUM][DEFAULT]{DEFINITION}' +'\CheckCommand*{CMD}[NUM][DEFAULT]{DEFINITION}' + Like '\newcommand' (*note \newcommand & \renewcommand::) but does + not define CMD; instead it checks that the current definition of + CMD is exactly as given by DEFINITION and is or is not "long" as + expected. A long command is a command that accepts '\par' within + an argument. The CMD command is expected to be long with the + unstarred version of '\CheckCommand'. Raises an error when the + check fails. This allows you to check before you start redefining + 'cmd' yourself that no other package has already redefined this + command. + +'\ClassError{CLASS NAME}{ERROR TEXT}{HELP TEXT}' +'\PackageError{PACKAGE NAME}{ERROR TEXT}{HELP TEXT}' +'\ClassWarning{CLASS NAME}{WARNING TEXT}' +'\PackageWarning{PACKAGE NAME}{WARNING TEXT}' +'\ClassWarningNoLine{CLASS NAME}{WARNING TEXT}' +'\PackageWarningNoLine{PACKAGE NAME}{WARNING TEXT}' +'\ClassInfo{CLASS NAME}{INFO TEXT}' +'\PackageInfo{PACKAGE NAME}{INFO TEXT}' +'\ClassInfoNoLine{CLASS NAME}{INFO TEXT}' +'\PackageInfoNoLine{PACKAGE NAME}{INFO TEXT}' + Produce an error message, or warning or informational messages. + + For '\ClassError' and '\PackageError' the message is ERROR TEXT, + followed by TeX's '?' error prompt. If the user then asks for help + by typing 'h', they see the HELP TEXT. + + The four warning commands are similar except that they write + WARNING TEXT on the screen with no error prompt. The four info + commands write INFO TEXT only in the transcript file. The 'NoLine' + versions do not show the number of the line generating the message, + while the other versions do show that number. + + To format the messages, including the HELP TEXT: use '\protect' to + stop a command from expanding, get a line break with + '\MessageBreak', and get a space with '\space' when a space + character does not allow it, like after a command. Note that LaTeX + appends a period to the messages. + +'\CurrentOption' + Expands to the name of the currently-being-processed option. Can + only be used within the CODE argument of either '\DeclareOption' or + '\DeclareOption*'. + +'\DeclareOption{OPTION}{CODE}' +'\DeclareOption*{CODE}' + Make an option available to a user to invoke in their + '\documentclass' command. For example, the 'smcmemo' class could + have an option '\documentclass[logo]{smcmemo}' allowing users to + put the institutional logo on the first page. The class file must + contain '\DeclareOption{logo}{CODE}' (and later, + '\ProcessOptions'). + + If you request an option that has not been declared, by default + this will produce a warning like 'Unused global option(s): + [badoption].' Change this behavior with the starred version + '\DeclareOption*{CODE}'. For example, many classes extend an + existing class, using a command such as '\LoadClass{article}', and + for passing extra options to the underlying class use code such as + this. + + \DeclareOption*{% + \PassOptionsToClass{\CurrentOption}{article}% + } + + Another example is that the class 'smcmemo' may allow users to keep + lists of memo recipients in external files. Then the user could + invoke '\documentclass[math]{smcmemo}' and it will read the file + 'math.memo'. This code handles the file if it exists and otherwise + passes the option to the 'article' class. + + \DeclareOption*{\InputIfFileExists{\CurrentOption.memo}{}{% + \PassOptionsToClass{\CurrentOption}{article}}} + +'\DeclareRobustCommand{CMD}[NUM][DEFAULT]{DEFINITION}' +'\DeclareRobustCommand*{CMD}[NUM][DEFAULT]{DEFINITION}' + Like '\newcommand' and '\newcommand*' (*note \newcommand & + \renewcommand::) but these declare a robust command, even if some + code within the DEFINITION is fragile. (For a discussion of robust + and fragile commands *note \protect::.) Use this command to define + new robust commands or to redefine existing commands and make them + robust. Unlike '\newcommand' these do not give an error if macro + CMD already exists; instead, a log message is put into the + transcript file if a command is redefined. + + Commands defined this way are a bit less efficient than those + defined using '\newcommand' so unless the command's data is fragile + and the command is used within a moving argument, use + '\newcommand'. + + The 'etoolbox' package offers the commands '\newrobustcmd', + '\newrobustcmd*', as well as the commands '\renewrobustcmd', + '\renewrobustcmd*', and the commands '\providerobustcmd', and + '\providerobustcmd*'. These are similar to '\newcommand', + '\newcommand*', '\renewcommand', '\renewcommand*', + '\providecommand', and '\providecommand*', but define a robust CMD + with two advantages as compared to '\DeclareRobustCommand': + 1. They use the low-level e-TeX protection mechanism rather than + the higher level LaTeX '\protect' mechanism, so they do not + incur the slight loss of performance mentioned above, and + 2. They make the same distinction between '\new...', '\renew...', + and '\provide...', as the standard commands, so they do not + just make a log message when you redefine CMD that already + exists, in that case you need to use either '\renew...' or + '\provide...' or you get an error. + +'\IfFileExists{FILENAME}{TRUE CODE}{FALSE CODE}' +'\InputIfFileExists{FILENAME}{TRUE CODE}{FALSE CODE}' + Execute TRUE CODE if LaTeX finds the file 'FILE NAME' or FALSE CODE + otherwise. In the first case it executing TRUE CODE and then + inputs the file. Thus the command + + \IfFileExists{img.pdf}{% + \includegraphics{img.pdf}}{\typeout{!! img.pdf not found} + + will include the graphic 'img.pdf' if it is found and otherwise + give a warning. + + This command looks for the file in all search paths that LaTeX + uses, not only in the current directory. To look only in the + current directory do something like '\IfFileExists{./filename}{TRUE + CODE}{FALSE CODE}'. If you ask for a filename without a '.tex' + extension then LaTeX will first look for the file by appending the + '.tex'; for more on how LaTeX handles file extensions see *note + \input::. + +'\LoadClass[OPTIONS LIST]{CLASS NAME}[RELEASE DATE]' +'\LoadClassWithOptions{CLASS NAME}[RELEASE DATE]' + Load a class, as with '\documentclass[OPTIONS LIST]{CLASS + NAME}[RELEASE INFO]'. An example is + '\LoadClass[twoside]{article}'. + + The OPTIONS LIST, if present, is a comma-separated list. The + RELEASE DATE is optional. If present it must have the form + YYYY/MM/DD. + + If you request a RELEASE DATE and the date of the package installed + on your system is earlier, then you get a warning on the screen and + in the log like this. + + You have requested, on input line 4, version `2038/01/19' of + document class article, but only version `2014/09/29 v1.4h + Standard LaTeX document class' is available. + + The command version '\LoadClassWithOptions' uses the list of + options for the current class. This means it ignores any options + passed to it via '\PassOptionsToClass'. This is a convenience + command that lets you build classes on existing ones, such as the + standard 'article' class, without having to track which options + were passed. + +'\ExecuteOptions{OPTIONS-LIST}' + For each option OPTION in the OPTIONS-LIST, in order, this command + executes the command '\ds@OPTION'. If this command is not defined + then that option is silently ignored. + + It can be used to provide a default option list before + '\ProcessOptions'. For example, if in a class file you want the + default to be 11pt fonts then you could specify + '\ExecuteOptions{11pt}\ProcessOptions\relax'. + +'\NeedsTeXFormat{FORMAT}[FORMAT DATE]' + Specifies the format that this class must be run under. Often + issued as the first line of a class file, and most often used as: + '\NeedsTeXFormat{LaTeX2e}'. When a document using that class is + processed, the format name given here must match the format that is + actually being run (including that the FORMAT string is case + sensitive). If it does not match then execution stops with an + error like 'This file needs format `LaTeX2e' but this is `xxx'.' + + To specify a version of the format that you know to have certain + features, include the optional FORMAT DATE on which those features + were implemented. If present it must be in the form 'YYYY/MM/DD'. + If the format version installed on your system is earlier than + FORMAT DATE then you get a warning like this. + + You have requested release `2038/01/20' of LaTeX, but only + release `2016/02/01' is available. + +'\OptionNotUsed' + Adds the current option to the list of unused options. Can only be + used within the CODE argument of either '\DeclareOption' or + '\DeclareOption*'. + +'\PassOptionsToClass{OPTION LIST}{CLASS NAME}' +'\PassOptionsToPackage{OPTION LIST}{PACKAGE NAME}' + Adds the options in the comma-separated list OPTION LIST to the + options used by any future '\RequirePackage' or '\usepackage' + command for package PACKAGE NAME or the class CLASS NAME. + + The reason for these commands is: you may load a package any number + of times with no options but if you want options then you may only + supply them when you first load the package. Loading a package + with options more than once will get you an error like 'Option + clash for package foo.' (LaTeX throws an error even if there is no + conflict between the options.) + + If your own code is bringing in a package twice then you can + collapse that to once, for example replacing the two + '\RequirePackage[landscape]{geometry}' and + '\RequirePackage[margins=1in]{geometry}' with the single command + '\RequirePackage[landscape,margins=1in]{geometry}'. + + However, imagine that you are loading 'firstpkg' and inside that + package it loads 'secondpkg', and you need the second package to be + loaded with option 'draft'. Then before doing the first package + you must queue up the options for the second package, like this. + + \PassOptionsToPackage{draft}{secondpkg} + \RequirePackage{firstpkg} + + (If 'firstpkg.sty' loads an option in conflict with what you want + then you may have to alter its source.) + + These commands are useful for general users as well as class and + package writers. For instance, suppose a user wants to load the + 'graphicx' package with the option 'draft' and also wants to use a + class 'foo' that loads the 'graphicx' package, but without that + option. The user could start their LaTeX file with + '\PassOptionsToPackage{draft}{graphicx}\documentclass{foo}'. + +'\ProcessOptions' +'\ProcessOptions*\@OPTIONS' + Execute the code for each option that the user has invoked. + Include it in the class file as '\ProcessOptions\relax' (because of + the existence of the starred command). + + Options come in two types. "Local options" have been specified for + this particular package in the OPTIONS argument of + '\PassOptionsToPackage{OPTIONS}', '\usepackage[OPTIONS]', or + '\RequirePackage[OPTIONS]'. "Global options" are those given by + the class user in '\documentclass[OPTIONS]' (If an option is + specified both locally and globally then it is local.) + + When '\ProcessOptions' is called for a package 'pkg.sty', the + following happens: + 1. For each option OPTION so far declared with '\DeclareOption', + it looks to see if that option is either a global or a local + option for 'pkg'. If so then it executes the declared code. + This is done in the order in which these options were given in + 'pkg.sty'. + 2. For each remaining local option, it executes the command + '\ds@'OPTION if it has been defined somewhere (other than by a + '\DeclareOption'); otherwise, it executes the default option + code given in '\DeclareOption*'. If no default option code + has been declared then it gives an error message. This is + done in the order in which these options were specified. + + When '\ProcessOptions' is called for a class it works in the same + way except that all options are local, and the default CODE for + '\DeclareOption*' is '\OptionNotUsed' rather than an error. + + The starred version '\ProcessOptions*' executes the options in the + order specified in the calling commands, rather than in the order + of declaration in the class or package. For a package this means + that the global options are processed first. + +'\ProvidesClass{CLASS NAME}[RELEASE DATE BRIEF ADDITIONAL INFORMATION]' +'\ProvidesClass{CLASS NAME}[RELEASE DATE]' +'\ProvidesPackage{PACKAGE NAME}[RELEASE DATE BRIEF ADDITIONAL INFORMATION]' +'\ProvidesPackage{PACKAGE NAME}[RELEASE DATE]' + Identifies the class or package, printing a message to the screen + and the log file. + + When you load a class or package, for example with + '\documentclass{smcmemo}' or '\usepackage{test}', LaTeX inputs a + file. If the name of the file does not match the class or package + name declared in it then you get a warning. Thus, if you invoke + '\documentclass{smcmemo}', and the file 'smcmemo.cls' has the + statement '\ProvidesClass{xxx}' then you get a warning like 'You + have requested document class `smcmemo', but the document class + provides 'xxx'.' This warning does not prevent LaTeX from + processing the rest of the class file normally. + + If you include the optional argument then you must include a date, + before any spaces, of the form 'YYYY/MM/DD'. The rest of the + optional argument is free-form, although it traditionally + identifies the class, and is written to the screen during + compilation and to the log file. Thus, if your file 'smcmemo.cls' + contains the line '\ProvidesClass{smcmemo}[2008/06/01 v1.0 SMC memo + class]' and your document's first line is '\documentclass{smcmemo}' + then you will see 'Document Class: smcmemo 2008/06/01 v1.0 SMC memo + class'. + + The date in the optional argument allows class and package users to + ask to be warned if the version of the class or package is earlier + than RELEASE DATE. For instance, a user could enter + '\documentclass{smcmemo}[2018/10/12]' or + '\usepackage{foo}[[2017/07/07]]' to require a class or package with + certain features by specifying that it must be released no earlier + than the given date. (Although, in practice package users only + rarely include a date, and class users almost never do.) + +'\ProvidesFile{FILENAME}[ADDITIONAL INFORMATION]' + Declare a file other than the main class and package files, such as + configuration files or font definition files. Put this command in + that file and you get in the log a string like 'File: test.config + 2017/10/12 config file for test.cls' for FILENAME equal to + 'test.config' and ADDITIONAL INFORMATION equal to '2017/10/12 + config file for test.cls'. + +'\RequirePackage[OPTION LIST]{PACKAGE NAME}[RELEASE DATE]' +'\RequirePackageWithOptions{PACKAGE NAME}[RELEASE DATE]' + Load a package, like the command '\usepackage' (*note Additional + packages::). The LaTeX development team strongly recommends use of + these commands over Plain TeX's '\input'; see the Class Guide. An + example is '\RequirePackage[landscape,margin=1in]{geometry}'. + + The OPTION LIST, if present, is a comma-separated list. The + RELEASE DATE, if present, must have the form YYYY/MM/DD. If the + release date of the package as installed on your system is earlier + than RELEASE DATE then you get a warning like 'You have requested, + on input line 9, version `2017/07/03' of package jhtest, but only + version `2000/01/01' is available'. + + The '\RequirePackageWithOptions' version uses the list of options + for the current class. This means it ignores any options passed to + it via '\PassOptionsToClass'. This is a convenience command to + allow easily building classes on existing ones without having to + track which options were passed. + + The difference between '\usepackage' and '\RequirePackage' is + small. The '\usepackage' command is intended for the document file + while '\RequirePackage' is intended for package and class files. + Thus, using '\usepackage' before the '\documentclass' command + causes LaTeX to give error like '\usepackage before + \documentclass', but you can use '\RequirePackage' there. + + +File: latex2e.info, Node: Fonts, Next: Layout, Prev: Document classes, Up: Top + +4 Fonts +******* + +LaTeX comes with powerful font capacities. For one thing, its New Font +Selection Scheme allows you to work easily with the font families in +your document (for instance, see *note Font styles::). And, LaTeX +documents can use most fonts that are available today, including +versions of Times Roman, Helvetica, Courier, etc. (Note, though, that +many fonts do not have support for mathematics.) + + The first typeface in the TeX world was the Computer Modern family, +developed by Donald Knuth. It is the default for LaTeX documents and is +still the most widely used. But changing to another font often only +involves a few commands. For instance, putting the following in your +preamble gives you a Palatino-like font, which is handsome and more +readable online than many other fonts, while still allowing you to +typeset mathematics. (This example is from Michael Sharpe, +<https://math.ucsd.edu/~msharpe/RcntFnts.pdf>.) + + \usepackage[osf]{newpxtext} % osf for text, not math + \usepackage{cabin} % sans serif + \usepackage[varqu,varl]{inconsolata} % sans serif typewriter + \usepackage[bigdelims,vvarbb]{newpxmath} % bb from STIX + \usepackage[cal=boondoxo]{mathalfa} % mathcal + +In addition, the 'xelatex' or 'lualatex' engines allow you to use any +fonts on your system that are in OpenType or TrueType format (*note TeX +engines::). + + The LaTeX Font Catalogue (<https://tug.org/FontCatalogue>) shows font +sample graphics and copy-and-pasteable source to use many fonts, +including many with support for mathematics. It aims to cover all Latin +alphabet free fonts available for easy use with LaTeX. + + More information is also available from the TeX Users Group, at +<https://www.tug.org/fonts/>. + +* Menu: + +* fontenc package:: Encoding of the font. +* Font styles:: Select roman, italics, etc. +* Font sizes:: Select point size. +* Low-level font commands:: Select encoding, family, series, shape. + + +File: latex2e.info, Node: fontenc package, Next: Font styles, Up: Fonts + +4.1 'fontenc' package +===================== + +Synopsis: + + \usepackage[FONT_ENCODING]{fontenc} + + or + + \usepackage[FONT_ENCODING1, FONT_ENCODING2, ...]{fontenc} + + Specify the font encodings. A font encoding is a mapping of the +character codes to the font glyphs that are used to typeset your output. + + This package only applies if you use the 'pdflatex' engine (*note TeX +engines::). If you use the 'xelatex' or 'lualatex' engine then instead +use the 'fontspec' package. + + TeX's original font family, Computer Modern, has a limited character +set. For instance, to make common accented characters you must use +'\accent' (*note \accent::) but this disables hyphenation. TeX users +have agreed on a number of standards to access the larger sets of +characters provided by modern fonts. If you are using 'pdflatex' then +put this in the preamble + + \usepackage[T1]{fontenc} + +gives you support for the most widespread European languages, including +French, German, Italian, Polish, and others. In particular, if you have +words with accented letters then LaTeX will hyphenate them and your +output can be copied and pasted. (The optional second line allows you +to directly enter accented characters into your source file.) + + If you are using an encoding such as 'T1' and the characters appear +blurry or do not magnify well then your fonts may be bitmapped, +sometimes called raster or Type 3. You want vector fonts. Use a +package such as 'lmodern' or 'cm-super' to get a font that extends +LaTeX's default using vector fonts. + + For each FONT_ENCODING given as an option but not already declared, +this package loads the encoding definition files, named +'FONT_ENCODINGenc.def'. It also sets '\encodingdefault' to be the last +encoding in the option list. + + These are the common values for FONT_ENCODING. + +'OT1' + The original encoding for TeX. Limited to mostly English + characters. + +'OMS, OML' + Math symbols and math letters encoding. + +'T1' + TeX text extended. Sometimes called the Cork encoding for the + Users Group meeting where it was developed. Gives access to most + European accented characters. The most common option for this + package. + +'TS1' + Text Companion encoding. + +LaTeX's default is to load 'OML', 'T1', 'OT1', and then 'OMS', and set +the default to 'OT1'. + + Even if you do not use accented letters, you may need to specify a +font encoding if your font requires it. + + If you use 'T1' encoded fonts other than the default Computer Modern +family then you may need to load the package that selects your fonts +before loading 'fontenc', to prevent the system from loading any +'T1' encoded fonts from the default. + + The LaTeX team reserve encoding names starting with: 'T' for the +standard text encodings with 256 characters, 'TS' for symbols that +extend the corresponding T encodings, 'X' for test encodings, 'M' for +standard math encodings with 256 characters, 'A' for special +applications, 'OT' for standard text encodings with 128 characters, and +'OM' for standard math encodings with 128 characters ('O' stands for +'obsolete'). + + This package provides a number of commands, detailed below. Many of +them are encoding-specific, so if you have defined a command that works +for one encoding but the current encoding is different then the command +is not in effect. + +* Menu: + +* \DeclareFontEncoding:: Define an encoding. +* \DeclareTextAccent:: Define an accent in the encoding. +* \DeclareTextAccentDefault:: Fallback for using an accent in the encoding. +* \DeclareTextCommand & \ProvideTextCommand:: New encoding-specific command. +* \DeclareTextCommandDefault & \ProvideTextCommandDefault:: Fallback for encoding-specific commands. +* \DeclareTextComposite:: Directly access an accented glyph, in the encoding. +* \DeclareTextCompositeCommand:: Run code in slot, in the encoding. +* \DeclareTextSymbol:: Define a symbol in the encoding. +* \DeclareTextSymbolDefault:: Fallback for a symbol in the encoding. +* \LastDeclaredEncoding:: Save most recently declared encoding. +* \UseTextSymbol & \UseTextAccent:: Temporarily switch to another encoding. + + +File: latex2e.info, Node: \DeclareFontEncoding, Next: \DeclareTextAccent, Up: fontenc package + +4.1.1 '\DeclareFontEncoding' +---------------------------- + +Synopsis: + + \DeclareFontEncoding{ENCODING}{TEXT-SETTINGS}{MATH-SETTINGS} + + Declare the font encoding ENCODING. It also saves the value of +ENCODING in '\LastDeclaredEncoding' (*note \LastDeclaredEncoding::). + + The file 't1enc.def' contains this line (followed by many others). + + \DeclareFontEncoding{T1}{}{} + + The TEXT-SETTINGS are the commands that LaTeX will run every time it +switches from one encoding to another with the '\selectfont' and +'\fontencoding' commands. The MATH-SETTINGS are the commands that LaTeX +will use whenever the font is accessed as a math alphabet. + + LaTeX ignores any space characters inside TEXT-SETTINGS and +MATH-SETTINGS, to prevent unintended spaces in the output. + + If you invent an encoding you should pick a two or three letter name +starting with 'L' for 'local', or 'E' for 'experimental'. + + Note that output encoding files may be read several times by LaTeX so +using, e.g., '\newcommand' may cause an error. In addition, such files +should contain '\ProvidesFile' line (*note Class and package +commands::). + + Note also that you should use the '\...Default' commands only in a +package, not in the encoding definition files, since those files should +only contain declarations specific to that encoding. + + +File: latex2e.info, Node: \DeclareTextAccent, Next: \DeclareTextAccentDefault, Prev: \DeclareFontEncoding, Up: fontenc package + +4.1.2 '\DeclareTextAccent' +-------------------------- + +Synopsis: + + \DeclareTextAccent{CMD}{ENCODING}{SLOT} + + Define an accent, to be put on top of other glyphs, in the encoding +ENCODING at the location SLOT. + + A "slot" is the number identifying a glyph within a font. + + This line from 't1enc.def' declares that to make a circumflex accent +as in '\^A', the system will put the accent in slot 2 over the 'A' +character, which is represented in ASCII as 65. (This holds unless +there is a relevant 'DeclareTextComposite' or +'\DeclareTextCompositeCommand' declaration; *note +\DeclareTextComposite::.) + + \DeclareTextAccent{\^}{T1}{2} + + If CMD has already been defined then '\DeclareTextAccent' does not +give an error but it does log the redefinition in the transcript file. + + +File: latex2e.info, Node: \DeclareTextAccentDefault, Next: \DeclareTextCommand & \ProvideTextCommand, Prev: \DeclareTextAccent, Up: fontenc package + +4.1.3 '\DeclareTextAccentDefault' +--------------------------------- + +Synopsis: + + \DeclareTextAccentDefault{\CMD}{ENCODING} + + If there is an encoding-specific accent command \CMD but there is no +associated '\DeclareTextAccent' for that encoding then this command will +pick up the slack, by saying to use it as described for ENCODING. + + For example, to make the encoding 'OT1' be the default encoding for +the accent '\"', declare this. + + \DeclareTextAccentDefault{\"}{OT1} + +If you issue a '\"' when the current encoding does not have a definition +for that accent then LaTeX will use the definition from 'OT1' + + That is, this command is equivalent to this call (*note +\UseTextSymbol & \UseTextAccent::). + + \DeclareTextCommandDefault[1]{\CMD} + {\UseTextAccent{ENCODING}{\CMD}{#1}} + + Note that '\DeclareTextAccentDefault' works for any one-argument +'fontenc' command, not just the accent command. + + +File: latex2e.info, Node: \DeclareTextCommand & \ProvideTextCommand, Next: \DeclareTextCommandDefault & \ProvideTextCommandDefault, Prev: \DeclareTextAccentDefault, Up: fontenc package + +4.1.4 '\DeclareTextCommand' & '\ProvideTextCommand' +--------------------------------------------------- + +Synopsis, one of: + + \DeclareTextCommand{\CMD}{ENCODING}{DEFN} + \DeclareTextCommand{\CMD}{ENCODING}[NARGS]{DEFN} + \DeclareTextCommand{\CMD}{ENCODING}[NARGS][OPTARGDEFAULT]{DEFN} + + or one of: + + \ProvideTextCommand{\CMD}{ENCODING}{DEFN} + \ProvideTextCommand{\CMD}{ENCODING}[NARGS]{DEFN} + \ProvideTextCommand{\CMD}{ENCODING}[NARGS][OPTARGDEFAULT]{DEFN} + + Define the command '\CMD', which will be specific to one encoding. +The command name CMD must be preceded by a backslash, '\'. These +commands can only appear in the preamble. Redefining \CMD does not +cause an error. The defined command will be robust even if the code in +DEFN is fragile (*note \protect::). + + For example, the file 't1enc.def' contains this line. + + \DeclareTextCommand{\textperthousand}{T1}{\%\char 24 } + + With that, you can express parts per thousand. + + \usepackage[T1]{fontenc} % in preamble + ... + Legal limit is \( 0.8 \)\textperthousand. + +If you change the font encoding to 'OT1' then you get an error like +'LaTeX Error: Command \textperthousand unavailable in encoding OT1'. + + The '\ProvideTextCommand' variant does the same, except that it does +nothing if '\CMD' is already defined. The '\DeclareTextSymbol' command +is faster than this one for simple slot-to-glyph association (*note +\DeclareTextSymbol::) + + The optional NARGS and OPTARGDEFAULT arguments play the same role +here as in '\newcommand' (*note \newcommand & \renewcommand::). +Briefly, NARGS is an integer from 0 to 9 specifying the number of +arguments that the defined command '\CMD' takes. This number includes +any optional argument. Omitting this argument is the same as specifying +0, meaning that '\CMD' will have no arguments. And, if OPTARGDEFAULT is +present then the first argument of '\CMD' is optional, with default +value OPTARGDEFAULT (which may be the empty string). If OPTARGDEFAULT +is not present then '\CMD' does not take an optional argument. + + +File: latex2e.info, Node: \DeclareTextCommandDefault & \ProvideTextCommandDefault, Next: \DeclareTextComposite, Prev: \DeclareTextCommand & \ProvideTextCommand, Up: fontenc package + +4.1.5 '\DeclareTextCommandDefault' & '\ProvideTextCommandDefault ' +------------------------------------------------------------------ + +Synopsis: + + \DeclareTextCommandDefault{\CMD}{DEFN} + + or: + + \ProvideTextCommandDefault{\CMD}{DEFN} + + Give a default definition for '\CMD', for when that command is not +defined in the encoding currently in force. This default should only +use encodings known to be available. + + This makes '\copyright' available. + + \DeclareTextCommandDefault{\copyright}{\textcircled{c}} + +It uses only an encoding (OMS) that is always available. + + The '\DeclareTextCommandDefault' should not occur in the encoding +definition files since those files should declare only commands for use +when you select that encoding. It should instead be in a package. + + As with the related non-default commands, the +'\ProvideTextCommandDefault' has exactly the same behavior as +'\DeclareTextCommandDefault' except that it does nothing if '\CMD' is +already defined (*note \DeclareTextCommand & \ProvideTextCommand::). +So, packages can use it to provide fallbacks that other packages can +improve upon. + + +File: latex2e.info, Node: \DeclareTextComposite, Next: \DeclareTextCompositeCommand, Prev: \DeclareTextCommandDefault & \ProvideTextCommandDefault, Up: fontenc package + +4.1.6 '\DeclareTextComposite' +----------------------------- + +Synopsis: + + \DeclareTextComposite{\CMD}{ENCODING}{SIMPLE_OBJECT}{SLOT} + + Access an accented glyph directly, that is, without having to put an +accent over a separate character. + + This line from 't1enc.def' means that '\^o' will cause LaTeX to +typeset lowercase 'o' by taking the character directly from slot 224 in +the font. + + \DeclareTextComposite{\^}{T1}{o}{244} + + *Note fontenc package::, for a list of common encodings. The +SIMPLE_OBJECT should be a single character or a single command. The +SLOT argument is usually a positive integer represented in decimal +(although octal or hexadecimal are possible). Normally \CMD has already +been declared for this encoding, either with '\DeclareTextAccent' or +with a one-argument '\DeclareTextCommand'. In 't1enc.def', the above +line follows the '\DeclareTextAccent{\^}{T1}{2}' command. + + +File: latex2e.info, Node: \DeclareTextCompositeCommand, Next: \DeclareTextSymbol, Prev: \DeclareTextComposite, Up: fontenc package + +4.1.7 '\DeclareTextCompositeCommand' +------------------------------------ + +Synopsis: + + \DeclareTextCompositeCommand{\CMD}{ENCODING}{ARG}{CODE} + + A more general version of '\DeclareTextComposite' that runs arbitrary +code with '\CMD'. + + This allows accents on 'i' to act like accents on dotless i, '\i'. + + \DeclareTextCompositeCommand{\'}{OT1}{i}{\'\i} + + *Note fontenc package::, for a list of common encodings. Normally +'\CMD' will have already been declared with '\DeclareTextAccent' or as a +one argument '\DeclareTextCommand'. + + +File: latex2e.info, Node: \DeclareTextSymbol, Next: \DeclareTextSymbolDefault, Prev: \DeclareTextCompositeCommand, Up: fontenc package + +4.1.8 '\DeclareTextSymbol' +-------------------------- + +Synopsis: + + \DeclareTextSymbol{\CMD}{ENCODING}{SLOT} + + Define a symbol in the encoding ENCODING at the location SLOT. +Symbols defined in this way are for use in text, not mathematics. + + For example, this line from 't1enc.def' declares the number of the +glyph to use for «, the left guillemet. + + \DeclareTextSymbol{\guillemotleft}{T1}{19} + +The command '\DeclareTextCommand{\guillemotleft}{T1}{\char 19}' has the +same effect but is slower (*note \DeclareTextCommand & +\ProvideTextCommand::). + + *Note fontenc package::, for a list of common encodings. The SLOT +can be specified in decimal, or octal (as in ''023'), or hexadecimal (as +in '"13'), although decimal has the advantage that single quote or +double quote could be redefined by another package. + + If '\CMD' has already been defined then '\DeclareTextSymbol' does not +give an error but it does log the redefinition in the transcript file. + + +File: latex2e.info, Node: \DeclareTextSymbolDefault, Next: \LastDeclaredEncoding, Prev: \DeclareTextSymbol, Up: fontenc package + +4.1.9 '\DeclareTextSymbolDefault' +--------------------------------- + +Synopsis: + + \DeclareTextSymbolDefault{\CMD}{ENCODING} + + If there is an encoding-specific symbol command '\CMD' but there is +no associated '\DeclareTextSymbol' for that encoding, then this command +will pick up the slack, by saying to get the symbol as described for +ENCODING. + + For example, to declare that if the current encoding has no meaning +for '\textdollar' then use the one from 'OT1', declare this. + + \DeclareTextSymbolDefault{\textdollar}{OT1} + + That is, this command is equivalent to this call (*note +\UseTextSymbol & \UseTextAccent::). + + \DeclareTextCommandDefault{\CMD} + {\UseTextSymbol{ENCODING}{\CMD}} + + Note that '\DeclareTextSymbolDefault' can be used to define a default +for any zero-argument 'fontenc' command. + + +File: latex2e.info, Node: \LastDeclaredEncoding, Next: \UseTextSymbol & \UseTextAccent, Prev: \DeclareTextSymbolDefault, Up: fontenc package + +4.1.10 '\LastDeclaredEncoding' +------------------------------ + +Synopsis: + + \LastDeclaredEncoding + + Get the name of the most recently declared encoding. The +'\DeclareFontEncoding' command stores the name so that it can be +retrieved with this command (*note \DeclareFontEncoding::). + + This relies on '\LastDeclaredEncoding' rather than give the name of +the encoding explicitly. + + \DeclareFontEncoding{JH1}{}{} + \DeclareTextAccent{\'}{\LastDeclaredEncoding}{0} + + +File: latex2e.info, Node: \UseTextSymbol & \UseTextAccent, Prev: \LastDeclaredEncoding, Up: fontenc package + +4.1.11 '\UseTextSymbol' & '\UseTextAccent' +------------------------------------------ + +Synopsis: + + \UseTextSymbol{ENCODING}{\CMD} + + or: + + \UseTextAccent{ENCODING}{\CMD}{TEXT} + + Use a symbol or accent not from the current encoding. + + In general, to use a 'fontenc' command in an encoding where it is not +defined, and if the command has no arguments, then you can use it like +this: + + \UseTextSymbol{OT1}{\ss} + +which is equivalent to this (note the outer braces form a group, so +LaTeX reverts back to the prior encoding after the '\ss'): + + {\fontencoding{OT1}\selectfont\ss} + + Similarly, to use a 'fontenc' command in an encoding where it is not +defined, and if the command has one argument, you can use it like this: + + \UseTextAccent{OT1}{\'}{a} + +which is equivalent to this (again note the outer braces forming a +group): + + {fontencoding{OT1}\selectfont\'{\fontencoding{ENC_IN_USE}\selectfont a}} + +Here, ENC_IN_USE is the encoding in force before this sequence of +commands, so that 'a' is typeset using the current encoding and only the +accent is taken from 'OT1'. + + +File: latex2e.info, Node: Font styles, Next: Font sizes, Prev: fontenc package, Up: Fonts + +4.2 Font styles +=============== + +The following type style commands are supported by LaTeX. + + In the table below the listed commands, the '\text...' commands, are +used with an argument as in '\textit{TEXT}'. This is the preferred +form. But shown after it in parenthesis is the corresponding +"declaration form", which is often useful. This form takes no +arguments, as in '{\itshape TEXT}'. The scope of the declaration form +lasts until the next type style command or the end of the current group. +In addition, each has an environment form such as +'\begin{itshape}...\end{itshape}', which we'll describe further at the +end of the section. + + These commands, in any of the three forms, are cumulative; for +instance you can get bold sans serif by saying either of +'\sffamily\bfseries' or '\bfseries\sffamily'. + + One advantage of these commands is that they automatically insert +italic corrections if needed (*note \/::). Specifically, they insert +the italic correction unless the following character is in the list +'\nocorrlist', which by default consists of period and comma. To +suppress the automatic insertion of italic correction, use '\nocorr' at +the start or end of the command argument, such as '\textit{\nocorr +text}' or '\textsc{text \nocorr}'. + +'\textrm (\rmfamily)' + Roman. + +'\textit (\itshape)' + Italics. + +'\textmd (\mdseries)' + Medium weight (default). + +'\textbf (\bfseries)' + Boldface. + +'\textup (\upshape)' + Upright (default). + +'\textsl (\slshape)' + Slanted. + +'\textsf (\sffamily)' + Sans serif. + +'\textsc (\scshape)' + Small caps. + +'\texttt (\ttfamily)' + Typewriter. + +'\textnormal (\normalfont)' + Main document font. + + Although it also changes fonts, the '\emph{TEXT}' command is +semantic, for text to be emphasized, and should not be used as a +substitute for '\textit'. For example, '\emph{START TEXT \emph{MIDDLE +TEXT} END TEXT}' will result in the START TEXT and END TEXT in italics, +but MIDDLE TEXT will be in roman. + + LaTeX also provides the following commands, which unconditionally +switch to the given style, that is, are _not_ cumulative. They are used +as declarations: '{\CMD...}' instead of '\CMD{...}'. + + (The unconditional commands below are an older version of font +switching. The earlier commands are an improvement in most +circumstances. But sometimes an unconditional font switch is what is +needed.) + +'\bf' + Switch to bold face. + +'\cal' + Switch to calligraphic letters for math. + +'\it' + Italics. + +'\rm' + Roman. + +'\sc' + Small caps. + +'\sf' + Sans serif. + +'\sl' + Slanted (oblique). + +'\tt' + Typewriter (monospace, fixed-width). + + The '\em' command is the unconditional version of '\emph'. + + The following commands are for use in math mode. They are not +cumulative, so '\mathbf{\mathit{SYMBOL}}' does not create a boldface and +italic SYMBOL; instead, it will just be in italics. This is because +typically math symbols need consistent typographic treatment, regardless +of the surrounding environment. + +'\mathrm' + Roman, for use in math mode. + +'\mathbf' + Boldface, for use in math mode. + +'\mathsf' + Sans serif, for use in math mode. + +'\mathtt' + Typewriter, for use in math mode. + +'\mathit' +'(\mit)' + Italics, for use in math mode. + +'\mathnormal' + For use in math mode, e.g., inside another type style declaration. + +'\mathcal' + Calligraphic letters, for use in math mode. + + In addition, the command '\mathversion{bold}' can be used for +switching to bold letters and symbols in formulas. +'\mathversion{normal}' restores the default. + + Finally, the command '\oldstylenums{NUMERALS}' will typeset so-called +"old-style" numerals, which have differing heights and depths (and +sometimes widths) from the standard "lining" numerals, which all have +the same height as uppercase letters. LaTeX's default fonts support +this, and will respect '\textbf' (but not other styles; there are no +italic old-style numerals in Computer Modern). Many other fonts have +old-style numerals also; sometimes package options are provided to make +them the default. FAQ entry: <https://www.texfaq.org/FAQ-osf>. + + +File: latex2e.info, Node: Font sizes, Next: Low-level font commands, Prev: Font styles, Up: Fonts + +4.3 Font sizes +============== + +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 '10pt', '11pt', and '12pt' document size options, +respectively (*note Document class options::). + +Command '10pt' '11pt' '12pt' +-------------------------------------------------------- +'\tiny' 5 6 6 +'\scriptsize' 7 8 8 +'\footnotesize' 8 9 10 +'\small' 9 10 10.95 +'\normalsize' (default) 10 10.95 12 +'\large' 12 12 14.4 +'\Large' 14.4 14.4 17.28 +'\LARGE' 17.28 17.28 20.74 +'\huge' 20.74 20.74 24.88 +'\Huge' 24.88 24.88 24.88 + + The commands are listed here in declaration (not environment) form, +since that is how they are typically used. For example. + + \begin{quotation} \small + The Tao that can be named is not the eternal Tao. + \end{quotation} + +Here, the scope of the '\small' lasts until the end of the 'quotation' +environment. It would also end at the next type style command or the +end of the current group, so you could enclose it in curly braces +'{\small This text is typeset in the small font.}'. + + Trying to use these commands in math, as with '$\small mv^2/2$', +results in 'LaTeX Font Warning: Command \small invalid in math mode', +and the font size doesn't change. To work with a too-large formula, +often the best option is to use the 'displaymath' environment (*note +Math formulas::), or one of the environments from the 'amsmath' package. +For inline mathematics, such as in a table of formulas, an alternative +is something like '{\small $mv^2/2$}'. (Sometimes '\scriptsize' and +'\scriptstyle' are confused. Both change the font size, but the latter +also changes a number of other aspects of how mathematics is typeset. +*Note Math styles::.) + + An "environment form" of each of these commands is also defined; for +instance, '\begin{tiny}...\end{tiny}'. However, in practice this form +can easily lead to unwanted spaces at the beginning and/or end of the +environment without careful consideration, so it's generally less +error-prone to stick to the declaration form. + + (Aside: Technically, due to the way LaTeX defines '\begin' and +'\end', nearly every command that does not take an argument technically +has an environment form. But in almost all cases, it would only cause +confusion to use it. The reason for mentioning the environment form of +the font size declarations specifically is that this particular use is +not rare.) + + +File: latex2e.info, Node: Low-level font commands, Prev: Font sizes, Up: Fonts + +4.4 Low-level font commands +=========================== + +These commands are primarily intended for writers of macros and +packages. The commands listed here are only a subset of the available +ones. + +'\fontencoding{ENCODING}' + Select the font encoding, the encoding of the output font. There + are a large number of valid encodings. The most common are 'OT1', + Knuth's original encoding for Computer Modern (the default), and + 'T1', also known as the Cork encoding, which has support for the + accented characters used by the most widespread European languages + (German, French, Italian, Polish and others), which allows TeX to + hyphenate words containing accented letters. For more, see + <https://ctan.org/pkg/encguide>. + +'\fontfamily{FAMILY}' + Select the font family. The web page + <https://tug.org/FontCatalogue/> provides one way to browse through + many of the fonts easily used with LaTeX. Here are examples of + some common families. + + 'pag' Avant Garde + 'fvs' Bitstream Vera Sans + 'pbk' Bookman + 'bch' Charter + 'ccr' Computer Concrete + 'cmr' Computer Modern + 'cmss' Computer Modern Sans Serif + 'cmtt' Computer Modern Typewriter + 'pcr' Courier + 'phv' Helvetica + 'fi4' Inconsolata + 'lmr' Latin Modern + 'lmss' Latin Modern Sans + 'lmtt' Latin Modern Typewriter + 'pnc' New Century Schoolbook + 'ppl' Palatino + 'ptm' Times + 'uncl' Uncial + 'put' Utopia + 'pzc' Zapf Chancery + +'\fontseries{SERIES}' + Select the font series. A "series" combines a "weight" and a + "width". Typically, a font supports only a few of the possible + combinations. Some common combined series values include: + + 'm' Medium (normal) + 'b' Bold + 'c' Condensed + 'bc' Bold condensed + 'bx' Bold extended + + The possible values for weight, individually, are: + + 'ul' Ultra light + 'el' Extra light + 'l' Light + 'sl' Semi light + 'm' Medium (normal) + 'sb' Semi bold + 'b' Bold + 'eb' Extra bold + 'ub' Ultra bold + + The possible values for width, individually, are (the meaning and + relationship of these terms varies with individual typefaces): + + 'uc' Ultra condensed + 'ec' Extra condensed + 'c' Condensed + 'sc' Semi condensed + 'm' Medium + 'sx' Semi expanded + 'x' Expanded + 'ex' Extra expanded + 'ux' Ultra expanded + + When forming the SERIES string from the weight and width, drop the + 'm' that stands for medium weight or medium width, unless both + weight and width are 'm', in which case use just one (''m''). + +'\fontshape{SHAPE}' + Select font shape. Valid shapes are: + + 'n' Upright (normal) + 'it' Italic + 'sl' Slanted (oblique) + 'sc' Small caps + 'ui' Upright italics + 'ol' Outline + + The two last shapes are not available for most font families, and + small caps are often missing as well. + +'\fontsize{SIZE}{SKIP}' + Set the font size and the line spacing. The unit of both + parameters defaults to points ('pt'). The line spacing is the + nominal vertical space between lines, baseline to baseline. It is + stored in the parameter '\baselineskip'. The default + '\baselineskip' for the Computer Modern typeface is 1.2 times the + '\fontsize'. Changing '\baselineskip' directly is inadvisable + since its value is reset every time a size change happens; instead + use '\baselinestretch'. (*note \baselineskip & + \baselinestretch::). + +'\linespread{FACTOR}' + Equivalent to '\renewcommand{\baselinestretch}{FACTOR}', and + therefore must be followed by '\selectfont' to have any effect. + Best specified in the preamble. *Note \baselineskip & + \baselinestretch::, for using 'setspace' package instead. + +'\selectfont' + The effects of the font commands described above do not happen + until '\selectfont' is called, as in + '\fontfamily{FAMILYNAME}\selectfont'. It is often useful to put + this in a macro: + '\newcommand*{\myfont}{\fontfamily{FAMILYNAME}\selectfont}' + (*note \newcommand & \renewcommand::). + +'\usefont{ENC}{FAMILY}{SERIES}{SHAPE}' + The same as invoking '\fontencoding', '\fontfamily', '\fontseries' + and '\fontshape' with the given parameters, followed by + '\selectfont'. For example: + + \usefont{ot1}{cmr}{m}{n} + + +File: latex2e.info, Node: Layout, Next: Sectioning, Prev: Fonts, Up: Top + +5 Layout +******** + +Commands for controlling the general page layout. + +* 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'. +* \baselineskip & \baselinestretch:: Space between lines. +* Floats:: Figures, tables, etc. + + +File: latex2e.info, Node: \onecolumn, Next: \twocolumn, Up: Layout + +5.1 '\onecolumn' +================ + +Synopsis: + + \onecolumn + + Start a new page and produce single-column output. If the document +is given the class option 'onecolumn' then this is the default behavior +(*note Document class options::). This command is fragile (*note +\protect::). + + +File: latex2e.info, Node: \twocolumn, Next: \flushbottom, Prev: \onecolumn, Up: Layout + +5.2 '\twocolumn' +================ + +Synopses: + + \twocolumn + \twocolumn[PRELIM ONE COLUMN TEXT] + + Start a new page and produce two-column output. If the document is +given the class option 'twocolumn' then this is the default (*note +Document class options::). This command is fragile (*note \protect::). + + If the optional PRELIM ONE COLUMN TEXT argument is present, it is +typeset in one-column mode before the two-column typesetting starts. + + These parameters control typesetting in two-column output: + +'\columnsep' + The distance between columns. The default is 35pt. Change it with + a command such as '\setlength{\columnsep}{40pt}'. You must change + it before the two column mode starts; in the preamble is a good + place. + +'\columnseprule' + The width of the rule between columns. The default is 0pt, meaning + that there is no rule. Otherwise, the rule appears halfway between + the two columns. Change it with a command such as + '\setlength{\columnseprule}{0.4pt}', before the two-column mode + starts. + +'\columnwidth' + The width of a single column. In one-column mode this is equal to + '\textwidth'. In two-column mode by default LaTeX sets the width + of each of the two columns, '\columnwidth', to be half of + '\textwidth' minus '\columnsep'. + + In a two-column document, the starred environments 'table*' and +'figure*' are two columns wide, whereas the unstarred environments +'table' and 'figure' take up only one column (*note figure:: and *note +table::). LaTeX places starred floats at the top of a page. The +following parameters control float behavior of two-column output. + +'\dbltopfraction' + The maximum fraction at the top of a two-column page that may be + occupied by two-column wide floats. The default is 0.7, meaning + that the height of a 'table*' or 'figure*' environment must not + exceed '0.7\textheight'. If the height of your starred float + environment exceeds this then you can take one of the following + actions to prevent it from floating all the way to the back of the + document: + + * Use the '[tp]' location specifier to tell LaTeX to try to put + the bulky float on a page by itself, as well as at the top of + a page. + + * Use the '[t!]' location specifier to override the effect of + '\dbltopfraction' for this particular float. + + * Increase the value of '\dbltopfraction' to a suitably large + number, to avoid going to float pages so soon. + + You can redefine it, as with '\renewcommand{\dbltopfraction}{0.9}'. + +'\dblfloatpagefraction' + For a float page of two-column wide floats, this is the minimum + fraction that must be occupied by floats, limiting the amount of + blank space. LaTeX's default is '0.5'. Change it with + '\renewcommand'. + +'\dblfloatsep' + On a float page of two-column wide floats, this length is the + distance between floats, at both the top and bottom of the page. + The default is '12pt plus2pt minus2pt' for a document set at '10pt' + or '11pt', and '14pt plus2pt minus4pt' for a document set at + '12pt'. + +'\dbltextfloatsep' + This length is the distance between a multi-column float at the top + or bottom of a page and the main text. The default is '20pt + plus2pt minus4pt'. + +'\dbltopnumber' + On a float page of two-column wide floats, this counter gives the + maximum number of floats allowed at the top of the page. The LaTeX + default is '2'. + + This example uses '\twocolumn''s optional argument of to create a +title that spans the two-column article: + + \documentclass[twocolumn]{article} + \newcommand{\authormark}[1]{\textsuperscript{#1}} + \begin{document} + \twocolumn[{% inside this optional argument goes one-column text + \centering + \LARGE The Title \\[1.5em] + \large Author One\authormark{1}, + Author Two\authormark{2}, + Author Three\authormark{1} \\[1em] + \normalsize + \begin{tabular}{p{.2\textwidth}@{\hspace{2em}}p{.2\textwidth}} + \authormark{1}Department one &\authormark{2}Department two \\ + School one &School two + \end{tabular}\\[3em] % space below title part + }] + + Two column text here. + + +File: latex2e.info, Node: \flushbottom, Next: \raggedbottom, Prev: \twocolumn, Up: Layout + +5.3 '\flushbottom' +================== + +Make all pages in the documents after this declaration have the same +height, by stretching the vertical space where necessary to fill out the +page. This is most often used when making two-sided documents since the +differences in facing pages can be glaring. + + If TeX cannot satisfactorily stretch the vertical space in a page +then you get a message like 'Underfull \vbox (badness 10000) has +occurred while \output is active'. If you get that, one option is to +change to '\raggedbottom' (*note \raggedbottom::). Alternatively, you +can adjust the 'textheight' to make compatible pages, or you can add +some vertical stretch glue between lines or between paragraphs, as in +'\setlength{\parskip}{0ex plus0.1ex}'. Your last option is to, in a +final editing stage, adjust the height of individual pages (*note +\enlargethispage::). + + The '\flushbottom' state is the default only if you select the +'twoside' document class option (*note Document class options::). + + +File: latex2e.info, Node: \raggedbottom, Next: Page layout parameters, Prev: \flushbottom, Up: Layout + +5.4 '\raggedbottom' +=================== + +Make all later pages the natural height of the material on that page; no +rubber vertical lengths will be stretched. Thus, in a two-sided +document the facing pages may be different heights. This command can go +at any point in the document body. See *note \flushbottom::. + + This is the default unless you select the 'twoside' document class +option (*note Document class options::). + + +File: latex2e.info, Node: Page layout parameters, Next: \baselineskip & \baselinestretch, Prev: \raggedbottom, Up: Layout + +5.5 Page layout parameters +========================== + +'\columnsep' +'\columnseprule' +'\columnwidth' + The distance between the two columns, the width of a rule between + the columns, and the width of the columns, when the document class + option 'twocolumn' is in effect (*note Document class options::). + *Note \twocolumn::. + +'\headheight' + Height of the box that contains the running head. The default in + the 'article', 'report', and 'book' classes is '12pt', at all type + sizes. + +'\headsep' + Vertical distance between the bottom of the header line and the top + of the main text. The default in the 'article' and 'report' + classes is '25pt'. In the 'book' class the default is: if the + document is set at 10pt then it is '0.25in', and at 11pt or 12pt it + is '0.275in'. + +'\footskip' + Distance from the baseline of the last line of text to the baseline + of the page footer. The default in the 'article' and 'report' + classes is '30pt'. In the 'book' class the default is: when the + type size is 10pt the default is '0.35in', while at 11pt it is + '0.38in', and at 12pt it is '30pt'. + +'\linewidth' + Width of the current line, decreased for each nested 'list' (*note + list::). That is, the nominal value for '\linewidth' is to equal + '\textwidth' but for each nested list the '\linewidth' is decreased + by the sum of that list's '\leftmargin' and '\rightmargin' (*note + itemize::). + +'\marginparpush' +'\marginsep' +'\marginparwidth' + The minimum vertical space between two marginal notes, the + horizontal space between the text body and the marginal notes, and + the horizontal width of the notes. + + Normally marginal notes appear on the outside of the page, but the + declaration '\reversemarginpar' changes that (and + '\normalmarginpar' changes it back). + + The defaults for '\marginparpush' in both 'book' and 'article' + classes are: '7pt' if the document is set at 12pt, and '5pt' if the + document is set at 11pt or 10pt. + + For '\marginsep', in 'article' class the default is '10pt' except + if the document is set at 10pt and in two-column mode where the + default is '11pt'. + + For '\marginsep' in 'book' class the default is '10pt' in + two-column mode and '7pt' in one-column mode. + + For '\marginparwidth' in both 'book' and 'article' classes, in + two-column mode the default is 60% of '\paperwidth - \textwidth', + while in one-column mode it is 50% of that distance. + +'\oddsidemargin' +'\evensidemargin' + The '\oddsidemargin' length is the extra distance between the left + side of the page and the text's left margin, on odd-numbered pages + when the document class option 'twoside' is chosen and on all pages + when 'oneside' is in effect. When 'twoside' is in effect, on + even-numbered pages the extra distance on the left is + '\evensidemargin'. + + LaTeX's default is that '\oddsidemargin' is 40% of the difference + between '\paperwidth' and '\textwidth', and '\evensidemargin' is + the remainder. + +'\paperheight' + The height of the paper, as distinct from the height of the print + area. Normally set with a document class option, as in + '\documentclass[a4paper]{article}' (*note Document class + options::). + +'\paperwidth' + The width of the paper, as distinct from the width of the print + area. Normally set with a document class option, as in + '\documentclass[a4paper]{article}' (*note Document class + options::). + +'\textheight' + The normal vertical height of the page body. If the document is + set at a nominal type size of 10pt then for an 'article' or + 'report' the default is '43\baselineskip', while for a 'book' it is + '41\baselineskip'. At a type size of 11pt the default is + '38\baselineskip' for all document classes. At 12pt it is + '36\baselineskip' for all classes. + +'\textwidth' + The full horizontal width of the entire page body. For an + 'article' or 'report' document, the default is '345pt' when the + chosen type size is 10pt, the default is '360pt' at 11pt, and it is + '390pt' at 12pt. For a 'book' document, the default is '4.5in' at + a type size of 10pt, and '5in' at 11pt or 12pt. + + In multi-column output, '\textwidth' remains the width of the + entire page body, while '\columnwidth' is the width of one column + (*note \twocolumn::). + + In lists (*note list::), '\textwidth' remains the width of the + entire page body (and '\columnwidth' the width of the entire + column), while '\linewidth' may decrease for nested lists. + + Inside a minipage (*note minipage::) or '\parbox' (*note + \parbox::), all the width-related parameters are set to the + specified width, and revert to their normal values at the end of + the 'minipage' or '\parbox'. + +'\hsize' + This entry is included for completeness: '\hsize' is the TeX + primitive parameter used when text is broken into lines. It should + not be used in normal LaTeX documents. + +'\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 value is + computed based on many other parameters: '\paperheight - 2in - + \headheight - \headsep - \textheight - \footskip', and then divided + by two. + +'\topskip' + Minimum distance between the top of the page body and the baseline + of the first line of text. For the standard classes, the default + is the same as the font size, e.g., '10pt' at a type size of 10pt. + + +File: latex2e.info, Node: \baselineskip & \baselinestretch, Next: Floats, Prev: Page layout parameters, Up: Layout + +5.6 '\baselineskip' & '\baselinestretch' +======================================== + +The '\baselineskip' is a rubber length (*note Lengths::). It gives the +"leading", the normal distance between lines in a paragraph, from +baseline to baseline. + + Ordinarily document authors do not directly change '\baselineskip' +while writing. Instead, it is set by the low level font selection +command '\fontsize' (*note low level font commands fontsize::). The +'\baselineskip''s value is reset every time a font change happens and so +any direct change to '\baselineskip' would vanish the next time there +was a font switch. For how to influence line spacing, see the +discussion of '\baselinestretch' below. + + Usually, a font's size and baseline skip is assigned by the font +designer. These numbers are nominal in the sense that if, for instance, +a font's style file has the command '\fontsize{10pt}{12pt}' then that +does not mean that the characters in the font are 10pt tall; for +instance, parentheses and accented capitals may be taller. Nor does it +mean that if the lines are spaced less than 12pt apart then they risk +touching. Rather these numbers are typographic judgements. (Often, the +'\baselineskip' is about twenty percent larger than the font size.) + + The '\baselineskip' is not a property of each line but of the entire +paragraph. As a result, large text in the middle of a paragraph, such +as a single '{\Huge Q}', will be squashed into its line. TeX will make +sure it doesn't scrape up against the line above but won't change the +'\baselineskip' for that one line to make extra room above. For the +fix, use a '\strut' (*note \strut::). + + The value of '\baselineskip' that TeX uses for the paragraph is the +value in effect at the blank line or command that ends the paragraph +unit. So if a document contains this paragraph then its lines will be +scrunched together, compared to lines in surrounding paragraphs. + + Many people see a page break between text and a displayed equation as + bad style, so in effect the display is part of the paragraph. + Because this display is in footnotesize, the entire paragraph has the + baseline spacing matching that size. + {\footnotesize $$a+b = c$$} + + The process for making paragraphs is that when a new line is added, +if the depth of the previous line plus the height of the new line is +less than '\baselineskip' then TeX inserts vertical glue to make up the +difference. There are two fine points. The first is that if the lines +would be too close together, closer than '\lineskiplimit', then TeX +instead uses '\lineskip' as the interline glue. The second is that TeX +doesn't actually use the depth of the previous line. Instead it uses +'\prevdepth', which usually contains that depth. But at the beginning +of the paragraph (or any vertical list) or just after a rule, +'\prevdepth' has the value -1000pt and this special value tells TeX not +to insert any interline glue at the paragraph start. + + In the standard classes '\lineskiplimit' is 0pt and '\lineskip' is +1pt. By the prior paragraph then, the distance between lines can +approach zero but if it becomes zero (or less than zero) then the lines +jump to 1pt apart. + + Sometimes authors must, for editing purposes, put the document in +double space or one-and-a-half space. The right way to influence the +interline distance is via '\baselinestretch'. It scales +'\baselineskip', and has a default value of 1.0. It is a command, not a +length, so change the scale factor as in +'\renewcommand{\baselinestretch}{1.5}\selectfont'. + + The most straightforward way to change the line spacing for an entire +document is to put '\linespread{FACTOR}' in the preamble. For double +spacing, take FACTOR to be 1.6 and for one-and-a-half spacing use 1.3. +These number are rough: for instance, since the '\baselineskip' is about +1.2 times the font size, multiplying by 1.6 gives a baseline skip to +font size ratio of about 2. (The '\linespread' command is defined as +'\renewcommand{\baselinestretch}{FACTOR}' so it won't take effect until +a font setting happens. But that always takes place at the start of a +document, so there you don't need to follow it with '\selectfont'.) + + A simpler approach is the 'setspace' package. The basic example: + + \usepackage{setspace} + \doublespacing % or \onehalfspacing for 1.5 + +In the preamble these will start the document off with that sizing. But +you can also use these declarations in the document body to change the +spacing from that point forward, and consequently there is +'\singlespacing' to return the spacing to normal. In the document body, +a better practice than using the declarations is to use environments, +such as '\begin{doublespace} ... \end{doublespace}'. The package also +has commands to do arbitrary spacing: '\setstretch{FACTOR}' and +'\begin{spacing}{FACTOR} ... \end{spacing}'. This package also keeps +the line spacing single-spaced in places where that is typically +desirable, such as footnotes and figure captions. See the package +documentation. + + +File: latex2e.info, Node: Floats, Prev: \baselineskip & \baselinestretch, Up: Layout + +5.7 Floats +========== + +Some typographic elements, such as figures and tables, cannot be broken +across pages. They must be typeset outside of the normal flow of text, +for instance floating to the top of a later page. + + LaTeX can have a number of different classes of floating material. +The default is the two classes, 'figure' (*note figure::) and 'table' +(*note table::), but you can create a new class with the package +'float'. + + Within any one float class LaTeX always respects the order, so that +the first figure in a document source must be typeset before the second +figure. However, LaTeX may mix the classes, so it can happen that while +the first table appears in the source before the first figure, it +appears in the output after it. + + The placement of floats is subject to parameters, given below, that +limit the number of floats that can appear at the top of a page, and the +bottom, etc. If so many floats are queued that the limits prevent them +all from fitting on a page then LaTeX places what it can and defers the +rest to the next page. In this way, floats may end up being typeset far +from their place in the source. In particular, a float that is big may +migrate to the end of the document. In which event, because all floats +in a class must appear in sequential order, every following float in +that class also appears at the end. + + In addition to changing the parameters, for each float you can tweak +where the float placement algorithm tries to place it by using its +PLACEMENT argument. The possible values are a sequence of the letters +below. The default for both 'figure' and 'table', in both 'article' and +'book' classes, is 'tbp'. + +'t' + (Top)--at the top of a text page. + +'b' + (Bottom)--at the bottom of a text page. (However, 'b' is not + allowed for full-width floats ('figure*') with double-column + output. To ameliorate this, use the 'stfloats' or 'dblfloatfix' + package, but see the discussion at caveats in the FAQ: + <https://www.texfaq.org/FAQ-2colfloat>. + +'h' + (Here)--at the position in the text where the 'figure' environment + appears. However, 'h' is not allowed by itself; 't' is + automatically added. + + To absolutely force a float to appear "here", you can + '\usepackage{float}' and use the 'H' specifier which it defines. + For further discussion, see the FAQ entry at + <https://www.texfaq.org/FAQ-figurehere>. + +'p' + (Page of floats)--on a separate "float page", which is a page + containing no text, only floats. + +'!' + Used in addition to one of the above; for this float only, LaTeX + ignores the restrictions on both the number of floats that can + appear and the relative amounts of float and non-float text on the + page. The '!' specifier does _not_ mean "put the float here"; see + above. + + Note: the order in which letters appear in the PLACEMENT argument +does not change the order in which LaTeX tries to place the float; for +instance, 'btp' has the same effect as 'tbp'. All that PLACEMENT does +is that if a letter is not present then the algorithm does not try that +location. Thus, LaTeX's default of 'tbp' is to try every location +except placing the float where it occurs in the source. + + To prevent LaTeX from moving floats to the end of the document or a +chapter you can use a '\clearpage' command to start a new page and +insert all pending floats. If a pagebreak is undesirable then you can +use the 'afterpage' package and issue '\afterpage{\clearpage}'. This +will wait until the current page is finished and then flush all +outstanding floats. + + LaTeX can typeset a float before where it appears in the source +(although on the same output page) if there is a 't' specifier in the +PLACEMENT parameter. If this is not desired, and deleting the 't' is +not acceptable as it keeps the float from being placed at the top of the +next page, then you can prevent it by either using the 'flafter' package +or using the command '\suppressfloats[t]', which causes floats for the +top position on this page to moved to the next page. + + Parameters relating to fractions of pages occupied by float and +non-float text (change them with '\renewcommand{PARAMETER}{DECIMAL +BETWEEN 0 AND 1}'): + +'\bottomfraction' + The maximum fraction of the page allowed to be occupied by floats + at the bottom; default '.3'. + +'\floatpagefraction' + The minimum fraction of a float page that must be occupied by + floats; default '.5'. + +'\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 '.2'. + +'\topfraction' + Maximum fraction at the top of a page that may be occupied before + floats; default '.7'. + + Parameters relating to vertical space around floats (change them with +a command of the form '\setlength{PARAMETER}{LENGTH EXPRESSION}'): + +'\floatsep' + Space between floats at the top or bottom of a page; default '12pt + plus2pt minus2pt'. + +'\intextsep' + Space above and below a float in the middle of the main text; + default '12pt plus2pt minus2pt' for 10 point and 11 point + documents, and '14pt plus4pt minus4pt' for 12 point documents. + +'\textfloatsep' + Space between the last (first) float at the top (bottom) of a page; + default '20pt plus2pt minus4pt'. + + Counters relating to the number of floats on a page (change them with +a command of the form '\setcounter{CTRNAME}{NATURAL NUMBER}'): + +'bottomnumber' + Maximum number of floats that can appear at the bottom of a text + page; default 1. + +'dbltopnumber' + Maximum number of full-sized floats that can appear at the top of a + two-column page; default 2. + +'topnumber' + Maximum number of floats that can appear at the top of a text page; + default 2. + +'totalnumber' + Maximum number of floats that can appear on a text page; default 3. + + The principal TeX FAQ entry relating to floats +<https://www.texfaq.org/FAQ-floats> contains suggestions for relaxing +LaTeX's default parameters to reduce the problem of floats being pushed +to the end. A full explanation of the float placement algorithm is in +Frank Mittelbach's article "How to influence the position of float +environments like figure and table in LaTeX?" +(<https://www.latex-project.org/publications/2014-FMi-TUB-tb111mitt-float-placement.pdf>). + +* Menu: + +* \caption:: Make a caption for a floating environment. + + +File: latex2e.info, Node: \caption, Up: Floats + +5.7.1 '\caption' +---------------- + +Synopsis: + + \caption{CAPTION-TEXT} + +or + + \caption[SHORT-CAPTION-TEXT]{CAPTION-TEXT} + + Make a caption for a floating environment, such as a 'figure' or +'table' environment (*note figure:: or *note table::). + + In this example, LaTeX places a caption below the vertical blank +space that is left by the author for the later inclusion of a picture. + + \begin{figure} + \vspace*{1cm} + \caption{Alonzo Cushing, Battery A, 4th US Artillery.} + \label{fig:CushingPic} + \end{figure} + +The '\caption' command will label the CAPTION-TEXT with something like +'Figure 1:' for an article or 'Figure 1.1:' for a book. The text is +centered if it is shorter than the text width, or set as an unindented +paragraph if it takes more than one line. + + In addition to placing the CAPTION-TEXT in the output, the '\caption' +command also saves that information for use in a list of figures or list +of tables (*note Table of contents etc.::). + + Here the '\caption' command uses the optional SHORT-CAPTION-TEXT, so +that the shorter text appears in the list of tables, rather than the +longer CAPTION-TEXT. + + \begin{table} + \centering + \begin{tabular}{|*{3}{c}|} + \hline + 4 &9 &2 \\ + 3 &5 &7 \\ + 8 &1 &6 \\ + \hline + \end{tabular} + \caption[\textit{Lo Shu} magic square]{% + The \textit{Lo Shu} magic square, which is unique among + squares of order three up to rotation and reflection.} + \label{tab:LoShu} + \end{table} + +LaTeX will label the CAPTION-TEXT with something like 'Table 1:' for an +article or 'Table 1.1:' for a book. + + The caption can appear at the top of the 'figure' or 'table'. For +instance, that would happen in the prior example by putting the +'\caption' between the '\centering' and the '\begin{tabular}'. + + Different floating environments are numbered separately, by default. +It is '\caption' that updates the counter, and so any '\label' must come +after the '\caption'. The counter for the 'figure' environment is named +'figure', and similarly the counter for the 'table' environment is +'table'. + + The text that will be put in the list of figures or list of tables is +moving argument. If you get the LaTeX error '! Argument of \@caption +has an extra }' then you must put '\protect' in front of any fragile +commands. *Note \protect::. + + The 'caption' package has many options to adjust how the caption +appears, for example changing the font size, making the caption be +hanging text rather than set as a paragraph, or making the caption +always set as a paragraph rather than centered when it is short. + + +File: latex2e.info, Node: Sectioning, Next: Cross references, Prev: Layout, Up: Top + +6 Sectioning +************ + +Structure your text into divisions: parts, chapters, sections, etc. All +sectioning commands have the same form, one of: + + SECTIONING-COMMAND{TITLE} + SECTIONING-COMMAND*{TITLE} + SECTIONING-COMMAND[TOC-TITLE]{TITLE} + +For instance, declare the start of a subsection as with +'\subsection{Motivation}'. + + The table has each SECTIONING-COMMAND in LaTeX. All are available in +all of LaTeX's standard document classes 'book', 'report', +and 'article', except that '\chapter' is not available in 'article'. + +Sectioning unit Command Level +-------------------------------------------------------------------- +Part '\part' -1 ('book', 'report'), 0 + ('article') +Chapter '\chapter' 0 +Section '\section' 1 +Subsection '\subsection' 2 +Subsubsection '\subsubsection' 3 +Paragraph '\paragraph' 4 +Subparagraph '\subparagraph' 5 + + All these commands have a '*'-form that prints TITLE as usual but +does not number it and does not make an entry in the table of contents. +An example of using this is for an appendix in an 'article'. The input +'\appendix\section{Appendix}' gives the output 'A Appendix' (*note +\appendix::). You can lose the numbering 'A' by instead entering +'\section*{Appendix}' (articles often omit a table of contents and have +simple page headers so the other differences from the '\section' command +may not matter). + + The section title TITLE provides the heading in the main text, but it +may also appear in the table of contents and in the running head or foot +(*note Page styles::). You may not want the same text in these places +as in the main text. All of these commands have an optional argument +TOC-TITLE for these other places. + + The level number in the table above determines which sectional units +are numbered, and which appear in the table of contents. If the +sectioning command's LEVEL is less than or equal to the value of the +counter 'secnumdepth' then the titles for this sectioning command will +be numbered (*note Sectioning/secnumdepth::). And, if LEVEL is less +than or equal to the value of the counter 'tocdepth' then the table of +contents will have an entry for this sectioning unit (*note +Sectioning/tocdepth::). + + LaTeX expects that before you have a '\subsection' you will have a +'\section' and, in a 'book' class document, that before a '\section' you +will have a '\chapter'. Otherwise you can get something like a +subsection numbered '3.0.1'. + + LaTeX lets you change the appearance of the sectional units. As a +simple example, you can change the section numbering to upper-case +letters with '\renewcommand\thesection{\Alph{section}}' in the preamble +(*note \alph \Alph \arabic \roman \Roman \fnsymbol::). CTAN has many +packages that make this adjustment easier, notably 'titlesec'. + + Two counters relate to the appearance of headings made by sectioning +commands. + +'secnumdepth' + Controls which sectioning unit are numbered. Setting the counter + with '\setcounter{secnumdepth}{LEVEL}' will suppress numbering of + sectioning at any depth greater than LEVEL (*note \setcounter::). + See the above table for the level numbers. For instance, if the + 'secnumdepth' is 1 in an 'article' then a '\section{Introduction}' + command will produce output like '1 Introduction' while + '\subsection{Discussion}' will produce output like 'Discussion', + without the number. LaTeX's default 'secnumdepth' is 3 in + 'article' class and 2 in the 'book' and 'report' classes. + +'tocdepth' + Controls which sectioning units are listed in the table of + contents. The setting '\setcounter{tocdepth}{LEVEL}' makes the + sectioning units at LEVEL be the smallest ones listed (*note + \setcounter::). See the above table for the level numbers. For + instance, if 'tocdepth' is 1 then the table of contents will list + sections but not subsections. LaTeX's default 'tocdepth' is 3 in + 'article' class and 2 in the 'book' and 'report' classes. + +* Menu: + +* \part:: Start a part. +* \chapter:: Start a chapter. +* \section:: Start a section. +* \subsection:: Start a subsection. +* \subsubsection & \paragraph & \subparagraph:: Lower divisions. +* \appendix:: Start appendices. +* \frontmatter & \mainmatter & \backmatter:: The three parts of a book. +* \@startsection:: Sectional unit headings. + + +File: latex2e.info, Node: \part, Next: \chapter, Up: Sectioning + +6.1 '\part' +=========== + +Synopsis, one of: + + \part{TITLE} + \part*{TITLE} + \part[TOC-TITLE]{TITLE} + + Start a document part. The standard LaTeX classes 'book', 'report', +and 'article', all have this command. + + This produces a document part, in a book. + + \part{VOLUME I \\ + PERSONAL MEMOIRS OF U.\ S.\ GRANT} + \chapter{ANCESTRY--BIRTH--BOYHOOD.} + My family is American, and has been for generations, + in all its branches, direct and collateral. + + In each standard class the '\part' command outputs a part number such +as 'Part I', alone on its line, in boldface, and in large type. Then +LaTeX outputs TITLE, also alone on its line, in bold and in even larger +type. In class 'book', the LaTeX default puts each part alone on its +own page. If the book is two-sided then LaTeX will skip a page if +needed to have the new part on an odd-numbered page. In 'report' it is +again alone on a page, but LaTeX won't force it onto an odd-numbered +page. In an 'article' LaTeX does not put it on a fresh page, but +instead outputs the part number and part title onto the main document +page. + + The '*' form shows TITLE but it does not show the part number, does +not increment the 'part' counter, and produces no table of contents +entry. + + The optional argument TOC-TITLE will appear as the part title in the +table of contents (*note Table of contents etc.::) and in running +headers (*note Page styles::). If it is not present then TITLE will be +there. This example puts a line break in TITLE but omits the break in +the table of contents. + + \part[Up from the bottom; my life]{Up from the bottom\\ my life} + + For determining which sectional units are numbered and which appear +in the table of contents, the level number of a part is -1 (*note +Sectioning/secnumdepth::, and *note Sectioning/tocdepth::). + + In the class 'article', if a paragraph immediately follows the part +title then it is not indented. To get an indent you can use the package +'indentfirst'. + + One package to change the behavior of '\part' is 'titlesec'. See its +documentation on CTAN. + + +File: latex2e.info, Node: \chapter, Next: \section, Prev: \part, Up: Sectioning + +6.2 '\chapter' +============== + +Synopsis, one of: + + \chapter{TITLE} + \chapter*{TITLE} + \chapter[TOC-TITLE]{TITLE} + + Start a chapter. The standard LaTeX classes 'book' and 'report' have +this command but 'article' does not. + + This produces a chapter. + + \chapter{Loomings} + Call me Ishmael. + Some years ago---never mind how long precisely---having little or no + money in my purse, and nothing particular to interest me on shore, I + thought I would sail about a little and see the watery part of + the world. + + The LaTeX default starts each chapter on a fresh page, an +odd-numbered page if the document is two-sided. It produces a chapter +number such as 'Chapter 1' in large boldface type (the size is '\huge'). +It then puts TITLE on a fresh line, in boldface type that is still +larger (size '\Huge'). It also increments the 'chapter' counter, adds +an entry to the table of contents (*note Table of contents etc.::), and +sets the running header information (*note Page styles::). + + The '*' form shows TITLE on a fresh line, in boldface. But it does +not show the chapter number, does not increment the 'chapter' counter, +produces no table of contents entry, and does not affect the running +header. (If you use the page style 'headings' in a two-sided document +then the header will be from the prior chapter.) This example +illustrates. + + \chapter*{Preamble} + + The optional argument TOC-TITLE will appear as the chapter title in +the table of contents (*note Table of contents etc.::) and in running +headers (*note Page styles::). If it is not present then TITLE will be +there. This shows the full name in the chapter title, + + \chapter[Weyl]{Hermann Klaus Hugo (Peter) Weyl (1885--1955)} + +but only 'Weyl' on the contents page. This puts a line break in the +title but that doesn't work well with running headers so it omits the +break in the contents + + \chapter[Given it all; my story]{Given it all\\ my story} + + For determining which sectional units are numbered and which appear +in the table of contents, the level number of a chapter is 0 (*note +Sectioning/secnumdepth:: and *note Sectioning/tocdepth::). + + The paragraph that follows the chapter title is not indented, as is a +standard typographical practice. To get an indent use the package +'indentfirst'. + + You can change what is shown for the chapter number. To change it to +something like 'Lecture 1', put in the preamble either +'\renewcommand{\chaptername}{Lecture}' or this (*note \makeatletter & +\makeatother::). + + \makeatletter + \renewcommand{\@chapapp}{Lecture} + \makeatother + +To make this change because of the primary language for the document, +see the package 'babel'. + + In a two-sided document LaTeX puts a chapter on odd-numbered page, if +necessary leaving an even-numbered page that is blank except for any +running headers. To make that page completely blank, see *note +\clearpage & \cleardoublepage::. + + To change the behavior of the '\chapter' command, you can copy its +definition from the LaTeX format file and make adjustments. But there +are also many packages on CTAN that address this. One is 'titlesec'. +See its documentation, but the example below gives a sense of what it +can do. + + \usepackage{titlesec} % in preamble + \titleformat{\chapter} + {\Huge\bfseries} % format of title + {} % label, such as 1.2 for a subsection + {0pt} % length of separation between label and title + {} % before-code hook + +This omits the chapter number 'Chapter 1' from the page but unlike +'\chapter*' it keeps the chapter in the table of contents and the +running headers. + + +File: latex2e.info, Node: \section, Next: \subsection, Prev: \chapter, Up: Sectioning + +6.3 '\section' +============== + +Synopsis, one of: + + \section{TITLE} + \section*{TITLE} + \section[TOC-TITLE]{TITLE} + + Start a section. The standard LaTeX classes 'article', 'book', and +'report' all have this command. + + This produces a section. + + In this Part we tend to be more interested in the function, + in the input-output behavior, + than in the details of implementing that behavior. + + \section{Turing machines} + Despite this desire to downplay implementation, + we follow the approach of A~Turing that the + first step toward defining the set of computable functions + is to reflect on the details of what mechanisms can do. + + For the standard LaTeX classes 'book' and 'report' the default output +is like '1.2 TITLE' (for chapter 1, section 2), alone on its line and +flush left, in boldface and a larger type (the type size is '\Large'). +The same holds in 'article' except that there are no chapters in that +class so it looks like '2 TITLE'. + + The '*' form shows TITLE. But it does not show the section number, +does not increment the 'section' counter, produces no table of contents +entry, and does not affect the running header. (If you use the page +style 'headings' in a two-sided document then the header will be from +the prior section.) + + The optional argument TOC-TITLE will appear as the section title in +the table of contents (*note Table of contents etc.::) and in running +headers (*note Page styles::). If it is not present then TITLE will be +there. This shows the full name in the title of the section: + + \section[Elizabeth~II]{Elizabeth the Second, + by the Grace of God of the United Kingdom, + Canada and Her other Realms and Territories Queen, + Head of the Commonwealth, Defender of the Faith.} + +but only 'Elizabeth II' on the contents page and in the headers. This +has a line break in TITLE but that does not work with headers so it is +omitted from the contents and headers. + + \section[Truth is, I cheated; my life story]{Truth is, + I cheated\\my life story} + + For determining which sectional units are numbered and which appear +in the table of contents, the level number of a section is 1 (*note +Sectioning/secnumdepth:: and *note Sectioning/tocdepth::). + + The paragraph that follows the section title is not indented, as is a +standard typographical practice. One way to get an indent is to use the +package 'indentfirst'. + + In general, to change the behavior of the '\section' command, there +are a number of options. One is the '\@startsection' command (*note +\@startsection::). There are also many packages on CTAN that address +this, including 'titlesec'. See the documentation but the example below +gives a sense of what they can do. + + \usepackage{titlesec} % in preamble + \titleformat{\section} + {\normalfont\Large\bfseries} % format of title + {\makebox[1pc][r]{\thesection\hspace{1pc}}} % label + {0pt} % length of separation between label and title + {} % before-code hook + \titlespacing*{\section} + {-1pc}{18pt}{10pt}[10pc] + +That puts the section number in the margin. + + +File: latex2e.info, Node: \subsection, Next: \subsubsection & \paragraph & \subparagraph, Prev: \section, Up: Sectioning + +6.4 '\subsection' +================= + +Synopsis, one of: + + \subsection{TITLE} + \subsection*{TITLE} + \subsection[TOC-TITLE]{TITLE} + + Start a subsection. The standard LaTeX classes 'article', 'book', +and 'report' all have this command. + + This produces a subsection. + + We will show that there are more functions than Turing machines and that + therefore some functions have no associated machine. + + \subsection{Cardinality} We will begin with two paradoxes that + dramatize the challenge to our intuition posed by comparing the sizes of + infinite sets. + + For the standard LaTeX classes 'book' and 'report' the default output +is like '1.2.3 TITLE' (for chapter 1, section 2, subsection 3), alone on +its line and flush left, in boldface and a larger type (the type size is +'\large'). The same holds in 'article' except that there are no +chapters in that class so it looks like '2.3 TITLE'. + + The '*' form shows TITLE. But it does not show the subsection +number, does not increment the 'subsection' counter, and produces no +table of contents entry. + + The optional argument TOC-TITLE will appear as the subsection title +in the table of contents (*note Table of contents etc.::). If it is not +present then TITLE will be there. This shows the full text in the title +of the subsection: + + \subsection[$\alpha,\beta,\gamma$ paper]{\textit{The Origin of + Chemical Elements} by R.A.~Alpher, H.~Bethe, and G.~Gamow} + +but only 'α,β,γ paper' on the contents page. + + For determining which sectional units are numbered and which appear +in the table of contents, the level number of a subsection is 2 (*note +Sectioning/secnumdepth:: and *note Sectioning/tocdepth::). + + The paragraph that follows the subsection title is not indented, as +is a standard typographical practice. One way to get an indent is to +use the package 'indentfirst'. + + There are a number of ways to change the behavior of the +'\subsection' command. One is the '\@startsection' command (*note +\@startsection::). There are also many packages on CTAN that address +this, including 'titlesec'. See the documentation but the example below +gives a sense of what they can do. + + \usepackage{titlesec} % in preamble + \titleformat{\subsection}[runin] + {\normalfont\normalsize\bfseries} % format of the title + {\thesubsection} % label + {0.6em} % space between label and title + {} % before-code hook + +That puts the subsection number and TITLE in the first line of text. + + +File: latex2e.info, Node: \subsubsection & \paragraph & \subparagraph, Next: \appendix, Prev: \subsection, Up: Sectioning + +6.5 '\subsubsection', '\paragraph', '\subparagraph' +=================================================== + +Synopsis, one of: + + \subsubsection{TITLE} + \subsubsection*{TITLE} + \subsubsection[TOC-TITLE]{TITLE} + +or one of: + + \paragraph{TITLE} + \paragraph*{TITLE} + \paragraph[TOC-TITLE]{TITLE} + +or one of: + + \subparagraph{TITLE} + \subparagraph*{TITLE} + \subparagraph[TOC-TITLE]{TITLE} + + Start a subsubsection, paragraph, or subparagraph. The standard +LaTeX classes 'article', 'book', and 'report' all have these commands, +although they are not commonly used. + + This produces a subsubsection. + + \subsubsection{Piston ring compressors: structural performance} + Provide exterior/interior wall cladding assemblies + capable of withstanding the effects of load and stresses from + consumer-grade gasoline engine piston rings. + + The default output of each of the three does not change over the +standard LaTeX classes 'article', 'book', and 'report'. For +'\subsubsection' the TITLE is alone on its line, in boldface and normal +size type. For '\paragraph' the TITLE is inline with the text, not +indented, in boldface and normal size type. For '\subparagraph' the +TITLE is inline with the text, with a paragraph indent, in boldface and +normal size type (Because an 'article' has no chapters its +subsubsections are numbered and so it looks like '1.2.3 TITLE', for +section 1, subsection 2, and subsubsection 3. The other two divisions +are not numbered.) + + The '*' form shows TITLE. But it does not increment the associated +counter and produces no table of contents entry (and does not show the +number for '\subsubsection'). + + The optional argument TOC-TITLE will appear as the division title in +the table of contents (*note Table of contents etc.::). If it is not +present then TITLE will be there. + + For determining which sectional units are numbered and which appear +in the table of contents, the level number of a subsubsection is 3, of a +paragraph is 4, and of a subparagraph is 5 (*note +Sectioning/secnumdepth:: and *note Sectioning/tocdepth::). + + The paragraph that follows the subsubsection title is not indented, +as is a standard typographical practice. One way to get an indent is to +use the package 'indentfirst'. + + There are a number of ways to change the behavior of the these +commands. One is the '\@startsection' command (*note \@startsection::). +There are also many packages on CTAN that address this, including +'titlesec'. See the documentation on CTAN. + + +File: latex2e.info, Node: \appendix, Next: \frontmatter & \mainmatter & \backmatter, Prev: \subsubsection & \paragraph & \subparagraph, Up: Sectioning + +6.6 '\appendix' +=============== + +Synopsis: + + \appendix + + This does not directly produce any output. But in a book or report +it declares that subsequent '\chapter' commands start an appendix. In +an article it does the same, for '\section' commands. It also resets +the 'chapter' and 'section' counters to 0 in a book or report, and in an +article resets the 'section' and 'subsection' counters. + + In this book + + \chapter{One} ... + \chapter{Two} ... + ... + \appendix + \chapter{Three} ... + \chapter{Four} ... + +the first two will generate output numbered 'Chapter 1' and 'Chapter 2'. +After the '\appendix' the numbering will be 'Appendix A' and 'Appendix +B'. *Note Larger book template::, for another example. + + The 'appendix' package adds the command '\appendixpage' to put a +separate 'Appendices' in the document body before the first appendix, +and the command '\addappheadtotoc' to do the same in the table of +contents. You can reset the name 'Appendices' with a command like +'\renewcommand{\appendixname}{Specification}', as well as a number of +other features. See the documentation on CTAN. + + +File: latex2e.info, Node: \frontmatter & \mainmatter & \backmatter, Next: \@startsection, Prev: \appendix, Up: Sectioning + +6.7 '\frontmatter', '\mainmatter', '\backmatter' +================================================ + +Synopsis, one or more of: + + \frontmatter + ... + \mainmatter + ... + \backmatter + ... + + Format a 'book' class document differently according to which part of +the document is being produced. All three commands are optional. + + Traditionally, a book's front matter contains such things as the +title page, an abstract, a table of contents, a preface, a list of +notations, a list of figures, and a list of tables. (Some of these +front matter pages, such as the title page, are traditionally not +numbered.) The back matter may contain such things as a glossary, +notes, a bibliography, and an index. + + The '\frontmatter' command makes the pages numbered in lowercase +roman, and makes chapters not numbered, although each chapter's title +appears in the table of contents; if you use other sectioning commands +here, use the '*'-version (*note Sectioning::). + + The '\mainmatter' command changes the behavior back to the expected +version, and resets the page number. + + The '\backmatter' command leaves the page numbering alone but +switches the chapters back to being not numbered. + + *Note Larger book template::, for an example using these three +commands. + + +File: latex2e.info, Node: \@startsection, Prev: \frontmatter & \mainmatter & \backmatter, Up: Sectioning + +6.8 '\@startsection', typesetting sectional unit headings +========================================================= + +Synopsis: + + \@startsection{NAME}{LEVEL}{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE} + + Used to help redefine the behavior of commands that start sectioning +divisions such as '\section' or '\subsection'. + + Note that the 'titlesec' package makes manipulation of sectioning +easier. Further, while most requirements for sectioning commands can be +satisfied with '\@startsection', some cannot. For instance, in the +standard LaTeX 'book' and 'report' classes the commands '\chapter' and +'\report' are not constructed in this way. To make such a command you +may want to use the '\secdef' command. + + Technically, '\@startsection' has the form + + \@startsection{NAME} + {LEVEL} + {INDENT} + {BEFORESKIP} + {AFTERSKIP} + {STYLE}*[TOCTITLE]{TITLE} + +so that issuing + + \renewcommand{\section}{\@startsection{NAME} + {LEVEL} + {INDENT} + {BEFORESKIP} + {AFTERSKIP} + {STYLE}} + +redefines '\section' while keeping its standard calling form +'\section*[TOCTITLE]{TITLE}' (in which, for reminder, the star '*' is +optional). *Note Sectioning::. This implies that when you write a +command like '\renewcommand{\section}{...}', the '\@startsection{...}' +must come last in the definition. See the examples below. + +NAME + Name of the counter used to number the sectioning header. This + counter must be defined separately. Most commonly this is either + 'section', 'subsection', or 'paragraph'. Although in those cases + the counter name is the same as the sectioning command itself, you + don't have to use the same name. + + Then '\the'NAME displays the title number and '\'NAME'mark' is for + the page headers. See the third example below. + +LEVEL + An integer giving the depth of the sectioning command. *Note + Sectioning::, for the list of standard level numbers. + + If LEVEL is less than or equal to the value of the counter + 'secnumdepth' then titles for this sectioning command will be + numbered (*note Sectioning/secnumdepth::). For instance, if + 'secnumdepth' is 1 in an 'article' then the command + '\section{Introduction}' will produce output like "1 Introduction" + while '\subsection{Discussion}' will produce output like + "Discussion", without the number prefix. + + If LEVEL is less than or equal to the value of the counter TOCDEPTH + then the table of contents will have an entry for this sectioning + unit (*note Sectioning/tocdepth::). For instance, in an 'article', + if TOCDEPTH is 1 then the table of contents will list sections but + not subsections. + +INDENT + A length giving the indentation of all of the title lines with + respect to the left margin. To have the title flush with the + margin use '0pt'. A negative indentation such as '-\parindent' + will move the title into the left margin. + +BEFORESKIP + The absolute value of this length is the amount of vertical space + that is inserted before this sectioning unit's title. This space + will be discarded if the sectioning unit happens to start at the + beginning of a page. If this number is negative then the first + paragraph following the header is not indented, if it is + non-negative then the first paragraph is indented. (Note that the + negative of '1pt plus 2pt minus 3pt' is '-1pt plus -2pt minus + -3pt'.) + + For example, if BEFORESKIP is '-3.5ex plus -1ex minus -0.2ex' then + to start the new sectioning unit, LaTeX will add about 3.5 times + the height of a letter x in vertical space, and the first paragraph + in the section will not be indented. Using a rubber length, with + 'plus' and 'minus', is good practice here since it gives LaTeX more + flexibility in making up the page (*note Lengths::). + + The full accounting of the vertical space between the baseline of + the line prior to this sectioning unit's header and the baseline of + the header is that it is the sum of the '\parskip' of the text + font, the '\baselineskip' of the title font, and the absolute value + of the BEFORESKIP. This space is typically rubber so it may + stretch or shrink. (If the sectioning unit starts on a fresh page + so that the vertical space is discarded then the baseline of the + header text will be where LaTeX would put the baseline of the first + text line on that page.) + +AFTERSKIP + This is a length. If AFTERSKIP is non-negative then this is the + vertical space inserted after the sectioning unit's title header. + If it is negative then the title header becomes a run-in header, so + that it becomes part of the next paragraph. In this case the + absolute value of the length gives the horizontal space between the + end of the title and the beginning of the following paragraph. + (Note that the negative of '1pt plus 2pt minus 3pt' is '-1pt plus + -2pt minus -3pt'.) + + As with BEFORESKIP, using a rubber length, with 'plus' and 'minus' + components, is good practice here since it gives LaTeX more + flexibility in putting together the page. + + If 'afterskip' is non-negative then the full accounting of the + vertical space between the baseline of the sectioning unit's header + and the baseline of the first line of the following paragraph is + that it is the sum of the '\parskip' of the title font, the + '\baselineskip' of the text font, and the value of AFTER. That + space is typically rubber so it may stretch or shrink. (Note that + because the sign of 'afterskip' changes the sectioning unit + header's from standalone to run-in, you cannot use a negative + 'afterskip' to cancel part of the '\parskip'.) + +STYLE + Controls the styling of the title. See the examples below. + Typical commands to use here are '\centering', '\raggedright', + '\normalfont', '\hrule', or '\newpage'. The last command in STYLE + may be one that takes one argument, such as '\MakeUppercase' or + '\fbox' that takes one argument. The section title will be + supplied as the argument to this command. For instance, setting + STYLE to '\bfseries\MakeUppercase' would produce titles that are + bold and uppercase. + + These are LaTeX's defaults for the first three sectioning units that +are defined with '\@startsection', for the 'article', 'book', and +'report' classes. + + * For 'section': LEVEL is 1, INDENT is 0pt, BEFORESKIP is '-3.5ex + plus -1ex minus -0.2ex', AFTERSKIP is '2.3ex plus 0.2ex', and STYLE + is '\normalfont\Large\bfseries'. + + * For 'subsection': LEVEL is 2, INDENT is 0pt, BEFORESKIP is '-3.25ex + plus -1ex minus -0.2ex', AFTERSKIP is '1.5ex plus 0.2ex', and STYLE + is '\normalfont\large\bfseries'. + + * For 'subsubsection': LEVEL is 3, INDENT is 0pt, BEFORESKIP is + '-3.25ex plus -1ex minus -0.2ex', AFTERSKIP is '1.5ex plus 0.2ex', + and STYLE is '\normalfont\normalsize\bfseries'. + + Some examples follow. These go either in a package or class file or +in the preamble of a LaTeX document. If you put them in the preamble +they must go between a '\makeatletter' command and a '\makeatother'. +(Probably the error message 'You can't use `\spacefactor' in vertical +mode.' means that you forgot this.) *Note \makeatletter & +\makeatother::. + + This will put section titles in large boldface type, centered. It +says '\renewcommand' because LaTeX's standard classes have already +defined a '\section'. For the same reason it does not define a +'section' counter, or the commands '\thesection' and '\l@section'. + + \renewcommand\section{% + \@startsection{section}% *note NAME: \@startsection/name. + {1}% *note LEVEL: \@startsection/level. + {0pt}% *note INDENT: \@startsection/indent. + {-3.5ex plus -1ex minus -.2ex}% *note BEFORESKIP: \@startsection/beforeskip. + {2.3ex plus.2ex}% *note AFTERSKIP: \@startsection/afterskip. + {\centering\normalfont\Large\bfseries}% *note STYLE: \@startsection/style. + } + + This will put 'subsection' titles in small caps type, inline with the +paragraph. + + \renewcommand\subsection{% + \@startsection{subsection}% *note NAME: \@startsection/name. + {2}% *note LEVEL: \@startsection/level. + {0em}% *note INDENT: \@startsection/indent. + {-1ex plus 0.1ex minus -0.05ex}% *note BEFORESKIP: \@startsection/beforeskip. + {-1em plus 0.2em}% *note AFTERSKIP: \@startsection/afterskip. + {\scshape}% *note STYLE: \@startsection/style. + } + + The prior examples redefined existing sectional unit title commands. +This defines a new one, illustrating the needed counter and macros to +display that counter. + + \setcounter{secnumdepth}{6}% show counters this far down + \newcounter{subsubparagraph}[subparagraph]% counter for numbering + \renewcommand{\thesubsubparagraph}% how to display + {\thesubparagraph.\@arabic\c@subsubparagraph}% numbering + \newcommand{\subsubparagraph}{\@startsection + {subsubparagraph}% + {6}% + {0em}% + {\baselineskip}% + {0.5\baselineskip}% + {\normalfont\normalsize}} + \newcommand*\l@subsubparagraph{\@dottedtocline{6}{10em}{5em}}% for toc + \newcommand{\subsubparagraphmark}[1]{}% for page headers + + +File: latex2e.info, Node: Cross references, Next: Environments, Prev: Sectioning, Up: Top + +7 Cross references +****************** + +We often want something like 'See Theorem~31'. But by-hand typing the +31 is poor practice. Instead you should write a "label" such as +'\label{eq:GreensThm}' and then "reference" it, as with 'See +equation~\ref{eq:GreensThm}'. LaTeX will automatically work out the +number, put it into the output, and will change that number later if +needed. + + We will see this with Theorem~\ref{th:GreensThm}. % forward reference + ... + \begin{theorem} \label{th:GreensThm} + ... + \end{theorem} + ... + See Theorem~\ref{th:GreensThm} on page~\pageref{th:GreensThm}. + + LaTeX tracks cross reference information in a file having the +extension '.aux' and with the same base name as the file containing the +'\label'. So if '\label' is in 'calculus.tex' then the information is +in 'calculus.aux'. LaTeX puts the information in that file every time +it runs across a '\label'. + + The behavior described in the prior paragraph results in a quirk that +happens when your document has a "forward reference", a '\ref' that +appears before the associated '\label'. If this is the first time that +you are compiling the document then you will get 'LaTeX Warning: +Label(s) may have changed. Rerun to get cross references right' and in +the output the forward reference will appear as two question marks '??', +in boldface. A similar thing happens if you change some things so the +references changes; you get the same warning and the output contains the +old reference information. In both cases, resolve this by compiling the +document a second time. + + The 'cleveref' package enhances LaTeX's cross referencing features. +You can arrange that if you enter +'\begin{thm}\label{th:Nerode}...\end{thm}' then '\cref{th:Nerode}' will +output 'Theorem 3.21', without you having to enter the "Theorem." + +* 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. +* xr package:: References from another document. + + +File: latex2e.info, Node: \label, Next: \pageref, Up: Cross references + +7.1 '\label' +============ + +Synopsis: + + \label{KEY} + + Assign a reference number to KEY. In ordinary text '\label{KEY}' +assigns to KEY the number of the current sectional unit. Inside an +environment with numbering, such as a 'table' or 'theorem' environment, +'\label{KEY}' assigns to KEY the number of that environment. Retrieve +the assigned number with the '\ref{KEY}' command (*note \ref::). + + A key name can consist of any sequence of letters, digits, or common +punctuation characters. Upper and lowercase letters are distinguished, +as usual. + + A common convention is to use labels consisting of a prefix and a +suffix separated by a colon or period. Thus, '\label{fig:Post}' is a +label for a figure with a portrait of Emil Post. This helps to avoid +accidentally creating two labels with the same name, and makes your +source more readable. Some commonly-used prefixes: + +'ch' + for chapters + +'sec' +'subsec' + for lower-level sectioning commands + +'fig' + for figures + +'tab' + for tables + +'eq' + for equations + + In the auxiliary file the reference information is kept as the text +of a command of the form '\newlabel{LABEL}{{CURRENTLABEL}{PAGENUMBER}}'. +Here CURRENTLABEL is the current value of the macro '\@currentlabel' +that is usually updated whenever you call '\refstepcounter{COUNTER}'. + + Below, the key 'sec:test' will get the number of the current section +and the key 'fig:test' will get the number of the figure. +(Incidentally, put labels after captions in figures and tables.) + + \section{section name} + \label{sec:test} + This is Section~\ref{sec:test}. + \begin{figure} + ... + \caption{caption text} + \label{fig:test} + \end{figure} + See Figure~\ref{fig:test}. + + +File: latex2e.info, Node: \pageref, Next: \ref, Prev: \label, Up: Cross references + +7.2 '\pageref' +============== + +Synopsis: + + \pageref{KEY} + + Produce the page number of the place in the text where the +corresponding '\label'{KEY} command appears. + + If there is no '\label{KEY}' then you get something like 'LaTeX +Warning: Reference `th:GrensThm' on page 1 undefined on input line 11.' + + Below, the '\label{eq:main}' is used both for the formula number and +for the page number. (Note that the two references are forward +references so this document would need to be compiled twice to resolve +those.) + + The main result is formula~\ref{eq:main} on page~\pageref{eq:main}. + ... + \begin{equation} \label{eq:main} + \mathbf{P}=\mathbf{NP} + \end{equation} + + +File: latex2e.info, Node: \ref, Next: xr package, Prev: \pageref, Up: Cross references + +7.3 '\ref' +========== + +Synopsis: + + \ref{KEY} + + Produces the number of the sectional unit, equation, footnote, +figure, ..., of the corresponding '\label' command (*note \label::). It +does not produce any text, such as the word 'Section' or 'Figure', just +the bare number itself. + + If there is no '\label{KEY}' then you get something like 'LaTeX +Warning: Reference `th:GrensThm' on page 1 undefined on input line 11.' + + In this example the '\ref{popular}' produces '2'. Note that it is a +forward reference since it comes before '\label{popular}' so this +document would have to be compiled twice. + + The most widely-used format is item number~\ref{popular}. + \begin{enumerate} + \item Plain \TeX + \item \label{popular} \LaTeX + \item Con\TeX t + \end{enumerate} + + The 'cleveref' package includes text such as 'Theorem' in the +reference. See the documentation on CTAN. + + +File: latex2e.info, Node: xr package, Prev: \ref, Up: Cross references + +7.4 'xr' package +================ + +Synopsis: + + \usepackage{xr} + \externaldocument{DOCUMENT-BASENAME} + +or + + \usepackage{xr} + \externaldocument[REFERENCE-PREFIX]{DOCUMENT-BASENAME} + + Make cross references to the external document +'DOCUMENT-BASENAME.tex'. + + Here is an example. If 'lectures.tex' has this in the preamble + + \usepackage{xr} + \externaldocument{exercises} + \externaldocument[H-]{hints} + \externaldocument{answers} + +then it can use cross reference labels from the other three documents. +Suppose that 'exercises.tex' has an enumerated list containing this, + + \item \label{exer:EulersThm} What if every vertex has odd degree? + +and 'hints.tex' has an enumerated list with this, + + \item \label{exer:EulersThm} Distinguish the case of two vertices. + +and 'answers.tex' has an enumerated list with this, + + \item \label{ans:EulersThm} There is no Euler path, except if there + are exactly two vertices. + + After compiling the exercises, hints, and answers documents, entering +this in the body of 'lectures.tex' will result in the lectures getting +the reference numbers used in the other documents. + + See Exercise~\ref{exer:EulersThm}, with Hint~\ref{H-exer:EulersThm}. + The solution is Answer~\ref{ans:EulersThm}. + + The prefix 'H-' for the reference from the hints file is needed +because the label in the hints file is the same as the label in the +exercises file. Without that prefix, both references would get the +number from the later file. + + Note: if the document uses the 'hyperref' package then in place of +'xr', put '\usepackage{xr-hyper}' before the '\usepackage{hyperref}'. +Also, if any of the multiple documents uses 'hyperref' then they all +must use it. + + +File: latex2e.info, Node: Environments, Next: Line breaking, Prev: Cross references, Up: Top + +8 Environments +************** + +LaTeX provides many environments for delimiting certain behavior. An +environment begins with '\begin' and ends with '\end', like this: + + \begin{ENVIRONMENT-NAME} + ... + \end{ENVIRONMENT-NAME} + + The ENVIRONMENT-NAME at the beginning must exactly match that at the +end. For instance, the input '\begin{table*}...\end{table}' will cause +an error like: '! LaTeX Error: \begin{table*} on input line 5 ended by +\end{table}.' + + Environments are executed within a group. + +* Menu: + +* abstract:: Produce an abstract. +* array:: Math arrays. +* center:: Centered 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. +* filecontents:: Writing multiple files from the source. +* 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 & quote:: Include a quotation. +* 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. + + +File: latex2e.info, Node: abstract, Next: array, Up: Environments + +8.1 'abstract' +============== + +Synopsis: + + \begin{abstract} + ... + \end{abstract} + + Produce an abstract, possibly of multiple paragraphs. This +environment is only defined in the 'article' and 'report' document +classes (*note Document classes::). + + Using the example below in the 'article' class produces a displayed +paragraph. Document class option 'titlepage' causes the abstract to be +on a separate page (*note Document class options::); this is the default +only in the 'report' class. + + \begin{abstract} + We compare all known accounts of the proposal made by Porter Alexander + to Robert E Lee at the Appomattox Court House that the army continue + in a guerrilla war, which Lee refused. + \end{abstract} + + The next example produces a one column abstract in a two column +document (for a more flexible solution, use the package 'abstract'). + + \documentclass[twocolumn]{article} + ... + \begin{document} + \title{Babe Ruth as Cultural Progenitor: a Atavistic Approach} + \author{Smith \\ Jones \\ Robinson\thanks{Railroad tracking grant.}} + \twocolumn[ + \begin{@twocolumnfalse} + \maketitle + \begin{abstract} + Ruth was not just the Sultan of Swat, he was the entire swat + team. + \end{abstract} + \end{@twocolumnfalse} + ] + { % by-hand insert a footnote at page bottom + \renewcommand{\thefootnote}{\fnsymbol{footnote}} + \footnotetext[1]{Thanks for all the fish.} + } + + +File: latex2e.info, Node: array, Next: center, Prev: abstract, Up: Environments + +8.2 'array' +=========== + +Synopsis: + + \begin{array}{COLS} + COLUMN 1 ENTRY &COLUMN 2 ENTRY ... &COLUMN N ENTRY \\ + ... + \end{array} + +or: + + \begin{array}[POS]{COLS} + COLUMN 1 ENTRY &COLUMN 2 ENTRY ... &COLUMN N ENTRY \\ + ... + \end{array} + + Produce a mathematical array. This environment can only be used in +math mode (*note Modes::), and normally appears within a displayed +mathematics environment such as 'equation' (*note equation::). Inside +of each row the column entries are separated by an ampersand, ('&'). +Rows are terminated with double-backslashes (*note \\::). + + This example shows a three by three array. + + \begin{equation*} + \chi(x) = + \left| % vertical bar fence + \begin{array}{ccc} + x-a &-b &-c \\ + -d &x-e &-f \\ + -g &-h &x-i + \end{array} + \right| + \end{equation*} + + The required argument COLS describes the number of columns, their +alignment, and the formatting of the intercolumn regions. For instance, +'\begin{array}{rcl}...\end{array}' gives three columns: the first flush +right, the second centered, and the third flush left. See *note +tabular:: for the complete description of COLS and of the other common +features of the two environments, including the optional POS argument. + + There are two ways that 'array' diverges from 'tabular'. The first +is that 'array' entries are typeset in math mode, in textstyle (*note +Math styles::) except if the COLS definition specifies the column with +'p{...}', which causes the entry to be typeset in text mode. The second +is that, instead of 'tabular''s parameter '\tabcolsep', LaTeX's +intercolumn space in an 'array' is governed by '\arraycolsep', which +gives half the width between columns. The default for this is '5pt' so +that between two columns comes 10pt of space. + + To obtain arrays with braces the standard is to use the 'amsmath' +package. It comes with environments 'pmatrix' for an array surrounded +by parentheses '(...)', 'bmatrix' for an array surrounded by square +brackets '[...]', 'Bmatrix' for an array surrounded by curly +braces '{...}', 'vmatrix' for an array surrounded by vertical +bars '|...|', and 'Vmatrix' for an array surrounded by double vertical +bars '||...||', along with a number of other array constructs. + + The next example uses the 'amsmath' package. + + \usepackage{amsmath} % in preamble + + \begin{equation} + \begin{vmatrix}{cc} % array with vert lines + a &b \\ + c &d + \end{vmatrix}=ad-bc + \end{equation} + + There are many packages concerning arrays. The 'array' package has +many useful extensions, including more column types. The 'dcolumn' +package adds a column type to center on a decimal point. For both see +the documentation on CTAN. + + +File: latex2e.info, Node: center, Next: description, Prev: array, Up: Environments + +8.3 'center' +============ + +Synopsis: + + \begin{center} + LINE1 \\ + LINE2 \\ + ... + \end{center} + + Create a new paragraph consisting of a sequence of lines that are +centered within the left and right margins. Use double-backslash, '\\', +to get a line break (*note \\::). If some text is too long to fit on a +line then LaTeX will insert line breaks that avoid hyphenation and avoid +stretching or shrinking any interword space. + + This environment inserts space above and below the text body. See +*note \centering:: to avoid such space, for example inside a 'figure' +environment. + + This example produces three centered lines. There is extra vertical +space between the last two lines. + + \begin{center} + A Thesis Submitted in Partial Fufillment \\ + of the Requirements of \\[0.5ex] + the School of Environmental Engineering + \end{center} + + In this example, depending on the page's line width, LaTeX may choose +a line break for the part before the double backslash. If so, it will +center each of the two lines and if not it will center the single line. +Then LaTeX will break at the double backslash, and will center the +ending. + + \begin{center} + My father considered that anyone who went to chapel and didn't drink + alcohol was not to be tolerated.\\ + I grew up in that belief. ---Richard Burton + \end{center} + + A double backslash after the final line is optional. If present it +doesn't add any vertical space. + + In a two-column document the text is centered in a column, not in the +entire page. + +* Menu: + +* \centering:: Declaration form of the 'center' environment. + + +File: latex2e.info, Node: \centering, Up: center + +8.3.1 '\centering' +------------------ + +Synopsis: + + {\centering ... } + +or + + \begin{group} + \centering ... + \end{group} + + Center the material in its scope. It is most often used inside an +environment such as 'figure', or in a 'parbox'. + + This example's '\centering' declaration causes the graphic to be +horizontally centered. + + \begin{figure} + \centering + \includegraphics[width=0.6\textwidth]{ctan_lion.png} + \caption{CTAN Lion} \label{fig:CTANLion} + \end{figure} + +The scope of this '\centering' ends with the '\end{figure}'. + + Unlike the 'center' environment, the '\centering' command does not +add vertical space above and below the text. That's its advantage in +the above example; there is not an excess of space. + + It also does not start a new paragraph; it simply changes how LaTeX +formats paragraph units. If 'ww {\centering xx \\ yy} zz' is surrounded +by blank lines then LaTeX will create a paragraph whose first line 'ww +xx' is centered and whose second line, not centered, contains 'yy zz'. +Usually what is desired is for the scope of the declaration to contain a +blank line or the '\end' command of an environment such as 'figure' or +'table' that ends the paragraph unit. Thus, if '{\centering xx \\ +yy\par} zz' is surrounded by blank lines then it makes a new paragraph +with two centered lines 'xx' and 'yy', followed by a new paragraph with +'zz' that is formatted as usual. + + +File: latex2e.info, Node: description, Next: displaymath, Prev: center, Up: Environments + +8.4 'description' +================= + +Synopsis: + + \begin{description} + \item[LABEL OF FIRST ITEM] TEXT OF FIRST ITEM + \item[LABEL OF SECOND ITEM] TEXT OF SECOND ITEM + ... + \end{description} + + Environment to make a list of labeled items. Each item's LABEL is +typeset in bold and is flush left, so that long labels continue into the +first line of the item text. There must be at least one item; having +none causes the LaTeX error 'Something's wrong--perhaps a missing +\item'. + + This example shows the environment used for a sequence of +definitions. + + \begin{description} + \item[lama] A priest. + \item[llama] A beast. + \end{description} + +The labels 'lama' and 'llama' are output in boldface, with the left edge +on the left margin. + + Start list items with the '\item' command (*note \item::). Use the +optional labels, as in '\item[Main point]', because there is no sensible +default. Following the '\item' is optional text, which may contain +multiple paragraphs. + + Since the labels are in bold style, if the label text calls for a +font change given in argument style (see *note Font styles::) then it +will come out bold. For instance, if the label text calls for +typewriter with '\item[\texttt{label text}]' then it will appear in bold +typewriter, if that is available. The simplest way around this, in this +example to get non-bold typewriter, is to use declarative style: +'\item[{\tt label text}]'. Similarly, get the standard roman font with +'\item[{\rm label text}]'. + + For other major LaTeX labelled list environments, see *note itemize:: +and *note enumerate::. Unlike those environments, nesting 'description' +environments does not change the default label; it is boldface and flush +left at all levels. + + For information about list layout parameters, including the default +values, and for information about customizing list layout, see *note +list::. The package 'enumitem' is useful for customizing lists. + + This example changes the description labels to small caps. + + \renewcommand{\descriptionlabel}[1]{% + {\hspace{\labelsep}\textsc{#1}}} + + +File: latex2e.info, Node: displaymath, Next: document, Prev: description, Up: Environments + +8.5 'displaymath' +================= + +Synopsis: + + \begin{displaymath} + MATHEMATICAL TEXT + \end{displaymath} + + Environment to typeset the MATHEMATICAL TEXT on its own line, in +display style and centered. To make the text be flush-left use the +global option 'fleqn'; see *note Document class options::. + + In the 'displaymath' environment no equation number is added to the +math text. One way to get an equation number is to use the 'equation' +environment (*note equation::). + + LaTeX will not break the MATH TEXT across lines. + + Note that the 'amsmath' package has significantly more extensive +displayed equation facilities. For example, there are a number of ways +in that package for having math text broken across lines. + + The construct '\[MATH\]' is a synonym for the environment +'\begin{displaymath} MATH \end{displaymath}' but the latter is easier to +work with in the source; for instance, searching for a square bracket +may get false positives but the word 'displaymath' will likely be +unique. + + (Aside: The construct '$$MATH$$' from Plain TeX is sometimes +mistakenly used as a synonym for 'displaymath'. It is not a synonym, +and is not officially supported in LaTeX at all; '$$' doesn't support +the 'fleqn' option (*note Document class options::), has different +vertical spacing, and doesn't perform consistency checks.) + + The output from this example is centered and alone on its line. + + \begin{displaymath} + \int_1^2 x^2\,dx=7/3 + \end{displaymath} + +Also, the integral sign is larger than the inline version '\( \int_1^2 +x^2\,dx=7/3 \)' produces. + + +File: latex2e.info, Node: document, Next: enumerate, Prev: displaymath, Up: Environments + +8.6 'document' +============== + +The 'document' environment encloses the entire body of a document. It +is required in every LaTeX document. *Note Starting and ending::. + +* Menu: + +* \AtBeginDocument:: Hook for commands at the start of the document. +* \AtEndDocument:: Hook for commands at the end of the document. + + +File: latex2e.info, Node: \AtBeginDocument, Next: \AtEndDocument, Up: document + +8.6.1 '\AtBeginDocument' +------------------------ + +Synopsis: + + \AtBeginDocument{CODE} + + Save CODE and execute it when '\begin{document}' is executed, at the +very end of the preamble. The code is executed after the font selection +tables have been set up, so the normal font for the document is the +current font. However, the code is executed as part of the preamble so +you cannot do any typesetting with it. + + You can issue this command more than once; the successive code lines +will be executed in the order that you gave them. + + +File: latex2e.info, Node: \AtEndDocument, Prev: \AtBeginDocument, Up: document + +8.6.2 '\AtEndDocument' +---------------------- + +Synopsis: + + \AtEndDocument{CODE} + + Save CODE and execute it near the end of the document. Specifically, +it is executed when '\end{document}' is executed, before the final page +is finished and before any leftover floating environments are processed. +If you want some of the code to be executed after these two processes +then include a '\clearpage' at the appropriate point in CODE. + + You can issue this command more than once; the successive code lines +will be executed in the order that you gave them. + + +File: latex2e.info, Node: enumerate, Next: eqnarray, Prev: document, Up: Environments + +8.7 'enumerate' +=============== + +Synopsis: + + \begin{enumerate} + \item[OPTIONAL LABEL OF FIRST ITEM] TEXT OF FIRST ITEM + \item[OPTIONAL LABEL OF SECOND ITEM] TEXT OF SECOND ITEM + ... + \end{enumerate} + + Environment to produce a numbered list of items. The format of the +label numbering depends on the nesting level of this environment; see +below. The default top-level numbering is '1.', '2.', etc. Each +'enumerate' list environment must have at least one item; having none +causes the LaTeX error 'Something's wrong--perhaps a missing \item'. + + This example gives the first two finishers in the 1908 Olympic +marathon. As a top-level list the labels would come out as '1.' and +'2.'. + + \begin{enumerate} + \item Johnny Hayes (USA) + \item Charles Hefferon (RSA) + \end{enumerate} + + Start list items with the '\item' command (*note \item::). If you +give '\item' an optional argument by following it with square brackets, +as in '\item[Interstitial label]', then the next item will continue the +interrupted sequence (*note \item::). That is, you will get labels like +'1.', then 'Interstitial label', then '2.'. Following the '\item' is +optional text, which may contain multiple paragraphs. + + Enumerations may be nested within other 'enumerate' environments, or +within any paragraph-making environment such as 'itemize' (*note +itemize::), up to four levels deep. This gives LaTeX's default for the +format at each nesting level, where 1 is the top level, the outermost +level. + + 1. arabic number followed by a period: '1.', '2.', ... + 2. lowercase letter inside parentheses: '(a)', '(b)' ... + 3. lowercase roman numeral followed by a period: 'i.', 'ii.', ... + 4. uppercase letter followed by a period: 'A.', 'B.', ... + + The 'enumerate' environment uses the counters '\enumi' through +'\enumiv' (*note Counters::). + + For other major LaTeX labeled list environments, see *note +description:: and *note itemize::. For information about list layout +parameters, including the default values, and for information about +customizing list layout, see *note list::. The package 'enumitem' is +useful for customizing lists. + + To change the format of the label use '\renewcommand' (*note +\newcommand & \renewcommand::) on the commands '\labelenumi' through +'\labelenumiv'. For instance, this first level list will be labelled +with uppercase letters, in boldface, and without a trailing period. + + \renewcommand{\labelenumi}{\textbf{\Alph{enumi}}} + \begin{enumerate} + \item Shows as boldface A + \item Shows as boldface B + \end{enumerate} + + For a list of counter-labeling commands see *note \alph \Alph \arabic +\roman \Roman \fnsymbol::. + + +File: latex2e.info, Node: eqnarray, Next: equation, Prev: enumerate, Up: Environments + +8.8 'eqnarray' +============== + +The 'eqnarray' environment is obsolete. It has infelicities, including +spacing that is inconsistent with other mathematics elements. (See +"Avoid eqnarray!" by Lars Madsen +<https://tug.org/TUGboat/tb33-1/tb103madsen.pdf>). New documents should +include the 'amsmath' package and use the displayed mathematics +environments provided there, such as the 'align' environment. We +include a description only for completeness and for working with old +documents. + + Synopsis: + + \begin{eqnarray} + FIRST FORMULA LEFT &FIRST FORMULA MIDDLE &FIRST FORMULA RIGHT \\ + ... + \end{eqnarray} + +or + + \begin{eqnarray*} + FIRST FORMULA LEFT &FIRST FORMULA MIDDLE &FIRST FORMULA RIGHT \\ + ... + \end{eqnarray*} + + Display a sequence of equations or inequalities. The left and right +sides are typeset in display mode, while the middle is typeset in text +mode. + + It is similar to a three-column 'array' environment, with items +within a row separated by an ampersand ('&'), and with rows separated by +double backslash '\\'). The starred form of line break ('\\*') can +also be used to separate equations, and will disallow a page break there +(*note \\::). + + The unstarred form 'eqnarray' places an equation number on every line +(using the 'equation' counter), unless that line contains a '\nonumber' +command. The starred form 'eqnarray*' omits equation numbering, while +otherwise being the same. + + The command '\lefteqn' is used for splitting long formulas across +lines. It typesets its argument in display style flush left in a box of +zero width. + + This example shows three lines. The first two lines make an +inequality, while the third line has not entry on the left side. + + \begin{eqnarray*} + \lefteqn{x_1+x_2+\cdots+x_n} \\ + &\leq &y_1+y_2+\cdots+y_n \\ + &= &z+y_3+\cdots+y_n + \end{eqnarray*} + + +File: latex2e.info, Node: equation, Next: figure, Prev: eqnarray, Up: Environments + +8.9 'equation' +============== + +Synopsis: + + \begin{equation} + MATHEMATICAL TEXT + \end{equation} + + The same as a 'displaymath' environment (*note displaymath::) except +that LaTeX puts an equation number flush to the right margin. The +equation number is generated using the 'equation' counter. + + You should have no blank lines between '\begin{equation}' and +'\begin{equation}', or LaTeX will tell you that there is a missing +dollar sign. + + The package 'amsmath' package has extensive displayed equation +facilities. New documents should include this package. + + +File: latex2e.info, Node: figure, Next: filecontents, Prev: equation, Up: Environments + +8.10 'figure' +============= + +Synopsis: + + \begin{figure}[PLACEMENT] + FIGURE BODY + \caption[LOFTITLE]{TITLE} % optional + \label{LABEL} % optional + \end{figure} + +or: + + \begin{figure*}[PLACEMENT] + FIGURE BODY + \caption[LOFTITLE]{TITLE} % optional + \label{LABEL} % optional + \end{figure*} + + Figures are for material that is not part of the normal text. An +example is material that you cannot have split between two pages, such +as a graphic. Because of this, LaTeX does not typeset figures in +sequence with normal text but instead "floats" them to a convenient +place, such as the top of a following page (*note Floats::). + + The FIGURE BODY can consist of imported graphics (*note Graphics::), +or text, LaTeX commands, etc. It is typeset in a 'parbox' of width +'\textwidth'. + + The possible values of PLACEMENT are 'h' for 'here', 't' for 'top', +'b' for 'bottom', and 'p' for 'on a separate page of floats'. For the +effect of these options on the float placement algorithm, see *note +Floats::. + + The starred form 'figure*' is used when a document is in +double-column mode (*note \twocolumn::). It produces a figure that +spans both columns, at the top of the page. To add the possibility of +placing at a page bottom see the discussion of PLACEMENT 'b' in *note +Floats::. + + The label is optional; it is used for cross references (*note Cross +references::). The optional '\caption' command specifies caption text +for the figure (*note \caption::). By default it is numbered. If +LOFTITLE is present, it is used in the list of figures instead of TITLE +(*note Table of contents etc.::). + + This example makes a figure out of a graphic. LaTeX will place that +graphic and its caption at the top of a page or, if it is pushed to the +end of the document, on a page of floats. + + \usepackage{graphicx} % in preamble + ... + \begin{figure}[t] + \centering + \includegraphics[width=0.5\textwidth]{CTANlion.png} + \caption{The CTAN lion, by Duane Bibby} + \end{figure} + + +File: latex2e.info, Node: filecontents, Next: flushleft, Prev: figure, Up: Environments + +8.11 'filecontents' +=================== + +Synopsis: + + \begin{filecontents}[OPTION]{FILENAME} + TEXT + \end{filecontents} + +or + + \begin{filecontents*}[OPTION]{FILENAME} + TEXT + \end{filecontents*} + + Create a file named FILENAME in the current directory (or the output +directory, if specified; *note output directory::) and write TEXT to it. +By default, an existing file is not overwritten. + + The unstarred version of the environment 'filecontents' prefixes the +content of the created file with a header of TeX comments; see the +example below. The starred version 'filecontents*' does not include the +header. + + The possible options are: + +'force' +'overwrite' + Overwrite an existing file. + +'noheader' + Omit the header. Equivalent to using 'filecontents*'. + +'nosearch' + Only check the current directory (and the output directory, if + specified) for an existing file, not the entire search path. + + These options were added in a 2019 release of LaTeX. + + This environment can be used anywhere in the preamble, although it +often appears before the '\documentclass' command. It is commonly used +to create a '.bib' or other such data file from the main document +source, to make the source file self-contained. Similarly, it can be +used to create a custom style or class file, again making the source +self-contained. + + For example, this document: + + \documentclass{article} + \begin{filecontents}{JH.sty} + \newcommand{\myname}{Jim Hef{}feron} + \end{filecontents} + \usepackage{JH} + \begin{document} + Article by \myname. + \end{document} + +produces this file 'JH.sty': + + %% LaTeX2e file `JH.sty' + %% generated by the `filecontents' environment + %% from source `test' on 2015/10/12. + %% + \newcommand{\myname}{Jim Hef{}feron} + + +File: latex2e.info, Node: flushleft, Next: flushright, Prev: filecontents, Up: Environments + +8.12 'flushleft' +================ + +Synopsis: + + \begin{flushleft} + LINE1 \\ + LINE2 \\ + ... + \end{flushleft} + + An environment that creates a paragraph whose lines are flush to the +left-hand margin, and ragged right. If you have lines that are too long +then LaTeX will linebreak them in a way that avoids hyphenation and +stretching or shrinking interword spaces. To force a new line use a +double backslash, '\\'. For the declaration form see *note +\raggedright::. + + This creates a box of text that is at most 3 inches wide, with the +text flush left and ragged right. + + \noindent\begin{minipage}{3in} + \begin{flushleft} + A long sentence that will be broken by \LaTeX{} + at a convenient spot. \\ + And, a fresh line forced by the double backslash. + \end{flushleft} + \end{minipage} + +* Menu: + +* \raggedright:: Declaration form of the 'flushleft' environment. + + +File: latex2e.info, Node: \raggedright, Up: flushleft + +8.12.1 '\raggedright' +--------------------- + +Synopses: + + {\raggedright ... } + +or + + \begin{ENVIRONMENT} \raggedright + ... + \end{ENVIRONMENT} + + A declaration which causes lines to be flush to the left margin and +ragged right. It can be used inside an ENVIRONMENT such as 'quote' or +in a 'parbox'. For the environment form see *note flushleft::. + + Unlike the 'flushleft' environment, the '\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 '\end' command that ends the +paragraph unit. + + Here '\raggedright' in each second column keeps LaTeX from doing very +awkward typesetting to fit the text into the narrow column. Note that +'\raggedright' is inside the curly braces '{...}' to delimit its effect. + + \begin{tabular}{rp{2in}} + Team alpha &{\raggedright This team does all the real work.} \\ + Team beta &{\raggedright This team ensures that the water + cooler is never empty.} \\ + \end{tabular} + + +File: latex2e.info, Node: flushright, Next: itemize, Prev: flushleft, Up: Environments + +8.13 'flushright' +================= + + \begin{flushright} + LINE1 \\ + LINE2 \\ + ... + \end{flushright} + + An environment that creates a paragraph whose lines are flush to the +right-hand margin and ragged left. If you have lines that are too long +to fit the margins then LaTeX will linebreak them in a way that avoids +hyphenation and stretching or shrinking inter-word spaces. To force a +new line use a double backslash, '\\'. For the declaration form +see *note \raggedleft::. + + For an example related to this environment, see *note flushleft::, +where one just have mutatis mutandis to replace 'flushleft' by +'flushright'. + +* Menu: + +* \raggedleft:: Declaration form of the 'flushright' environment. + + +File: latex2e.info, Node: \raggedleft, Up: flushright + +8.13.1 '\raggedleft' +-------------------- + +Synopses: + + {\raggedleft ... } + +or + + \begin{ENVIRONMENT} \raggedleft + ... + \end{ENVIRONMENT} + + A declaration which causes lines to be flush to the right margin and +ragged left. It can be used inside an ENVIRONMENT such as 'quote' or in +a 'parbox'. For the environment form see *note flushright::. + + Unlike the 'flushright' environment, the '\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 '\end' command that ends the +paragraph unit. + + For an example related to this environment, see *note \raggedright::, +where one just have mutatis mutandis to replace '\raggedright' by +'\raggedleft'. + + +File: latex2e.info, Node: itemize, Next: letter, Prev: flushright, Up: Environments + +8.14 'itemize' +============== + +Synopsis: + + \begin{itemize} + \item[OPTIONAL LABEL OF FIRST ITEM] TEXT OF FIRST ITEM + \item[OPTIONAL LABEL OF SECOND ITEM] TEXT OF SECOND ITEM + ... + \end{itemize} + + Produce an "unordered list", sometimes called a bullet list. There +must be at least one '\item' within the environment; having none causes +the LaTeX error 'Something's wrong--perhaps a missing \item'. + + This gives a two-item list. + + \begin{itemize} + \item Pencil and watercolor sketch by Cassandra + \item Rice portrait + \end{itemize} + +With the default locale--without loading e.g. 'babel' package with +another language than USenglish--as a top-level list each label would +come out as a bullet, *. The format of the labeling depends on the +nesting level; see below. + + Start list items with the '\item' command (*note \item::). If you +give '\item' an optional argument by following it with square brackets, +as in '\item[OPTIONAL LABEL]', then by default OPTIONAL LABEL will +appear in bold and be flush right, so it could extend into the left +margin. For labels that are flush left see the *note description:: +environment. Following the '\item' is the text of the item, which may +be empty or contain multiple paragraphs. + + Unordered lists can be nested within one another, up to four levels +deep. They can also be nested within other paragraph-making +environments, such as 'enumerate' (*note enumerate::). + + The 'itemize' environment uses the commands '\labelitemi' through +'\labelitemiv' to produce the default label (note the convention of +lowercase roman numerals at the end of the command names that signify +the nesting level). These are the default marks at each level. + + 1. * (bullet, from '\textbullet') + 2. -- (bold en-dash, from '\normalfont\bfseries\textendash') + 3. * (asterisk, from '\textasteriskcentered') + 4. . (vertically centered dot, rendered here as a period, from + '\textperiodcentered') + + Change the labels with '\renewcommand'. For instance, this makes the +first level use diamonds. + + \renewcommand{\labelitemi}{$\diamond$} + + The distance between the left margin of the enclosing environment and +the left margin of the 'itemize' list is determined by the parameters +'\leftmargini' through '\leftmarginvi'. (This also uses the convention +of using lowercase roman numerals a the end of the command name to +denote the nesting level.) The defaults are: '2.5em' in level 1 ('2em' +in two-column mode), '2.2em' in level 2, '1.87em' in level 3, and +'1.7em' in level 4, with smaller values for more deeply nested levels. + + For other major LaTeX labeled list environments, see *note +description:: and *note enumerate::. The 'itemize', 'enumerate' and +'description' environment use the same list layout parameters. For a +description, including the default values, and for information about +customizing list layout, see *note list::. The package 'enumitem' is +useful for customizing lists. + + This example greatly reduces the margin space for outermost itemized +lists. + + \setlength{\leftmargini}{1.25em} % default 2.5em + + Especially for lists with short items, it may be desirable to elide +space between items. Here is an example defining an 'itemize*' +environment with no extra spacing between items, or between paragraphs +within a single item ('\parskip' is not list-specific, *note \parindent +& \parskip::): + + \newenvironment{itemize*}% + {\begin{itemize}% + \setlength{\itemsep}{0pt}% + \setlength{\parsep}{0pt}}% + \setlength{\parskip}{0pt}}% + {\end{itemize}} + + +File: latex2e.info, Node: letter, Next: list, Prev: itemize, Up: Environments + +8.15 'letter' environment: writing letters +========================================== + +This environment is used for creating letters. *Note Letters::. + + +File: latex2e.info, Node: list, Next: math, Prev: letter, Up: Environments + +8.16 'list' +=========== + +Synopsis: + + \begin{list}{LABELING}{SPACING} + \item[OPTIONAL LABEL OF FIRST ITEM] TEXT OF FIRST ITEM + \item[OPTIONAL LABEL OF SECOND ITEM] TEXT OF SECOND ITEM + ... + \end{list} + + An environment for constructing lists. + + Note that this environment does not typically appear in the document +body. Most lists created by LaTeX authors are the ones that come +standard: the 'description', 'enumerate', and 'itemize' environments +(*note description::, *note enumerate::, and *note itemize::). + + Instead, the 'list' environment is most often used in macros. For +example, many standard LaTeX environments that do not immediately appear +to be lists are in fact constructed using 'list', including 'quotation', +'quote', and 'center' (*note quotation & quote::, *note center::). + + This uses the 'list' environment to define a new custom environment. + + \newcounter{namedlistcounter} % number the items + \newenvironment{named} + {\begin{list} + {Item~\Roman{namedlistcounter}.} % labeling + {\usecounter{namedlistcounter} % set counter + \setlength{\leftmargin}{3.5em}} % set spacing + } + {\end{list}} + + \begin{named} + \item Shows as ``Item~I.'' + \item[Special label.] Shows as ``Special label.'' + \item Shows as ``Item~II.'' + \end{named} + + The mandatory first argument LABELING specifies the default labeling +of list items. It can contain text and LaTeX commands, as above where +it contains both 'Item' and '\Roman{...}'. LaTeX forms the label by +putting the LABELING argument in a box of width '\labelwidth'. If the +label is wider than that, the additional material extends to the right. +When making an instance of a 'list' you can override the default +labeling by giving '\item' an optional argument by including square +braces and the text, as in the above '\item[Special label.]'; *note +\item::. + + The mandatory second argument SPACING has a list of commands. This +list can be empty. A command that can go in here is +'\usecounter{COUNTERNAME}' (*note \usecounter::). Use this to tell +LaTeX to number the items using the given counter. The counter will be +reset to zero each time LaTeX enters the environment, and the counter is +incremented by one each time LaTeX encounters an '\item' that does not +have an optional argument. + + Another command that can go in SPACING is '\makelabel', which +constructs the label box. By default it puts the contents flush right. +Its only argument is the label, which it typesets in LR mode (*note +Modes::). One example of changing its definition is that to the above +'named' example, before the definition of the environment add +'\newcommand{\namedmakelabel}[1]{\textsc{#1}}', and between the +'\setlength' command and the parenthesis that closes the SPACING +argument also add '\let\makelabel\namedmakelabel'. Then the labels will +be typeset in small caps. Similarly, changing the second code line to +'\let\makelabel\fbox' puts the labels inside a framed box. Another +example of the '\makelabel' command is below, in the definition of the +'redlabel' environment. + + Also often in SPACING are commands to redefine the spacing for the +list. Below are the spacing parameters with their default values. +(Default values for derived environments such as 'itemize' can be +different than the values shown here.) See also the figure that follows +the list. Each is a length (*note Lengths::). The vertical spaces are +normally rubber lengths, with 'plus' and 'minus' components, to give TeX +flexibility in setting the page. Change each with a command such as +'\setlength{itemsep}{2pt plus1pt minus1pt}'. For some effects these +lengths should be zero or negative. + +'\itemindent' + Extra horizontal space indentation, beyond 'leftmargin', of the + first line each item. Its default value is '0pt'. + +'\itemsep' + Vertical space between items, beyond the '\parsep'. The defaults + for the first three levels in LaTeX's 'article', 'book', and + 'report' classes at 10 point size are: '4pt plus2pt minus1pt', + '\parsep' (that is, '2pt plus1pt minus1pt'), and '\topsep' (that + is, '2pt plus1pt minus1pt'). The defaults at 11 point are: '4.5pt + plus2pt minus1pt', '\parsep' (that is, '2pt plus1pt minus1pt'), and + '\topsep' (that is, '2pt plus1pt minus1pt'). The defaults at 12 + point are: '5pt plus2.5pt minus1pt', '\parsep' (that is, '2.5pt + plus1pt minus1pt'), and '\topsep' (that is, '2.5pt plus1pt + minus1pt'). + +'\labelsep' + Horizontal space between the label and text of an item. The + default for LaTeX's 'article', 'book', and 'report' classes is + '0.5em'. + +'\labelwidth' + Horizontal width. The box containing the label is nominally this + wide. If '\makelabel' returns text that is wider than this then + the first line of the item will be indented to make room for this + extra material. If '\makelabel' returns text of width less than or + equal to '\labelwidth' then LaTeX's default is that the label is + typeset flush right in a box of this width. + + The left edge of the label box is + '\leftmargin'+'\itemindent'-'\labelsep'-'\labelwidth' from the left + margin of the enclosing environment. + + The default for LaTeX's 'article', 'book', and 'report' classes at + the top level is '\leftmargini'-'\labelsep', (which is '2em' in one + column mode and '1.5em' in two column mode). At the second level + it is '\leftmarginii'-'\labelsep', and at the third level it is + '\leftmarginiii'-'\labelsep'. These definitions make the label's + left edge coincide with the left margin of the enclosing + environment. + +'\leftmargin' + Horizontal space between the left margin of the enclosing + environment (or the left margin of the page if this is a top-level + list), and the left margin of this list. It must be non-negative. + + In the standard LaTeX document classes, a top-level list has this + set to the value of '\leftmargini', while a list that is nested + inside a top-level list has this margin set to '\leftmarginii'. + More deeply nested lists get the values of '\leftmarginiii' through + '\leftmarginvi'. (Nesting greater than level five generates the + error message 'Too deeply nested'.) + + The defaults for the first three levels in LaTeX's 'article', + 'book', and 'report' classes are: '\leftmargini' is '2.5em' (in two + column mode, '2em'), '\leftmarginii' is '2.2em', and + '\leftmarginiii' is '1.87em'. + +'\listparindent' + Horizontal space of additional line indentation, beyond + '\leftmargin', for second and subsequent paragraphs within a list + item. A negative value makes this an "outdent". Its default value + is '0pt'. + +'\parsep' + Vertical space between paragraphs within an item. The defaults for + the first three levels in LaTeX's 'article', 'book', and 'report' + classes at 10 point size are: '4pt plus2pt minus1pt', '2pt plus1pt + minus1pt', and '0pt'. The defaults at 11 point size are: '4.5pt + plus2pt minus1pt', '2pt plus1pt minus1pt', and '0pt'. The defaults + at 12 point size are: '5pt plus2.5pt minus1pt', '2.5pt plus1pt + minus1pt', and '0pt'. + +'\partopsep' + Vertical space added, beyond '\topsep'+'\parskip', to the top and + bottom of the entire environment if the list instance is preceded + by a blank line. (A blank line in the LaTeX source before the list + changes spacing at both the top and bottom of the list; whether the + line following the list is blank does not matter.) + + The defaults for the first three levels in LaTeX's 'article', + 'book', and 'report' classes at 10 point size are: '2pt plus1 + minus1pt', '2pt plus1pt minus1pt', and '1pt plus0pt minus1pt'. The + defaults at 11 point are: '3pt plus1pt minus1pt', '3pt plus1pt + minus1pt', and '1pt plus0pt minus1pt'). The defaults at 12 point + are: '3pt plus2pt minus3pt', '3pt plus2pt minus2pt', and '1pt + plus0pt minus1pt'. + +'\rightmargin' + Horizontal space between the right margin of the list and the right + margin of the enclosing environment. Its default value is '0pt'. + It must be non-negative. + +'\topsep' + Vertical space added to both the top and bottom of the list, in + addition to '\parskip' (*note \parindent & \parskip::). The + defaults for the first three levels in LaTeX's 'article', 'book', + and 'report' classes at 10 point size are: '8pt plus2pt minus4pt', + '4pt plus2pt minus1pt', and '2pt plus1pt minus1pt'. The defaults + at 11 point are: '9pt plus3pt minus5pt', '4.5pt plus2pt minus1pt', + and '2pt plus1pt minus1pt'. The defaults at 12 point are: '10pt + plus4pt minus6pt', '5pt plus2.5pt minus1pt', and '2.5pt plus1pt + minus1pt'. + + This shows the horizontal and vertical distances. + + +..............Surrounding environment, preceding material.............. - + | v0 + |---h0--|-h1-| | + ..Label.. .....First item..................................... - + ............................................................ + ............................................................ - + | v1 + ........First item, second paragraph .................. - + |-h2-| | v2 + | + ..Label.. .....Second item.................................... - + ............................................................ + ............................................................ - +|-h3--|-h4-| |-h5-| |v3 + | +..............Surrounding environment, following material.............. - +......................................................................." + + + The lengths shown are listed below. The key relationship is that the +right edge of the bracket for H1 equals the right edge of the bracket +for H4, so that the left edge of the label box is at H3+H4-(H0+H1). + +V0 + '\topsep' + '\parskip' if the list environment does not start a new + paragraph, and '\topsep'+'\parskip'+'\partopsep' if it does + +V1 + '\parsep' + +V2 + '\itemsep'+'\parsep' + +V3 + Same as V0. (This space is affected by whether a blank line + appears in the source above the environment; whether a blank line + appears in the source below the environment does not matter.) + +H0 + '\labelwidth' + +H1 + '\labelsep' + +H2 + '\listparindent' + +H3 + '\leftmargin' + +H4 + '\itemindent' + +H5 + '\rightmargin' + + The list's left and right margins, shown above as H3 and H5, are with +respect to the ones provided by the surrounding environment, or with +respect to the page margins for a top-level list. The line width used +for typesetting the list items is '\linewidth' (*note Page layout +parameters::). For instance, set the list's left margin to be one +quarter of the distance between the left and right margins of the +enclosing environment with '\setlength{\leftmargin}{0.25\linewidth}'. + + Page breaking in a list structure is controlled by the three +parameters below. For each, the LaTeX default is '-\@lowpenalty', that +is, '-51'. Because it is negative, it somewhat encourages a page break +at each spot. Change it with, e.g., '\@beginparpenalty=9999'; a value +of 10000 prohibits a page break. + +'\@beginparpenalty' + The page breaking penalty for breaking before the list (default + '-51'). + +'\@itempenalty' + The page breaking penalty for breaking before a list item (default + '-51'). + +'\@endparpenalty' + The page breaking penalty for breaking after a list (default + '-51'). + + The package 'enumitem' is useful for customizing lists. + + This example has the labels in red. They are numbered, and the left +edge of the label lines up with the left edge of the item text. *Note +\usecounter::. + + \usepackage{color} + \newcounter{cnt} + \newcommand{\makeredlabel}[1]{\textcolor{red}{#1.}} + \newenvironment{redlabel} + {\begin{list} + {\arabic{cnt}} + {\usecounter{cnt} + \setlength{\labelwidth}{0em} + \setlength{\labelsep}{0.5em} + \setlength{\leftmargin}{1.5em} + \setlength{\itemindent}{0.5em} % equals \labelwidth+\labelsep + \let\makelabel=\makeredlabel + } + } + {\end{list}} + +* Menu: + +* \item:: An entry in a list. +* trivlist:: A restricted form of 'list'. + + +File: latex2e.info, Node: \item, Next: trivlist, Up: list + +8.16.1 '\item': An entry in a list +---------------------------------- + +Synopsis: + + \item text of item + +or + + \item[OPTIONAL-LABEL] text of item + + An entry in a list. The entries are prefixed by a label, whose +default depends on the list type. + + Because the optional label is surrounded by square brackets '[...]', +if you have an item whose text starts with [, you have to hide the +bracket inside curly braces, as in: '\item {[} is an open square +bracket'; otherwise, LaTeX will think it marks the start of an optional +label. + + Similarly, if the item does have the optional label and you need a +close square bracket inside that label, you must hide it in the same +way: '\item[Close square bracket, {]}]'. *Note LaTeX command syntax::. + + In this example the enumerate list has two items that use the default +label and one that uses the optional label. + + \begin{enumerate} + \item Moe + \item[sometimes] Shemp + \item Larry + \end{enumerate} + + The first item is labelled '1.', the second item is labelled +'sometimes', and the third item is labelled '2.'. Because of the +optional label in the second item, the third item is not labelled '3.'. + + +File: latex2e.info, Node: trivlist, Prev: \item, Up: list + +8.16.2 'trivlist': A restricted form of 'list' +---------------------------------------------- + +Synopsis: + + \begin{trivlist} + ... + \end{trivlist} + + A restricted version of the list environment, in which margins are +not indented and an '\item' without an optional argument produces no +text. It is most often used in macros, to define an environment where +the '\item' command is part of the environment's definition. For +instance, the 'center' environment is defined essentially like this: + + \newenvironment{center} + {\begin{trivlist}\centering\item\relax} + {\end{trivlist}} + + Using 'trivlist' in this way allows the macro to inherit some common +code: combining vertical space of two adjacent environments; detecting +whether the text following the environment should be considered a new +paragraph or a continuation of the previous one; adjusting the left and +right margins for possible nested list environments. + + Specifically, 'trivlist' uses the current values of the list +parameters (*note list::), except that '\parsep' is set to the value of +'\parskip', and '\leftmargin', '\labelwidth', and '\itemindent' are set +to zero. + + This example outputs the items as two paragraphs, except that (by +default) they have no paragraph indent and are vertically separated. + + \begin{trivlist} + \item The \textit{Surprise} is not old; no one would call her old. + \item She has a bluff bow, lovely lines. + \end{trivlist} + + +File: latex2e.info, Node: math, Next: minipage, Prev: list, Up: Environments + +8.17 'math' +=========== + +Synopsis: + + \begin{math} + MATH + \end{math} + + The 'math' environment inserts given MATH material within the running +text. '\(...\)' and '$...$' are synonyms. *Note Math formulas::. + + +File: latex2e.info, Node: minipage, Next: picture, Prev: math, Up: Environments + +8.18 'minipage' +=============== + +Synopses: + + \begin{minipage}{WIDTH} + CONTENTS + \end{minipage} + +or + + \begin{minipage}[POSITION][HEIGHT][INNER-POS]{WIDTH} + CONTENTS + \end{minipage} + + Put CONTENTS into a box that is WIDTH wide. This is like a small +version of a page; it can contain its own footnotes, itemized lists, +etc. (There are some restrictions, including that it cannot have +floats.) This box will not be broken across pages. So 'minipage' is +similar to '\parbox' (*note \parbox::) but here you can have paragraphs. + + This example will be 3 inches wide, and has two paragraphs. + + \begin{minipage}{3in} + Stephen Kleene was a founder of the Theory of Computation. + + He was a student of Church, wrote three influential texts, + was President of the Association for Symbolic Logic, + and won the National Medal of Science. + \end{minipage} + +See below for a discussion of the paragraph indent inside a 'minipage'. + + The required argument WIDTH is a rigid length (*note Lengths::). It +gives the width of the box into which CONTENTS are typeset. + + There are three optional arguments, POSITION, HEIGHT, and INNER-POS. +You need not include all three. For example, get the default POSITION +and set the HEIGHT with '\begin{minipage}[c][2.54cm]{\columnwidth} +CONTENTS \end{minipage}'. (Get the natural height with an empty +argument, '[]'.) + + The optional argument POSITION governs how the 'minipage' vertically +aligns with the surrounding material. + +'c' + (synonym 'm') Default. Positions the 'minipage' so its vertical + center lines up with the center of the adjacent text line. + +'t' + Align the baseline of the top line in the 'minipage' with the + baseline of the surrounding text (plain TeX's '\vtop'). + +'b' + Align the baseline of the bottom line in the 'minipage' with the + baseline of the surrounding text (plain TeX's '\vbox'). + + To see the effects of these, contrast running this + + ---\begin{minipage}[c]{0.25in} + first\\ second\\ third + \end{minipage} + +with the results of changing 'c' to 'b' or 't'. + + The optional argument HEIGHT is a rigid length (*note Lengths::). It +sets the height of the 'minipage'. You can enter any value larger than, +or equal to, or smaller than the 'minipage''s natural height and LaTeX +will not give an error or warning. You can also set it to a height of +zero or a negative value. + + The final optional argument INNER-POS controls the placement of +CONTENTS inside the box. These are the possible values are (the default +is the value of POSITION). + +'t' + Place CONTENTS at the top of the box. + +'c' + Place it in the vertical center. + +'b' + Place it at the box bottom. + +'s' + Stretch CONTENTS out vertically; it must contain vertically + stretchable space. + + The INNER-POS argument makes sense when the HEIGHT option is set to a +value larger than the 'minipage''s natural height. To see the effect of +the options, run this example with the various choices in place of 'b'. + + Text before + \begin{center} + ---\begin{minipage}[c][3in][b]{0.25\textwidth} + first\\ second\\ third + \end{minipage} + \end{center} + Text after + + By default paragraphs are not indented in a 'minipage'. Change that +with a command such as '\setlength{\parindent}{1pc}' at the start of +CONTENTS. + + Footnotes in a 'minipage' environment are handled in a way that is +particularly useful for putting footnotes in figures or tables. A +'\footnote' or '\footnotetext' command puts the footnote at the bottom +of the minipage instead of at the bottom of the page, and it uses the +'\mpfootnote' counter instead of the ordinary 'footnote' counter (*note +Counters::). + + This puts the footnote at the bottom of the table, not the bottom of +the page. + + \begin{center} % center the minipage on the line + \begin{minipage}{2.5in} + \begin{center} % center the table inside the minipage + \begin{tabular}{ll} + \textsc{Monarch} &\textsc{Reign} \\ \hline + Elizabeth II &63 years\footnote{to date} \\ + Victoria &63 years \\ + George III &59 years + \end{tabular} + \end{center} + \end{minipage} + \end{center} + + If you nest minipages then there is an oddness when using footnotes. +Footnotes appear at the bottom of the text ended by the next +'\end{minipage}' which may not be their logical place. + + This puts a table containing data side by side with a map graphic. +They are vertically centered. + + % siunitx to have the S column specifier, + % which aligns numbers on their decimal point. + \usepackage{siunitx} + \newcommand*{\vcenteredhbox}[1]{\begin{tabular}{@{}c@{}}#1\end{tabular}} + ... + \begin{center} + \vcenteredhbox{\includegraphics[width=0.3\textwidth]{nyc.png}} + \hspace{0.1\textwidth} + \begin{minipage}{0.5\textwidth} + \begin{tabular}{r|S} + % \multicolumn to remove vertical bar between column headers + \multicolumn{1}{r}{Borough} & + % braces to prevent siunitx from misinterpreting the + % period as a decimal separator + {Pop. (million)} \\ \hline + The Bronx &1.5 \\ + Brooklyn &2.6 \\ + Manhattan &1.6 \\ + Queens &2.3 \\ + Staten Island &0.5 + \end{tabular} + \end{minipage} + \end{center} + + +File: latex2e.info, Node: picture, Next: quotation & quote, Prev: minipage, Up: Environments + +8.19 'picture' +============== + +Synopses: + \begin{picture}(WIDTH,HEIGHT) + PICTURE COMMAND + \end{picture} + +or + + \begin{picture}(WIDTH,HEIGHT)(XOFFSET,YOFFSET) + PICTURE COMMAND + \end{picture} + +Where there may be any number of PICTURE COMMAND's. + + An environment to create simple pictures containing lines, arrows, +boxes, circles, and text. This environment is not obsolete, but new +documents typically use much more powerful graphics creation systems, +such as TikZ, PSTricks, MetaPost, or Asymptote. None of these are +covered in this document; see CTAN. + + To start, here's an example showing the parallelogram law for adding +vectors. + + \setlength{\unitlength}{1cm} + \begin{picture}(6,6) % picture box will be 6cm wide by 6cm tall + \put(0,0){\vector(2,1){4}} % for every 2 over this vector goes 1 up + \put(2,1){\makebox(0,0)[l]{\ first leg}} + \put(4,2){\vector(1,2){2}} + \put(5,4){\makebox(0,0)[l]{\ second leg}} + \put(0,0){\vector(1,1){6}} + \put(3,3){\makebox(0,0)[r]{sum\ }} + \end{picture} + + The 'picture' environment has one required argument, a pair of +positive real numbers (WIDTH,HEIGHT). Multiply these by the value +'\unitlength' to get the nominal size of the output, i.e. the space that +LaTeX reserves on the output page. This nominal size need not be how +large the picture really is; LaTeX will draw things from the picture +outside the picture's box. + + This environment also has an optional argument (XOFFSET,YOFFSET). It +is used to shift the origin. Unlike most optional arguments, this one +is not contained in square brackets. As with the required argument, it +consists of a pair of two real numbers, but these may also be negative +or null. Multiply these by '\unitlength' to get the coordinates of the +point at the lower-left corner of the picture. + + For example, if '\unitlength' has been set to '1mm', the command + + \begin{picture}(100,200)(10,20) + +produces a box of width 100 millimeters and height 200 millimeters. The +picture's origin is the point (10mm,20mm) and so the lower-left corner +is there, and the upper-right corner is at (110mm,220mm). When you +first draw a picture you typically omit the optional argument, leaving +the origin at the lower-left corner. If you then want to modify your +picture by shifting everything, you can just add the appropriate +optional argument. + + Each PICTURE COMMAND tells LaTeX where to put something by providing +its position. A "position" is a pair such as '(2.4,-5)' giving the x- +and y-coordinates. A "coordinate" is a not a length, it is a real +number (it may have a decimal point or a minus sign). It specifies a +length in multiples of the unit length '\unitlength', so if +'\unitlength' has been set to '1cm', then the coordinate '2.54' +specifies a length of 2.54 centimeters. + + LaTeX's default for '\unitlength' is '1pt'. It is a rigid length +(*note Lengths::). Change it with the '\setlength' command (*note +\setlength::). Make this change only outside of a 'picture' +environment. + + The 'picture' environment supports using standard arithmetic +expressions as well as numbers. + + Coordinates are given with respect to an origin, which is by default +at the lower-left corner of the picture. Note that when a position +appears as an argument, as with '\put(1,2){...}', it is not enclosed in +braces since the parentheses serve to delimit the argument. Also, +unlike in some computer graphics systems, larger y-coordinates are +further up the page, for example, y = 1 is _above_ y = 0. + + There are four ways to put things in a picture: '\put', '\multiput', +'\qbezier', and '\graphpaper'. The most often used is '\put'. This + + \put(11.3,-0.3){...} + +places the object with its reference point at coordinates (11.3,-0.3). +The reference points for various objects will be described below. The +'\put' command creates an "LR box" (*note Modes::). Anything that can +go in an '\mbox' (*note \mbox & \makebox::) can go in the text argument +of the '\put' command. The reference point will be the lower left +corner of the box. In this picture + + \setlength{\unitlength}{1cm} + ...\begin{picture}(1,1) + \put(0,0){\line(1,0){1}} + \put(0,0){\line(1,1){1}} + \end{picture} + +the three dots are just slightly left of the point of the angle formed +by the two lines. (Also, '\line(1,1){1}' does not call for a line of +length one; rather the line has a change in the x coordinate of 1.) + + The '\multiput', 'qbezier', and 'graphpaper' commands are described +below. + + You can also use this environment to place arbitrary material at an +exact location. For example: + + \usepackage{color,graphicx} % in preamble + ... + \begin{center} + \setlength{\unitlength}{\textwidth} + \begin{picture}(1,1) % leave space, \textwidth wide and tall + \put(0,0){\includegraphics[width=\textwidth]{desertedisland.jpg}} + \put(0.25,0.35){\textcolor{red}{X Treasure here}} + \end{picture} + \end{center} + +The red X will be precisely a quarter of the '\textwidth' from the left +margin, and '0.35\textwidth' up from the bottom of the picture. Another +example of this usage is to put similar code in the page header to get +repeat material on each of a document's pages. + +* Menu: + +* \put:: Place an object at a specified place. +* \multiput:: Draw multiple instances of an object. +* \qbezier:: Draw a quadratic Bézier curve. +* \graphpaper:: Draw graph paper. +* \line:: Draw a straight line. +* \linethickness:: Set thickness of horizontal and vertical lines. +* \thinlines:: The default line thickness. +* \thicklines:: A heavier line thickness. +* \circle:: Draw a circle. +* \oval:: Draw an oval. +* \shortstack:: Make a stack of objects. +* \vector:: Draw a line with an arrow. +* \makebox (picture):: Draw a box of the specified size. +* \framebox (picture):: Draw a box with a frame around it. +* \frame:: Draw a frame around an object. +* \dashbox:: Draw a dashed box. + + +File: latex2e.info, Node: \put, Next: \multiput, Up: picture + +8.19.1 '\put' +------------- + +Synopsis: + + \put(XCOORD,YCOORD){CONTENT} + + Place CONTENT at the coordinate (XCOORD,YCOORD). See the discussion +of coordinates and '\unitlength' in *note picture::. The CONTENT is +processed in LR mode (*note Modes::) so it cannot contain line breaks. + + This includes the text into the 'picture'. + + \put(4.5,2.5){Apply the \textit{unpoke} move} + + The reference point, the location (4.5,2.5), is the lower left of the +text, at the bottom left of the 'A'. + + +File: latex2e.info, Node: \multiput, Next: \qbezier, Prev: \put, Up: picture + +8.19.2 '\multiput' +------------------ + +Synopsis: + + \multiput(X,Y)(DELTA_X,DELTA_Y){NUM-COPIES}{OBJ} + + Copy OBJ a total of NUM-COPIES times, with an increment of +DELTA_X,DELTA_Y. The OBJ first appears at position (x,y), then at +(x+\delta_x,y+\delta_y), and so on. + + This draws a simple grid with every fifth line in bold (see also +*note \graphpaper::). + + \begin{picture}(10,10) + \linethickness{0.05mm} + \multiput(0,0)(1,0){10}{\line(0,1){10}} + \multiput(0,0)(0,1){10}{\line(1,0){10}} + \linethickness{0.5mm} + \multiput(0,0)(5,0){3}{\line(0,1){10}} + \multiput(0,0)(0,5){3}{\line(1,0){10}} + \end{picture} + + +File: latex2e.info, Node: \qbezier, Next: \graphpaper, Prev: \multiput, Up: picture + +8.19.3 '\qbezier' +----------------- + +Synopsis: + + \qbezier(X1,Y1)(X2,Y2)(X3,Y3) + \qbezier[NUM](X1,Y1)(X2,Y2)(X3,Y3) + + Draw a quadratic Bezier curve whose control points are given by the +three required arguments '(X1,Y1)', '(X2,Y2)', and '(X3,Y3)'. That is, +the curve runs from (X1,Y1) to (X3,Y3), is quadratic, and is such that +the tangent line at (X1,Y1) passes through (X2,Y2), as does the tangent +line at (X3,Y3). + + This draws a curve from the coordinate (1,1) to (1,0). + + \qbezier(1,1)(1.25,0.75)(1,0) + +The curve's tangent line at (1,1) contains (1.25,0.75), as does the +curve's tangent line at (1,0). + + The optional argument NUM gives the number of calculated intermediate +points. The default is to draw a smooth curve whose maximum number of +points is '\qbeziermax' (change this value with '\renewcommand'). + + This draws a rectangle with a wavy top, using '\qbezier' for that +curve. + + \begin{picture}(8,4) + \put(0,0){\vector(1,0){8}} % x axis + \put(0,0){\vector(0,1){4}} % y axis + \put(2,0){\line(0,1){3}} % left side + \put(4,0){\line(0,1){3.5}} % right side + \qbezier(2,3)(2.5,2.9)(3,3.25) + \qbezier(3,3.25)(3.5,3.6)(4,3.5) + \thicklines % below here, lines are twice as thick + \put(2,3){\line(4,1){2}} + \put(4.5,2.5){\framebox{Trapezoidal Rule}} + \end{picture} + + +File: latex2e.info, Node: \graphpaper, Next: \line, Prev: \qbezier, Up: picture + +8.19.4 '\graphpaper' +-------------------- + +Synopsis: + + \graphpaper(X_INIT,Y_INIT)(X_DIMEN,Y_DIMEN) + \graphpaper[SPACING](X_INIT,Y_INIT)(X_DIMEN,Y_DIMEN) + + Draw a coordinate grid. Requires the 'graphpap' package. The grid's +origin is '(X_INIT,Y_INIT)'. Grid lines come every SPACING units (the +default is 10). The grid extends X_DIMEN units to the right and Y_DIMEN +units up. All arguments must be positive integers. + + This make a grid with seven vertical lines and eleven horizontal +lines. + + \usepackage{graphpap} % in preamble + ... + \begin{picture}(6,20) % in document body + \graphpaper[2](0,0)(12,20) + \end{picture} + +The lines are numbered every ten units. + + +File: latex2e.info, Node: \line, Next: \linethickness, Prev: \graphpaper, Up: picture + +8.19.5 '\line' +-------------- + +Synopsis: + + \line(X_RUN,Y_RISE){TRAVEL} + + Draw a line. It slopes such that it vertically rises Y_RISE for +every horizontal X_RUN. The TRAVEL is the total horizontal change--it +is not the length of the vector, it is the change in x. In the special +case of vertical lines, where (X_RUN,Y_RISE)=(0,1), the TRAVEL gives the +change in y. + + This draws a line starting at coordinates (1,3). + + \put(1,3){\line(2,5){4}} + +For every over 2, this line will go up 5. Because TRAVEL specifies that +this goes over 4, it must go up 10. Thus its endpoint is +(1,3)+(4,10)=(5,13). In particular, note that TRAVEL=4 is not the +length of the line, it is the change in x. + + The arguments X_RUN and Y_RISE are integers that can be positive, +negative, or zero. (If both are 0 then LaTeX treats the second as 1.) +With '\put(X_INIT,Y_INIT){\line(X_RUN,Y_RISE){TRAVEL}}', if X_RUN is +negative then the line's ending point has a first coordinate that is +less than X_INIT. If Y_RISE is negative then the line's ending point +has a second coordinate that is less than Y_INIT. + + If TRAVEL is negative then you get 'LaTeX Error: Bad \line or \vector +argument.' + + Standard LaTeX can only draw lines with a limited range of slopes +because these lines are made by putting together line segments from +pre-made fonts. The two numbers X_RUN and Y_RISE must have integer +values from -6 through 6. Also, they must be relatively prime, so that +(X_RUN,Y_RISE) can be (2,1) but not (4,2) (if you choose the latter then +instead of lines you get sequences of arrowheads; the solution is to +switch to the former). To get lines of arbitrary slope and plenty of +other shapes in a system like 'picture', see the package 'pict2e' +(<https://ctan.org/pkg/pict2e>). Another solution is to use a +full-featured graphics system such as TikZ, PSTricks, MetaPost, or +Asymptote. + + +File: latex2e.info, Node: \linethickness, Next: \thinlines, Prev: \line, Up: picture + +8.19.6 '\linethickness' +----------------------- + +Synopsis: + + \linethickness{DIM} + + Declares the thickness of subsequent horizontal and vertical lines in +a picture to be DIM, which must be a positive length (*note Lengths::). +It differs from '\thinlines' and '\thicklines' in that it does not +affect the thickness of slanted lines, circles, or ovals (*note +\oval::). + + +File: latex2e.info, Node: \thinlines, Next: \thicklines, Prev: \linethickness, Up: picture + +8.19.7 '\thinlines' +------------------- + +Declaration to set the thickness of subsequent lines, circles, and ovals +in a picture environment to be 0.4pt. This is the default thickness, so +this command is unnecessary unless the thickness has been changed with +either *note \linethickness:: or *note \thicklines::. + + +File: latex2e.info, Node: \thicklines, Next: \circle, Prev: \thinlines, Up: picture + +8.19.8 '\thicklines' +-------------------- + +Declaration to set the thickness of subsequent lines, circles, and ovals +in a picture environment to be 0.8pt. See also *note \linethickness:: +and *note \thinlines::. This command is illustrated in the Trapezoidal +Rule example of *note \qbezier::. + + +File: latex2e.info, Node: \circle, Next: \oval, Prev: \thicklines, Up: picture + +8.19.9 '\circle' +---------------- + +Synopsis: + + \circle{DIAMETER} + \circle*{DIAMETER} + + Produces a circle with a diameter as close as possible to the +specified one. The '*' form produces a filled-in circle. + + This draws a circle of radius 6, centered at '(5,7)'. + + \put(5,7){\circle{6}} + + The available radii for '\circle' are, in points, the even numbers +from 2 to 20, inclusive. For '\circle*' they are all the integers from +1 to 15. + + +File: latex2e.info, Node: \oval, Next: \shortstack, Prev: \circle, Up: picture + +8.19.10 '\oval' +--------------- + +Synopsis: + + \oval(WIDTH,HEIGHT) + \oval(WIDTH,HEIGHT)[PORTION] + + Produce a rectangle with rounded corners, hereinafter referred to as +an "oval". The optional argument PORTION allows you to produce only +half or a quarter of the oval. For half an oval take PORTION to be one +of these. + +'t' + top half +'b' + bottom half +'r' + right half +'l' + left half + + Produce only one quarter of the oval by setting PORTION to 'tr', +'br', 'bl', or 'tl'. + + This draws the top half of an oval that is 3 wide and 7 tall. + + \put(5,7){\oval(3,7)[t]} + +The (5,7) is the center of the entire oval, not just the center of the +top half. + + These shapes are not ellipses. They are rectangles whose corners are +made with quarter circles. These circles have a maximum radius of 20pt +(*note \circle:: for the sizes). Thus large ovals are just frames with +a small amount of corner rounding. + + +File: latex2e.info, Node: \shortstack, Next: \vector, Prev: \oval, Up: picture + +8.19.11 '\shortstack' +--------------------- + +Synopsis: + + \shortstack[POSITION]{LINE 1 \\ ... } + + Produce a vertical stack of objects. + + This labels the y axis by writing the word 'y' above the word 'axis'. + + \setlength{\unitlength}{1cm} + \begin{picture}(5,2.5)(-0.75,0) + \put(0,0){\vector(1,0){4}} % x axis + \put(0,0){\vector(0,1){2}} % y + \put(-0.2,2){\makebox(0,0)[r]{\shortstack[r]{$y$\\ axis}}} + \end{picture} + +For a short stack, the reference point is the lower left of the stack. +In the above example the '\makebox' (*note \mbox & \makebox::) puts the +stack flush right in a zero width box so in total the short stack sits +slightly to the left of the y axis. + + The valid positions are: + +'r' + Make objects flush right +'l' + Make objects flush left +'c' + Center objects (default) + + Separate objects into lines with '\\'. These stacks are short in +that, unlike in a 'tabular' or 'array' environment, here the rows are +not spaced out to be of even baseline skips. Thus, in +'\shortstack{X\\o\\o\\X}' the first and last rows are taller than the +middle two, and therefore the baseline skip between the two middle rows +is smaller than that between the third and last row. You can adjust row +heights and depths either by putting in the usual interline spacing with +'\shortstack{X\\ \strut o\\o\\X}' (*note \strut::), or explicitly, via +an zero-width box '\shortstack{X \\ \rule{0pt}{12pt} o\\o\\X}' or by +using '\\''s optional argument '\shortstack{X\\[2pt] o\\o\\X}'. + + The '\shortstack' command is also available outside the 'picture' +environment. + + +File: latex2e.info, Node: \vector, Next: \makebox (picture), Prev: \shortstack, Up: picture + +8.19.12 '\vector' +----------------- + +Synopsis: + + \vector(X_RUN,Y_RISE){TRAVEL} + + Draw a line ending in an arrow. The slope of that line is: it +vertically rises Y_RISE for every horizontal X_RUN. The TRAVEL is the +total horizontal change--it is not the length of the vector, it is the +change in x. In the special case of vertical vectors, if +(X_RUN,Y_RISE)=(0,1), then TRAVEL gives the change in y. + + For an example see *note picture::. + + For elaboration on X_RUN and Y_RISE see *note \line::. As there, the +values of X_RUN and Y_RISE are limited. For '\vector' you must chooses +integers between -4 and 4, inclusive. Also, the two you choose must be +relatively prime. Thus, '\vector(2,1){4}' is acceptable but +'\vector(4,2){4}' is not (if you use the latter then you get a sequence +of arrowheads). + + +File: latex2e.info, Node: \makebox (picture), Next: \framebox (picture), Prev: \vector, Up: picture + +8.19.13 '\makebox' (picture) +---------------------------- + +Synopsis: + + \makebox(REC-WIDTH,REC-HEIGHT){TEXT} + \makebox(REC-WIDTH,REC-HEIGHT)[POSITION]{TEXT} + + Make a box to hold TEXT. This command fits with the 'picture' +environment, although you can use it outside of there, because REC-WIDTH +and REC-HEIGHT are numbers specifying distances in terms of the +'\unitlength' (*note picture::). This command is similar to the normal +'\makebox' command (*note \mbox & \makebox::) except here that you must +specify the width and height. This command is fragile (*note +\protect::). + + This makes a box of length 3.5 times '\unitlength' and height 4 times +'\unitlength'. + + \put(1,2){\makebox(3.5,4){...}} + + The optional argument 'POSITION' specifies where in the box the TEXT +appears. The default is to center it, both horizontally and vertically. +To place it somewhere else, use a string with one or two of these +letters. + +'t' + Puts TEXT the top of the box. + +'b' + Put TEXT at the bottom. + +'l' + Put TEXT on the left. + +'r' + Put TEXT on the right. + + +File: latex2e.info, Node: \framebox (picture), Next: \frame, Prev: \makebox (picture), Up: picture + +8.19.14 '\framebox' (picture) +----------------------------- + +Synopsis: + + \framebox(REC-WIDTH,REC-HEIGHT){TEXT} + \framebox(REC-WIDTH,REC-HEIGHT)[POSITION]{TEXT} + + This is the same as *note \makebox (picture):: except that it puts a +frame around the outside of the box that it creates. The reference +point is the bottom left corner of the frame. This command fits with +the 'picture' environment, although you can use it outside of there, +because lengths are numbers specifying the distance in terms of the +'\unitlength' (*note picture::). This command is fragile (*note +\protect::). + + This example creates a frame 2.5 inches by 3 inches and puts the text +in the center. + + \setlength{\unitlength}{1in} + \framebox(2.5,3){test text} + + The required arguments are that the rectangle has overall width +RECT-WIDTH units and height RECT-HEIGHT units. + + The optional argument POSITION specifies the position of TEXT; see +*note \makebox (picture):: for the values that it can take. + + The rule has thickness '\fboxrule' and there is a blank space +'\fboxsep' between the frame and the contents of the box. + + For this command, you must specify the WIDTH and HEIGHT. If you want +to just put a frame around some contents whose dimension is determined +in some other way then either use '\fbox' (*note \fbox & \framebox::) or +'\frame' (*note \frame::). + + +File: latex2e.info, Node: \frame, Next: \dashbox, Prev: \framebox (picture), Up: picture + +8.19.15 '\frame' +---------------- + +Synopsis: + + \frame{CONTENTS} + + Puts a rectangular frame around CONTENTS. The reference point is the +bottom left corner of the frame. In contrast to '\framebox' (*note +\framebox (picture)::), this command puts no extra space is put between +the frame and the object. It is fragile (*note \protect::). + + +File: latex2e.info, Node: \dashbox, Prev: \frame, Up: picture + +8.19.16 '\dashbox' +------------------ + +Synopsis: + + \dashbox{DASH-LEN}(RECT-WIDTH,RECT-HEIGHT){TEXT} + \dashbox{DASH-LEN}(RECT-WIDTH,RECT-HEIGHT)[POSITION]{TEXT} + + Create a dashed rectangle around TEXT. This command fits with the +'picture' environment, although you can use it outside of there, because +lengths are numbers specifying the distance in terms of the +'\unitlength' (*note picture::). + + The required arguments are: dashes are DASH-LEN units long, with the +same length gap, and the rectangle has overall width RECT-WIDTH units +and height RECT-HEIGHT units. + + The optional argument POSITION specifies the position of TEXT; see +*note \makebox (picture):: for the values that it can take. + + This shows that you can use non-integer value for DASH-LEN. + + \put(0,0){\dashbox{0.1}(5,0.5){My hovercraft is full of eels.}} + +Each dash will be '0.1\unitlength' long, the box's width is +'5\unitlength' and its height is '0.5\unitlength'. + + As in that example, a dashed box looks best when RECT-WIDTH and +RECT-HEIGHT are multiples of the DASH-LEN. + + +File: latex2e.info, Node: quotation & quote, Next: tabbing, Prev: picture, Up: Environments + +8.20 'quotation' & 'quote' +========================== + +Synopsis: + + \begin{quotation} + TEXT + \end{quotation} + +or + + \begin{quote} + TEXT + \end{quote} + + Include a quotation. Both environments indent margins on both sides +by '\leftmargin' and the text is right-justified. + + They differ in how they treat paragraphs. In the 'quotation' +environment, paragraphs are indented by 1.5em and the space between +paragraphs is small, '0pt plus 1pt'. In the 'quote' environment, +paragraphs are not indented and there is vertical space between +paragraphs (it is the rubber length '\parsep'). + + \begin{quotation} \small\it + Four score and seven years ago + ... shall not perish from the earth. + \hspace{1em plus 1fill}---Abraham Lincoln + \end{quotation} + + +File: latex2e.info, Node: tabbing, Next: table, Prev: quotation & quote, Up: Environments + +8.21 'tabbing' +============== + +Synopsis: + + \begin{tabbing} + ROW1COL1 \= ROW1COL2 ... \\ + ROW2COL1 \> ROW2COL2 ... \\ + ... + \end{tabbing} + + Align text in columns, by setting tab stops and tabbing to them much +as was done on a typewriter. This is less often used than the +environments 'tabular' (*note tabular::) or 'array' (*note array::) +because in those the width of each column need not be constant and need +not be known in advance. + + This example has a first line where the tab stops are set to explicit +widths, ended by a '\kill' command (which is described below): + + \begin{tabbing} + \hspace{1.2in}\=\hspace{1in}\=\kill + Ship \>Guns \>Year \\ + \textit{Sophie} \>14 \>1800 \\ + \textit{Polychrest} \>24 \>1803 \\ + \textit{Lively} \>38 \>1804 \\ + \textit{Surprise} \>28 \>1805 \\ + \end{tabbing} + + Both the 'tabbing' environment and the more widely-used 'tabular' +environment put text in columns. The most important distinction is that +in 'tabular' the width of columns is determined automatically by LaTeX, +while in 'tabbing' the user sets the tab stops. Another distinction is +that 'tabular' generates a box, but 'tabbing' can be broken across +pages. Finally, while 'tabular' can be used in any mode, 'tabbing' can +be used only in paragraph mode and it always starts a new paragraph, +without indentation. + + Moreover, as shown in the example above, there is no need to use the +starred form of the '\hspace' command at the beginning of a tabbed row. +The right margin of the 'tabbing' environment is the end of line, so +that the width of the environment is '\linewidth'. + + The 'tabbing' environment contains a sequence of "tabbed rows". The +first tabbed row begins immediately after '\begin{tabbing}' and each row +ends with '\\' or '\kill'. The last row may omit the '\\' and end with +just '\end{tabbing}'. + + At any point the 'tabbing' environment has a "current tab stop +pattern", a sequence of N > 0 tab stops, numbered 0, 1, etc. These +create N corresponding columns. Tab stop 0 is always the left margin, +defined by the enclosing environment. Tab stop number I is set if it is +assigned a horizontal position on the page. Tab stop number I can only +be set if all the stops 0, ..., i-1 have already been set; normally +later stops are to the right of earlier ones. + + By default any text typeset in a 'tabbing' environment is typeset +ragged right and left-aligned on the current tab stop. Typesetting is +done in LR mode (*note Modes::). + + The following commands can be used inside a 'tabbing' environment. +They are all fragile (*note \protect::). + +'\\ (tabbing)' + End a tabbed line and typeset it. + +'\= (tabbing)' + Sets a tab stop at the current position. + +'\> (tabbing)' + Advances to the next tab stop. + +'\<' + Put following text to the left of the local margin (without + changing the margin). Can only be used at the start of the line. + +'\+' + Moves the left margin of the next and all the following commands + one tab stop to the right, beginning tabbed line if necessary. + +'\-' + Moves the left margin of the next and all the following commands + one tab stop to the left, beginning tabbed line if necessary. + +'\' (tabbing)' + Moves everything that you have typed so far in the current column, + i.e., everything from the most recent '\>', '\<', '\'', '\\', or + '\kill' command, to the previous column and aligned to the right, + flush against the current column's tab stop. + +'\` (tabbing)' + Allows you to put text flush right against any tab stop, including + tab stop 0. However, it can't move text to the right of the last + column because there's no tab stop there. The '\`' command moves + all the text that follows it, up to the '\\' or '\end{tabbing}' + command that ends the line, to the right margin of the 'tabbing' + environment. There must be no '\>' or '\'' command between the + '\`' and the '\\' or '\end{tabbing}' command that ends the line. + +'\a (tabbing)' + In a 'tabbing' environment, the commands '\=', '\'' and '\`' do not + produce accents as usual (*note Accents::). Instead, use the + commands '\a=', '\a'' and '\a`'. + +'\kill' + Sets tab stops without producing text. Works just like '\\' except + that it throws away the current line instead of producing output + for it. Any '\=', '\+' or '\-' commands in that line remain in + effect. + +'\poptabs' + Restores the tab stop positions saved by the last '\pushtabs'. + +'\pushtabs' + Saves all current tab stop positions. Useful for temporarily + changing tab stop positions in the middle of a 'tabbing' + environment. + +'\tabbingsep' + Distance of the text moved by '\'' to left of current tab stop. + + This example typesets a Pascal function: + + \begin{tabbing} + function \= fact(n : integer) : integer;\\ + \> begin \= \+ \\ + \> if \= n > 1 then \+ \\ + fact := n * fact(n-1) \- \\ + else \+ \\ + fact := 1; \-\- \\ + end;\\ + \end{tabbing} + +The output looks like this. + + function fact(n : integer) : integer; + begin + if n > 1 then + fact := n * fact(n-1); + else + fact := 1; + end; + +This example is just for illustration of the environment. To actually +typeset computer code in typewriter like this, a verbatim environment +(*note verbatim::) would normally be best. For pretty-printed code, +there are quite a few packages, including 'algorithm2e', 'fancyvrb', +'listings', and 'minted'. + + +File: latex2e.info, Node: table, Next: tabular, Prev: tabbing, Up: Environments + +8.22 'table' +============ + +Synopsis: + + \begin{table}[PLACEMENT] + TABLE BODY + \caption[LOFTITLE]{TITLE} % optional + \label{LABEL} % also optional + \end{table} + + A class of floats (*note Floats::). They cannot be split across +pages and so they are not typeset in sequence with the normal text but +instead are floated to a convenient place, such as the top of a +following page. + + This example 'table' environment contains a 'tabular' + + \begin{table} + \centering\small + \begin{tabular}{ll} + \multicolumn{1}{c}{\textit{Author}} + &\multicolumn{1}{c}{\textit{Piece}} \\ \hline + Bach &Cello Suite Number 1 \\ + Beethoven &Cello Sonata Number 3 \\ + Brahms &Cello Sonata Number 1 + \end{tabular} + \caption{Top cello pieces} + \label{tab:cello} + \end{table} + +but you can put many different kinds of content in a 'table': the TABLE +BODY may contain text, LaTeX commands, graphics, etc. It is typeset in +a 'parbox' of width '\textwidth'. + + For the possible values of PLACEMENT and their effect on the float +placement algorithm, see *note Floats::. + + The label is optional; it is used for cross references (*note Cross +references::). The '\caption' command is also optional. It specifies +caption text TITLE for the table (*note \caption::). By default it is +numbered. If its optional LOTTITLE is present then that text is used in +the list of tables instead of TITLE (*note Table of contents etc.::). + + In this example the table and caption will float to the bottom of a +page, unless it is pushed to a float page at the end. + + \begin{table}[b] + \centering + \begin{tabular}{r|p{2in}} \hline + One &The loneliest number \\ + Two &Can be as sad as one. + It's the loneliest number since the number one. + \end{tabular} + \caption{Cardinal virtues} + \label{tab:CardinalVirtues} + \end{table} + + +File: latex2e.info, Node: tabular, Next: thebibliography, Prev: table, Up: Environments + +8.23 'tabular' +============== + +Synopsis: + + \begin{tabular}[POS]{COLS} + COLUMN 1 ENTRY &COLUMN 2 ENTRY ... &COLUMN N ENTRY \\ + ... + \end{tabular} + +or + + \begin{tabular*}{WIDTH}[POS]{COLS} + COLUMN 1 ENTRY &COLUMN 2 ENTRY ... &COLUMN N ENTRY \\ + ... + \end{tabular*} + + Produce a table, a box consisting of a sequence of horizontal rows. +Each row consists of items that are aligned vertically in columns. This +illustrates many of the features. + + \begin{tabular}{l|l} + \textit{Player name} &\textit{Career home runs} \\ + \hline + Hank Aaron &755 \\ + Babe Ruth &714 + \end{tabular} + +The output will have two left-aligned columns with a vertical bar +between them. This is specified in 'tabular''s argument '{l|l}'. Put +the entries into different columns by separating them with an ampersand, +'&'. The end of each row is marked with a double backslash, '\\'. Put +a horizontal rule below a row, after a double backslash, with '\hline'. +After the last row the '\\' is optional, unless an '\hline' command +follows to put a rule below the table. + + The required and optional arguments to 'tabular' consist of: + +POS + Optional. Specifies the table's vertical position. The default is + to align the table so its vertical center matches the baseline of + the surrounding text. There are two other possible alignments: 't' + aligns the table so its top row matches the baseline of the + surrounding text, and 'b' aligns on the bottom row. + + This only has an effect if there is other text. In the common case + of a 'tabular' alone in a 'center' environment this option makes no + difference. + +COLS + Required. Specifies the formatting of columns. It consists of a + sequence of the following specifiers, corresponding to the types of + column and intercolumn material. + + 'l' + A column of left-aligned items. + + 'r' + A column of right-aligned items. + + 'c' + A column of centered items. + + '|' + A vertical line the full height and depth of the environment. + + '@{TEXT OR SPACE}' + Insert TEXT OR SPACE at this location in every row. The TEXT + OR SPACE material is typeset in LR mode. This text is fragile + (*note \protect::). + + If between two columns there is no @-expression then LaTeX's + 'book', 'article', and 'report' classes will put on either + side of each column a space of length '\tabcolsep', which by + default is 6pt. That is, by default adjacent columns are + separated by 12pt (so '\tabcolsep' is misleadingly named since + it is only half of the separation between tabular columns). + In addition, a space of 6pt also comes before the first column + and after the final column, unless you put a '@{...}' or '|' + there. + + If you override the default and use an @-expression then LaTeX + does not insert '\tabcolsep' so you must insert any desired + space yourself, as in '@{\hspace{1em}}'. + + An empty expression '@{}' will eliminate the space. In + particular, sometimes you want to eliminate the space before + the first column or after the last one, as in the example + below where the tabular lines need to lie on the left margin. + + \begin{flushleft} + \begin{tabular}{@{}l} + ... + \end{tabular} + \end{flushleft} + + The next example shows text, a decimal point between the + columns, arranged so the numbers in the table are aligned on + it. + + \begin{tabular}{r@{$.$}l} + $3$ &$14$ \\ + $9$ &$80665$ + \end{tabular} + + An '\extracolsep{WD}' command in an @-expression causes an + extra space of width WD to appear to the left of all + subsequent columns, until countermanded by another + '\extracolsep'. Unlike ordinary intercolumn space, this extra + space is not suppressed by an @-expression. An '\extracolsep' + command can be used only in an @-expression in the 'cols' + argument. Below, LaTeX inserts the right amount of + intercolumn space to make the entire table 4 inches wide. + + \begin{tabular*}{4in}{l@{\extracolsep{\fill}}l} + Seven times down, eight times up \ldots + &such is life! + \end{tabular*} + + To insert commands that are automatically executed before a + given column, load the 'array' package and use the '>{...}' + specifier. + + 'p{WD}' + Each item in the column is typeset in a parbox of width WD, as + if it were the argument of a '\parbox[t]{wd}{...}' command. + + A line break double backslash '\\' may not appear in the item, + except inside an environment like 'minipage', 'array', or + 'tabular', or inside an explicit '\parbox', or in the scope of + a '\centering', '\raggedright', or '\raggedleft' declaration + (when used in a 'p'-column element these declarations must + appear inside braces, as with '{\centering .. \\ ..}'). + Otherwise LaTeX will misinterpret the double backslash as + ending the tabular row. Instead, to get a line break in there + use '\newline' (*note \newline::). + + '*{NUM}{COLS}' + Equivalent to NUM copies of COLS, where NUM is a positive + integer and COLS is a list of specifiers. Thus the specifier + '\begin{tabular}{|*{3}{l|r}|}' is equivalent to the specifier + '\begin{tabular}{|l|rl|rl|r|}'. Note that COLS may contain + another '*'-expression. + +WIDTH + Required for 'tabular*', not allowed for 'tabular'. Specifies the + width of the 'tabular*' environment. The space between columns + should be rubber, as with '@{\extracolsep{\fill}}', to allow the + table to stretch or shrink to make the specified width, or else you + are likely to get the 'Underfull \hbox (badness 10000) in alignment + ...' warning. + + Parameters that control formatting: + +'\arrayrulewidth' + A length that is the thickness of the rule created by '|', + '\hline', and '\vline' in the 'tabular' and 'array' environments. + The default is '.4pt'. Change it as in + '\setlength{\arrayrulewidth}{0.8pt}'. + +'\arraystretch' + A factor by which the spacing between rows in the 'tabular' and + 'array' environments is multiplied. The default is '1', for no + scaling. Change it as '\renewcommand{\arraystretch}{1.2}'. + +'\doublerulesep' + A length that is the distance between the vertical rules produced + by the '||' specifier. The default is '2pt'. + +'\tabcolsep' + A length that is half of the space between columns. The default is + '6pt'. Change it with '\setlength'. + + The following commands can be used inside the body of a 'tabular' +environment, the first two inside an entry and the second two between +lines: + +* Menu: + +* \multicolumn:: Make an item spanning several columns. +* \vline:: Draw a vertical line. +* \cline:: Draw a horizontal line spanning some columns. +* \hline:: Draw a horizontal line spanning all columns. + + +File: latex2e.info, Node: \multicolumn, Next: \vline, Up: tabular + +8.23.1 '\multicolumn' +--------------------- + +Synopsis: + + \multicolumn{NUMCOLS}{COLS}{TEXT} + + Make an 'array' or 'tabular' entry that spans several columns. The +first argument NUMCOLS gives the number of columns to span. The second +argument COLS specifies the formatting of the entry, with 'c' for +centered, 'l' for flush left, or 'r' for flush right. The third +argument TEXT gives the contents of that entry. + + In this example, in the first row, the second and third columns are +spanned by the single heading 'Name'. + + \begin{tabular}{lccl} + \textit{ID} &\multicolumn{2}{c}{\textit{Name}} &\textit{Age} \\ + \hline + 978-0-393-03701-2 &O'Brian &Patrick &55 \\ + ... + \end{tabular} + + What counts as a column is: the column format specifier for the +'array' or 'tabular' environment is broken into parts, where each part +(except the first) begins with 'l', 'c', 'r', or 'p'. So from +'\begin{tabular}{|r|ccp{1.5in}|}' the parts are '|r|', 'c', 'c', +and 'p{1.5in}|'. + + The COLS argument overrides the 'array' or 'tabular' environment's +intercolumn area default adjoining this multicolumn entry. To affect +that area, this argument can contain vertical bars '|' indicating the +placement of vertical rules, and '@{...}' expressions. Thus if COLS is +'|c|' then this multicolumn entry will be centered and a vertical rule +will come in the intercolumn area before it and after it. This table +details the exact behavior. + + \begin{tabular}{|cc|c|c|} + \multicolumn{1}{r}{w} % entry one + &\multicolumn{1}{|r|}{x} % entry two + &\multicolumn{1}{|r}{y} % entry three + &z % entry four + \end{tabular} + +Before the first entry the output will not have a vertical rule because +the '\multicolumn' has the COLS specifier 'r' with no initial vertical +bar. Between entry one and entry two there will be a vertical rule; +although the first COLS does not have an ending vertical bar, the second +COLS does have a starting one. Between entry two and entry three there +is a single vertical rule; despite that the COLS in both of the +surrounding 'multicolumn''s call for a vertical rule, you only get one +rule. Between entry three and entry four there is no vertical rule; the +default calls for one but the COLS in the entry three '\multicolumn' +leaves it out, and that takes precedence. Finally, following entry four +there is a vertical rule because of the default. + + The number of spanned columns NUMCOLS can be 1. Besides giving the +ability to change the horizontal alignment, this also is useful to +override for one row the 'tabular' definition's default intercolumn area +specification, including the placement of vertical rules. + + In the example below, in the 'tabular' definition the first column is +specified to default to left justified but in the first row the entry is +centered with '\multicolumn{1}{c}{\textsc{Period}}'. Also in the first +row, the second and third columns are spanned by a single entry with +'\multicolumn{2}{c}{\textsc{Span}}', overriding the specification to +center those two columns on the page range en-dash. + + \begin{tabular}{l|r@{--}l} + \multicolumn{1}{c}{\textsc{Period}} + &\multicolumn{2}{c}{\textsc{Span}} \\ \hline + Baroque &1600 &1760 \\ + Classical &1730 &1820 \\ + Romantic &1780 &1910 \\ + Impressionistic &1875 &1925 + \end{tabular} + +Although the 'tabular' specification by default puts a vertical rule +between the first and second columns, no such vertical rule appears in +the first row here. That's because there is no vertical bar in the COLS +part of the first row's first '\multicolumn' command. + + +File: latex2e.info, Node: \vline, Next: \cline, Prev: \multicolumn, Up: tabular + +8.23.2 '\vline' +--------------- + +Draw a vertical line in a 'tabular' or 'array' environment extending the +full height and depth of an entry's row. Can also be used in an +@-expression, although its synonym vertical bar '|' is more common. +This command is rarely used in the body of a table; typically a table's +vertical lines are specified in 'tabular''s COLS argument and overridden +as needed with '\multicolumn' (*note tabular::). + + The example below illustrates some pitfalls. In the first row's +second entry the '\hfill' moves the '\vline' to the left edge of the +cell. But that is different than putting it halfway between the two +columns, so between the first and second columns there are two vertical +rules, with the one from the '{c|cc}' specifier coming before the one +produced by the '\vline\hfill'. In contrast, the first row's third +entry shows the usual way to put a vertical bar between two columns. In +the second row, the 'ghi' is the widest entry in its column so in the +'\vline\hfill' the '\hfill' has no effect and the vertical line in that +entry appears immediately next to the 'g', with no whitespace. + + \begin{tabular}{c|cc} + x &\vline\hfill y &\multicolumn{1}{|r}{z} \\ % row 1 + abc &def &\vline\hfill ghi % row 2 + \end{tabular} + + +File: latex2e.info, Node: \cline, Next: \hline, Prev: \vline, Up: tabular + +8.23.3 '\cline' +--------------- + +Synopsis: + + \cline{I-J} + + In an 'array' or 'tabular' environment, draw a horizontal rule +beginning in column I and ending in column J. The dash, '-', must +appear in the mandatory argument. To span a single column use the +number twice, as with '\cline{2-2}'. + + This example puts two horizontal lines between the first and second +rows, one line in the first column only, and the other spanning the +third and fourth columns. The two lines are side-by-side, at the same +height. + + \begin{tabular}{llrr} + a &b &c &d \\ \cline{1-1} \cline{3-4} + e &f &g &h + \end{tabular} + + +File: latex2e.info, Node: \hline, Prev: \cline, Up: tabular + +8.23.4 '\hline' +--------------- + +Draw a horizontal line the width of the enclosing 'tabular' or 'array' +environment. It's most commonly used to draw a line at the top, bottom, +and between the rows of a table. + + In this example the top of the table has two horizontal rules, one +above the other, that span both columns. The bottom of the table has a +single rule spanning both columns. Because of the '\hline', the +'tabular' second row's line ending double backslash '\\' is required. + + \begin{tabular}{ll} \hline\hline + Baseball &Red Sox \\ + Basketball &Celtics \\ \hline + \end{tabular} + + +File: latex2e.info, Node: thebibliography, Next: theorem, Prev: tabular, Up: Environments + +8.24 'thebibliography' +====================== + +Synopsis: + + \begin{thebibliography}{WIDEST-LABEL} + \bibitem[LABEL]{CITE_KEY} + ... + \end{thebibliography} + + Produce a bibliography or reference list. There are two ways to +produce bibliographic lists. This environment is suitable when you have +only a few references and can maintain the list by hand. *Note Using +BibTeX::, for a more sophisticated approach. + + This shows the environment with two entries. + + This work is based on \cite{latexdps}. + Together they are \cite{latexdps, texbook}. + ... + \begin{thebibliography}{9} + \bibitem{latexdps} + Leslie Lamport. + \textit{\LaTeX{}: a document preparation system}. + Addison-Wesley, Reading, Massachusetts, 1993. + \bibitem{texbook} + Donald Ervin Knuth. + \textit{The \TeX book}. + Addison-Wesley, Reading, Massachusetts, 1983. + \end{thebibliography} + +This styles the first reference as '[1] Leslie ...', and so that '... +based on \cite{latexdps}' produces the matching '... based on [1]'. The +second '\cite' produces '[1, 2]'. You must compile the document twice +to resolve these references. + + The mandatory argument WIDEST-LABEL is text that, when typeset, is as +wide as the widest item label produced by the '\bibitem' commands. The +tradition is to use '9' for bibliographies with less than 10 references, +'99' for ones with less than 100, etc. + + The bibliographic list is headed by a title such as 'Bibliography'. +To change it there are two cases. In the 'book' and 'report' classes, +where the top level sectioning is '\chapter' and the default title is +'Bibliography', that title is in the macro '\bibname'. For 'article', +where the class's top level sectioning is '\section' and the default is +'References', the title is in macro '\refname'. Change it by redefining +the command, as with '\renewcommand{\refname}{Cited references}', after +'\begin{document}'. + + Language support packages such as 'babel' will automatically redefine +'\refname' or '\bibname' to fit the selected language. + + *Note list::, for the list layout control parameters. + +* 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. + + +File: latex2e.info, Node: \bibitem, Next: \cite, Up: thebibliography + +8.24.1 '\bibitem' +----------------- + +Synopsis: + + \bibitem{CITE_KEY} + +or + + \bibitem[LABEL]{CITE_KEY} + + Generate an entry labeled by default by a number generated using the +'enumi' counter. The "citation key" CITE_KEY can be any string of +letters, numbers, and punctuation symbols (but not comma). + + *Note thebibliography::, for an example. + + When provided, the optional LABEL becomes the entry label and the +'enumi' counter is not incremented. With this + + \begin{thebibliography} + \bibitem[Lamport 1993]{latexdps} + Leslie Lamport. + \textit{\LaTeX{}: a document preparation system}. + Addison-Wesley, Reading, Massachusetts, 1993. + \bibitem{texbook} + Donald Ervin Knuth. + \textit{The \TeX book}. + Addison-Wesley, Reading, Massachusetts, 1983. + \end{thebibliography} + +the first entry will be styled as '[Lamport 1993] Leslie ...' (The +amount of horizontal space that LaTeX leaves for the label depends on +the WIDEST-LABEL argument of the 'thebibliography' environment; see +*note thebibliography::.) Similarly, '... based on \cite{latexdps}' +will produce '... based on [Lamport 1994]'. + + If you mix '\bibitem' entries having a LABEL with those that do not +then LaTeX will number the unlabelled ones sequentially. In the example +above the 'texbook' entry will appear as '[1] Donald ...', despite that +it is the second entry. + + If you use the same CITE_KEY twice then you get 'LaTeX Warning: There +were multiply-defined labels'. + + Under the hood, LaTeX remembers the CITE_KEY and LABEL information +because '\bibitem' writes it to the auxiliary file 'JOBNAME.aux' (*note +Jobname::). For instance, the above example causes the two +'\bibcite{latexdps}{Lamport, 1993}' and '\bibcite{texbook}{1}' to appear +in that file. The '.aux' file is read by the '\begin{document}' command +and then the information is available for '\cite' commands. This +explains why you need to run LaTeX twice to resolve references: once to +write it out and once to read it in. + + Because of this two-pass algorithm, when you add a '\bibitem' or +change its CITE_KEY you may get 'LaTeX Warning: Label(s) may have +changed. Rerun to get cross-references right'. Fix it by recompiling. + + +File: latex2e.info, Node: \cite, Next: \nocite, Prev: \bibitem, Up: thebibliography + +8.24.2 '\cite' +-------------- + +Synopsis: + + \cite{KEYS} + +or + + \cite[SUBCITE]{KEYS} + + Generate as output a citation to the references associated with KEYS. +The mandatory KEYS is a citation key, or a comma-separated list of +citation keys (*note \bibitem::). + + This + + The ultimate source is \cite{texbook}. + ... + \begin{thebibliography} + \bibitem{texbook} + Donald Ervin Knuth. + \textit{The \TeX book}. + Addison-Wesley, Reading, Massachusetts, 1983. + \end{thebibliography} + +produces output like '... source is [1]'. You can change the appearance +of the citation and of the reference by using bibliography styles if you +generate automatically the 'thebibliography' environment. More +information in *note Using BibTeX::. + + The optional argument SUBCITE is appended to the citation. For +example, 'See 14.3 in \cite[p.~314]{texbook}' might produce 'See 14.3 in +[1, p. 314]'. + + In addition to what appears in the output, '\cite' writes information +to the auxiliary file 'JOBNAME.aux' (*note Jobname::). For instance, +'\cite{latexdps}' writes '\citation{latexdps}' to that file. This +information is used by BibTeX to include in your reference list only +those works that you have actually cited; see *note \nocite:: also. + + If KEYS is not in your bibliography information then you get 'LaTeX +Warning: There were undefined references', and in the output the +citation shows as a boldface question mark between square brackets. +There are two possible causes. If you have mistyped something, as in +'\cite{texbok}' then you need to correct the spelling. On the other +hand, if you have just added or modified the bibliographic information +and so changed the '.aux' file (*note \bibitem::) then the fix may be to +run LaTeX again. + + +File: latex2e.info, Node: \nocite, Next: Using BibTeX, Prev: \cite, Up: thebibliography + +8.24.3 '\nocite' +---------------- + +Synopsis: + + \nocite{KEYS} + + Produces no output but writes KEYS to the auxiliary file +'JOBNAME.aux' (*note Jobname::). + + The mandatory argument KEYS is a comma-separated list of one or more +citation keys (*note \bibitem::). This information is used by BibTeX to +include these works in your reference list even though you have not +explicitly cited them (*note \cite::). + + +File: latex2e.info, Node: Using BibTeX, Prev: \nocite, Up: thebibliography + +8.24.4 Using BibTeX +------------------- + +As described in 'thebibliography' (*note thebibliography::), a +sophisticated approach to managing bibliographies is provided by the +BibTeX program. This is only an introduction; see the full +documentation on CTAN (*note CTAN::). + + With BibTeX, you don't use the 'thebibliography' environment directly +(*note thebibliography::). Instead, include these lines: + + \bibliographystyle{BIBSTYLE} + \bibliography{BIBFILE1, BIBFILE2, ...} + +The BIBSTYLE refers to a file 'BIBSTYLE.bst', which defines how your +citations will look. The standard BIBSTYLE's distributed with BibTeX +are: + +'alpha' + Labels are formed from name of author and year of publication. The + bibliographic items are sorted alphabetically. +'plain' + Labels are integers. Sort the bibliographic items alphabetically. +'unsrt' + Like 'plain', but entries are in order of citation. +'abbrv' + Like 'plain', but more compact labels. + +Many, many other BibTeX style files exist, tailored to the demands of +various publications. See the CTAN topic +<https://ctan.org/topic/bibtex-sty>. + + The '\bibliography' command is what actually produces the +bibliography. Its argument is a comma-separated list, referring to +files named 'BIBFILE1.bib', 'BIBFILE2.bib', ... These contain your +database in BibTeX format. This shows a typical couple of entries in +that format. + + @book{texbook, + title = {The {{\TeX}}book}, + author = {D.E. Knuth}, + isbn = {0201134489}, + series = {Computers \& typesetting}, + year = {1983}, + publisher = {Addison-Wesley} + } + @book{sexbook, + author = {W.H. Masters and V.E. Johnson}, + title = {Human Sexual Response}, + year = {1966}, + publisher = {Bantam Books} + } + + Only the bibliographic entries referred to via '\cite' and '\nocite' +will be listed in the document's bibliography. Thus you can keep all +your sources together in one file, or a small number of files, and rely +on BibTeX to include in this document only those that you used. + + With BibTeX, the KEYS argument to '\nocite' can also be the single +character '*'. This means to implicitly cite all entries from all given +bibliographies. + +* Menu: + +* BibTeX error messages:: + + +File: latex2e.info, Node: BibTeX error messages, Up: Using BibTeX + +8.24.4.1 BibTeX error messages +.............................. + +If you forget to use '\bibliography' or '\bibliographystyle' in your +document (or, less likely, any '\cite' or '\nocite' command), BibTeX +will issue an error message. Because BibTeX can be used with any +program, not just LaTeX, the error messages refer to the internal +commands read by BibTeX (from the '.aux' file), rather than the +user-level commands described above. + + Here is a table showing internal commands mentioned in the BibTeX +errors, and the corresponding user-level commands. + +'\bibdata' + '\bibliography' + +'\bibstyle' + '\bibliographystyle' + +'\citation' + '\cite', '\nocite' + + For example, if your document has no '\bibliographystyle' command, +BibTeX complains as follows: + + I found no \bibstyle command---while reading file DOCUMENT.aux + + +File: latex2e.info, Node: theorem, Next: titlepage, Prev: thebibliography, Up: Environments + +8.25 'theorem' +============== + +Synopsis: + + \begin{theorem} + THEOREM BODY + \end{theorem} + + Produces 'Theorem N' in boldface followed by THEOREM BODY in italics. +The numbering possibilities for N are described under '\newtheorem' +(*note \newtheorem::). + + \newtheorem{lem}{Lemma} % in preamble + \newtheorem{thm}{Theorem} + ... + \begin{lem} % in document body + text of lemma + \end{lem} + + The next result follows immediately. + \begin{thm}[Gauss] % put `Gauss' in parens after theorem head + text of theorem + \end{thm} + + Most new documents use the packages 'amsthm' and 'amsmath' from the +American Mathematical Society. Among other things these packages +include a large number of options for theorem environments, such as +styling options. + + +File: latex2e.info, Node: titlepage, Next: verbatim, Prev: theorem, Up: Environments + +8.26 'titlepage' +================ + +Synopsis: + + \begin{titlepage} + ... text and spacing ... + \end{titlepage} + + Create a title page, a page with no printed page number or heading +and with succeeding pages numbered starting with page one. + + In this example all formatting, including vertical spacing, is left +to the author. + + \begin{titlepage} + \vspace*{\stretch{1}} + \begin{center} + {\huge\bfseries Thesis \\[1ex] + title} \\[6.5ex] + {\large\bfseries Author name} \\ + \vspace{4ex} + Thesis submitted to \\[5pt] + \textit{University name} \\[2cm] + in partial fulfilment for the award of the degree of \\[2cm] + \textsc{\Large Doctor of Philosophy} \\[2ex] + \textsc{\large Mathematics} \\[12ex] + \vfill + Department of Mathematics \\ + Address \\ + \vfill + \today + \end{center} + \vspace{\stretch{2}} + \end{titlepage} + + To instead produce a standard title page without a 'titlepage' +environment, use '\maketitle' (*note \maketitle::). + + +File: latex2e.info, Node: verbatim, Next: verse, Prev: titlepage, Up: Environments + +8.27 'verbatim' +=============== + +Synopsis: + + \begin{verbatim} + LITERAL-TEXT + \end{verbatim} + + A paragraph-making environment in which LaTeX produces as output +exactly what you type as input. For instance inside LITERAL-TEXT the +backslash '\' character does not start commands, it produces a printed +'\', and carriage returns and blanks are taken literally. The output +appears in a monospaced typewriter-like font ('\tt'). + + \begin{verbatim} + Symbol swearing: %&$#?!. + \end{verbatim} + + The only restriction on 'literal-text' is that it cannot include the +string '\end{verbatim}'. + + You cannot use the verbatim environment in the argument to macros, +for instance in the argument to a '\section'. This is not the same as +commands being fragile (*note \protect::), instead it just cannot work, +as the 'verbatim' environment changes the catcode regime before +processing its contents, and restore it immediately afterward, +nevertheless with a macro argument the content of the argument has +already be converted to a token list along the catcode regime in effect +when the macro was called. However, the 'cprotect' package can help +with this. + + One common use of verbatim input is to typeset computer code. There +are packages that are an improvement the 'verbatim' environment. For +instance, one improvement is to allow the verbatim inclusion of external +files, or parts of those files. Such packages include 'listings', and +'minted'. + + A package that provides many more options for verbatim environments +is 'fancyvrb'. Another is 'verbatimbox'. + + For a list of all the relevant packages, see CTAN (*note CTAN::). + +* Menu: + +* \verb:: The macro form of the 'verbatim' environment. + + +File: latex2e.info, Node: \verb, Up: verbatim + +8.27.1 '\verb' +-------------- + +Synopsis: + + \verb CHAR LITERAL-TEXT CHAR + \verb* CHAR LITERAL-TEXT CHAR + + Typeset LITERAL-TEXT as it is input, including special characters and +spaces, using the typewriter ('\tt') font. + + This example shows two different invocations of '\verb'. + + This is \verb!literally! the biggest pumpkin ever. + And this is the best squash, \verb+literally!+ + +The first '\verb' has its LITERAL-TEXT surrounded with exclamation +point, '!'. The second instead uses plus, '+', because the exclamation +point is part of 'literal-text'. + + The single-character delimiter CHAR surrounds LITERAL-TEXT--it must +be the same character before and after. No spaces come between '\verb' +or '\verb*' and CHAR, or between CHAR and LITERAL-TEXT, or between +LITERAL-TEXT and the second occurrence of CHAR (the synopsis shows a +space only to distinguish one component from the other). The delimiter +must not appear in LITERAL-TEXT. The LITERAL-TEXT cannot include a line +break. + + The '*'-form differs only in that spaces are printed with a visible +space character. + + The output from this will include a visible space on both side of +word 'with': + + The command's first argument is \verb*!filename with extension! and ... + + For typesetting Internet addresses, urls, the package 'url' is a +better option than the '\verb' command, since it allows line breaks. + + For computer code there are many packages with advantages over +'\verb'. One is 'listings', another is 'minted'. + + You cannot use '\verb' in the argument to a macro, for instance in +the argument to a '\section'. It is not a question of '\verb' being +fragile (*note \protect::), instead it just cannot work, as the '\verb' +command changes the catcode regime before reading its argument, and +restore it immediately afterward, nevertheless with a macro argument the +content of the argument has already be converted to a token list along +the catcode regime in effect when the macro was called. However, the +'cprotect' package can help with this. + + +File: latex2e.info, Node: verse, Prev: verbatim, Up: Environments + +8.28 'verse' +============ + +Synopsis: + + \begin{verse} + LINE1 \\ + LINE2 \\ + ... + \end{verse} + + An environment for poetry. + + Here are two lines from Shakespeare's Romeo and Juliet. + + Then plainly know my heart's dear love is set \\ + On the fair daughter of rich Capulet. + + Separate the lines of each stanza with '\\', and use one or more +blank lines to separate the stanzas. + + \begin{verse} + \makebox[\linewidth][c]{\textit{Shut Not Your Doors} ---Walt Whitman} + \\[1\baselineskip] + Shut not your doors to me proud libraries, \\ + For that which was lacking on all your well-fill'd shelves, \\ + \qquad yet needed most, I bring, \\ + Forth from the war emerging, a book I have made, \\ + The words of my book nothing, the drift of it every thing, \\ + A book separate, not link'd with the rest nor felt by the intellect, \\ + But you ye untold latencies will thrill to every page. + \end{verse} + +The output has margins indented on the left and the right, paragraphs +are not indented, and the text is not right-justified. + + +File: latex2e.info, Node: Line breaking, Next: Page breaking, Prev: Environments, Up: Top + +9 Line breaking +*************** + +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 in the text body for +you but in some environments you manually force line breaks. + + A common workflow is to get a final version of the document content +before taking a final pass through and considering line breaks (and page +breaks). This differs from word processing, where you are formatting +text as you input it. Putting these off until the end prevents a lot of +fiddling with breaks that will change anyway. + +* Menu: + +* \\:: Start a new line. +* \obeycr & \restorecr:: Make each input line start a new output line. +* \newline:: Break the line +* \- (hyphenation):: Insert explicit hyphenation. +* \discretionary:: Explicit control of the hyphen character. +* \fussy & \sloppy:: Be more or less particular with line breaking. +* \hyphenation:: Tell LaTeX how to hyphenate a word. +* \linebreak & \nolinebreak:: Forcing & avoiding line breaks. + + +File: latex2e.info, Node: \\, Next: \obeycr & \restorecr, Up: Line breaking + +9.1 '\\' +======== + +Synopsis, one of: + + \\ + \\[MORESPACE] + +or one of: + + \\* + \\*[MORESPACE] + + End the current line. The optional argument MORESPACE specifies +extra vertical space to be inserted before the next line. This is a +rubber length (*note Lengths::) and can be negative. The text before +the line break is set at its normal length, that is, it is not stretched +to fill out the line width. This command is fragile (*note \protect::). + + \title{My story: \\[0.25in] + a tale of woe} + +The starred form, '\\*', tells LaTeX not to start a new page between the +two lines, by issuing a '\nobreak'. + + Explicit line breaks in the main text body are unusual in LaTeX. In +particular, don't start new paragraphs with '\\'. Instead leave a blank +line between the two paragraphs. And don't put in a sequence of '\\''s +to make vertical space. Instead use '\vspace{LENGTH}', or +'\leavevmode\vspace{LENGTH}', or '\vspace*{LENGTH}' if you want the +space to not be thrown out at the top of a new page (*note \vspace::). + + The '\\' command is mostly used outside of the main flow of text such +as in a 'tabular' or 'array' environment or in an equation environment. + + The '\\' command is a synonym for '\newline' (*note \newline::) under +ordinary circumstances (an example of an exception is the 'p{...}' +column in a 'tabular' environment; *note tabular::). + + The '\\' command is a macro, and its definition changes by context so +that its definition in normal text, a 'center' environment, a +'flushleft' environment, and a 'tabular' are all different. In normal +text when it forces a linebreak it is essentially a shorthand for +'\newline'. It does not end horizontal mode or end the paragraph, it +just inserts some glue and penalties so that when the paragraph does end +a linebreak will occur at that point, with the short line padded with +white space. + + You get 'LaTeX Error: There's no line here to end' if you use '\\' to +ask for a new line, rather than to end the current line. An example is +if you have '\begin{document}\\' or, more likely, something like this. + + \begin{center} + \begin{minipage}{0.5\textwidth} + \\ + In that vertical space put your mark. + \end{minipage} + \end{center} + +Fix it by replacing the double backslash with something like +'\vspace{\baselineskip}'. + + +File: latex2e.info, Node: \obeycr & \restorecr, Next: \newline, Prev: \\, Up: Line breaking + +9.2 '\obeycr' & '\restorecr' +============================ + +The '\obeycr' command makes a return in the input file ('^^M', +internally) the same as '\\', followed by '\relax'. So each new line in +the input will also be a new line in the output. The '\restorecr' +command restores normal line-breaking behavior. + + This is not the way to show verbatim text or computer code. Use +'verbatim' (*note verbatim::) instead. + + With LaTeX's usual defaults, this + + aaa + bbb + + \obeycr + ccc + ddd + eee + + \restorecr + fff + ggg + + hhh + iii + +produces output like this. + + aaa bbb + ccc + ddd + eee + + fff ggg + hhh iii + +The indents are paragraph indents. + + +File: latex2e.info, Node: \newline, Next: \- (hyphenation), Prev: \obeycr & \restorecr, Up: Line breaking + +9.3 '\newline' +============== + +In ordinary text, this ends a line in a way that does not right-justify +it, so the text before the end of line is not stretched. That is, in +paragraph mode (*note Modes::), the '\newline' command is equivalent to +double-backslash (*note \\::). This command is fragile (*note +\protect::). + + However, the two commands are different inside a 'tabular' or 'array' +environment. In a column with a specifier producing a paragraph box +such as typically 'p{...}', '\newline' will insert a line end inside of +the column; that is, it does not break the entire tabular row. To break +the entire row use '\\' or its equivalent '\tabularnewline'. + + This will print 'Name:' and 'Address:' as two lines in a single cell +of the table. + + \begin{tabular}{p{1in}@{\hspace{2in}}p{1in}} + Name: \newline Address: &Date: \\ \hline + \end{tabular} + +The 'Date:' will be baseline-aligned with 'Name:'. + + +File: latex2e.info, Node: \- (hyphenation), Next: \discretionary, Prev: \newline, Up: Line breaking + +9.4 '\-' (discretionary hyphen) +=============================== + +Tell LaTeX that it may hyphenate the word at that point. When you +insert '\-' commands in a word, the word will only be hyphenated at +those points and not at any of the other hyphenation points that LaTeX +might otherwise have chosen. This command is robust (*note \protect::). + + LaTeX is good at hyphenating and usually finds most of the correct +hyphenation points, while almost never using an incorrect one. The '\-' +command is for exceptional cases. + + For example, LaTeX does not ordinarily hyphenate words containing a +hyphen. Below, the long and hyphenated word means LaTeX has to put in +unacceptably large spaces to set the narrow column. + + \begin{tabular}{rp{1.75in}} + Isaac Asimov &The strain of + anti-intellectualism + % an\-ti-in\-tel\-lec\-tu\-al\-ism + has been a constant thread winding its way through our + political and cultural life, nurtured by + the false notion that democracy means that + `my ignorance is just as good as your knowledge'. + \end{tabular} + +Commenting out the third line and uncommenting the fourth makes a much +better fit. + + The '\-' command only allows LaTeX to break there, it does not +require that it break there. You can force a split with something like +'Hef-\linebreak feron'. Of course, if you later change the text then +this forced break may look very odd, so this approach requires care. + + +File: latex2e.info, Node: \discretionary, Next: \fussy & \sloppy, Prev: \- (hyphenation), Up: Line breaking + +9.5 '\discretionary' (generalized hyphenation point) +==================================================== + +Synopsis: + + \discretionary{PRE-BREAK}{POST-BREAK}{NO-BREAK} + + Handle word changes around hyphens. This command is not often used +in LaTeX documents. + + If a line break occurs at the point where '\discretionary' appears +then TeX puts PRE-BREAK at the end of the current line and puts +POST-BREAK at the start of the next line. If there is no line break +here then TeX puts NO-BREAK. + + In 'difficult' the three letters 'ffi' form a ligature. But TeX can +nonetheless break between the two 'f''s with this. + + di\discretionary{f-}{fi}{ffi}cult + + Note that users do not have to do this. It is typically handled +automatically by TeX's hyphenation algorithm. + + +File: latex2e.info, Node: \fussy & \sloppy, Next: \hyphenation, Prev: \discretionary, Up: Line breaking + +9.6 '\fussy' & '\sloppy' +======================== + +Declarations to make TeX more picky or less picky about line breaking. +Declaring '\fussy' usually avoids too much space between words, at the +cost of an occasional overfull box. Conversely, '\sloppy' avoids +overfull boxes while suffering loose interword spacing. + + The default is '\fussy'. Line breaking in a paragraph is controlled +by whichever declaration is current at the end of the paragraph, i.e., +at the blank line or '\par' or displayed equation ending that paragraph. +So to affect the line breaks, include that paragraph-ending material in +the scope of the command. + +* Menu: + +* sloppypar:: Environment version of \sloppy command. + + +File: latex2e.info, Node: sloppypar, Up: \fussy & \sloppy + +9.6.1 'sloppypar' +----------------- + +Synopsis: + + \begin{sloppypar} + ... paragraphs ... + \end{sloppypar} + + Typeset the paragraphs with '\sloppy' in effect (*note \fussy & +\sloppy::). Use this to locally adjust line breaking, to avoid +'Overfull box' or 'Underfull box' errors. + + The example is simple. + + \begin{sloppypar} + Her plan for the morning thus settled, she sat quietly down to her + book after breakfast, resolving to remain in the same place and the + same employment till the clock struck one; and from habitude very + little incommoded by the remarks and ejaculations of Mrs.\ Allen, + whose vacancy of mind and incapacity for thinking were such, that + as she never talked a great deal, so she could never be entirely + silent; and, therefore, while she sat at her work, if she lost her + needle or broke her thread, if she heard a carriage in the street, + or saw a speck upon her gown, she must observe it aloud, whether + there were anyone at leisure to answer her or not. + \end{sloppypar} + + +File: latex2e.info, Node: \hyphenation, Next: \linebreak & \nolinebreak, Prev: \fussy & \sloppy, Up: Line breaking + +9.7 '\hyphenation' +================== + +Synopsis: + + \hyphenation{WORD1 ...} + + Declares allowed hyphenation points within the words in the list. +The words in that list are separated by spaces. Show permitted points +for hyphenation with a dash character, '-'. + + Here is an example: + + \hyphenation{hat-er il-lit-e-ra-ti tru-th-i-ness} + + Use lowercase letters. TeX will only hyphenate if the word matches +exactly, no inflections are tried. Multiple '\hyphenation' commands +accumulate. + + +File: latex2e.info, Node: \linebreak & \nolinebreak, Prev: \hyphenation, Up: Line breaking + +9.8 '\linebreak' & '\nolinebreak' +================================= + +Synopses, one of: + + \linebreak + \linebreak[ZERO-TO-FOUR] + +or one of these. + + \nolinebreak + \nolinebreak[ZERO-TO-FOUR] + + Encourage or discourage a line break. The optional ZERO-TO-FOUR is +an integer lying between 0 and 4 that allows you to soften the +instruction. The default is 4, so that without the optional argument +these commands entirely force or prevent the break. But for instance, +'\nolinebreak[1]' is a suggestion that another place may be better. The +higher the number, the more insistent the request. Both commands are +fragile (*note \protect::). + + Here we tell LaTeX that a good place to put a linebreak is after the +standard legal text. + + \boilerplatelegal{} \linebreak[2] + We especially encourage applications from members of traditionally + underrepresented groups. + + When you issue '\linebreak', the spaces in the line are stretched out +so that the break point reaches the right margin. *Note \\:: and *note +\newline::, to have the spaces not stretched out. + + +File: latex2e.info, Node: Page breaking, Next: Footnotes, Prev: Line breaking, Up: Top + +10 Page breaking +**************** + +Ordinarily LaTeX automatically takes care of breaking output into pages +with its usual aplomb. But if you are writing commands, or tweaking the +final version of a document, then you may need to understand how to +influence its actions. + + LaTeX's algorithm for splitting a document into pages is more complex +than just waiting until there is enough material to fill a page and +outputting the result. Instead, LaTeX typesets more material than would +fit on the page and then chooses a break that is optimal in some way (it +has the smallest badness). An example of the advantage of this approach +is that if the page has some vertical space that can be stretched or +shrunk, such as with rubber lengths between paragraphs, then LaTeX can +use that to avoid widow lines (where a new page starts with the last +line of a paragraph; LaTeX can squeeze the extra line onto the first +page) and orphans (where the first line of paragraph is at the end of a +page; LaTeX can stretch the material of the first page so the extra line +falls on the second page). Another example is where LaTeX uses +available vertical shrinkage to fit on a page not just the header for a +new section but also the first two lines of that section. + + But LaTeX does not optimize over the entire document's set of page +breaks. So it can happen that the first page break is great but the +second one is lousy; to break the current page LaTeX doesn't look as far +ahead as the next page break. So occasionally you may want to influence +page breaks while preparing a final version of a document. + + *Note Layout::, for more material that is relevant to page breaking. + +* Menu: + +* \clearpage & \cleardoublepage:: Start a new page; eject floats. +* \newpage:: Start a new page. +* \enlargethispage:: Enlarge the current page a bit. +* \pagebreak & \nopagebreak:: Forcing & avoiding page breaks. + + +File: latex2e.info, Node: \clearpage & \cleardoublepage, Next: \newpage, Up: Page breaking + +10.1 '\clearpage' & '\cleardoublepage' +====================================== + +Synopsis: + + \clearpage + +or + + \cleardoublepage + + End the current page and output all of the pending floating figures +and tables (*note Floats::). If there are too many floats to fit on the +page then LaTeX will put in extra pages containing only floats. In +two-sided printing, '\cleardoublepage' also makes the next page of +content a right-hand page, an odd-numbered page, if necessary inserting +a blank page. The '\clearpage' command is robust while +'\cleardoublepage' is fragile (*note \protect::). + + LaTeX's page breaks are optimized so ordinarily you only use this +command in a document body to polish the final version, or inside +commands. + + The '\cleardoublepage' command will put in a blank page, but it will +have the running headers and footers. To get a really blank page, use +this command. + + \let\origdoublepage\cleardoublepage + \newcommand{\clearemptydoublepage}{% + \clearpage + {\pagestyle{empty}\origdoublepage}% + } + +If you want LaTeX's standard '\chapter' command to do this then add the +line '\let\cleardoublepage\clearemptydoublepage'. + + The command '\newpage' (*note \newpage::) also ends the current page, +but without clearing pending floats. And, if LaTeX is in two-column +mode then '\newpage' ends the current column while '\clearpage' and +'\cleardoublepage' end the current page. + + +File: latex2e.info, Node: \newpage, Next: \enlargethispage, Prev: \clearpage & \cleardoublepage, Up: Page breaking + +10.2 '\newpage' +=============== + +Synopsis: + + \newpage + + End the current page. This command is robust (*note \protect::). + + LaTeX's page breaks are optimized so ordinarily you only use this +command in a document body to polish the final version, or inside +commands. + + While the commands '\clearpage' and '\cleardoublepage' also end the +current page, in addition they clear pending floats (*note \clearpage & +\cleardoublepage::). And, if LaTeX is in two-column mode then +'\clearpage' and '\cleardoublepage' end the current page, possibly +leaving an empty column, while '\newpage' only ends the current column. + + In contrast with '\pagebreak' (*note \pagebreak & \nopagebreak::), +the '\newpage' command will cause the new page to start right where +requested. This + + Four score and seven years ago our fathers brought forth on this + continent, + \newpage + \noindent a new nation, conceived in Liberty, and dedicated to the + proposition that all men are created equal. + +makes a new page start after 'continent', and the cut-off line is not +right justified. In addition, '\newpage' does not vertically stretch +out the page, as '\pagebreak' does. + + +File: latex2e.info, Node: \enlargethispage, Next: \pagebreak & \nopagebreak, Prev: \newpage, Up: Page breaking + +10.3 '\enlargethispage' +======================= + +Synopsis, one of: + + \enlargethispage{size} + \enlargethispage*{size} + + Enlarge the '\textheight' for the current page. The required +argument SIZE must be a rigid length (*note Lengths::). It may be +positive or negative. This command is fragile (*note \protect::). + + A common strategy is to wait until you have the final text of a +document, and then pass through it tweaking line and page breaks. This +command allows you some page size leeway. + + This will allow one extra line on the current page. + + \enlargethispage{\baselineskip} + + The starred form '\enlargesthispage*' tries to squeeze the material +together on the page as much as possible, for the common use case of +getting one more line on the page. This is often used together with an +explicit '\pagebreak'. + + +File: latex2e.info, Node: \pagebreak & \nopagebreak, Prev: \enlargethispage, Up: Page breaking + +10.4 '\pagebreak' & '\nopagebreak' +================================== + +Synopses: + + \pagebreak + \pagebreak[ZERO-TO-FOUR] + +or + + \nopagebreak + \nopagebreak[ZERO-TO-FOUR] + + Encourage or discourage a page break. The optional ZERO-TO-FOUR is +an integer that allows you to soften the request. The default is 4, so +that without the optional argument these commands entirely force or +prevent the break. But for instance '\nopagebreak[1]' suggests to LaTeX +that another spot might be preferable. The higher the number, the more +insistent the request. Both commands are fragile (*note \protect::). + + LaTeX's page endings are optimized so ordinarily you only use this +command in a document body to polish the final version, or inside +commands. + + If you use these inside a paragraph, they apply to the point +following the line in which they appear. So this + + Four score and seven years ago our fathers brought forth on this + continent, + \pagebreak + a new nation, conceived in Liberty, and dedicated to the proposition + that all men are created equal. + +does not give a page break at 'continent', but instead at 'nation', +since that is where LaTeX breaks that line. In addition, with +'\pagebreak' the vertical space on the page is stretched out where +possible so that it extends to the normal bottom margin. This can look +strange, and if '\flushbottom' is in effect this can cause you to get +'Underfull \vbox (badness 10000) has occurred while \output is active'. +*Note \newpage::, for a command that does not have these effects. + + (There is an obsolete declaration '\samepage', which tries to only +allow a break between two paragraphs. There is a related environment +'samepage', also obsolete. Neither of these work reliably. For more on +keeping material on the same page, see the FAQ entry +<https://texfaq.org/FAQ-nopagebrk>.) + + +File: latex2e.info, Node: Footnotes, Next: Definitions, Prev: Page breaking, Up: Top + +11 Footnotes +************ + +Place a footnote at the bottom of the current page, as here. + + Noël Coward quipped that having to read a footnote is like having + to go downstairs to answer the door, while in the midst of making + love.\footnote{% + I wouldn't know, I don't read footnotes.} + + You can put multiple footnotes on a page. If the footnote text +becomes too long then it will flow to the next page. + + You can also produce footnotes by combining the '\footnotemark' and +the '\footnotetext' commands, which is useful in special circumstances. + + To make bibliographic references come out as footnotes you need to +include a bibliographic style with that behavior (*note Using BibTeX::). + +* Menu: + +* \footnote:: Insert a footnote. +* \footnotemark:: Insert footnote mark only. +* \footnotetext:: Insert footnote text only. +* Footnotes in section headings:: Chapter or section titles. +* Footnotes in a table:: Table footnotes. +* Footnotes of footnotes:: Multiple classes of footnotes. + + +File: latex2e.info, Node: \footnote, Next: \footnotemark, Up: Footnotes + +11.1 '\footnote' +================ + +Synopsis, one of: + + \footnote{TEXT} + \footnote[NUMBER]{TEXT} + + Place a footnote TEXT at the bottom of the current page. + + There are over a thousand footnotes in Gibbon's + \textit{Decline and Fall of the Roman Empire}.\footnote{% + After reading an early version with endnotes David Hume complained, + ``One is also plagued with his Notes, according to the present Method + of printing the Book'' and suggested that they ``only to be printed + at the Margin or the Bottom of the Page.''} + + The optional argument NUMBER allows you to specify the number of the +footnote. If you use this then LaTeX does not increment the 'footnote' +counter. + + By default, LaTeX uses arabic numbers as footnote markers. Change +this with something like +'\renewcommand{\thefootnote}{\fnsymbol{footnote}}', which uses a +sequence of symbols (*note \alph \Alph \arabic \roman \Roman +\fnsymbol::). To make this change global put that in the preamble. If +you make the change local then you may want to reset the counter with +'\setcounter{footnote}{0}'. + + LaTeX determines the spacing of footnotes with two parameters. + +'\footnoterule' + Produces the rule separating the main text on a page from the + page's footnotes. Default dimensions in the standard document + classes (except 'slides', where it does not appear) is: vertical + thickness of '0.4pt', and horizontal size of '0.4\columnwidth' + long. Change the rule with something like this. + + \renewcommand{\footnoterule}{% Kerns avoid vertical space + \kern -3pt % This -3 is negative + \hrule width \textwidth height 1pt % of the sum of this 1 + \kern 2pt} % and this 2 + +'\footnotesep' + The height of the strut placed at the beginning of the footnote + (*note \strut::). By default, this is set to the normal strut for + '\footnotesize' fonts (*note Font sizes::), therefore there is no + extra space between footnotes. This is '6.65pt' for '10pt', + '7.7pt' for '11pt', and '8.4pt' for '12pt'. Change it as with + '\setlength{\footnotesep}{11pt}'. + + The '\footnote' command is fragile (*note \protect::). + + LaTeX's default puts many restrictions on where you can use a +'\footnote'; for instance, you cannot use it in an argument to a +sectioning command such as '\chapter' (it can only be used in outer +paragraph mode; *note Modes::). There are some workarounds; see +following sections. + + In a 'minipage' environment the '\footnote' command uses the +'mpfootnote' counter instead of the 'footnote' counter, so they are +numbered independently. They are shown at the bottom of the +environment, not at the bottom of the page. And by default they are +shown alphabetically. *Note minipage:: and *note Footnotes in a +table::. + + +File: latex2e.info, Node: \footnotemark, Next: \footnotetext, Prev: \footnote, Up: Footnotes + +11.2 '\footnotemark' +==================== + +Synopsis, one of: + + \footnotemark + \footnotemark[NUMBER] + + Put the current footnote mark in the text. To specify associated +text for the footnote see *note \footnotetext::. The optional argument +NUMBER causes the command to use that number to determine the footnote +mark. This command can be used in inner paragraph mode (*note Modes::). + + If you use '\footnotemark' without the optional argument then it +increments the 'footnote' counter, but if you use the optional NUMBER +then it does not. The next example produces several consecutive +footnote markers referring to the same footnote. + + The first theorem\footnote{Due to Gauss.} + and the second theorem\footnotemark[\value{footnote}] + and the third theorem.\footnotemark[\value{footnote}] + + If there are intervening footnotes then you must remember the value +of the number of the common mark. This example gives the same +institutional affiliation to both the first and third authors ('\thanks' +is a version of '\footnote'), by-hand giving the number of the footnote. + + \title{A Treatise on the Binomial Theorem} + \author{J Moriarty\thanks{University of Leeds} + \and A C Doyle\thanks{Durham University} + \and S Holmes\footnotemark[1]} + \begin{document} + \maketitle + + This uses a counter to remember the footnote number. The third +sentence is followed by the same footnote marker as the first. + + \newcounter{footnoteValueSaver} + All babies are illogical.\footnote{% + Lewis Carroll.}\setcounter{footnoteValueSaver}{\value{footnote}} + Nobody is despised who can manage a crocodile.\footnote{% + Captain Hook.} + Illogical persons are despised.\footnotemark[\value{footnoteValueSaver}] + Therefore, anyone who can manage a crocodile is not a baby. + + This example accomplishes the same by using the package 'cleveref'. + + \usepackage{cleveref}[2012/02/15] % in preamble + \crefformat{footnote}{#2\footnotemark[#1]#3} + ... + The theorem is from Evers.\footnote{\label{fn:TE}Tinker, Evers, 1994.} + The corollary is from Chance.\footnote{Evers, Chance, 1990.} + But the key lemma is from Tinker.\cref{fn:TE} + + It will work with the package 'hyperref'. + + +File: latex2e.info, Node: \footnotetext, Next: Footnotes in section headings, Prev: \footnotemark, Up: Footnotes + +11.3 '\footnotetext' +==================== + +Synopsis, one of: + + \footnotetext{TEXT} + \footnotetext[NUMBER]{TEXT} + + Place TEXT at the bottom of the page as a footnote. It pairs with +'\footnotemark' (*note \footnotemark::) and can come anywhere after that +command, but must appear in outer paragraph mode (*note Modes::). The +optional argument NUMBER changes the number of the footnote mark. + + *Note \footnotemark:: and *note Footnotes in a table::, for usage +examples. + + +File: latex2e.info, Node: Footnotes in section headings, Next: Footnotes in a table, Prev: \footnotetext, Up: Footnotes + +11.4 Footnotes in section headings +================================== + +Putting a footnote in a section heading, as in: + + \section{Full sets\protect\footnote{This material due to ...}} + +causes the footnote to appear at the bottom of the page where the +section starts, as usual, but also at the bottom of the table of +contents, where it is not likely to be desired. The simplest way to +have it not appear on the table of contents is to use the optional +argument to '\section' + + \section[Please]{Please\footnote{% + Don't footnote in chapter and section headers!}} + +No '\protect' is needed in front of '\footnote' here because what gets +moved to the table of contents is the optional argument. + + +File: latex2e.info, Node: Footnotes in a table, Next: Footnotes of footnotes, Prev: Footnotes in section headings, Up: Footnotes + +11.5 Footnotes in a table +========================= + +Inside a 'tabular' or 'array' environment the '\footnote' command does +not work; there is a footnote mark in the table cell but the footnote +text does not appear. The solution is to use a 'minipage' environment +as here (*note minipage::). + + \begin{center} + \begin{minipage}{\textwidth} \centering + \begin{tabular}{l|l} + \textsc{Ship} &\textsc{Book} \\ \hline + \textit{HMS Sophie} &Master and Commander \\ + \textit{HMS Polychrest} &Post Captain \\ + \textit{HMS Lively} &Post Captain \\ + \textit{HMS Surprise} &A number of books\footnote{% + Starting with \textit{HMS Surprise}.} + \end{tabular} + \end{minipage} + \end{center} + + Inside a 'minipage', footnote marks are lowercase letters. Change +that with something like +'\renewcommand{\thempfootnote}{\arabic{mpfootnote}}' (*note \alph \Alph +\arabic \roman \Roman \fnsymbol::). + + The footnotes in the prior example appear at the bottom of the +'minipage'. To have them appear at the bottom of the main page, as part +of the regular footnote sequence, use the '\footnotemark' and +'\footnotetext' pair and make a new counter. + + \newcounter{mpFootnoteValueSaver} + \begin{center} + \begin{minipage}{\textwidth} + \setcounter{mpFootnoteValueSaver}{\value{footnote}} \centering + \begin{tabular}{l|l} + \textsc{Woman} &\textsc{Relationship} \\ \hline + Mona &Attached\footnotemark \\ + Diana Villiers &Eventual wife \\ + Christine Hatherleigh Wood &Fiance\footnotemark + \end{tabular} + \end{minipage}% percent sign keeps footnote text close to minipage + \stepcounter{mpFootnoteValueSaver}% + \footnotetext[\value{mpFootnoteValueSaver}]{% + Little is known other than her death.}% + \stepcounter{mpFootnoteValueSaver}% + \footnotetext[\value{mpFootnoteValueSaver}]{% + Relationship is unresolved in XXI.} + \end{center} + + For a floating 'table' environment (*note table::), use the +'tablefootnote' package. + + \usepackage{tablefootnote} % in preamble + ... + \begin{table} + \centering + \begin{tabular}{l|l} + \textsc{Date} &\textsc{Campaign} \\ \hline + 1862 &Fort Donelson \\ + 1863 &Vicksburg \\ + 1865 &Army of Northern Virginia\tablefootnote{% + Ending the war.} + \end{tabular} + \caption{Forces captured by US Grant} + \end{table} + +The footnote appears at the page bottom and is numbered in sequence with +other footnotes. + + +File: latex2e.info, Node: Footnotes of footnotes, Prev: Footnotes in a table, Up: Footnotes + +11.6 Footnotes of footnotes +=========================== + +Particularly in the humanities, authors can have multiple classes of +footnotes, including having footnotes of footnotes. The package +'bigfoot' extends LaTeX's default footnote mechanism in many ways, +including allow these two, as in this example. + + \usepackage{bigfoot} % in preamble + \DeclareNewFootnote{Default} + \DeclareNewFootnote{from}[alph] % create class \footnotefrom{} + ... + The third theorem is a partial converse of the + second.\footnotefrom{% + Noted in Wilson.\footnote{Second edition only.}} + + +File: latex2e.info, Node: Definitions, Next: Counters, Prev: Footnotes, Up: Top + +12 Definitions +************** + +LaTeX has support for making new commands of many different kinds. + +* Menu: + +* \newcommand & \renewcommand:: (Re)define a new command. +* \providecommand:: Define a new command, if name not used. +* \makeatletter & \makeatother:: Change the status of the at-sign character. +* \@ifstar:: Define your own commands with *-variants. +* \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. +* \ignorespaces & \ignorespacesafterend:: Discard extra spaces. +* xspace package:: Space after a macro, conditionally. + + +File: latex2e.info, Node: \newcommand & \renewcommand, Next: \providecommand, Up: Definitions + +12.1 '\newcommand' & '\renewcommand' +==================================== + +Synopses, one of: + + \newcommand{\CMD}{DEFN} + \newcommand{\CMD}[NARGS]{DEFN} + \newcommand{\CMD}[NARGS][OPTARGDEFAULT]{DEFN} + \newcommand*{\CMD}{DEFN} + \newcommand*{\CMD}[NARGS]{DEFN} + \newcommand*{\CMD}[NARGS][OPTARGDEFAULT]{DEFN} + +or one of these. + + \renewcommand{\CMD}[NARGS]{DEFN} + \renewcommand{\CMD}[NARGS]{DEFN} + \renewcommand{\CMD}[NARGS][OPTARGDEFAULT]{DEFN} + \renewcommand*{\CMD}{DEFN} + \renewcommand*{\CMD}[NARGS]{DEFN} + \renewcommand*{\CMD}[NARGS][OPTARGDEFAULT]{DEFN} + + Define or redefine a command (see also the discussion of +'\DeclareRobustCommand' in *note Class and package commands::). + + The starred form of these two forbids the arguments from containing +multiple paragraphs of text (in plain TeX terms, the commands are not +'\long'). With the default form, arguments can be multiple paragraphs. + + These are the parameters: + +CMD + + Required; '\CMD' is the command name. It must begin with a + backslash, '\', and must not begin with the four character string + '\end'. For '\newcommand', it must not be already defined. For + '\renewcommand', this name must already be defined. + +NARGS + Optional; an integer from 0 to 9, specifying the number of + arguments that the command takes, including any optional argument. + Omitting this argument is the same as specifying 0, meaning that + the command has no arguments. If you redefine a command, the new + version can have a different number of arguments than the old + version. + +OPTARGDEFAULT + Optional; if this argument is present then the first argument of + '\CMD' is optional, with default value OPTARGDEFAULT (which may be + the empty string). If OPTARGSDEFAULT is not present then '\CMD' + does not take an optional argument. + + That is, if '\CMD' is used with square brackets, as in + '\CMD[OPTVAL]{...}...', then within DEFN the parameter '#1' is set + to the value of OPTVAL. On the other hand, if '\CMD' is called + without the square brackets then within DEFN the parameter '#1' is + set to the value of OPTARGDEFAULT. In either case, the required + arguments start with '#2'. + + Omitting '[OPTARGDEFAULT]' is different from having the square + brackets with no contents, as in '[]'. The former sets '#1' to the + value of OPTARGDEFAULT; the latter sets '#1' to the empty string. + +DEFN + Required; the text to be substituted for every occurrence of + '\CMD'. The parameters '#1', '#2', ... '#NARGS' are replaced by + the values that you supply when you call the command (or by the + default value if there is an optional argument and you don't + exercise the option). + + TeX ignores blanks in the source following a control word (*note +Control sequences::), as in '\cmd '. If you actually want a space +there, one solution is to type '{}' after the command ('\cmd{} ', and +another solution is to use an explicit control space ('\cmd\ '). + + A simple example of defining a new command: '\newcommand{\RS}{Robin +Smith}' results in '\RS' being replaced by the longer text. Redefining +an existing command is similar: '\renewcommand{\qedsymbol}{{\small +QED}}'. + + If you try to define a command and the name has already been used +then you get something like 'LaTeX Error: Command \fred already defined. +Or name \end... illegal, see p.192 of the manual'. If you try to +redefine a command and the name has not yet been used then you get +something like 'LaTeX Error: \hank undefined'. + + Here the first definition creates a command with no arguments, and +the second, one with one required argument. + + \newcommand{\student}{Ms~O'Leary} + \newcommand{\defref}[1]{Definition~\ref{#1}} + +Use the first as in 'I highly recommend \student{} to you'. The second +has a variable argument, so that '\defref{def:basis}' expands to +'Definition~\ref{def:basis}', which ultimately expands to something like +'Definition~3.14'. + + Similarly, but with two required arguments: +'\newcommand{\nbym}[2]{$#1 \times #2$}' is invoked as '\nbym{2}{k}'. + + This example has an optional argument. + + \newcommand{\salutation}[1][Sir or Madam]{Dear #1:} + +Then '\salutation' gives 'Dear Sir or Madam:' while '\salutation[John]' +gives 'Dear John:'. And '\salutation[]' gives 'Dear :'. + + This example has an optional argument and two required arguments. + + \newcommand{\lawyers}[3][company]{#2, #3, and~#1} + I employ \lawyers[Howe]{Dewey}{Cheatem}. + +The output is 'I employ Dewey, Cheatem, and Howe'. The optional +argument, the 'Howe', is associated with '#1', while 'Dewey' and +'Cheatem' are associated with '#2' and '#3'. Because of the optional +argument, '\lawyers{Dewey}{Cheatem}' will give the output 'I employ +Dewey, Cheatem, and company'. + + The braces around DEFN do not define a group, that is, they do not +delimit the scope of the result of expanding DEFN. For example, with +'\newcommand{\shipname}[1]{\it #1}', in this sentence, + + The \shipname{Monitor} met the \shipname{Merrimac}. + +the words 'met the' would incorrectly be in italics. The solution is to +put another pair of braces inside the definition: +'\newcommand{\shipname}[1]{{\it #1}}'. + +* Menu: + +* Control sequences:: Control sequence, control word and control symbol. + + +File: latex2e.info, Node: Control sequences, Up: \newcommand & \renewcommand + +12.1.1 Control sequence, control word and control symbol +-------------------------------------------------------- + +When reading input TeX converts the sequences of read characters into a +sequence of "tokens". When TeX sees a backslash '\', it will handle the +following characters in a special way in order to make a "control +sequence" token. + + The control sequences fall into two categories: + + * "control word", when the control sequence is gathered from a '\' + followed by at least one ASCII letter, followed by at least one + blank. The sequence of at least one ASCII letter is called the + "control sequence name". + * "control symbol", when the control sequence is gathered from a '\' + followed by one non-letter character. + + Blanks after a control word are ignored and do not produce any +whitespace in the output (*note \newcommand & \renewcommand:: and *note +\(SPACE)::). + + Just as the '\relax' command does nothing, the following will print +'Hello!'--if you use the Emacs info viewer, turn on the whitespace-mode +minor mode to see the trailing spaces: + + Hel\relax + lo! + +This is because blanks after '\relax', including the newline are +ignored, and blanks at the beginning of a line are also ignored (*note +Leading blanks::). + + +File: latex2e.info, Node: \providecommand, Next: \makeatletter & \makeatother, Prev: \newcommand & \renewcommand, Up: Definitions + +12.2 '\providecommand' +====================== + +Synopses, one of: + + \providecommand{\CMD}{DEFN} + \providecommand{\CMD}[NARGS]{DEFN} + \providecommand{\CMD}[NARGS][OPTARGDEFAULT]{DEFN} + \providecommand*{\CMD}{DEFN} + \providecommand*{\CMD}[NARGS]{DEFN} + \providecommand*{\CMD}[NARGS][OPTARGDEFAULT]{DEFN} + + Defines a command, as long as no command of this name already exists. +If no command of this name already exists then this has the same effect +as '\newcommand'. If a command of this name already exists then this +definition does nothing. This is particularly useful in a file that may +be loaded more than once, such as a style file. *Note \newcommand & +\renewcommand::, for the description of the arguments. + + This example + + \providecommand{\myaffiliation}{Saint Michael's College} + \providecommand{\myaffiliation}{Lyc\'ee Henri IV} + From \myaffiliation. + +outputs 'From Saint Michael's College'. Unlike '\newcommand', the +repeated use of '\providecommand' does not give an error. + + +File: latex2e.info, Node: \makeatletter & \makeatother, Next: \@ifstar, Prev: \providecommand, Up: Definitions + +12.3 '\makeatletter' & '\makeatother' +===================================== + +Synopsis: + + \makeatletter + ... definition of commands with @ in their name .. + \makeatother + + Use this pair when you redefine LaTeX commands that are named with an +at-sign character ''@''. The '\makeatletter' declaration makes the +at-sign character have the category code of a letter, code 11. The +'\makeatother' declaration sets the category code of the at-sign to +code 12, its default value. + + As TeX reads characters, it assigns each one a category code, or +"catcode". For instance, it assigns the backslash character ''\'' the +catcode 0. Command names consist of a category 0 character, ordinarily +backslash, followed by letters, category 11 characters (except that a +command name can also consist of a category 0 character followed by a +single non-letter symbol). + + LaTeX's source code has the convention that some commands use '@' in +their name. These commands are mainly intended for package or class +writers. The convention prevents authors who are just using a package +or class from accidentally replacing such a command with one of their +own, because by default the at-sign has catcode 12. + + Use the pair '\makeatletter' and '\makeatother' inside a '.tex' file, +typically in the preamble, when you are defining or redefining commands +named with '@', by having them surround your definition. Don't use +these inside '.sty' or '.cls' files since the '\usepackage' and +'\documentclass' commands already arrange that the at-sign has the +character code of a letter, catcode 11. + + For a comprehensive list of macros with an at-sign in their names see +<https://ctan.org/pkg/macros2e>. + + In this example the class file has a command '\thesis@universityname' +that the user wants to change. These three lines should go in the +preamble, before the '\begin{document}'. + + \makeatletter + \renewcommand{\thesis@universityname}{Saint Michael's College} + \makeatother + + +File: latex2e.info, Node: \@ifstar, Next: \newcounter, Prev: \makeatletter & \makeatother, Up: Definitions + +12.4 '\@ifstar' +=============== + +Synopsis: + + \newcommand{\mycmd}{\@ifstar{\mycmd@star}{\mycmd@nostar}} + \newcommand{\mycmd@nostar}[NOSTAR-NUM-ARGS]{NOSTAR-BODY} + \newcommand{\mycmd@star}[STAR-NUM-ARGS]{STAR-BODY} + + Many standard LaTeX environments or commands have a variant with the +same name but ending with a star character '*', an asterisk. Examples +are the 'table' and 'table*' environments and the '\section' and +'\section*' commands. + + When defining environments, following this pattern is straightforward +because '\newenvironment' and '\renewenvironment' allow the environment +name to contain a star. So you just have to write +'\newenvironment{MYENV}' or '\newenvironment{MYENV*}' and continue the +definition as usual. For commands the situation is more complex as the +star not being a letter cannot be part of the command name. As in the +synopsis above, there will be a user-called command, given above as +'\mycmd', which peeks ahead to see if it is followed by a star. For +instance, LaTeX does not really have a '\section*' command; instead, the +'\section' command peeks ahead. This command does not accept arguments +but instead expands to one of two commands that do accept arguments. In +the synopsis these two are '\mycmd@nostar' and '\mycmd@star'. They +could take the same number of arguments or a different number, or no +arguments at all. As always, in a LaTeX document a command using an +at-sign '@' in its name must be enclosed inside a '\makeatletter ... +\makeatother' block (*note \makeatletter & \makeatother::). + + This example of '\@ifstar' defines the command '\ciel' and a variant +'\ciel*'. Both have one required argument. A call to '\ciel{blue}' +will return "not starry blue sky" while '\ciel*{night}' will return +"starry night sky". + + \makeatletter + \newcommand*{\ciel@unstarred}[1]{not starry #1 sky} + \newcommand*{\ciel@starred}[1]{starry #1 sky} + \newcommand*{\ciel}{\@ifstar{\ciel@starred}{\ciel@unstarred}} + \makeatother + + In the next example, the starred variant takes a different number of +arguments than the unstarred one. With this definition, Agent 007's +'``My name is \agentsecret*{Bond}, \agentsecret{James}{Bond}.''' is +equivalent to entering the commands '``My name is \textsc{Bond}, +\textit{James} textsc{Bond}.''' + + \newcommand*{\agentsecret@unstarred}[2]{\textit{#1} \textsc{#2}} + \newcommand*{\agentsecret@starred}[1]{\textsc{#1}} + \newcommand*{\agentsecret}{% + \@ifstar{\agentsecret@starred}{\agentsecret@unstarred}} + + After a command name, a star is handled similarly to an optional +argument. (This differs from environment names in which the star is +part of the name itself and as such could be in any position.) Thus, it +is technically possible to put any number of spaces between the command +and the star. Thus '\agentsecret*{Bond}' and '\agentsecret *{Bond}' are +equivalent. However, the standard practice is not to insert any such +spaces. + + There are two alternative ways to accomplish the work of '\@ifstar'. +(1) The 'suffix' package allows the construct +'\newcommand\mycommand{UNSTARRED-VARIANT}' followed by +'\WithSuffix\newcommand\mycommand*{STARRED-VARIANT}'. (2) LaTeX +provides the 'xparse' package, which allows this code: + + \NewDocumentCommand\foo{s}{\IfBooleanTF#1 + {STARRED-VARIANT}% + {UNSTARRED-VARIANT}% + } + + +File: latex2e.info, Node: \newcounter, Next: \newlength, Prev: \@ifstar, Up: Definitions + +12.5 '\newcounter': Allocating a counter +======================================== + +Synopsis, one of: + + \newcounter{COUNTERNAME} + \newcounter{COUNTERNAME}[SUPERCOUNTER] + + Globally defines a new counter named COUNTERNAME and initialize it to +zero (*note Counters::). + + The name COUNTERNAME must consist of letters only. It does not begin +with a backslash. This name must not already be in use by another +counter. + + When you use the optional argument '[SUPERCOUNTER]' then the counter +COUNTERNAME will be reset to zero whenever SUPERCOUNTER is incremented. +For example, ordinarily 'subsection' is numbered within 'section' so +that any time you increment SECTION, either with '\stepcounter' (*note +\stepcounter::) or '\refstepcounter' (*note \refstepcounter::), then +LaTeX will reset SUBSECTION to zero. + + This example + + \newcounter{asuper} \setcounter{asuper}{1} + \newcounter{asub}[asuper] \setcounter{asub}{3} % Note `asuper' + The value of asuper is \arabic{asuper} and of asub is \arabic{asub}. + \stepcounter{asuper} + Now asuper is \arabic{asuper} while asub is \arabic{asub}. + + produces 'The value of asuper is 1 and that of asub is 3' and 'Now +asuper is 2 while asub is 0'. + + If the counter already exists, for instance by entering 'asuper' +twice, then you get something like 'LaTeX Error: Command \c@asuper +already defined. Or name \end... illegal, see p.192 of the manual.'. + + If you use the optional argument then the super counter must already +exist. Entering '\newcounter{jh}[lh]' when 'lh' is not a defined +counter will get you 'LaTeX Error: No counter 'lh' defined.' + + +File: latex2e.info, Node: \newlength, Next: \newsavebox, Prev: \newcounter, Up: Definitions + +12.6 '\newlength' +================= + +Synopsis: + + \newlength{\LEN} + + Allocate a new length register (*note Lengths::). The required +argument '\LEN' has to be a control sequence (*note Control +sequences::), and as such must begin with a backslash, '\' under normal +circumstances. The new register holds rubber lengths such as '72.27pt' +or '1in plus.2in minus.1in' (a LaTeX length register is what plain TeX +calls a 'skip' register). The initial value is zero. The control +sequence '\LEN' must not be already defined. + + An example: + + \newlength{\graphichgt} + + If you forget the backslash then you get 'Missing control sequence +inserted'. If the control sequence already exists then you get +something like 'LaTeX Error: Command \graphichgt already defined. Or +name \end... illegal, see p.192 of the manual'. + + +File: latex2e.info, Node: \newsavebox, Next: \newenvironment & \renewenvironment, Prev: \newlength, Up: Definitions + +12.7 '\newsavebox' +================== + +Synopsis: + + \newsavebox{\CMD} + + Define \CMD, the string consisting of a backslash followed by CMD, to +refer to a new bin for storing material. These bins hold material that +has been typeset, to use multiple times or to measure or manipulate +(*note Boxes::). The bin name \CMD is required, must start with a +backslash, \, and must not already be a defined command. This command +is fragile (*note \protect::). + + This allocates a bin and then puts typeset material into it. + + \newsavebox{\logobox} + \savebox{\logobox}{LoGo} + Our logo is \usebox{\logobox}. + +The output is 'Our logo is LoGo'. + + If there is an already defined bin then you get something like 'LaTeX +Error: Command \logobox already defined. Or name \end... illegal, see +p.192 of the manual'. + + The allocation of a box is global. + + +File: latex2e.info, Node: \newenvironment & \renewenvironment, Next: \newtheorem, Prev: \newsavebox, Up: Definitions + +12.8 '\newenvironment' & '\renewenvironment' +============================================ + +Synopses, one of: + + \newenvironment{ENV}{BEGDEF}{ENDDEF} + \newenvironment{ENV}[NARGS]{BEGDEF}{ENDDEF} + \newenvironment{ENV}[NARGS][OPTARGDEFAULT]{BEGDEF}{ENDDEF} + \newenvironment*{ENV}{BEGDEF}{ENDDEF} + \newenvironment*{ENV}[NARGS]{BEGDEF}{ENDDEF} + \newenvironment*{ENV}[NARGS][OPTARGDEFAULT]{BEGDEF}{ENDDEF} + +or one of these. + + \renewenvironment{ENV}{BEGDEF}{ENDDEF} + \renewenvironment{ENV}[NARGS]{BEGDEF}{ENDDEF} + \renewenvironment{ENV}[NARGS][OPTARGDEFAULT]{BEGDEF}{ENDDEF} + \renewenvironment*{ENV}{BEGDEF}{ENDDEF} + \renewenvironment*{ENV}[NARGS]{BEGDEF}{ENDDEF} + \renewenvironment*{ENV}[NARGS][OPTARGDEFAULT]{BEGDEF}{ENDDEF} + + Define or redefine the environment ENV, that is, create the construct +'\begin{ENV} ... BODY ... \end{ENV}'. + + The starred form of these commands requires that the arguments not +contain multiple paragraphs of text. However, the body of these +environments can contain multiple paragraphs. + +ENV + Required; the environment name. It consists only of letters or the + '*' character, and thus does not begin with backslash, '\'. It + must not begin with the string 'end'. For '\newenvironment', the + name ENV must not be the name of an already existing environment, + and also the command '\ENV' must be undefined. For + '\renewenvironment', ENV must be the name of an existing + environment. + +NARGS + Optional; an integer from 0 to 9 denoting the number of arguments + of that the environment takes. When you use the environment these + arguments appear after the '\begin', as in '\begin{ENV}{ARG1} ... + {ARGN}'. Omitting this is equivalent to setting it to 0; the + environment will have no arguments. When redefining an + environment, the new version can have a different number of + arguments than the old version. + +OPTARGDEFAULT + Optional; if this is present then the first argument of the defined + environment is optional, with default value OPTARGDEFAULT (which + may be the empty string). If this is not in the definition then + the environment does not take an optional argument. + + That is, when OPTARGDEFAULT is present in the definition of the + environment then you can start the environment with square + brackets, as in '\begin{ENV}[OPTVAL]{...} ... \end{ENV}'. In this + case, within BEGDEFN the parameter '#1' is set to the value of + OPTVAL. If you call '\begin{ENV}' without square brackets, then + within BEGDEFN the parameter '#1' is set to the value of the + default OPTARGDEFAULT. In either case, any required arguments + start with '#2'. + + Omitting '[MYVAL]' in the call is different than having the square + brackets with no contents, as in '[]'. The former results in '#1' + expanding to OPTARGDEFAULT; the latter results in '#1' expanding to + the empty string. + +BEGDEF + Required; the text expanded at every occurrence of '\begin{ENV}'. + Within BEGDEF, the parameters '#1', '#2', ... '#NARGS', are + replaced by the values that you supply when you call the + environment; see the examples below. + +ENDDEF + Required; the text expanded at every occurrence of '\end{ENV}'. + This may not contain any parameters, that is, you cannot use '#1', + '#2', etc., here (but see the final example below). + + All environments, that is to say the BEGDEF code, the environment +body, and the ENDDEF code, are processed within a group. Thus, in the +first example below, the effect of the '\small' is limited to the quote +and does not extend to material following the environment. + + If you try to define an environment and the name has already been +used then you get something like 'LaTeX Error: Command \fred already +defined. Or name \end... illegal, see p.192 of the manual'. If you try +to redefine an environment and the name has not yet been used then you +get something like 'LaTeX Error: Environment hank undefined.'. + + This example gives an environment like LaTeX's 'quotation' except +that it will be set in smaller type. + + \newenvironment{smallquote}{% + \small\begin{quotation} + }{% + \end{quotation} + } + + This has an argument, which is set in boldface at the start of a +paragraph. + + \newenvironment{point}[1]{% + \noindent\textbf{#1} + }{% + } + + This one shows the use of a optional argument; it gives a quotation +environment that cites the author. + + \newenvironment{citequote}[1][Shakespeare]{% + \begin{quotation} + \noindent\textit{#1}: + }{% + \end{quotation} + } + +The author's name is optional, and defaults to 'Shakespeare'. In the +document, use the environment like this. + + \begin{citequote}[Lincoln] + ... + \end{citequote} + + The final example shows how to save the value of an argument to use +in ENDDEF, in this case in a box (*note \sbox & \savebox::). + + \newsavebox{\quoteauthor} + \newenvironment{citequote}[1][Shakespeare]{% + \sbox\quoteauthor{#1}% + \begin{quotation} + }{% + \hspace{1em plus 1fill}---\usebox{\quoteauthor} + \end{quotation} + } + + +File: latex2e.info, Node: \newtheorem, Next: \newfont, Prev: \newenvironment & \renewenvironment, Up: Definitions + +12.9 '\newtheorem' +================== + +Synopses: + + \newtheorem{NAME}{TITLE} + \newtheorem{NAME}{TITLE}[NUMBERED_WITHIN] + \newtheorem{NAME}[NUMBERED_LIKE]{TITLE} + + Define a new theorem-like environment. You can specify one of +NUMBERED_WITHIN and NUMBERED_LIKE, or neither, but not both. + + The first form, '\newtheorem{NAME}{TITLE}', creates an environment +that will be labelled with TITLE; see the first example below. + + The second form, '\newtheorem{NAME}{TITLE}[NUMBERED_WITHIN]', creates +an environment whose counter is subordinate to the existing counter +NUMBERED_WITHIN, so this counter will be reset when NUMBERED_WITHIN is +reset. See the second example below. + + The third form '\newtheorem{NAME}[NUMBERED_LIKE]{TITLE}', with +optional argument between the two required arguments, creates an +environment whose counter will share the previously defined counter +NUMBERED_LIKE. See the third example. + + This command creates a counter named NAME. In addition, unless the +optional argument NUMBERED_LIKE is used, inside of the theorem-like +environment the current '\ref' value will be that of +'\theNUMBERED_WITHIN' (*note \ref::). + + This declaration is global. It is fragile (*note \protect::). + + Arguments: + +NAME + The name of the environment. It is a string of letters. It must + not begin with a backslash, '\'. It must not be the name of an + existing environment, and the command name '\NAME' must not already + be defined. + +TITLE + The text to be printed at the beginning of the environment, before + the number. For example, 'Theorem'. + +NUMBERED_WITHIN + Optional; the name of an already defined counter, usually a + sectional unit such as 'chapter' or 'section'. When the + NUMBERED_WITHIN counter is reset then the NAME environment's + counter will also be reset. + + If this optional argument is not used then the command '\theNAME' + is set to '\arabic{NAME}'. + +NUMBERED_LIKE + Optional; the name of an already defined theorem-like environment. + The new environment will be numbered in sequence with + NUMBERED_LIKE. + + Without any optional arguments the environments are numbered +sequentially. The example below has a declaration in the preamble that +results in 'Definition 1' and 'Definition 2' in the output. + + \newtheorem{defn}{Definition} + \begin{document} + \section{...} + \begin{defn} + First def + \end{defn} + + \section{...} + \begin{defn} + Second def + \end{defn} + + This example has the same document body as the prior one. But here +'\newtheorem''s optional argument NUMBERED_WITHIN is given as 'section', +so the output is like 'Definition 1.1' and 'Definition 2.1'. + + \newtheorem{defn}{Definition}[section] + \begin{document} + \section{...} + \begin{defn} + First def + \end{defn} + + \section{...} + \begin{defn} + Second def + \end{defn} + + In the next example there are two declarations in the preamble, the +second of which calls for the new 'thm' environment to use the same +counter as 'defn'. It gives 'Definition 1.1', followed by 'Theorem 2.1' +and 'Definition 2.2'. + + \newtheorem{defn}{Definition}[section] + \newtheorem{thm}[defn]{Theorem} + \begin{document} + \section{...} + \begin{defn} + First def + \end{defn} + + \section{...} + \begin{thm} + First thm + \end{thm} + + \begin{defn} + Second def + \end{defn} + + +File: latex2e.info, Node: \newfont, Next: \protect, Prev: \newtheorem, Up: Definitions + +12.10 '\newfont' +================ + +This command is obsolete. This description is here only to help with +old documents. New documents should define fonts in families through +the New Font Selection Scheme which allows you to, for example, +associate a boldface with a roman (*note Fonts::). + + Synopsis: + + \newfont{\CMD}{FONT DESCRIPTION} + + Define a command '\CMD' that will change the current font. The +control sequence must not already be defined. It must begin with a +backslash, '\'. + + The FONT DESCRIPTION consists of a FONTNAME and an optional "at +clause". LaTeX will look on your system for a file named +'FONTNAME.tfm'. The at clause can have the form either 'at DIMEN' or +'scaled FACTOR', where a FACTOR of '1000' means no scaling. For LaTeX's +purposes, all this does is scale all the character and other font +dimensions relative to the font's design size, which is a value defined +in the '.tfm' file. + + This defines two equivalent fonts and typesets a few characters in +each. + + \newfont{\testfontat}{cmb10 at 11pt} + \newfont{\testfontscaled}{cmb10 scaled 1100} + \testfontat abc + \testfontscaled abc + + +File: latex2e.info, Node: \protect, Next: \ignorespaces & \ignorespacesafterend, Prev: \newfont, Up: Definitions + +12.11 '\protect' +================ + +All LaTeX commands are either "fragile" or "robust". A fragile command +can break when it is used in the argument to certain other commands. +Commands that contain data that LaTeX writes to an auxiliary file and +re-reads later are fragile. This includes material that goes into a +table of contents, list of figures, list of tables, etc. Fragile +commands also include line breaks, any command that has an optional +argument, and many more. To prevent such commands from breaking, one +solution is to preceded them with the command '\protect'. + + For example, when LaTeX runs the '\section{SECTION NAME}' command it +writes the SECTION NAME text to the '.aux' auxiliary file, moving it +there for use elsewhere in the document such as in the table of +contents. Any argument that is internally expanded by LaTeX without +typesetting it directly is referred to as a "moving argument". A +command is fragile if it can expand during this process into invalid TeX +code. Some examples of moving arguments are those that appear in the +'\caption{...}' command (*note figure::), in the '\thanks{...}' command +(*note \maketitle::), and in @-expressions in the 'tabular' and 'array' +environments (*note tabular::). + + If you get strange errors from commands used in moving arguments, try +preceding it with '\protect'. Every fragile commands must be protected +with their own '\protect'. + + Although usually a '\protect' command doesn't hurt, length commands +are robust and should not be preceded by a '\protect' command. Nor can +a '\protect' command be used in the argument to '\addtocounter' or +'\setcounter' command. + + In this example the '\caption' command gives a mysterious error about +an extra curly brace. Fix the problem by preceding each '\raisebox' +command with '\protect'. + + \begin{figure} + ... + \caption{Company headquarters of A\raisebox{1pt}{B}\raisebox{-1pt}{C}} + \end{figure} + + In the next example the '\tableofcontents' command gives an error +because the '\(..\)' in the section title expands to illegal TeX in the +'.toc' file. You can solve this by changing '\(..\)' to +'\protect\(..\protect\)'. + + \begin{document} + \tableofcontents + ... + \section{Einstein's \( e=mc^2 \)} + ... + + +File: latex2e.info, Node: \ignorespaces & \ignorespacesafterend, Next: xspace package, Prev: \protect, Up: Definitions + +12.12 '\ignorespaces & \ignorespacesafterend' +============================================= + +Synopsis: + + \ignorespaces + +or + + \ignorespacesafterend + + Both commands cause LaTeX to ignore blanks (that is, characters of +catcode 10 such as space or tabulation) after the end of the command up +to the first box or non-blank character. The first is a command from +plain TeX, and the second is LaTeX-specific. + + The '\ignorespaces' is often used when defining commands via +'\newcommand', or '\newenvironment', or '\def'. The example below +illustrates. It allows a user to show the points values for quiz +questions in the margin but it is inconvenient because, as shown in the +'enumerate' list, users must not put any space between the command and +the question text. + + \newcommand{\points}[1]{\makebox[0pt]{\makebox[10em][l]{#1~pts}} + \begin{enumerate} + \item\points{10}no extra space output here + \item\points{15} extra space between the number and the `extra' + \end{enumerate} + +The solution is to change to this. + + \newcommand{\points}[1]{% + \makebox[0pt]{\makebox[10em][l]{#1~pts}}\ignorespaces} + + A second example shows blanks being removed from the front of text. +The commands below allow a user to uniformly attach a title to names. +But, as given, if a title accidentally starts with a space then +'\fullname' will reproduce that. + + \newcommand{\honorific}[1]{\def\honorific{#1}} % remember title + \newcommand{\fullname}[1]{\honorific~#1} % put title before name + + \begin{tabular}{|l|} + \honorific{Mr/Ms} \fullname{Jones} \\ % no extra space here + \honorific{ Mr/Ms} \fullname{Jones} % extra space before title + \end{tabular} + +To fix this, change to +'\newcommand{\fullname}[1]{\ignorespaces\honorific~#1}'. + + The '\ignorespaces' is also often used in a '\newenvironment' at the +end of the BEGIN clause, as in '\begin{newenvironment}{ENV NAME}{... +\ignorespaces}{...}'. + + To strip blanks off the end of an environment use +'\ignorespacesafterend'. An example is that this will show a much +larger vertical space between the first and second environments than +between the second and third. + + \newenvironment{eq}{\begin{equation}}{\end{equation}} + \begin{eq} + e=mc^2 + \end{eq} + \begin{equation} + F=ma + \end{equation} + \begin{equation} + E=IR + \end{equation} + + Putting a comment character '%' immediately after the '\end{eq}' will +make the vertical space disappear, but that is inconvenient. The +solution is to change to +'\newenvironment{eq}{\begin{equation}}{\end{equation}\ignorespacesafterend}'. + + +File: latex2e.info, Node: xspace package, Prev: \ignorespaces & \ignorespacesafterend, Up: Definitions + +12.13 xspace package +==================== + +Synopsis: + + \usepackage{xspace} + ... + \newcommand{...}{...\xspace} + + The '\xspace' macro, when used at the end of a command definition, +adds a space unless the command is followed by certain punctuation +characters. + + After a command control sequence that is a control word (*note +Control sequences::, as opposed to control symbols such as '\$'), TeX +gobbles blank characters. Thus, in the first sentence below, the output +has 'Vermont' placed snugly against the period, without any intervening +space. + + \newcommand{\VT}{Vermont} + Our college is in \VT . + The \VT{} summers are nice. + + But because of the gobbling, the second sentence needs the empty +curly braces or else there would be no space separating 'Vermont' from +'summers'. (Many authors instead use a backslash-space '\ ' for this. +*Note \(SPACE)::.) + + The 'xspace' package provides '\xspace'. It is for writing commands +which are designed to be used mainly in text. It must be place at the +very end of the definition of these commands. It inserts a space after +that command unless what immediately follows is in a list of exceptions. +In this example, the empty braces are not needed. + + \newcommand{\VT}{Vermont\xspace} + Our college is in \VT . + \VT summers are nice. + + The default exception list contains the characters ',.'/?;:!~-)', the +open curly brace and the backslash-space command discussed above, and +the commands '\footnote' or '\footnotemark'. Add to that list as with +'\xspaceaddexceptions{\myfni \myfnii}' which adds '\myfni' and '\myfnii' +to the list, and remove from that list as with +'\xspaceremoveexception{!}'. + + A comment: many experts prefer not to use '\xspace'. Putting it in a +definition means that the command will usually get the spacing right. +But it isn't easy to predict when to enter empty braces because +'\xspace' will get it wrong, such as when it is followed by another +command, and so '\xspace' can make editing material harder and more +error-prone than instead always inserting the empty braces. + + +File: latex2e.info, Node: Counters, Next: Lengths, Prev: Definitions, Up: Top + +13 Counters +*********** + +Everything LaTeX numbers for you has a counter associated with it. The +name of the counter is often the same as the name of the environment or +command associated with the number, except that the counter's name has +no backslash '\'. Thus, associated with the '\chapter' command is the +'chapter' counter that keeps track of the chapter number. + + Below is a list of the counters used in LaTeX's standard document +classes to control numbering. + + part paragraph figure enumi + chapter subparagraph table enumii + section page footnote enumiii + subsection equation mpfootnote enumiv + subsubsection + + The 'mpfootnote' counter is used by the '\footnote' command inside of +a minipage (*note minipage::). The counters 'enumi' through 'enumiv' +are used in the 'enumerate' environment, for up to four levels of +nesting (*note enumerate::). + + Counters can have any integer value but they are typically positive. + + New counters are created with '\newcounter'. *Note \newcounter::. + +* 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 a counter. +* \stepcounter:: Add to a counter, resetting subsidiary counters. +* \day & \month & \year:: Numeric date values. + + +File: latex2e.info, Node: \alph \Alph \arabic \roman \Roman \fnsymbol, Next: \usecounter, Up: Counters + +13.1 '\alph \Alph \arabic \roman \Roman \fnsymbol': Printing counters +===================================================================== + +Print the value of a counter, in a specified style. For instance, if +the counter COUNTER has the value 1 then a '\alph{COUNTER}' in your +source will result in a lowercase letter a appearing in the output. + + All of these commands take a single counter as an argument, for +instance, '\alph{enumi}'. Note that the counter name does not start +with a backslash. + +'\alph{COUNTER}' + Print the value of COUNTER in lowercase letters: 'a', 'b', ... If + the counter's value is less than 1 or more than 26 then you get + 'LaTeX Error: Counter too large.' + +'\Alph{COUNTER}' + Print in uppercase letters: 'A', 'B', ... If the counter's value + is less than 1 or more than 26 then you get 'LaTeX Error: Counter + too large.' + +'\arabic{COUNTER}' + Print in Arabic numbers such as '5' or '-2'. + +'\roman{COUNTER}' + Print in lowercase roman numerals: 'i', 'ii', ... If the counter's + value is less than 1 then you get no warning or error but LaTeX + does not print anything in the output. + +'\Roman{COUNTER}' + Print in uppercase roman numerals: 'I', 'II', ... If the counter's + value is less than 1 then you get no warning or error but LaTeX + does not print anything in the output. + +'\fnsymbol{COUNTER}' + Prints the value of COUNTER using a sequence of nine symbols that + are traditionally used for labeling footnotes. The value of + COUNTER should be between 1 and 9, inclusive. If the counter's + value is less than 0 or more than 9 then you get 'LaTeX Error: + Counter too large', while if it is 0 then you get no error or + warning but LaTeX does not output anything. + + Here are the symbols: + + Number Name Command Symbol + ----------------------------------------------------------------------------- + 1 asterisk '\ast' * + 2 dagger '\dagger' † + 3 ddagger '\ddagger' ‡ + 4 section-sign '\S' § + 5 paragraph-sign '\P' ¶ + 6 double-vert '\parallel' ‖ + 7 double-asterisk '\ast\ast' ** + 8 double-dagger '\dagger\dagger' †† + 9 double-ddagger '\ddagger\ddagger' ‡‡ + + +File: latex2e.info, Node: \usecounter, Next: \value, Prev: \alph \Alph \arabic \roman \Roman \fnsymbol, Up: Counters + +13.2 '\usecounter' +================== + +Synopsis: + + \usecounter{COUNTER} + + Used in the second argument of the 'list' environment (*note list::), +this declares that list items will be numbered by COUNTER. It +initializes COUNTER to zero, and arranges that when '\item' is called +without its optional argument then COUNTER is incremented by +'\refstepcounter', making its value be the current 'ref' value (*note +\ref::). This command is fragile (*note \protect::). + + Put in the document preamble, this example makes a new list +environment enumerated with TESTCOUNTER: + + \newcounter{testcounter} + \newenvironment{test}{% + \begin{list}{}{% + \usecounter{testcounter} + } + }{% + \end{list} + } + + +File: latex2e.info, Node: \value, Next: \setcounter, Prev: \usecounter, Up: Counters + +13.3 '\value' +============= + +Synopsis: + + \value{COUNTER} + + Expands to the value of the counter COUNTER. (Note that the name of +a counter does not begin with a backslash.) + + This example outputs 'Test counter is 6. Other counter is 5.'. + + \newcounter{test} \setcounter{test}{5} + \newcounter{other} \setcounter{other}{\value{test}} + \addtocounter{test}{1} + + Test counter is \arabic{test}. + Other counter is \arabic{other}. + + The '\value' command is not used for typesetting the value of the +counter. For that, see *note \alph \Alph \arabic \roman \Roman +\fnsymbol::. + + It is often used in '\setcounter' or '\addtocounter' but '\value' can +be used anywhere that LaTeX expects a number, such as in +'\hspace{\value{foo}\parindent}'. It must not be preceded by '\protect' +(*note \protect::). + + This example inserts '\hspace{4\parindent}'. + + \setcounter{myctr}{3} \addtocounter{myctr}{1} + \hspace{\value{myctr}\parindent} + + +File: latex2e.info, Node: \setcounter, Next: \addtocounter, Prev: \value, Up: Counters + +13.4 '\setcounter' +================== + +Synopsis: + + \setcounter{COUNTER}{VALUE} + + Globally set the counter COUNTER to have the value of the VALUE +argument, which must be an integer. Thus, you can set a counter's value +as '\setcounter{section}{5}'. Note that the counter name does not start +with a backslash. + + In this example if the counter 'theorem' has value 12 then the second +line will print 'XII'. + + \setcounter{exercise}{\value{theorem}} + Here it is in Roman: \Roman{exercise}. + + +File: latex2e.info, Node: \addtocounter, Next: \refstepcounter, Prev: \setcounter, Up: Counters + +13.5 '\addtocounter' +==================== + +Synopsis: + + \addtocounter{COUNTER}{VALUE} + + Globally increment COUNTER by the amount specified by the VALUE +argument, which may be negative. + + In this example the section value appears as 'VII'. + + \setcounter{section}{5} + \addtocounter{section}{2} + Here it is in Roman: \Roman{section}. + + +File: latex2e.info, Node: \refstepcounter, Next: \stepcounter, Prev: \addtocounter, Up: Counters + +13.6 '\refstepcounter' +====================== + +Synopsis: + + \refstepcounter{COUNTER} + + Globally increments the value of COUNTER by one, as does +'\stepcounter' (*note \stepcounter::). The difference is that this +command resets the value of any counter numbered within it. (For the +definition of "counters numbered within", *note \newcounter::.) + + In addition, this command also defines the current '\ref' value to be +the result of '\thecounter'. + + While the counter value is set globally, the '\ref' value is set +locally, i.e., inside the current group. + + +File: latex2e.info, Node: \stepcounter, Next: \day & \month & \year, Prev: \refstepcounter, Up: Counters + +13.7 '\stepcounter' +=================== + +Synopsis: + + \stepcounter{COUNTER} + + Globally adds one to COUNTER and resets all counters numbered within +it. (For the definition of "counters numbered within", *note +\newcounter::.) + + This command differs from '\refstepcounter' in that this one does not +influence references; that is, it does not define the current '\ref' +value to be the result of '\thecounter' (*note \refstepcounter::). + + +File: latex2e.info, Node: \day & \month & \year, Prev: \stepcounter, Up: Counters + +13.8 '\day' & '\month' & '\year' +================================ + +LaTeX defines the counter '\day' for the day of the month (nominally +with value between 1 and 31), '\month' for the month of the year +(nominally with value between 1 and 12), and '\year' for the year. When +TeX starts up, they are set from the current values on the system. The +related command '\today' produces a string representing the current day +(*note \today::). + + They counters are not updated as the job progresses so in principle +they could be incorrect by the end. In addition, TeX does no sanity +check: + + \day=-2 \month=13 \year=-4 \today + +gives no error or warning and results in the output '-2, -4' (the bogus +month value produces no output). + + *Note Command line input::, to force the date to a given value from +the command line. + + +File: latex2e.info, Node: Lengths, Next: Making paragraphs, Prev: Counters, Up: Top + +14 Lengths +********** + +A "length" is a measure of distance. Many LaTeX commands take a length +as an argument. + + Lengths come in two types. A "rigid length" such as '10pt' does not +contain a 'plus' or 'minus' component. (Plain TeX calls this a +"dimen".) A "rubber length" (what plain TeX calls a "skip" or "glue") +such as with '1cm plus0.05cm minus0.01cm' can contain either or both of +those components. In that rubber length, the '1cm' is the "natural +length" while the other two, the 'plus' and 'minus' components, allow +TeX to stretch or shrink the length to optimize placement. + + The illustrations below use these two commands. + + % make a black bar 10pt tall and #1 wide + \newcommand{\blackbar}[1]{\rule{#1}{10pt}} + + % Make a box around #2 that is #1 wide (excluding the border) + \newcommand{\showhbox}[2]{% + \fboxsep=0pt\fbox{\hbox to #1{#2}}} + +This example uses those commands to show a black bar 100 points long +between 'XXX' and 'YYY'. This length is rigid. + + XXX\showhbox{100pt}{\blackbar{100pt}}YYY + + As for rubber lengths, shrinking is simpler one: with '1cm minus +0.05cm', the natural length is 1cm but TeX can shrink it down as far as +0.95cm. Beyond that, TeX refuses to shrink any more. Thus, below the +first one works fine, producing a space of 98 points between the two +bars. + + XXX\showhbox{300pt}{% + \blackbar{101pt}\hspace{100pt minus 2pt}\blackbar{101pt}}YYY + + XXX\showhbox{300pt}{% + \blackbar{105pt}\hspace{100pt minus 1pt}\blackbar{105pt}}YYY + +But the second one gets a warning like 'Overfull \hbox (1.0pt too wide) +detected at line 17'. In the output the first 'Y' is overwritten by the +end of the black bar, because the box's material is wider than the 300pt +allocated, as TeX has refused to shrink the total to less than +309 points. + + Stretching is like shrinking except that if TeX is asked to stretch +beyond the given amount, it will do it. Here the first line is fine, +producing a space of 110 points between the bars. + + XXX\showhbox{300pt}{% + \blackbar{95pt}\hspace{100pt plus 10pt}\blackbar{95pt}}YYY + + XXX\showhbox{300pt}{% + \blackbar{95pt}\hspace{100pt plus 1pt}\blackbar{95pt}}YYY + +In the second line TeX needs a stretch of 10 points and only 1 point was +specified. TeX stretches the space to the required length but it gives +you a warning like 'Underfull \hbox (badness 10000) detected at line +22'. (We won't discuss badness.) + + You can put both stretch and shrink in the same length, as in '1ex +plus 0.05ex minus 0.02ex'. + + If TeX is setting two or more rubber lengths then it allocates the +stretch or shrink in proportion. + + XXX\showhbox{300pt}{% + \blackbar{100pt}% left + \hspace{0pt plus 50pt}\blackbar{80pt}\hspace{0pt plus 10pt}% middle + \blackbar{100pt}}YYY % right + +The left and right bars take up 100 points, so the middle needs another +100. The middle bar is 80 points so the two '\hspace''s must stretch +20 points. Because the two are 'plus 50pt' and 'plus 10pt', TeX gets +5/6 of the stretch from the first space and 1/6 from the second. + + The 'plus' or 'minus' component of a rubber length can contain a +"fill" component, as in '1in plus2fill'. This gives the length infinite +stretchability or shrinkability so that TeX could set it to any +distance. Here the two figures will be equal-spaced across the page. + + \begin{minipage}{\linewidth} + \hspace{0pt plus 1fill}\includegraphics{godel.png}% + \hspace{0pt plus 1fill}\includegraphics{einstein.png}% + \hspace{0pt plus 1fill} + \end{minipage} + + TeX has three levels of infinity for glue components: 'fil', 'fill', +and 'filll'. The later ones are more infinite than the earlier ones. +Ordinarily document authors only use the middle one (*note \hfill:: and +*note \vfill::). + + Multiplying a rubber length by a number turns it into a rigid length, +so that after '\setlength{\ylength}{1in plus 0.2in}' and +'\setlength{\zlength}{3\ylength}' then the value of '\zlength' is '3in'. + +* Menu: + +* Units of length:: The units that LaTeX knows. +* \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. +* \stretch:: Add infinite stretchability. +* Expressions:: Compute with lengths and integers. + + +File: latex2e.info, Node: Units of length, Next: \setlength, Up: Lengths + +14.1 Units of length +==================== + +TeX and LaTeX know about these units both inside and outside of math +mode. + +'pt' + Point, 1/72.27 inch. The (approximate) conversion to metric units + is 1point = .35146mm = .035146cm. + +'pc' + Pica, 12 pt + +'in' + Inch, 72.27 pt + +'bp' + Big point, 1/72 inch. This length is the definition of a point in + PostScript and many desktop publishing systems. + +'mm' + Millimeter, 2.845 pt + +'cm' + Centimeter, 10 mm + +'dd' + Didot point, 1.07 pt + +'cc' + Cicero, 12 dd + +'sp' + Scaled point, 1/65536 pt + + Three other units are defined according to the current font, rather +than being an absolute dimension. + +'ex' + The x-height of the current font "ex", traditionally the height of + the lowercase letter x, is often used for vertical lengths. + +'em' + Similarly "em", traditionally the width of the capital letter M, is + often used for horizontal lengths. This is also often the size of + the current font, e.g., a nominal 10pt font will have 1em = 10pt. + LaTeX has several commands to produce horizontal spaces based on + the em (*note \enspace & \quad & \qquad::). + +'mu' + Finally, in math mode, many definitions are expressed in terms of + the math unit "mu", defined by 1em = 18mu, where the em is taken + from the current math symbols family. *Note Spacing in math + mode::. + + Using these units can help make a definition work better across font +changes. For example, a definition of the vertical space between list +items given as '\setlength{\itemsep}{1ex plus 0.05ex minus 0.01ex}' is +more likely to still be reasonable if the font is changed than a +definition given in points. + + +File: latex2e.info, Node: \setlength, Next: \addtolength, Prev: Units of length, Up: Lengths + +14.2 '\setlength' +================= + +Synopsis: + + \setlength{\LEN}{AMOUNT} + + Set the length \LEN to AMOUNT. The length name '\LEN' has to be a +control sequence (*note Control sequences::), and as such must begin +with a backslash, '\' under normal circumstances. The AMOUNT can be a +rubber length (*note Lengths::). It can be positive, negative or zero, +and can be in any units that LaTeX understands (*note Units of +length::). + + Below, with LaTeX's defaults the first paragraph will be indented +while the second will not. + + I told the doctor I broke my leg in two places. + + \setlength{\parindent}{0em} + He said stop going to those places. + + If you did not declare \LEN with '\newlength', for example if you +mistype it as in +'\newlength{\specparindent}\setlength{\sepcparindent}{...}', then you +get an error like 'Undefined control sequence. <argument> \sepcindent'. +If you omit the backslash at the start of the length name then you get +an error like 'Missing number, treated as zero.'. + + +File: latex2e.info, Node: \addtolength, Next: \settodepth, Prev: \setlength, Up: Lengths + +14.3 '\addtolength' +=================== + +Synopsis: + + \addtolength{\LEN}{AMOUNT} + + Increment the length \LEN by AMOUNT. The length name '\LEN' has to +be a control sequence (*note Control sequences::), and as such must +begin with a backslash, '\' under normal circumstances. The AMOUNT is a +rubber length (*note Lengths::). It can be positive, negative or zero, +and can be in any units that LaTeX understands (*note Units of +length::). + + Below, if '\parskip' starts with the value '0pt plus 1pt' + + Doctor: how is the boy who swallowed the silver dollar? + \addtolength{\parskip}{1pt} + + Nurse: no change. + +then it has the value '1pt plus 1pt' for the second paragraph. + + If you did not declare \LEN with '\newlength', for example if you +mistype it as in +'\newlength{\specparindent}\addtolength{\sepcparindent}{...}', then you +get an error like 'Undefined control sequence. <argument> \sepcindent'. +If the AMOUNT uses some length that has not been declared, for instance +if for example you mistype the above as +'\addtolength{\specparindent}{0.6\praindent}', then you get something +like 'Undefined control sequence. <argument> \praindent'. If you leave +off the backslash at the start of \LEN, as in +'\addtolength{parindent}{1pt}', then you get something like 'You can't +use `the letter p' after \advance'. + + +File: latex2e.info, Node: \settodepth, Next: \settoheight, Prev: \addtolength, Up: Lengths + +14.4 '\settodepth' +================== + +Synopsis: + + \settodepth{\LEN}{TEXT} + + Set the length \LEN to the depth of box that LaTeX gets on +typesetting the TEXT argument. The length name '\LEN' has to be a +control sequence (*note Control sequences::), and as such must begin +with a backslash, '\' under normal circumstances. + + This will print how low the character descenders go. + + \newlength{\alphabetdepth} + \settodepth{\alphabetdepth}{abcdefghijklmnopqrstuvwxyz} + \the\alphabetdepth + + If you did not declare \LEN with '\newlength', if for example you +mistype the above as '\settodepth{\aplhabetdepth}{abc...}', then you get +something like 'Undefined control sequence. <argument> \aplhabetdepth'. +If you leave the backslash out of \LEN, as in +'\settodepth{alphabetdepth}{...}' then you get something like 'Missing +number, treated as zero. <to be read again> \setbox'. + + +File: latex2e.info, Node: \settoheight, Next: \settowidth, Prev: \settodepth, Up: Lengths + +14.5 '\settoheight' +=================== + +Synopsis: + + \settoheight{\LEN}{text} + + Sets the length \LEN to the height of box that LaTeX gets on +typesetting the 'text' argument. The length name '\LEN' has to be a +control sequence (*note Control sequences::), and as such must begin +with a backslash, '\' under normal circumstances. + + This will print how high the characters go. + + \newlength{\alphabetheight} + \settoheight{\alphabetheight}{abcdefghijklmnopqrstuvwxyz} + \the\alphabetheight + + If no such length \LEN has been declared with '\newlength', if for +example you mistype as '\settoheight{\aplhabetheight}{abc...}', then you +get something like 'Undefined control sequence. <argument> +\alphabetheight'. If you leave the backslash out of \LEN, as in +'\settoheight{alphabetheight}{...}' then you get something like 'Missing +number, treated as zero. <to be read again> \setbox'. + + +File: latex2e.info, Node: \settowidth, Next: \stretch, Prev: \settoheight, Up: Lengths + +14.6 '\settowidth' +================== + +Synopsis: + + \settowidth{\LEN}{TEXT} + + Set the length \LEN to the width of the box that LaTeX gets on +typesetting the TEXT argument. The length name '\LEN' has to be a +control sequence (*note Control sequences::), and as such must begin +with a backslash, '\' under normal circumstances. + + This prints the width of the lowercase ASCII alphabet. + + \newlength{\alphabetwidth} + \settowidth{\alphabetwidth}{abcdefghijklmnopqrstuvwxyz} + \the\alphabetwidth + + If no such length \LEN has been declared with '\newlength', if for +example you mistype the above as '\settowidth{\aplhabetwidth}{abc...}', +then you get something like 'Undefined control sequence. <argument> +\aplhabetwidth'. If you leave the backslash out of \LEN, as in +'\settoheight{alphabetwidth}{...}' then you get something like 'Missing +number, treated as zero. <to be read again> \setbox'. + + +File: latex2e.info, Node: \stretch, Next: Expressions, Prev: \settowidth, Up: Lengths + +14.7 '\stretch' +=============== + +Synopsis: + + \stretch{NUMBER} + + Produces a rubber length with zero natural length and NUMBER times +'\fill' units of stretchability (*note Lengths::). The NUMBER can be +positive or negative. This command is robust (*note \protect::). + + It works for both vertical and horizontal spacing. In this +horizontal example, LaTeX produces three tick marks, and the distance +between the first and second is half again as long as the distance +between the second and third. + + \rule{0.4pt}{1ex}\hspace{\stretch{1.5}}% + \rule{0.4pt}{1ex}\hspace{\stretch{1}}% + \rule{0.4pt}{1ex} + + In this vertical example, the 'We dedicate ...' will have three times +as much space under it as above it. + + \newenvironment{dedication}{% in document preamble + \clearpage\thispagestyle{empty}% + \vspace*{\stretch{1}} % stretchable space at top + \it + }{% + \vspace{\stretch{3}} % space at bot is 3x as at top + \clearpage + } + ... + \begin{dedication} % in document body + We dedicate this book to our wives. + \end{dedication} + + +File: latex2e.info, Node: Expressions, Prev: \stretch, Up: Lengths + +14.8 Expressions +================ + +Synopsis, one of: + + \numexpr EXPRESSION + \dimexpr EXPRESSION + \glueexpr EXPRESSION + \muglue EXPRESSION + + Any place where you may write an integer, or a TeX dimen, or TeX +glue, or muglue, you can instead write an expression to compute that +type of quantity. + + An example is that '\the\dimexpr\linewidth-4pt\relax' will produce as +output the length that is four points less than width of a line (the +only purpose of '\the' is to show the result in the document). +Analogously, '\romannumeral\numexpr6+3\relax' will produce 'ix', and +'\the\glueexpr 5pt plus 1pt * 2 \relax' will produce '10.0pt plus +2.0pt'. + + A convenience here over doing calculations by allocating registers +and then using '\advance', etc., is that the evaluation of expressions +does not involve assignments and can therefore be performed in places +where assignments are not allowed. The next example computes the width +of the '\parbox'. + + \newlength{\offset}\setlength{\offset}{2em} + \begin{center} + \parbox{\dimexpr\linewidth-\offset*3}{With malice toward none + with charity for all with firmness in the right as God gives us to see + the right let us strive on to finish the work we are in to bind up the + nation's wounds, to care for him who shall have borne the battle and + for his widow and his orphan \textasciitilde\ to do all which may + achieve and cherish a just and lasting peace among ourselves and with + all nations. ---Abraham Lincoln, Second Inaugural Address, from the + memorial} + \end{center} + + The EXPRESSION consists of one or more terms of the same type +(integer, dimension, etc.) that are added or subtracted. A term that +is a type of number, dimension, etc., consists of a factor of that type, +optionally multiplied or divided by factors. A factor of a type is +either a quantity of that type or a parenthesized subexpression. The +expression produces a result of the given type, so that '\numexpr' +produces an integer, '\dimexpr' produces a dimension, etc. + + In the quotation example above, changing to +'\dimexpr\linewidth-3*\offset' gives the error 'Illegal unit of measure +(pt inserted)'. This is because for '\dimexpr' and '\glueexpr', the +input consists of a dimension or glue value followed by an optional +multiplication factor, and not the other way around. Thus '\the\dimexpr +1pt*10\relax' is valid and produces '10.0pt', but '\the\dimexpr +10*1pt\relax' gives the 'Illegal unit' error. + + The expressions absorb tokens and carry out appropriate mathematics +up to a '\relax' (which will be absorbed), or up to the first non-valid +token. Thus, '\the\numexpr2+3px' will print '5px', because LaTeX reads +the '\numexpr2+3', which is made up of numbers, and then finds the +letter 'p', which cannot be part of a number. It therefore terminates +the expression and produces the '5', followed by the regular text 'px'. + + This termination behavior is useful in comparisons. In +'\ifnum\numexpr\parindent*2 < 10pt Yes\else No\fi', the less than sign +terminates the expression and the result is 'No' (in a standard LaTeX +article). + + Expressions may use the operators '+', '-', '*' and '/' along with +parentheses for subexpressions, '(...)'. In glue expressions the 'plus' +and 'minus' parts do not need parentheses to be affected by a factor. +So '\the\glueexpr 5pt plus 1pt * 2 \relax' results in '10pt plus 2pt'. + + TeX will coerce other numerical types in the same way as it does when +doing register assignment. Thus '\the\numexpr\dimexpr 1pt\relax\relax' +will result in '65536', which is '1pt' converted to scaled points (*note +'sp': units of length sp, TeX's internal unit) and then coerced into an +integer. With a '\glueexpr' here, the stretch and shrink would be +dropped. Going the other way, a '\numexpr' inside a '\dimexpr' or +'\glueexpr' will need appropriate units, as in '\the\dimexpr\numexpr 1 + +2\relax pt\relax', which produces '3.0pt'. + + The details of the arithmetic: each factor is checked to be in the +allowed range, numbers must be less than 2^{31} in absolute value, and +dimensions or glue components must be less than 2^{14} points, or 'mu', +or 'fil', etc. The arithmetic operations are performed individually, +except for a scaling operation (a multiplication immediately followed by +a division) which is done as one combined operation with a 64-bit +product as intermediate value. The result of each operation is again +checked to be in the allowed range. + + Finally, division and scaling take place with rounding (unlike TeX's +'\divide', which truncates). Thus '\the\dimexpr 5pt*(3/2)\relax' puts +'10.0pt' in the document, because it rounds '3/2' to '2', while +'\the\dimexpr 5pt*(4/3)\relax' produces '5.0pt'. + + +File: latex2e.info, Node: Making paragraphs, Next: Math formulas, Prev: Lengths, Up: Top + +15 Making paragraphs +******************** + +To start a paragraph, just type some text. To end the current +paragraph, put an empty line. This is three paragraphs, the separation +of which is made by two empty lines. + + It is a truth universally acknowledged, that a single man in possession + of a good fortune, must be in want of a wife. + + However little known the feelings or views of such a man may be on his + first entering a neighbourhood, this truth is so well fixed in the minds + of the surrounding families, that he is considered the rightful property + of some one or other of their daughters. + + ``My dear Mr. Bennet,'' said his lady to him one day, + ``have you heard that Netherfield Park is let at last?'' + + A paragraph separator is made of a sequence of at least one blank +line, at least one of which is not terminated by a comment. A blank +line is a line that is empty or made only of blank characters such as +space or tab. Comments in source code are started with a '%' and span +up to the end of line. In the following example the two columns are +identical: + + \documentclass[twocolumn]{article} + \begin{document} + First paragraph. + + Second paragraph. + \newpage + First paragraph. + + % separator lines may contain blank characters. + + Second paragraph. + \end{document} + + Once LaTeX has gathered all of a paragraph's contents it divides that +content into lines in a way that is optimized over the entire paragraph +(*note Line breaking::). + + There are places where a new paragraph is not permitted. Don't put a +blank line in math mode (*note Modes::); here the blank line before the +'\end{equation}' + + \begin{equation} + 2^{|S|} > |S| + + \end{equation} + +will get you the error 'Missing $ inserted'. Similarly, the blank line +in this '\section' argument + + \section{aaa + + bbb} + +gets 'Runaway argument? {aaa ! Paragraph ended before \@sect was +complete'. + +* Menu: + +* \par:: End the current paragraph. +* \indent & \noindent:: Go into horizontal mode, possibly with an indent. +* \parindent & \parskip:: Space added before paragraphs. +* Marginal notes:: Put remarks in the margin. + + +File: latex2e.info, Node: \par, Next: \indent & \noindent, Up: Making paragraphs + +15.1 '\par' +=========== + +Synopsis (note that while reading the input TeX converts any sequence of +one or more blank lines to a '\par', *note Making paragraphs::): + + \par + + End the current paragraph. The usual way to separate paragraphs is +with a blank line but the '\par' command is entirely equivalent. This +command is robust (*note \protect::). + + This example uses '\par' rather than a blank line simply for +readability. + + \newcommand{\syllabusLegalese}{% + \whatCheatingIs\par\whatHappensWhenICatchYou} + + In LR mode the '\par' command does nothing and is ignored. In +paragraph mode, the '\par' command terminates paragraph mode, switching +LaTeX to vertical mode (*note Modes::). + + You cannot use the '\par' command in a math mode. You also cannot +use it in the argument of many commands, such as the sectioning +commands, e.g. '\section' (*note Making paragraphs:: and *note +\newcommand & \renewcommand::). + + The '\par' command is not the same as the '\paragraph' command. The +latter is, like '\section' or '\subsection', a sectioning command used +by the LaTeX document standard classes (*note \subsubsection & +\paragraph & \subparagraph::). + + The '\par' command is not the same as '\newline' or the line break +double backslash, '\\'. The difference is that '\par' ends the +paragraph, not just the line, and also triggers the addition of the +between-paragraph vertical space '\parskip' (*note \parindent & +\parskip::). + + The output from this example + + xyz + + \setlength{\parindent}{3in} + \setlength{\parskip}{5in} + \noindent test\indent test1\par test2 + +is: after 'xyz' there is a vertical skip of 5 inches and then 'test' +appears, aligned with the left margin. On the same line, there is an +empty horizontal space of 3 inches and then 'test1' appears. Finally. +there is a vertical space of 5 inches, followed by a fresh paragraph +with a paragraph indent of 3 inches, and then LaTeX puts the text +'test2'. + + +File: latex2e.info, Node: \indent & \noindent, Next: \parindent & \parskip, Prev: \par, Up: Making paragraphs + +15.2 '\indent' & '\noindent' +============================ + +Synopsis: + + \indent + +or + + \noindent + + Go into horizontal mode (*note Modes::). The '\indent' command first +outputs an empty box whose width is '\parindent'. These commands are +robust (*note \protect::). + + Ordinarily you create a new paragraph by putting in a blank line. +*Note \par::, for the difference between this command and '\par'. To +start a paragraph without an indent, or to continue an interrupted +paragraph, use '\noindent'. + + In the middle of a paragraph the '\noindent' command has no effect, +because LaTeX is already in horizontal mode there. The '\indent' +command's only effect is to output a space. + + This example starts a fresh paragraph. + + ... end of the prior paragraph. + + \noindent This paragraph is not indented. + +and this continues an interrupted paragraph. + + The data + + \begin{center} + \begin{tabular}{rl} ... \end{tabular} + \end{center} + + \noindent shows this clearly. + + To omit indentation in the entire document put +'\setlength{\parindent}{0pt}' in the preamble. If you do that, you may +want to also set the length of spaces between paragraphs, '\parskip' +(*note \parindent & \parskip::). + + Default LaTeX styles have the first paragraph after a section that is +not indented, as is traditional typesetting in English. To change that, +look on CTAN for the package 'indentfirst'. + + +File: latex2e.info, Node: \parindent & \parskip, Next: Marginal notes, Prev: \indent & \noindent, Up: Making paragraphs + +15.3 '\parindent' & '\parskip' +============================== + +Synopsis: + + \setlength{\parindent}{HORIZONTAL LEN} + \setlength{\parskip}{VERTICAL LEN} + + Both are rubber lengths (*note Lengths::). They affect the +indentation of ordinary paragraphs, not paragraphs inside minipages +(*note minipage::), and the vertical space between paragraphs, +respectively. + + For example, if this is put in the preamble: + + \setlength{\parindent}{0em} + \setlength{\parskip}{1ex} + +The document will have paragraphs that are not indented, but instead are +vertically separated by about the height of a lowercase 'x'. + + In LaTeX standard class documents, the default value for '\parindent' +in one-column documents is '15pt' when the default text size is '10pt', +'17pt' for '11pt', and '1.5em' for '12pt'. In two-column documents it +is '1em'. (These values are set before LaTeX calls '\normalfont' so +'em' is derived from the default font, Computer Modern. If you use a +different font then to set '\parindent' to 1em matching that font, put +'\AtBeginDocument{\setlength{\parindent}{1em}}' in the preamble.) + + The default value for '\parskip' in LaTeX's standard document classes +is '0pt plus1pt'. + + +File: latex2e.info, Node: Marginal notes, Prev: \parindent & \parskip, Up: Making paragraphs + +15.4 Marginal notes +=================== + +Synopsis, one of: + + \marginpar{RIGHT} + \marginpar[LEFT]{RIGHT} + + Create a note in the margin. The first line of the note will have +the same baseline as the line in the text where the '\marginpar' occurs. + + The margin that LaTeX uses for the note depends on the current layout +(*note Document class options::) and also on '\reversemarginpar' (see +below). If you are using one-sided layout (document option 'oneside') +then it goes in the right margin. If you are using two-sided layout +(document option 'twoside') then it goes in the outside margin. If you +are in two-column layout (document option 'twocolumn') then it goes in +the nearest margin. + + If you declare '\reversemarginpar' then LaTeX will place subsequent +marginal notes in the opposite margin to that given in the prior +paragraph. Revert that to the default position with '\normalmarginpar'. + + When you specify the optional argument LEFT then it is used for a +note in the left margin, while the mandatory argument RIGHT is used for +a note in the right margin. + + Normally, a note's first word will not be hyphenated. You can enable +hyphenation there by beginning LEFT or RIGHT with '\hspace{0pt}'. + + These parameters affect the formatting of the note: + +'\marginparpush' + Minimum vertical space between notes; default '7pt' for '12pt' + documents, '5pt' else. See also *note page layout parameters + marginparpush::. + +'\marginparsep' + Horizontal space between the main text and the note; default '11pt' + for '10pt' documents, '10pt' else. + +'\marginparwidth' + Width of the note itself; default for a one-sided '10pt' document + is '90pt', '83pt' for '11pt', and '68pt' for '12pt'; '17pt' more in + each case for a two-sided document. In two column mode, the + default is '48pt'. + + The standard LaTeX routine for marginal notes does not prevent notes +from falling off the bottom of the page. + + +File: latex2e.info, Node: Math formulas, Next: Modes, Prev: Making paragraphs, Up: Top + +16 Math formulas +**************** + +Produce mathematical text by putting LaTeX into math mode or display +math mode (*note Modes::). This example shows both. + + The wave equation for \( u \) is + \begin{displaymath} + \frac{\partial^2u}{\partial t^2} = c^2\nabla^2u + \end{displaymath} + where \( \nabla^2 \) is the spatial Laplacian and \( c \) is constant. + +Math mode is for inline mathematics. In the above example it is invoked +by the starting '\(' and finished by the matching ending '\)'. Display +math mode is for displayed equations and here is invoked by the +'displaymath' environment. Note that any mathematical text whatever, +including mathematical text consisting of just one character, is handled +in math mode. + + When in math mode or display math mode, LaTeX handles many aspects of +your input text differently than in other text modes. For example, + + contrast x+y with \( x+y \) + +in math mode the letters are in italics and the spacing around the plus +sign is different. + + There are three ways to make inline formulas, to put LaTeX in math +mode. + + \( MATHEMATICAL MATERIAL \) + $ MATHEMATICAL MATERIAL $ + \begin{math} MATHEMATICAL MATERIAL \end{math} + +The first form is preferred and the second is quite common, but the +third form is rarely used. You can sometimes use one and sometimes +another, as in '\(x\) and $y$'. You can use these in paragraph mode or +in LR mode (*note Modes::). + + To make displayed formulas, put LaTeX into display math mode with +either: + + \begin{displaymath} + MATHEMATICAL MATERIAL + \end{displaymath} + +or + + \begin{equation} + MATHEMATICAL MATERIAL + \end{equation} + +(*note displaymath::, *note equation::). The only difference is that +with the 'equation' environment, LaTeX puts a formula number alongside +the formula. The construct '\[ MATH \]' is equivalent to +'\begin{displaymath} MATH \end{displaymath}'. These environments can +only be used in paragraph mode (*note Modes::). + + The American Mathematical Society has made freely available a set of +packages that greatly expand your options for writing mathematics, +'amsmath' and 'amssymb' (also be aware of the 'mathtools' package that +is an extension to, and loads, 'amsmath'). New documents that will have +mathematical text should use these packages. Descriptions of these +packages is outside the scope of this document; see their documentation +on CTAN. + +* Menu: + +* Subscripts & superscripts:: Also known as exponents or indices. +* Math symbols:: Various mathematical squiggles. +* Math functions:: Math function names like sin and exp. +* Math accents:: Accents in math. +* Over- and Underlining:: Things over or under formulas. +* Spacing in math mode:: Thick, medium, thin, and negative spaces. +* Math styles:: Determine the size of things. +* Math miscellany:: Stuff that doesn't fit anywhere else. + + +File: latex2e.info, Node: Subscripts & superscripts, Next: Math symbols, Up: Math formulas + +16.1 Subscripts & superscripts +============================== + +Synopsis (in math mode or display math mode), one of: + + BASE^EXP + BASE^{EXP} + +or, one of: + + BASE_EXP + BASE_{EXP} + + Make EXP appear as a superscript of BASE (with the caret +character, '^') or a subscript (with underscore, '_'). + + In this example the '0''s and '1''s are subscripts while the '2''s +are superscripts. + + \( (x_0+x_1)^2 \leq (x_0)^2+(x_1)^2 \) + + To have the subscript or superscript contain more than one character, +surround the expression with curly braces, as in 'e^{-2x}'. This +example's fourth line shows curly braces used to group an expression for +the exponent. + + \begin{displaymath} + (3^3)^3=27^3=19\,683 + \qquad + 3^{(3^3)}=3^{27}=7\,625\,597\,484\,987 + \end{displaymath} + + LaTeX knows how to handle a superscript on a superscript, or a +subscript on a subscript, or supers on subs, or subs on supers. So, +expressions such as 'e^{x^2}' and 'x_{i_0}' give correct output. Note +the use in those expressions of curly braces to give the BASE a +determined EXP. If you enter '\(3^3^3\)' then you get 'Double +superscript'. + + LaTeX does the right thing when something has both a subscript and a +superscript. In this example the integral has both. They come out in +the correct place without any author intervention. + + \begin{displaymath} + \int_{x=a}^b f'(x)\,dx = f(b)-f(a) + \end{displaymath} + +Note the parentheses around 'x=a' to make the entire expression a +subscript. + + To put a superscript or subscript before a symbol, use a construct +like '{}_t K^2'. The empty curly braces '{}' give the subscript +something to attach to and keeps it from accidentally attaching to a +prior symbols. + + Using the subscript or superscript character outside of math mode or +display math mode, as in 'the expression x^2', will get you the error +'Missing $ inserted'. + + A common reason to want subscripts outside of a mathematics mode is +to typeset chemical formulas. There are packages for that, such as +'mhchem'; see CTAN. + + +File: latex2e.info, Node: Math symbols, Next: Math functions, Prev: Subscripts & superscripts, Up: Math formulas + +16.2 Math symbols +================= + +LaTeX provides almost any mathematical or technical symbol that anyone +uses. For example, if you include '$\pi$' in your source, you will get +the pi symbol π. See the "Comprehensive LaTeX Symbol List" package at +<https://ctan.org/pkg/comprehensive>. + + Here is a list of commonly-used symbols. It is by no means +exhaustive. Each symbol is described with a short phrase, and its +symbol class, which determines the spacing around it, is given in +parenthesis. Unless said otherwise, the commands for these symbols can +be used only in math mode. To redefine a command so that it can be used +whatever the current mode, see *note \ensuremath::. + +'\|' + ∥ Parallel (relation). Synonym: '\parallel'. + +'\aleph' + ℵ Aleph, transfinite cardinal (ordinary). + +'\alpha' + α Lowercase Greek letter alpha (ordinary). + +'\amalg' + ⨿ Disjoint union (binary) + +'\angle' + ∠ Geometric angle (ordinary). Similar: less-than sign '<' and + angle bracket '\langle'. + +'\approx' + ≈ Almost equal to (relation). + +'\ast' + ∗ Asterisk operator, convolution, six-pointed (binary). + Synonym: '*', which is often a superscript or subscript, as in the + Kleene star. Similar: '\star', which is five-pointed, and is + sometimes used as a general binary operation, and sometimes + reserved for cross-correlation. + +'\asymp' + ≍ Asymptotically equivalent (relation). + +'\backslash' + \ Backslash (ordinary). Similar: set minus '\setminus', and + '\textbackslash' for backslash outside of math mode. + +'\beta' + β Lowercase Greek letter beta (ordinary). + +'\bigcap' + ⋂ Variable-sized, or n-ary, intersection (operator). Similar: + binary intersection '\cap'. + +'\bigcirc' + ⚪ Circle, larger (binary). Similar: function composition '\circ'. + +'\bigcup' + ⋃ Variable-sized, or n-ary, union (operator). Similar: binary + union '\cup'. + +'\bigodot' + ⨀ Variable-sized, or n-ary, circled dot operator (operator). + +'\bigoplus' + ⨁ Variable-sized, or n-ary, circled plus operator (operator). + +'\bigotimes' + ⨂ Variable-sized, or n-ary, circled times operator (operator). + +'\bigtriangledown' + ▽ Variable-sized, or n-ary, open triangle pointing down (operator). + +'\bigtriangleup' + △ Variable-sized, or n-ary, open triangle pointing up (operator). + +'\bigsqcup' + ⨆ Variable-sized, or n-ary, square union (operator). + +'\biguplus' + ⨄ Variable-sized, or n-ary, union operator with a plus (operator). + (Note that the name has only one p.) + +'\bigvee' + ⋁ Variable-sized, or n-ary, logical-or (operator). + +'\bigwedge' + ⋀ Variable-sized, or n-ary, logical-and (operator). + +'\bot' + ⊥, Up tack, bottom, least element of a partially ordered set, or a + contradiction (ordinary). See also '\top'. + +'\bowtie' + ⋈ Natural join of two relations (relation). + +'\Box' + □ Modal operator for necessity; square open box (ordinary). Not + available in plain TeX. In LaTeX you need to load the 'amssymb' + package. + +'\bullet' + • Bullet (binary). Similar: multiplication dot '\cdot'. + +'\cap' + ∩ Intersection of two sets (binary). Similar: variable-sized + operator '\bigcap'. + +'\cdot' + ⋅ Multiplication (binary). Similar: Bullet dot '\bullet'. + +'\chi' + χ Lowercase Greek chi (ordinary). + +'\circ' + ∘ Function composition, ring operator (binary). Similar: + variable-sized operator '\bigcirc'. + +'\clubsuit' + ♣ Club card suit (ordinary). + +'\complement' + ∁, Set complement, used as a superscript as in '$S^\complement$' + (ordinary). Not available in plain TeX. In LaTeX you need to load + the 'amssymb' package. Also used: '$S^{\mathsf{c}}$' + or '$\bar{S}$'. + +'\cong' + ≅ Congruent (relation). + +'\coprod' + ∐ Coproduct (operator). + +'\cup' + ∪ Union of two sets (binary). Similar: variable-sized + operator '\bigcup'. + +'\dagger' + † Dagger relation (binary). + +'\dashv' + ⊣ Dash with vertical, reversed turnstile (relation). Similar: + turnstile '\vdash'. + +'\ddagger' + ‡ Double dagger relation (binary). + +'\Delta' + Δ Greek uppercase delta, used for increment (ordinary). + +'\delta' + δ Greek lowercase delta (ordinary). + +'\Diamond' + ◇ Large diamond operator (ordinary). Not available in plain TeX. + In LaTeX you need to load the 'amssymb' package. + +'\diamond' + ⋄ Diamond operator (binary). Similar: large diamond '\Diamond', + circle bullet '\bullet'. + +'\diamondsuit' + ♢ Diamond card suit (ordinary). + +'\div' + ÷ Division sign (binary). + +'\doteq' + ≐ Approaches the limit (relation). Similar: geometrically equal + to '\Doteq'. + +'\downarrow' + ↓ Down arrow, converges (relation). Similar: '\Downarrow' double + line down arrow. + +'\Downarrow' + ⇓ Double line down arrow (relation). Similar: '\downarrow' single + line down arrow. + +'\ell' + ℓ Lowercase cursive letter l (ordinary). + +'\emptyset' + ∅ Empty set symbol (ordinary). The variant form is '\varnothing'. + +'\epsilon' + ϵ Lowercase lunate epsilon (ordinary). Similar to Greek text + letter. More widely used in mathematics is the script small letter + epsilon '\varepsilon' ε. Related: the set membership relation + '\in' ∈. + +'\equiv' + ≡ Equivalence (relation). + +'\eta' + η Lowercase Greek letter (ordinary). + +'\exists' + ∃ Existential quantifier (ordinary). + +'\flat' + ♭ Musical flat (ordinary). + +'\forall' + ∀ Universal quantifier (ordinary). + +'\frown' + ⌢ Downward curving arc (ordinary). + +'\Gamma' + Γ uppercase Greek letter (ordinary). + +'\gamma' + γ Lowercase Greek letter (ordinary). + +'\ge' + ≥ Greater than or equal to (relation). This is a synonym + for '\geq'. + +'\geq' + ≥ Greater than or equal to (relation). This is a synonym + for '\ge'. + +'\gets' + ← Is assigned the value (relation). Synonym: '\leftarrow'. + +'\gg' + ≫ Much greater than (relation). Similar: much less than '\ll'. + +'\hbar' + ℏ Planck constant over two pi (ordinary). + +'\heartsuit' + ♡ Heart card suit (ordinary). + +'\hookleftarrow' + ↩ Hooked left arrow (relation). + +'\hookrightarrow' + ↪ Hooked right arrow (relation). + +'\iff' + ⟷ If and only if (relation). It is '\Longleftrightarrow' with a + '\thickmuskip' on either side. + +'\Im' + ℑ Imaginary part (ordinary). See: real part '\Re'. + +'\imath' + Dotless i; used when you are putting an accent on an i (*note Math + accents::). + +'\in' + ∈ Set element (relation). See also: lowercase lunate + epsilon '\epsilon'ϵ and small letter script epsilon '\varepsilon'. + +'\infty' + ∞ Infinity (ordinary). + +'\int' + ∫ Integral (operator). + +'\iota' + ι Lowercase Greek letter (ordinary). + +'\Join' + ⨝ Condensed bowtie symbol (relation). Not available in Plain TeX. + +'\jmath' + Dotless j; used when you are putting an accent on a j (*note Math + accents::). + +'\kappa' + κ Lowercase Greek letter (ordinary). + +'\Lambda' + Λ uppercase Greek letter (ordinary). + +'\lambda' + λ Lowercase Greek letter (ordinary). + +'\land' + ∧ Logical and (binary). Synonym: '\wedge'. See also + logical or '\lor'. + +'\langle' + ⟨ Left angle, or sequence, bracket (opening). Similar: + less-than '<'. Matches '\rangle'. + +'\lbrace' + { Left curly brace (opening). Synonym: '\{'. Matches '\rbrace'. + +'\lbrack' + [ Left square bracket (opening). Synonym: '['. Matches '\rbrack'. + +'\lceil' + ⌈ Left ceiling bracket, like a square bracket but with the bottom + shaved off (opening). Matches '\rceil'. + +'\le' + ≤ Less than or equal to (relation). This is a synonym for '\leq'. + +'\leadsto' + ⇝ Squiggly right arrow (relation). To get this symbol outside of + math mode you can put + '\newcommand*{\Leadsto}{\ensuremath{\leadsto}}' in the preamble and + then use '\Leadsto' instead. + +'\Leftarrow' + ⇐ Is implied by, double-line left arrow (relation). Similar: + single-line left arrow '\leftarrow'. + +'\leftarrow' + ← Single-line left arrow (relation). Synonym: '\gets'. Similar: + double-line left arrow '\Leftarrow'. + +'\leftharpoondown' + ↽ Single-line left harpoon, barb under bar (relation). + +'\leftharpoonup' + ↼ Single-line left harpoon, barb over bar (relation). + +'\Leftrightarrow' + ⇔ Bi-implication; double-line double-headed arrow (relation). + Similar: single-line double headed arrow '\leftrightarrow'. + +'\leftrightarrow' + ↔ Single-line double-headed arrow (relation). Similar: double-line + double headed arrow '\Leftrightarrow'. + +'\leq' + ≤ Less than or equal to (relation). This is a synonym for '\le'. + +'\lfloor' + ⌊ Left floor bracket (opening). Matches: '\floor'. + +'\lhd' + ◁ Arrowhead, that is, triangle, pointing left (binary). For the + normal subgroup symbol you should load 'amssymb' and + use '\vartriangleleft' (which is a relation and so gives better + spacing). + +'\ll' + ≪ Much less than (relation). Similar: much greater than '\gg'. + +'\lnot' + ¬ Logical negation (ordinary). Synonym: '\neg'. + +'\longleftarrow' + ⟵ Long single-line left arrow (relation). Similar: long + double-line left arrow '\Longleftarrow'. + +'\longleftrightarrow' + ⟷ Long single-line double-headed arrow (relation). Similar: long + double-line double-headed arrow '\Longleftrightarrow'. + +'\longmapsto' + ⟼ Long single-line left arrow starting with vertical bar + (relation). Similar: shorter version '\mapsto'. + +'\longrightarrow' + ⟶ Long single-line right arrow (relation). Similar: long + double-line right arrow '\Longrightarrow'. + +'\lor' + ∨ Logical or (binary). Synonym: '\vee'. See also + logical and '\land'. + +'\mapsto' + ↦ Single-line left arrow starting with vertical bar (relation). + Similar: longer version '\longmapsto'. + +'\mho' + ℧ Conductance, half-circle rotated capital omega (ordinary). + +'\mid' + ∣ Single-line vertical bar (relation). A typical use of '\mid' is + for a set '\{\, x \mid x\geq 5 \,\}'. + + Similar: '\vert' and '|' produce the same single-line vertical bar + symbol but without any spacing (they fall in class ordinary) and + you should not use them as relations but instead only as ordinals, + i.e., footnote symbols. For absolute value, see the entry + for '\vert' and for norm see the entry for '\Vert'. + +'\models' + ⊨ Entails, or satisfies; double turnstile, short double dash + (relation). Similar: long double dash '\vDash'. + +'\mp' + ∓ Minus or plus (relation). + +'\mu' + μ Lowercase Greek letter (ordinary). + +'\nabla' + ∇ Hamilton's del, or differential, operator (ordinary). + +'\natural' + ♮ Musical natural notation (ordinary). + +'\ne' + ≠ Not equal (relation). Synonym: '\neq'. + +'\nearrow' + ↗ North-east arrow (relation). + +'\neg' + ¬ Logical negation (ordinary). Synonym: '\lnot'. Sometimes + instead used for negation: '\sim'. + +'\neq' + ≠ Not equal (relation). Synonym: '\ne'. + +'\ni' + ∋ Reflected membership epsilon; has the member (relation). + Synonym: '\owns'. Similar: is a member of '\in'. + +'\not' + Long solidus, or slash, used to overstrike a following operator + (relation). + + Many negated operators are available that don't require '\not', + particularly with the 'amssymb' package. For example, '\notin' is + typographically preferable to '\not\in'. + +'\notin' + ∉ Not an element of (relation). Similar: not subset + of '\nsubseteq'. + +'\nu' + ν Lowercase Greek letter (ordinary). + +'\nwarrow' + ↖ North-west arrow (relation). + +'\odot' + ⊙ Dot inside a circle (binary). Similar: variable-sized + operator '\bigodot'. + +'\oint' + ∮ Contour integral, integral with circle in the middle (operator). + +'\Omega' + Ω uppercase Greek letter (ordinary). + +'\omega' + ω Lowercase Greek letter (ordinary). + +'\ominus' + ⊖ Minus sign, or dash, inside a circle (binary). + +'\oplus' + ⊕ Plus sign inside a circle (binary). Similar: variable-sized + operator '\bigoplus'. + +'\oslash' + ⊘ Solidus, or slash, inside a circle (binary). + +'\otimes' + ⊗ Times sign, or cross, inside a circle (binary). Similar: + variable-sized operator '\bigotimes'. + +'\owns' + ∋ Reflected membership epsilon; has the member (relation). + Synonym: '\ni'. Similar: is a member of '\in'. + +'\parallel' + ∥ Parallel (relation). Synonym: '\|'. + +'\partial' + ∂ Partial differential (ordinary). + +'\perp' + ⟂ Perpendicular (relation). Similar: '\bot' uses the same glyph + but the spacing is different because it is in the class ordinary. + +'\Phi' + Φ Uppercase Greek letter (ordinary). + +'\phi' + ϕ Lowercase Greek letter (ordinary). The variant form is + '\varphi' φ. + +'\Pi' + Π uppercase Greek letter (ordinary). + +'\pi' + π Lowercase Greek letter (ordinary). The variant form is + '\varpi' ϖ. + +'\pm' + ± Plus or minus (binary). + +'\prec' + ≺ Precedes (relation). Similar: less than '<'. + +'\preceq' + ⪯ Precedes or equals (relation). Similar: less than or + equals '\leq'. + +'\prime' + ′ Prime, or minute in a time expression (ordinary). Typically used + as a superscript: '$f^\prime$'; '$f^\prime$' and '$f'$' produce the + same result. An advantage of the second is that '$f'''$' produces + the desired symbol, that is, the same result as + '$f^{\prime\prime\prime}$', but uses rather less typing. You can + only use '\prime' in math mode. Using the right single quote ''' + in text mode produces a different character (apostrophe). + +'\prod' + ∏ Product (operator). + +'\propto' + ∝ Is proportional to (relation) + +'\Psi' + Ψ uppercase Greek letter (ordinary). + +'\psi' + ψ Lowercase Greek letter (ordinary). + +'\rangle' + ⟩ Right angle, or sequence, bracket (closing). Similar: greater + than '>'. Matches:'\langle'. + +'\rbrace' + } Right curly brace (closing). Synonym: '\}'. Matches '\lbrace'. + +'\rbrack' + ] Right square bracket (closing). Synonym: ']'. + Matches '\lbrack'. + +'\rceil' + ⌉ Right ceiling bracket (closing). Matches '\lceil'. + +'\Re' + ℜ Real part, real numbers, cursive capital R (ordinary). Related: + double-line, or blackboard bold, R '\mathbb{R}'; to access this, + load the 'amsfonts' package. + +'\restriction' + ↾, Restriction of a function (relation). Synonym: + '\upharpoonright'. Not available in plain TeX. In LaTeX you need + to load the 'amssymb' package. + +'\revemptyset' + ⦰, Reversed empty set symbol (ordinary). Related: '\varnothing'. + Not available in plain TeX. In LaTeX you need to load the 'stix' + package. + +'\rfloor' + ⌋ Right floor bracket, a right square bracket with the top cut off + (closing). Matches '\lfloor'. + +'\rhd' + ◁ Arrowhead, that is, triangle, pointing right (binary). For the + normal subgroup symbol you should instead load 'amssymb' and + use '\vartriangleright' (which is a relation and so gives better + spacing). + +'\rho' + ρ Lowercase Greek letter (ordinary). The variant form is + '\varrho' ϱ. + +'\Rightarrow' + ⇒ Implies, right-pointing double line arrow (relation). Similar: + right single-line arrow '\rightarrow'. + +'\rightarrow' + → Right-pointing single line arrow (relation). Synonym: '\to'. + Similar: right double line arrow '\Rightarrow'. + +'\rightharpoondown' + ⇁ Right-pointing harpoon with barb below the line (relation). + +'\rightharpoonup' + ⇀ Right-pointing harpoon with barb above the line (relation). + +'\rightleftharpoons' + ⇌ Right harpoon up above left harpoon down (relation). + +'\searrow' + ↘ Arrow pointing southeast (relation). + +'\setminus' + ⧵ Set difference, reverse solidus or reverse slash, like \ + (binary). Similar: backslash '\backslash' and also + '\textbackslash' outside of math mode. + +'\sharp' + ♯ Musical sharp (ordinary). + +'\Sigma' + Σ uppercase Greek letter (ordinary). + +'\sigma' + σ Lowercase Greek letter (ordinary). The variant form is + '\varsigma' ς. + +'\sim' + ∼ Similar, in a relation (relation). + +'\simeq' + ≃ Similar or equal to, in a relation (relation). + +'\smallint' + ∫ Integral sign that does not change to a larger size in a display + (operator). + +'\smile' + ⌣ Upward curving arc, smile (ordinary). + +'\spadesuit' + ♠ Spade card suit (ordinary). + +'\sqcap' + ⊓ Square intersection symbol (binary). Similar: + intersection 'cap'. + +'\sqcup' + ⊔ Square union symbol (binary). Similar: union 'cup'. Related: + variable-sized operator '\bigsqcup'. + +'\sqsubset' + ⊏, Square subset symbol (relation). Similar: subset '\subset'. + Not available in plain TeX. In LaTeX you need to load the + 'amssymb' package. + +'\sqsubseteq' + ⊑ Square subset or equal symbol (binary). Similar: subset or equal + to '\subseteq'. + +'\sqsupset' + ⊐, Square superset symbol (relation). Similar: superset '\supset'. + Not available in plain TeX. In LaTeX you need to load the + 'amssymb' package. + +'\sqsupseteq' + ⊒ Square superset or equal symbol (binary). Similar: superset or + equal '\supseteq'. + +'\star' + ⋆ Five-pointed star, sometimes used as a general binary operation + but sometimes reserved for cross-correlation (binary). Similar: + the synonyms asterisk '*' and '\ast', which are six-pointed, and + more often appear as a superscript or subscript, as with the Kleene + star. + +'\subset' + ⊂ Subset (occasionally, is implied by) (relation). + +'\subseteq' + ⊆ Subset or equal to (relation). + +'\succ' + ≻ Comes after, succeeds (relation). Similar: is less than '>'. + +'\succeq' + ⪰ Succeeds or is equal to (relation). Similar: less than or equal + to '\leq'. + +'\sum' + ∑ Summation (operator). Similar: Greek capital sigma '\Sigma'. + +'\supset' + ⊃ Superset (relation). + +'\supseteq' + ⊇ Superset or equal to (relation). + +'\surd' + √ Radical symbol (ordinary). The LaTeX command '\sqrt{...}' + typesets the square root of the argument, with a bar that extends + to cover the argument. + +'\swarrow' + ↙ Southwest-pointing arrow (relation). + +'\tau' + τ Lowercase Greek letter (ordinary). + +'\theta' + θ Lowercase Greek letter (ordinary). The variant form is + '\vartheta' ϑ. + +'\times' + × Primary school multiplication sign (binary). See also '\cdot'. + +'\to' + → Right-pointing single line arrow (relation). + Synonym: '\rightarrow'. + +'\top' + ⊤ Top, greatest element of a partially ordered set (ordinary). See + also '\bot'. + +'\triangle' + △ Triangle (ordinary). + +'\triangleleft' + ◁ Not-filled triangle pointing left (binary). Similar: '\lhd'. + For the normal subgroup symbol you should load 'amssymb' and + use '\vartriangleleft' (which is a relation and so gives better + spacing). + +'\triangleright' + ▷ Not-filled triangle pointing right (binary). For the normal + subgroup symbol you should instead load 'amssymb' and + use '\vartriangleright' (which is a relation and so gives better + spacing). + +'\unlhd' + ⊴ Left-pointing not-filled underlined arrowhead, that is, triangle, + with a line under (binary). For the normal subgroup symbol load + 'amssymb' and use '\vartrianglelefteq' (which is a relation and so + gives better spacing). + +'\unrhd' + ⊵ Right-pointing not-filled underlined arrowhead, that is, + triangle, with a line under (binary). For the normal subgroup + symbol load 'amssymb' and use '\vartrianglerighteq' (which is a + relation and so gives better spacing). + +'\Uparrow' + ⇑ Double-line upward-pointing arrow (relation). Similar: + single-line up-pointing arrow '\uparrow'. + +'\uparrow' + ↑ Single-line upward-pointing arrow, diverges (relation). Similar: + double-line up-pointing arrow '\Uparrow'. + +'\Updownarrow' + ⇕ Double-line upward-and-downward-pointing arrow (relation). + Similar: single-line upward-and-downward-pointing + arrow '\updownarrow'. + +'\updownarrow' + ↕ Single-line upward-and-downward-pointing arrow (relation). + Similar: double-line upward-and-downward-pointing + arrow '\Updownarrow'. + +'\upharpoonright' + ↾, Up harpoon, with barb on right side (relation). + Synonym: '\restriction'. Not available in plain TeX. In LaTeX you + need to load the 'amssymb' package. + +'\uplus' + ⊎ Multiset union, a union symbol with a plus symbol in the middle + (binary). Similar: union '\cup'. Related: variable-sized + operator '\biguplus'. + +'\Upsilon' + Υ uppercase Greek letter (ordinary). + +'\upsilon' + υ Lowercase Greek letter (ordinary). + +'\varepsilon' + ε Small letter script epsilon (ordinary). This is more widely used + in mathematics than the non-variant lunate epsilon form + '\epsilon' ϵ. Related: set membership '\in'. + +'\vanothing' + ∅, Empty set symbol. Similar: '\emptyset'. Related: + '\revemptyset'. Not available in plain TeX. In LaTeX you need to + load the 'amssymb' package. + +'\varphi' + φ Variant on the lowercase Greek letter (ordinary). The + non-variant form is '\phi' ϕ. + +'\varpi' + ϖ Variant on the lowercase Greek letter (ordinary). The + non-variant form is '\pi' π. + +'\varrho' + ϱ Variant on the lowercase Greek letter (ordinary). The + non-variant form is '\rho' ρ. + +'\varsigma' + ς Variant on the lowercase Greek letter (ordinary). The + non-variant form is '\sigma' σ. + +'\vartheta' + ϑ Variant on the lowercase Greek letter (ordinary). The + non-variant form is '\theta' θ. + +'\vdash' + ⊢ Provable; turnstile, vertical and a dash (relation). Similar: + turnstile rotated a half-circle '\dashv'. + +'\vee' + ∨ Logical or; a downwards v shape (binary). Related: logical + and '\wedge'. Similar: variable-sized operator '\bigvee'. + +'\Vert' + ‖ Vertical double bar (ordinary). *Note Delimiters::, for how to + use the 'mathtools' package to create flexibly-sized norm symbols. + +'\vert' + | Single line vertical bar (ordinary). For "such that", as in the + definition of a set, use '\mid' because it is a relation. *Note + Delimiters::, for how to use the 'mathtools' package to create + flexibly-sized absolute-value symbols. + +'\wedge' + ∧ Logical and (binary). Synonym: '\land'. See also logical or + '\vee'. Similar: variable-sized operator '\bigwedge'. + +'\wp' + ℘ Weierstrass p (ordinary). + +'\wr' + ≀ Wreath product (binary). + +'\Xi' + Ξ uppercase Greek letter (ordinary). + +'\xi' + ξ Lowercase Greek letter (ordinary). + +'\zeta' + ζ Lowercase Greek letter (ordinary). + + The following symbols are most often used in plain text but LaTeX +provides versions to use in mathematical text. + +'\mathdollar' + Dollar sign in math mode: $. + +'\mathparagraph' + Paragraph sign (pilcrow) in math mode, ¶. + +'\mathsection' + Section sign in math mode §. + +'\mathsterling' + Sterling sign in math mode: £. + +'\mathunderscore' + Underscore in math mode: _. + +* Menu: + +* Arrows:: List of arrows. +* \boldmath & \unboldmath:: Symbols in boldface. +* Blackboard bold:: Doublestruck characters. +* Calligraphic:: Cursive characters. +* Delimiters:: Parentheses, braces, etc. +* Dots:: Ellipses, etc. +* Greek letters:: List of Greek letters. + + +File: latex2e.info, Node: Arrows, Next: \boldmath & \unboldmath, Up: Math symbols + +16.2.1 Arrows +------------- + +These are the arrows that come with standard LaTeX. The 'latexsym' and +'amsfonts' packages contain many more. + +Symbol Command +--------------------------------------------------------------------------- +⇓ '\Downarrow' +↓ '\downarrow' +↩ '\hookleftarrow' +↪ '\hookrightarrow' +← '\leftarrow' +⇐ '\Leftarrow' +⇔ '\Leftrightarrow' +↔ '\leftrightarrow' +⟵ '\longleftarrow' +⟸ '\Longleftarrow' +⟷ '\longleftrightarrow' +⟺ '\Longleftrightarrow' +⟼ '\longmapsto' +⟹ '\Longrightarrow' +⟶ '\longrightarrow' +↦ '\mapsto' +↗ '\nearrow' +↖ '\nwarrow' +⇒ '\Rightarrow' +→ '\rightarrow', or '\to' +↘ '\searrow' +↙ '\swarrow' +↑ '\uparrow' +⇑ '\Uparrow' +↕ '\updownarrow' +⇕ '\Updownarrow' + + An example of the difference between '\to' and '\mapsto' is: '\( +f\colon D\to C \) given by \( n\mapsto n^2 \)'. + + For commutative diagrams there are a number of packages, including +'tikz-cd' and 'amscd'. + + +File: latex2e.info, Node: \boldmath & \unboldmath, Next: Blackboard bold, Prev: Arrows, Up: Math symbols + +16.2.2 '\boldmath' & '\unboldmath' +---------------------------------- + +Synopsis (used in paragraph mode or LR mode): + + \boldmath \( MATH \) + +or + + \unboldmath \( MATH \) + + Declarations to change the letters and symbols in MATH to be in a +bold font, or to countermand that and bring back the regular (non-bold) +default. They must be used when not in math mode or display math mode +(*note Modes::). Both commands are fragile (*note \protect::). + + In this example each '\boldmath' command takes place inside an +'\mbox', + + we have $\mbox{\boldmath \( v \)} = 5\cdot\mbox{\boldmath \( u \)$}$ + +which means '\boldmath' is only called in a text mode, here LR mode, and +explains why LaTeX must switch to math mode to set 'v' and 'u'. + + If you use either command inside math mode, as with 'Trouble: \( +\boldmath x \)', then you get something like 'LaTeX Font Warning: +Command \boldmath invalid in math mode on input line 11' and 'LaTeX Font +Warning: Command \mathversion invalid in math mode on input line 11'. + + There are many issues with '\boldmath'. New documents should use the +'bm' package provided by the LaTeX Project team. A complete description +is outside the scope of this document (see the full documentation on +CTAN) but even this small example + + \usepackage{bm} % in preamble + ... + we have $\bm{v} = 5\cdot\bm{u}$ + +shows that it is an improvement over '\boldmath'. + + +File: latex2e.info, Node: Blackboard bold, Next: Calligraphic, Prev: \boldmath & \unboldmath, Up: Math symbols + +16.2.3 Blackboard bold +---------------------- + +Synopsis: + + \usepackage{amssymb} % in preamble + ... + \mathbb{UPPERCASE-LETTER} + + Provide blackboard bold symbols, sometimes also known as doublestruck +letters, used to denote number sets such as the natural numbers, the +integers, etc. + + Here + + \( \forall n \in \mathbb{N}, n^2 \geq 0 \) + +the '\mathbb{N}' gives blackboard bold symbol ℕ, representing the +natural numbers. + + If you use other than an uppercase letter then you do not get an +error but you get strange results, including unexpected characters. + + There are packages that give access to symbols other than just the +capital letters; look on CTAN. + + +File: latex2e.info, Node: Calligraphic, Next: Delimiters, Prev: Blackboard bold, Up: Math symbols + +16.2.4 Calligraphic +------------------- + +Synopsis: + + \mathcal{UPPERCASE-LETTERS} + + Use a script-like font. + + In this example the graph identifier is output in a cursive font. + + Let the graph be \( \mathcal{G} \). + + If you use something other than an uppercase letter then you do not +get an error but you also do not get math calligraphic output. For +instance, '\mathcal{g}' outputs a close curly brace symbol. + + +File: latex2e.info, Node: Delimiters, Next: Dots, Prev: Calligraphic, Up: Math symbols + +16.2.5 Delimiters +----------------- + +Delimiters are parentheses, braces, or other characters used to mark the +start and end of subformulas. This formula has three sets of +parentheses delimiting the three subformulas. + + (z-z_0)^2 = (x-x_0)^2 + (y-y_0)^2 + +The delimiters do not need to match, so you can enter '\( [0,1) \)'. + + Here are the common delimiters: + +DelimiterCommand Name +------------------------------------------------------ +( '(' Left parenthesis +) ')' Right parenthesis +\} '{' or Left brace + '\lbrace' +\{ '}' or Right brace + '\rbrace' +[ '[' or Left bracket + '\lbrack' +] ']' or Right bracket + '\rbrack' +⌊ '\lfloor' Left floor bracket +⌋ '\rfloor' Right floor bracket +⌈ '\lceil' Left ceiling bracket +⌉ '\rceil' Right ceiling bracket +⟨ '\langle' Left angle bracket +⟩ '\rangle' Right angle bracket +/ '/' Slash, or forward slash +\ '\backslash' Reverse slash, or backslash +| '|' or Vertical bar + '\vert' +‖ '\|' or Double vertical bar + '\Vert' + + The 'mathtools' package allows you to create commands for paired +delimiters. For instance, if you put +'\DeclarePairedDelimiter\abs{\lvert}{\rvert}' in your preamble then you +get two commands for single-line vertical bars (they only work in math +mode). The starred form, such as '\abs*{\frac{22}{7}}', has the height +of the vertical bars match the height of the argument. The unstarred +form, such as '\abs{\frac{22}{7}}', has the bars fixed at a default +height. This form accepts an optional argument, as in '\abs[SIZE +COMMAND]{\frac{22}{7}}', where the height of the bars is given in SIZE +COMMAND, such as '\Bigg'. Using instead '\lVert' and '\rVert' as the +symbols will give you a norm symbol with the same behavior. + +* Menu: + +* \left & \right:: Automatically sized delimiters. +* \bigl & \bigr etc.:: Manually sized delimiters. + + +File: latex2e.info, Node: \left & \right, Next: \bigl & \bigr etc., Up: Delimiters + +16.2.5.1 '\left' & '\right' +........................... + +Synopsis: + + \left DELIMITER1 ... \right DELIMITER2 + + Make matching parentheses, braces, or other delimiters. LaTeX makes +the delimiters tall enough to just cover the size of the formula that +they enclose. + + This makes a unit vector surrounded by parentheses tall enough to +cover the entries. + + \begin{equation} + \left(\begin{array}{c} + 1 \\ + 0 \\ + \end{array}\right) + \end{equation} + + *Note Delimiters::, for a list of the common delimiters. + + Every '\left' must have a matching '\right'. In the above example, +leaving out the '\left(' gets the error message 'Extra \right'. Leaving +out the '\right)' gets 'You can't use `\eqno' in math mode'. + + However, DELIMITER1 and DELIMITER2 need not match. A common case is +that you want an unmatched brace, as below. Use a period, '.', as a +null delimiter. + + \begin{equation} + f(n)=\left\{\begin{array}{ll} + 1 &\mbox{--if \(n=0\)} \\ + f(n-1)+3n^2 &\mbox{--else} + \end{array}\right. + \end{equation} + +Note that to get a curly brace as a delimiter you must prefix it with a +backslash, '\{' (*note Reserved characters::). (The packages 'amsmath' +and 'mathtools' allow you to get the above construct through in a +'cases' environment.) + + The '\left ... \right' pair make a group. One consequence is that +the formula enclosed in the '\left ... \right' pair cannot have line +breaks in the output. This includes both manual line breaks and +LaTeX-generated automatic ones. In this example, LaTeX breaks the +equation to make the formula fit the margins. + + Lorem ipsum dolor sit amet + \( (a+b+c+d+e+f+g+h+i+j+k+l+m+n+o+p+q+r+s+t+u+v+w+x+y+z) \) + +But with '\left' and '\right' + + Lorem ipsum dolor sit amet + \( \left(a+b+c+d+e+f+g+h+i+j+k+l+m+n+o+p+q+r+s+t+u+v+w+x+y+z\right) \) + +LaTeX won't break the line, causing the formula to extend into the +margin. + + Because '\left ... \right' make a group, all the usual grouping rules +hold. Here, the value of '\testlength' set inside the equation will be +forgotten, and the output is '1.2pt'. + + \newlength{\testlength} \setlength{\testlength}{1.2pt} + \begin{equation} + \left( a+b=c \setlength{\testlength}{3.4pt} \right) + \the\testlength + \end{equation} + + The '\left ... \right' pair affect the horizontal spacing of the +enclosed formula, in two ways. The first is that in '\( \sin(x) = +\sin\left(x\right) \)' the one after the equals sign has more space +around the 'x'. That's because '\left( ... \right)' inserts an inner +node while '( ... )' inserts an opening node. The second way that the +pair affect the horizontal spacing is that because they form a group, +the enclosed subformula will be typeset at its natural width, with no +stretching or shrinking to make the line fit better. + + TeX scales the delimiters according to the height and depth of the +enclosed formula. Here LaTeX grows the brackets to extend the full +height of the integral. + + \begin{equation} + \left[ \int_{x=r_0}^{\infty} -G\frac{Mm}{r^2}\, dr \right] + \end{equation} + + Manual sizing is often better. For instance, although below the rule +has no depth, TeX will create delimiters that extend far below the rule. + + \begin{equation} + \left( \rule{1pt}{1cm} \right) + \end{equation} + +TeX can choose delimiters that are too small, as in '\( \left| |x|+|y| +\right| \)'. It can also choose delimiters that are too large, as here. + + \begin{equation} + \left( \sum_{0\leq i<n} i^k \right) + \end{equation} + +A third awkward case is when a long displayed formula is on more than +one line and you must match the sizes of the opening and closing +delimiter; you can't use '\left' on the first line and '\right' on the +last because they must be paired. + + To size the delimiters manually, see *note \bigl & \bigr etc.::. + + +File: latex2e.info, Node: \bigl & \bigr etc., Prev: \left & \right, Up: Delimiters + +16.2.5.2 '\bigl', '\bigr', etc. +............................... + +Synopsis, one of: + + \bigl DELIMITER1 ... \bigr DELIMITER2 + \Bigl DELIMITER1 ... \bigr DELIMITER2 + \biggl DELIMITER1 ... \biggr DELIMITER2 + \Biggl DELIMITER1 ... \Biggr DELIMITER2 + +(as with '\bigl[...\bigr]'; strictly speaking they need not be paired, +see below), or one of: + + \bigm DELIMITER + \Bigm DELIMITER + \biggm DELIMITER + \Biggm DELIMITER + +(as with '\bigm|'), or one of: + + \big DELIMITER + \Big DELIMITER + \bigg DELIMITER + \Bigg DELIMITER + +(as with '\big['). + + Produce manually-sized delimiters. For delimiters that are +automatically sized see *note \left & \right::). + + This produces slightly larger outer vertical bars. + + \bigl| |x|+|y| \bigr| + + The commands above are listed in order of increasing size. You can +use the smallest size such as '\bigl...\bigr' in a paragraph without +causing LaTeX to spread the lines apart. The larger sizes are meant for +displayed equations. + + *Note Delimiters::, for a list of the common delimiters. In the +family of commands with 'l' or 'r', DELIMITER1 and DELIMITER2 need not +match together. + + The 'l' and 'r' commands produce open and close delimiters that +insert no horizontal space between a preceding atom and the delimiter, +while the commands without 'l' and 'r' insert some space (because each +delimiter is set as an ordinary variable). Compare these two. + + \begin{tabular}{l} + \(\displaystyle \sin\biggl(\frac{1}{2}\biggr) \) \\ % good + \(\displaystyle \sin\bigg(\frac{1}{2}\bigg) \) \\ % bad + \end{tabular} + +The traditional typographic treatment is on the first line. On the +second line the output will have some extra space between the '\sin' and +the open parenthesis. + + Commands without 'l' or 'r' do give correct spacing in some +circumstances, as with this large vertical line + + \begin{equation} + \int_{x=a}^b x^2\,dx = \frac{1}{3} x^3 \Big|_{x=a}^b + \end{equation} + +(many authors would replace '\frac' with the '\tfrac' command from the +'amsmath' package), and as with this larger slash. + + \begin{equation} + \lim_{n\to\infty}\pi(n) \big/ (n/\log n) = 1 + \end{equation} + + Unlike the '\left...\right' pair (*note \left & \right::), the +commands here with 'l' or 'r' do not make a group. Strictly speaking +they need not be matched so you can write something like this. + + \begin{equation} + \Biggl[ \pi/6 ] + \end{equation} + + The commands with 'm' are for relations, which are in the middle of +formulas, as here. + + \begin{equation} + \biggl\{ a\in B \biggm| a=\sum_{0\leq i<n}3i^2+4 \biggr\} + \end{equation} + + +File: latex2e.info, Node: Dots, Next: Greek letters, Prev: Delimiters, Up: Math symbols + +16.2.6 Dots, horizontal or vertical +----------------------------------- + +Ellipses are the three dots (usually three) indicating that a pattern +continues. + + \begin{array}{cccc} + a_{0,0} &a_{0,1} &a_{0,2} &\ldots \\ + a_{1,0} &\ddots \\ + \vdots + \end{array} + + LaTeX provides these. + +'\cdots' + Horizontal ellipsis with the dots raised to the center of the line, + as in ⋯. Used as: '\( a_0\cdot a_1\cdots a_{n-1} \)'. + +'\ddots' + Diagonal ellipsis, ⋱. See the above array example for a usage. + +'\ldots' + Ellipsis on the baseline, …. Used as: '\( x_0,\ldots x_{n-1} \)'. + Another example is the above array example. A synonym is + '\mathellipsis'. A synonym from the 'amsmath' package is '\hdots'. + + You can also use this command outside of mathematical text, as in + 'The gears, brakes, \ldots{} are all broken'. (In a paragraph mode + or LR mode a synonym for '\ldots' is '\dots'.) + +'\vdots' + Vertical ellipsis, ⋮. See the above array example for a usage. + + The 'amsmath' package has the command '\dots' to semantically mark up +ellipses. This example produces two different-looking outputs for the +first two uses of the '\dots' command. + + \usepackage{amsmath} % in preamble + ... + Suppose that \( p_0, p_1, \dots, p_{n-1} \) lists all of the primes. + Observe that \( p_0\cdot p_1 \dots \cdot p_{n-1} +1 \) is not a + multiple of any \( p_i \). + Conclusion: there are infinitely many primes \( p_0, p_1, \dotsc \). + +In the first line LaTeX looks to the comma following '\dots' to +determine that it should output an ellipsis on the baseline. The second +line has a '\cdot' following '\dots' so LaTeX outputs an ellipsis that +is on the math axis, vertically centered. However, the third usage has +no follow-on character so you have to tell LaTeX what to do. You can +use one of the commands: '\dotsc' if you need the ellipsis appropriate +for a comma following, '\dotsb' if you need the ellipses that fits when +the dots are followed by a binary operator or relation symbol, '\dotsi' +for dots with integrals, or '\dotso' for others. + + +File: latex2e.info, Node: Greek letters, Prev: Dots, Up: Math symbols + +16.2.7 Greek letters +-------------------- + +The upper case versions of these Greek letters are only shown when they +differ from Roman upper case letters. + +Symbol Command Name +---------------------------------------------------------------------------- +α '\alpha' Alpha +β '\beta' Beta +γ, Γ '\gamma', '\Gamma' Gamma +δ, Δ '\delta', '\Delta' Delta +ε, ϵ '\varepsilon', Epsilon + '\epsilon' +ζ '\zeta' Zeta +η '\eta' Eta +θ, ϑ '\theta', Theta + '\vartheta' +ι '\iota' Iota +κ '\kappa' Kappa +λ, Λ '\lambda', '\Lambda' Lambda +μ '\mu' Mu +ν '\nu' Nu +ξ, Ξ '\xi', '\Xi' Xi +π, Π '\pi', '\Pi' Pi +ρ, ϱ '\rho', '\varrho' Rho +σ, Σ '\sigma', '\Sigma' Sigma +τ '\tau' Tau +ϕ, φ, '\phi', '\varphi', Phi +Φ '\Phi' +χ '\chi' chi +ψ, Ψ '\psi', '\Psi' Psi +ω, Ω '\omega', '\Omega' Omega + + For omicron, if you are using LaTeX's default Computer Modern font +then enter omicron just as 'o' or 'O'. If you like having the name or +if your font shows a difference then you can use something like +'\newcommand\omicron{o}'. The package 'unicode-math' has '\upomicron' +for upright omicron and '\mitomicron' for math italic. + + While the set membership relation symbol ∈ generated by '\in' is +related to epsilon, it is never used for a variable. + + +File: latex2e.info, Node: Math functions, Next: Math accents, Prev: Math symbols, Up: Math formulas + +16.3 Math functions +=================== + +These commands produce roman function names in math mode with proper +spacing. + +'\arccos' + Inverse cosine + +'\arcsin' + Inverse sine + +'\arctan' + Inverse tangent + +'\arg' + Angle between the real axis and a point in the complex plane + +'\bmod' + Binary modulo operator, used as in '\( 5\bmod 3=2 \)' + +'\cos' + Cosine + +'\cosh' + Hyperbolic cosine + +'\cot' + Cotangent + +'\coth' + Hyperbolic cotangent + +'\csc' + Cosecant + +'\deg' + Degrees + +'\det' + Determinant + +'\dim' + Dimension + +'\exp' + Exponential + +'\gcd' + Greatest common divisor + +'\hom' + Homomorphism + +'\inf' + Infinum + +'\ker' + Kernel + +'\lg' + Base 2 logarithm + +'\lim' + Limit + +'\liminf' + Limit inferior + +'\limsup' + Limit superior + +'\ln' + Natural logarithm + +'\log' + Logarithm + +'\max' + Maximum + +'\min' + Minimum + +'\pmod' + Parenthesized modulus, as used in '\( 5\equiv 2\pmod 3 \)' + +'\Pr' + Probability + +'\sec' + Secant + +'\sin' + Sine + +'\sinh' + Hyperbolic sine + +'\sup' + sup + +'\tan' + Tangent + +'\tanh' + Hyperbolic tangent + + The 'amsmath' package adds improvements on some of these, and also +allows you to define your own. The full documentation is on CTAN, but +briefly, you can define an identity operator with +'\DeclareMathOperator{\identity}{id}' that is like the ones above but +prints as 'id'. The starred form '\DeclareMathOperator*{\op}{op}' sets +any limits above and below, as is traditional with '\lim', '\sup', or +'\max'. + + +File: latex2e.info, Node: Math accents, Next: Over- and Underlining, Prev: Math functions, Up: Math formulas + +16.4 Math accents +================= + +LaTeX provides a variety of commands for producing accented letters in +math. These are different from accents in normal text (*note +Accents::). + +'\acute' + Math acute accent + +'\bar' + Math bar-over accent + +'\breve' + Math breve accent + +'\check' + Math háček (check) accent + +'\ddot' + Math dieresis accent + +'\dot' + Math dot accent + +'\grave' + Math grave accent + +'\hat' + Math hat (circumflex) accent + +'\mathring' + Math ring accent + +'\tilde' + Math tilde accent + +'\vec' + Math vector symbol + +'\widehat' + Math wide hat accent + +'\widetilde' + Math wide tilde accent + + When you are putting an accent on an i or a j, the tradition is to +use one without a dot, '\imath' or 'jmath' (*note Math symbols::). + + +File: latex2e.info, Node: Over- and Underlining, Next: Spacing in math mode, Prev: Math accents, Up: Math formulas + +16.5 Over- and Underlining +========================== + +LaTeX provides commands for making overlines or underlines, or putting +braces over or under some material. + +'\underline{TEXT}' + Underline TEXT. Works inside math mode, and outside. The line is + always completely below the text, taking account of descenders, so + in '\(\underline{y}\)' the line is lower than in + '\(\underline{x}\)'. This command is fragile (*note \protect::). + + Note that the package 'ulem' does text mode underlining and allows + line breaking as well as a number of other features. See the + documentation on CTAN. See also *note \hrulefill & \dotfill:: for + producing a line, for such things as a signature. + +'\overline{TEXT}' + Put a horizontal line over TEXT. Works inside math mode, and + outside. For example, '\overline{x+y}'. Note that this differs + from the command '\bar' (*note Math accents::). + +'\underbrace{MATH}' + Put a brace under MATH. For example, this + '(1-\underbrace{1/2)+(1/2}-1/3)' emphasizes the telescoping part. + Attach text to the brace by using subscript, '_', or superscript, + '^', as here. + + \begin{displaymath} + 1+1/2+\underbrace{1/3+1/4}_{>1/2}+ + \underbrace{1/5+1/6+1/7+1/8}_{>1/2}+\cdots + \end{displaymath} + + The superscript appears on top of the expression, and so can look + unconnected to the underbrace. + +'\overbrace{MATH}' + Put a brace over MATH, as with + '\overbrace{x+x+\cdots+x}^{\mbox{\(k\) times}}'. See also + '\underbrace'. + + The package 'mathtools' adds an over- and underbrace, as well as some +improvements on the braces. See the documentation on CTAN. + + +File: latex2e.info, Node: Spacing in math mode, Next: Math styles, Prev: Over- and Underlining, Up: Math formulas + +16.6 Spacing in math mode +========================= + +When typesetting mathematics, LaTeX puts in spacing according to the +normal rules for mathematics texts. If you enter 'y=m x' then LaTeX +ignores the space and in the output the m is next to the x, as y=mx. + + But LaTeX's rules occasionally need tweaking. For example, in an +integral the tradition is to put a small extra space between the 'f(x)' +and the 'dx', here done with the '\,' command: + + \int_0^1 f(x)\,dx + + LaTeX provides the commands that follow for use in math mode. Many +of these spacing definitions are expressed in terms of the math unit +"mu". It is defined as 1/18em, where the em is taken from the current +math symbols family (*note Units of length::). Thus, a '\thickspace' is +something like 5/18 times the width of a 'M'. + +'\;' + + Synonym: '\thickspace'. Normally '5.0mu plus 5.0mu'. With the + 'amsmath' package, or as of the 2020-10-01 LaTeX release, can be + used in text mode as well as math mode; otherwise, in math mode + only. + +'\negthickspace' + Normally '-5.0mu plus 2.0mu minus 4.0mu'. With the 'amsmath' + package, or as of the 2020-10-01 LaTeX release, can be used in text + mode as well as math mode; otherwise, in math mode only. + +'\:' +'\>' + Synonym: '\medspace'. Normally '4.0mu plus 2.0mu minus 4.0mu'. + With the 'amsmath' package, or as of the 2020-10-01 LaTeX release, + can be used in text mode as well as math mode; before that, in math + mode only. + +'\negmedspace' + Normally '-4.0mu plus 2.0mu minus 4.0mu'. With the 'amsmath' + package, or as of the 2020-10-01 LaTeX release, can be used in text + mode as well as math mode; before that, in math mode only. + +'\,' + Synonym: '\thinspace'. Normally '3mu', which is 1/6em. Can be + used in both math mode and text mode (*note \thinspace & + \negthinspace::). + + This space is widely used, for instance between the function and + the infinitesimal in an integral '\int f(x)\,dx' and, if an author + does this, before punctuation in a displayed equation. + + The antiderivative is + \begin{equation} + 3x^{-1/2}+3^{1/2}\,. + \end{equation} + +'\!' + Synonym: '\negthinspace'. A negative thin space. Normally '-3mu'. + With the 'amsmath' package, or as of the 2020-10-01 LaTeX release, + can be used in text mode as well as math mode; otherwise, the '\!' + command is math mode only but the '\negthinspace' command has + always also worked in text mode (*note \thinspace & + \negthinspace::). + +'\quad' + This is 18mu, that is, 1em. This is often used for space + surrounding equations or expressions, for instance for the space + between two equations inside a 'displaymath' environment. It is + available in both text and math mode. + +'\qquad' + A length of 2 quads, that is, 36mu = 2em. It is available in both + text and math mode. + +* Menu: + +* \smash:: Eliminate height or depth of a subformula. +* \phantom & \vphantom & \hphantom:: Make empty box same size as argument. +* \mathstrut:: Add some vertical space to a formula. + + +File: latex2e.info, Node: \smash, Next: \phantom & \vphantom & \hphantom, Up: Spacing in math mode + +16.6.1 '\smash' +--------------- + +Synopsis: + + \smash{SUBFORMULA} + + Typeset SUBFORMULA as if its height and depth were zero. + + In this example the exponential is so tall that without the '\smash' +command LaTeX would separate its line from the line above it, and the +uneven line spacing might be unsightly. + + To compute the tetration $\smash{2^{2^{2^2}}}$, + evaluate from the top down, as $2^{2^4}=2^{16}=65536$. + + (Because of the '\smash' the printed expression could run into the +line above so you may want to wait until the final version of the +document to make such adjustments.) + + This pictures the effect of '\smash' by using '\fbox' to surround the +box that LaTeX will put on the line. The '\blackbar' command makes a +bar extending from 10 points below the baseline to 20 points above. + + \newcommand{\blackbar}{\rule[-10pt]{5pt}{30pt}} + \fbox{\blackbar} + \fbox{\smash{\blackbar}} + + The first box that LaTeX places is 20 points high and 10 points deep. +But the second box is treated by LaTeX as having zero height and zero +depth, despite that the ink printed on the page still extends well above +and below the line. + + The '\smash' command appears often in mathematics to adjust the size +of an element that surrounds a subformula. Here the first radical +extends below the baseline while the second lies just on the baseline. + + \begin{equation} + \sqrt{\sum_{0\leq k< n} f(k)} + \sqrt{\vphantom{\sum}\smash{\sum_{0\leq k< n}} f(k)} + \end{equation} + + Note the use of '\vphantom' to give the '\sqrt' command an argument +with the height of the '\sum' (*note \phantom & \vphantom & +\hphantom::). + + While most often used in mathematics, the '\smash' command can appear +in other contexts. However, it doesn't change into horizontal mode. So +if it starts a paragraph then you should first put a '\leavevmode', as +in the bottom line below. + + xxx xxx xxx + + \smash{yyy} % no paragraph indent + + \leavevmode\smash{zzz} % usual paragraph indent + + The package 'mathtools' has operators that provide even finer control +over smashing a subformula box. + + +File: latex2e.info, Node: \phantom & \vphantom & \hphantom, Next: \mathstrut, Prev: \smash, Up: Spacing in math mode + +16.6.2 '\phantom' & '\vphantom' & '\hphantom' +--------------------------------------------- + +Synopsis: + + \phantom{SUBFORMULA} + + or + + \vphantom{SUBFORMULA} + + or + + \hphantom{SUBFORMULA} + + The '\phantom' command creates a box with the same height, depth, and +width as SUBFORMULA, but empty. That is, this command causes LaTeX to +typeset the space but not fill it with the material. Here LaTeX will +put a blank line that is the correct width for the answer, but will not +show that answer. + + \begin{displaymath} + \int x^2\,dx=\mbox{\underline{$\phantom{(1/3)x^3+C}$}} + \end{displaymath} + + The '\vphantom' variant produces an invisible box with the same +vertical size as SUBFORMULA, the same height and depth, but having zero +width. And '\hphantom' makes a box with the same width as SUBFORMULA +but with zero height and depth. + + In this example, the tower of exponents in the second summand +expression is so tall that TeX places this expression further down than +its default. Without adjustment, the two summand expressions would be +at different levels. The '\vphantom' in the first expression tells TeX +to leave as much vertical room as it does for the tower, so the two +expressions come out at the same level. + + \begin{displaymath} + \sum_{j\in\{0,\ldots\, 10\}\vphantom{3^{3^{3^j}}}} + \sum_{i\in\{0,\ldots\, 3^{3^{3^j}}\}} i\cdot j + \end{displaymath} + + These commands are often used in conjunction with '\smash'. *Note +\smash::, which includes another example of '\vphantom'. + + The three phantom commands appear often but note that LaTeX provides +a suite of other commands to work with box sizes that may be more +convenient, including '\makebox' (*note \mbox & \makebox::) as well as +'\settodepth' (*note \settodepth::), '\settoheight' (*note +\settoheight::), and '\settowidth' (*note \settowidth::). In addition, +the 'mathtools' package has many commands that offer fine-grained +control over spacing. + + All three commands produce an ordinary box, without any special +mathematics status. So to do something like attaching a superscript you +should give it such a status, for example with the '\operatorname' +command from the package 'amsmath'. + + While most often used in mathematics, these three can appear in other +contexts. However, they don't cause LaTeX to change into horizontal +mode. So if one of these starts a paragraph then you should prefix it +with '\leavevmode'. + + +File: latex2e.info, Node: \mathstrut, Prev: \phantom & \vphantom & \hphantom, Up: Spacing in math mode + +16.6.3 '\mathstrut' +------------------- + +Synopsis: + + \mathstrut + + The analogue of '\strut' for mathematics. *Note \strut::. + + The input '$\sqrt{x} + \sqrt{x^i}$' gives output where the second +radical is taller than the first. To add extra vertical space without +any horizontal space, so that the two have the same height, use +'$\sqrt{x\mathstrut} + \sqrt{x^i\mathstrut}$'. + + The '\mathstrut' command adds the vertical height of an open +parenthesis, '(', but no horizontal space. It is defined as +'\vphantom{(}', so see *note \phantom & \vphantom & \hphantom:: for +more. An advantage over '\strut' is that '\mathstrut' adds no depth, +which is often the right thing for formulas. Using the height of an +open parenthesis is just a convention; for complete control over the +amount of space, use '\rule' with a width of zero. *Note \rule::. + + +File: latex2e.info, Node: Math styles, Next: Math miscellany, Prev: Spacing in math mode, Up: Math formulas + +16.7 Math styles +================ + +TeX's rules for typesetting a formula depend on the context. For +example, inside a displayed equation, the input '\sum_{0\leq +i<n}k^m=\frac{n^{m+1}}{m+1}+\mbox{lower order terms}' will give output +with the summation index centered below the summation symbol. But if +that input is inline then the summation index is off to the right rather +than below, so it won't push the lines apart. Similarly, in a displayed +context, the symbols in the numerator and denominator will be larger +than for an inline context, and in display math subscripts and +superscripts are further apart then they are in inline math. + + TeX uses four math styles. + + * Display style is for a formula displayed on a line by itself, such + as with '\begin{equation} ... \end{equation}'. + + * Text style is for an inline formula, as with 'so we have $ ... $'. + + * Script style is for parts of a formula in a subscript or + superscript. + + * Scriptscript style is for parts of a formula at a second level (or + more) of subscript or superscript. + + TeX determines a default math style but you can override it with a +declaration of '\displaystyle', or '\textstyle', or '\scriptstyle', or +'\scriptscriptstyle'. + + In this example, the 'Arithmetic' line's fraction will look +scrunched. + + \begin{tabular}{r|cc} + \textsc{Name} &\textsc{Series} &\textsc{Sum} \\ \hline + Arithmetic &$a+(a+b)+(a+2b)+\cdots+(a+(n-1)b)$ + &$na+(n-1)n\cdot\frac{b}{2}$ \\ + Geometric &$a+ab+ab^2+\cdots+ab^{n-1}$ + &$\displaystyle a\cdot\frac{1-b^n}{1-b}$ \\ + \end{tabular} + +But because of the '\displaystyle' declaration, the 'Geometric' line's +fraction will be easy to read, with characters the same size as in the +rest of the line. + + Another example is that, compared to the same input without the +declaration, the result of + + we get + $\pi=2\cdot{\displaystyle\int_{x=0}^1 \sqrt{1-x^2}\,dx}$ + +will have an integral sign that is much taller. Note that here the +'\displaystyle' applies to only part of the formula, and it is delimited +by being inside curly braces, as '{\displaystyle ...}'. + + The last example is a continued fraction. + + \begin{equation} + a_0+\frac{1}{ + \displaystyle a_1+\frac{\mathstrut 1}{ + \displaystyle a_2+\frac{\mathstrut 1}{ + \displaystyle a_3}}} + \end{equation} + +Without the '\displaystyle' declarations, the denominators would be set +in script style and scriptscript style. (The '\mathstrut' improves the +height of the denominators; *note \mathstrut::.) + + +File: latex2e.info, Node: Math miscellany, Prev: Math styles, Up: Math formulas + +16.8 Math miscellany +==================== + +LaTeX contains a wide variety of mathematics facilities. Here are some +that don't fit into other categories. + +* Menu: + +* Colon character & \colon:: Colon. +* \*:: Discretionary multiplication. +* \frac:: Fraction. +* \sqrt:: Radicals. +* \stackrel:: Text over a relation. + + +File: latex2e.info, Node: Colon character & \colon, Next: \*, Up: Math miscellany + +16.8.1 Colon character ':' & '\colon' +------------------------------------- + +Synopsis, one of: + + : + \colon + + In mathematics, the colon character, ':', is a relation. + + With side ratios \( 3:4 \) and \( 4:5 \), the triangle is right. + +Ordinary LaTeX defines '\colon' to produce the colon character with the +spacing appropriate for punctuation, as in set-builder notation +'\{x\colon 0\leq x<1\}'. + + But the widely-used 'amsmath' package defines '\colon' for use in the +definition of functions 'f\colon D\to C'. So if you want the colon +character as a punctuation then use '\mathpunct{:}'. + + +File: latex2e.info, Node: \*, Next: \frac, Prev: Colon character & \colon, Up: Math miscellany + +16.8.2 '\*' +----------- + +Synopsis: + + \* + + A multiplication symbol that allows a line break. If there is a +break then LaTeX puts a '\times' symbol, ×, before that break. + + In '\( A_1\* A_2\* A_3\* A_4 \)', if there is no line break then +LaTeX outputs it as though it were '\( A_1 A_2 A_3 A_4 \)'. If a line +break does happen, for example between the two middle ones, then LaTeX +sets it like '\( A_1 A_2 \times \)', followed by the break, followed by +'\( A_3 A_4 \)'. + + +File: latex2e.info, Node: \frac, Next: \sqrt, Prev: \*, Up: Math miscellany + +16.8.3 '\frac' +-------------- + +Synopsis: + + \frac{NUMERATOR}{DENOMINATOR} + + Produces the fraction. Used as: '\begin{displaymath} +\frac{1}{\sqrt{2\pi\sigma}} \end{displaymath}'. In inline math mode it +comes out small; see the discussion of '\displaystyle' (*note Math +formulas::). + + +File: latex2e.info, Node: \sqrt, Next: \stackrel, Prev: \frac, Up: Math miscellany + +16.8.4 '\sqrt' +-------------- + +Synopsis, one of: + + \sqrt{ARG} + \sqrt[ROOT-NUMBER]{ARG} + + The square root, or optionally other roots, of ARG. The optional +argument ROOT-NUMBER gives the root, i.e., enter the cube root of 'x+y' +as '\sqrt[3]{x+y}'. The radical grows with the size of ARG (as the +height of the radical grows, the angle on the leftmost part gets +steeper, until for a large enough 'arg', it is vertical). + + LaTeX has a separate '\surd' character (*note Math symbols::). + + +File: latex2e.info, Node: \stackrel, Prev: \sqrt, Up: Math miscellany + +16.8.5 '\stackrel' +------------------ + +Synopsis, one of: + + \stackrel{TEXT}{RELATION} + + Put TEXT above RELATION. To put a function name above an arrow enter +'\stackrel{f}{\longrightarrow}'. + + +File: latex2e.info, Node: Modes, Next: Page styles, Prev: Math formulas, Up: Top + +17 Modes +******** + +As LaTeX processes your document, at any point it is in one of six +modes. They fall into three categories of two each, the horizontal +modes, the math modes, and the vertical modes. Some commands only work +in one mode or another (in particular, many commands only work in one of +the math modes), and error messages will refer to these. + + * "Paragraph mode" (in plain TeX this is called "horizontal mode") is + what LaTeX is in when processing ordinary text. It breaks the + input text into lines and finds the positions of line breaks, so + that in vertical mode page breaks can be done. This is the mode + LaTeX is in most of the time. + + "LR mode" (for left-to-right mode; in plain TeX this is called + "restricted horizontal mode") is in effect when LaTeX starts making + a box with an '\mbox' command. As in paragraph mode, LaTeX's + output is a string of words with spaces between them. Unlike in + paragraph mode, in LR mode LaTeX never starts a new line, it just + keeps going from left to right. (Although LaTeX will not complain + that the LR box is too long, when it is finished and next tries to + put that box into a line, it could very well complain that the + finished LR box won't fit there.) + + * "Math mode" is when LaTeX is generating an inline mathematical + formula. + + "Display math mode" is when LaTeX is generating a displayed + mathematical formula. (Displayed formulas differ somewhat from + inline ones. One example is that the placement of the subscript on + '\int' differs in the two situations.) + + * "Vertical mode" is when LaTeX is building the list of lines and + other material making the output page, which comprises insertion of + page breaks. This is the mode LaTeX is in when it starts a + document. + + "Internal vertical mode" is in effect when LaTeX starts making a + '\vbox'. It has not such thing as page breaks, and as such is the + vertical analogue of LR mode. + +For instance, if you begin a LaTeX article with 'Let \( x \) be ...' +then these are the modes: first LaTeX starts every document in vertical +mode, then it reads the 'L' and switches to paragraph mode, then the +next switch happens at the '\(' where LaTeX changes to math mode, and +then when it leaves the formula it pops back to paragraph mode. + + Paragraph mode has two subcases. If you use a '\parbox' command or a +'minipage' then LaTeX is put into paragraph mode. But it will not put a +page break here. Inside one of these boxes, called a "parbox", LaTeX is +in "inner paragraph mode". Its more usual situation, where it can put +page breaks, is "outer paragraph mode" (*note Page breaking::). + +* Menu: + +* \ensuremath:: Ensure that math mode is active. + + +File: latex2e.info, Node: \ensuremath, Up: Modes + +17.1 '\ensuremath' +================== + +Synopsis: + + \ensuremath{FORMULA} + + Ensure that FORMULA is typeset in math mode. + + For instance, you can redefine commands that ordinarily can be used +only in math mode, so that they can be used both in math and in plain +text. + + \newcommand{\dx}{\ensuremath{dx}} + In $\int f(x)\, \dx$, the \dx{} is an infinitesimal. + + Caution: the '\ensuremath' command is useful but not a panacea. + + \newcommand{\alf}{\ensuremath{\alpha}} + You get an alpha in text mode: \alf. + But compare the correct spacing in $\alf+\alf$ with that in \alf+\alf. + +Best is to typeset math things in a math mode. + + +File: latex2e.info, Node: Page styles, Next: Spaces, Prev: Modes, Up: Top + +18 Page styles +************** + +The style of a page determines where LaTeX places the components of that +page, such as headers and footers, and the text body. This includes +pages in the main part of the document but also includes special pages +such as the title page of a book, a page from an index, or the first +page of an article. + + The package 'fancyhdr' is very helpful for constructing page styles. +See its documentation on CTAN. + +* 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. + + +File: latex2e.info, Node: \maketitle, Next: \pagenumbering, Up: Page styles + +18.1 '\maketitle' +================= + +Synopsis: + + \maketitle + + Generate a title. In the standard classes the title appears on a +separate page, except in the 'article' class where it is at the top of +the first page. (*Note Document class options::, for information about +the 'titlepage' document class option.) + + This example shows '\maketitle' appearing in its usual place, +immediately after '\begin{document}'. + + \documentclass{article} + \title{Constructing a Nuclear Reactor Using Only Coconuts} + \author{Jonas Grumby\thanks{% + With the support of a Ginger Grant from the Roy Hinkley Society.} \\ + Skipper, \textit{Minnow} + \and + Willy Gilligan\thanks{% + Thanks to the Mary Ann Summers foundation + and to Thurston and Lovey Howell.} \\ + Mate, \textit{Minnow} + } + \date{1964-Sep-26} + \begin{document} + \maketitle + Just sit right back and you'll hear a tale, a tale of a fateful trip. + That started from this tropic port, aboard this tiny ship. The mate was + a mighty sailin' man, the Skipper brave and sure. Five passengers set + sail that day for a three hour tour. A three hour tour. + ... + + You tell LaTeX the information used to produce the title by making +the following declarations. These must come before the '\maketitle', +either in the preamble or in the document body. + +'\author{NAME1 \and NAME2 \and ...}' + Required. Declare the document author or authors. The argument is + a list of authors separated by '\and' commands. To separate lines + within a single author's entry, for instance to give the author's + institution or address, use a double backslash, '\\'. If you omit + the '\author' declaration then you get 'LaTeX Warning: No \author + given'. + +'\date{TEXT}' + Optional. Declare TEXT to be the document's date. The TEXT + doesn't need to be in a date format; it can be any text at all. If + you omit '\date' then LaTeX uses the current date (*note \today::). + To have no date, instead use '\date{}'. + +'\thanks{TEXT}' + Optional. Produce a footnote. You can use it in the author + information for acknowledgements as illustrated above, but you can + also use it in the title, or any place a footnote makes sense. It + can be any text at all so you can use it for any purpose, such as + to print an email address. + +'\title{TEXT}' + Required. Declare TEXT to be the title of the document. Get line + breaks inside TEXT with a double backslash, '\\'. If you omit the + '\title' declaration then you get 'LaTeX Error: No \title given'. + + To make your own title page, see *note titlepage::. You can either +create this as a one-off or you can include it as part of a renewed +'\maketitle' command. (Many publishers will provide a class to use in +place of 'article' that formats the title according to their house +requirements.) + + +File: latex2e.info, Node: \pagenumbering, Next: \pagestyle, Prev: \maketitle, Up: Page styles + +18.2 '\pagenumbering' +===================== + +Synopsis: + + \pagenumbering{NUMBER-STYLE} + + Specifies the style of page numbers, and resets the page number. The +numbering style is reflected on the page, and also in the table of +contents and other page references. This declaration has global scope +so its effect is not delimited by braces or environments. + + In this example, before the Main section the pages are numbered 'a', +etc. Starting on the page containing that section, the pages are +numbered '1', etc. + + \begin{document}\pagenumbering{alph} + ... + \section{Main}\pagenumbering{arabic} + ... + + The argument NUMBER-STYLE is one of the following (see also *note +\alph \Alph \arabic \roman \Roman \fnsymbol::). + +'arabic' + Arabic numerals: 1, 2, ... + +'roman' + lowercase Roman numerals: i, ii, ... + +'Roman' + uppercase Roman numerals: I, II, ... + +'alph' + lowercase letters: a, b, ... If you have more than 26 pages then + you get 'LaTeX Error: Counter too large'. + +'Alph' + uppercase letters: A, B, ... If you have more than 26 pages then + you get 'LaTeX Error: Counter too large'. + +'gobble' + LaTeX does not output a page number, although it does get reset. + References to that page also are blank. (This does not work with + the popular package 'hyperref' so to have the page number not + appear you may want to instead use '\pagestyle{empty}' or + '\thispagestyle{empty}'.) + + Traditionally, if a document has front matter--preface, table of +contents, etc.--then it is numbered with lowercase Roman numerals. The +main matter of a document uses arabic. *Note \frontmatter & \mainmatter +& \backmatter::. + + If you want to change where the page number appears on the page, +see *note \pagestyle::. If you want to change the value of the page +number, then you manipulate the 'page' counter (*note Counters::). + + +File: latex2e.info, Node: \pagestyle, Next: \thispagestyle, Prev: \pagenumbering, Up: Page styles + +18.3 '\pagestyle' +================= + +Synopsis: + + \pagestyle{STYLE} + + Declaration that specifies how the page headers and footers are +typeset, from the current page onwards. + + A discussion with an example is below. Note first that the package +'fancyhdr' is now the standard way to manipulate headers and footers. +New documents that need to do anything other than one of the standard +options below should use this package. See its documentation on CTAN. + + Values for STYLE: + +'plain' + The header is empty. The footer contains only a page number, + centered. + +'empty' + The header and footer are both empty. + +'headings' + Put running headers and footers on each page. The document style + specifies what goes in there; see the discussion below. + +'myheadings' + Custom headers, specified via the '\markboth' or the '\markright' + commands. + + Some discussion of the motivation for LaTeX's mechanism will help you +work with the options 'headings' or 'myheadings'. The document source +below produces an article, two-sided, with the pagestyle 'headings'. On +this document's left hand pages, LaTeX wants (in addition to the page +number) the title of the current section. On its right hand pages LaTeX +wants the title of the current subsection. When it makes up a page, +LaTeX gets this information from the commands '\leftmark' and +'\rightmark'. So it is up to '\section' and '\subsection' to store that +information there. + + \documentclass[twoside]{article} + \pagestyle{headings} + \begin{document} + ... \section{Section 1} ... \subsection{Subsection 1.1} ... + \section{Section 2} + ... + \subsection{Subsection 2.1} + ... + \subsection{Subsection 2.2} + ... + +Suppose that the second section falls on a left page. Although when the +page starts it is in the first section, LaTeX will put 'Section 2' in +the left page header. As to the right header, if no subsection starts +before the end of the right page then LaTeX blanks the right hand +header. If a subsection does appear before the right page finishes then +there are two cases. If at least one subsection starts on the right +hand page then LaTeX will put in the right header the title of the first +subsection starting on that right page. If at least one of 2.1, 2.2, +..., starts on the left page but none starts on the right then LaTeX +puts in the right hand header the title of the last subsection to start, +that is, the one in effect during the right hand page. + + To accomplish this, in a two-sided article, LaTeX has '\section' +issue a command '\markboth', setting '\leftmark' to 'Section 2' and +setting '\rightmark' to blank. And, LaTeX has '\subsection' issue a +command '\markright', setting '\rightmark' to 'Subsection 2.1', etc. + + Here are the descriptions of '\markboth' and '\markright': + +'\markboth{LEFT-HEAD}{RIGHT-HEAD}' + Sets both the right hand and left hand heading information for + either a page style of 'headings' or 'myheadings'. A left hand + page heading LEFT-HEAD is generated by the last '\markboth' command + before the end of the page. A right hand page heading RIGHT-HEAD + is generated by the first '\markboth' or '\markright' that comes on + the page if there is one, otherwise by the last one that came + before that page. + +'\markright{RIGHT}' + Sets the right hand page heading, leaving the left unchanged. + + +File: latex2e.info, Node: \thispagestyle, Prev: \pagestyle, Up: Page styles + +18.4 '\thispagestyle' +===================== + +Synopsis: + + \thispagestyle{STYLE} + + Works in the same way as the '\pagestyle' (*note \pagestyle::), +except that it changes to STYLE for the current page only. This +declaration has global scope, so its effect is not delimited by braces +or environments. + + Often the first page of a chapter or section has a different style. +For example, this LaTeX book document has the first page of the first +chapter in 'plain' style, as is the default (*note Page styles::). + + \documentclass{book} + \pagestyle{headings} + \begin{document} + \chapter{First chapter} + ... + \chapter{Second chapter}\thispagestyle{empty} + ... + +The 'plain' style has a page number on it, centered in the footer. To +make the page entirely empty, the command '\thispagestyle{empty}' +immediately follows the second '\chapter'. + + +File: latex2e.info, Node: Spaces, Next: Boxes, Prev: Page styles, Up: Top + +19 Spaces +********* + +LaTeX has many ways to produce white space, or filled space. Some of +these are best suited to mathematical text; for these see *note Spacing +in math mode::. + +* Menu: + +Horizontal space +* \enspace & \quad & \qquad:: Traditional horizontal spaces. +* \hspace:: Any horizontal space. +* \hfill:: Stretchable horizontal space. +* \hss:: Infinitely stretchable/shrinkable horizontal space. +* \spacefactor:: Stretchability of following space +* \(SPACE):: Backslash-space, and explicit space. +* ~:: Tie, an unbreakable space. +* \thinspace & \negthinspace:: One-sixth of an em, and negative one-sixth. +* \/:: Italic correction. +* \hrulefill & \dotfill:: Stretchable horizontal rule or dots. + +Vertical space +* \bigskip & \medskip & \smallskip:: Inter-paragraph vertical spaces. +* \bigbreak & \medbreak & \smallbreak:: Inter-paragraph space and page breaks. +* \strut:: Ensure height of a line. +* \vspace:: Vertical space. +* \vfill:: Stretchable vertical space. +* \addvspace:: Add arbitrary vertical space if needed. + + +File: latex2e.info, Node: \enspace & \quad & \qquad, Next: \hspace, Up: Spaces + +19.1 '\enspace' & '\quad' & '\qquad' +==================================== + +Synopsis, one of: + + \enspace + \quad + \qquad + + Insert a horizontal space of 1/2em, 1em, or 2em. The em is a length +defined by a font designer, often thought of as being the width of a +capital M. One advantage of describing space in ems is that it can be +more portable across documents than an absolute measurement such as +points (*note Lengths/em::). + + This puts a suitable gap between two graphics. + + \begin{center} + \includegraphics{womensmile.png}% + \qquad\includegraphics{mensmile.png} + \end{center} + +*Note Spacing in math mode::, for '\quad' and '\qquad'. These are +lengths from centuries of typesetting and so may be a better choice in +many circumstances than arbitrary lengths, such as you get with +'\hspace'. + + +File: latex2e.info, Node: \hspace, Next: \hfill, Prev: \enspace & \quad & \qquad, Up: Spaces + +19.2 '\hspace' +============== + +Synopsis, one of: + + \hspace{LENGTH} + \hspace*{LENGTH} + + Insert the amount LENGTH of horizontal space. The LENGTH can be +positive, negative, or zero; adding a negative amount of space is like +backspacing. It is a rubber length, that is, it may contain a 'plus' or +'minus' component, or both (*note Lengths::). Because the space is +stretchable and shrinkable, it is sometimes called "glue". + + This makes a line with 'Name:' an inch from the right margin. + + \noindent\makebox[\linewidth][r]{Name:\hspace{1in}} + + The '*'-form inserts horizontal space that is non-discardable. More +precisely, when TeX breaks a paragraph into lines any white space--glues +and kerns--that come at a line break are discarded. The '*'-form avoids +that (technically, it adds a non-discardable invisible item in front of +the space). + + In this example + + \parbox{0.8\linewidth}{% + Fill in each blank: Four \hspace*{1in} and seven years ago our + fathers brought forth on this continent, a new \hspace*{1in}, + conceived in \hspace*{1in}, and dedicated to the proposition + that all men are created \hspace*{1in}.} + +the 1 inch blank following 'conceived in' falls at the start of a line. +If you erase the '*' then LaTeX discards the blank. + + Here, the '\hspace' separates the three graphics. + + \begin{center} + \includegraphics{lion.png}% comment keeps out extra space + \hspace{1cm minus 0.25cm}\includegraphics{tiger.png}% + \hspace{1cm minus 0.25cm}\includegraphics{bear.png} + \end{center} + +Because the argument to each '\hspace' has 'minus 0.25cm', each can +shrink a little if the three figures are too wide. But each space won't +shrink more than 0.25cm (*note Lengths::). + + +File: latex2e.info, Node: \hfill, Next: \hss, Prev: \hspace, Up: Spaces + +19.3 '\hfill' +============= + +Synopsis: + + \hfill + + Produce a rubber length which has no natural space but that can +stretch horizontally as far as needed (*note Lengths::). + + This creates a one-line paragraph with 'Name:' on the left side of +the page and 'Quiz One' on the right. + + \noindent Name:\hfill Quiz One + + The '\hfill' command is equivalent to '\hspace{\fill}' and so the +space can be discarded at line breaks. To avoid that instead use +'\hspace*{\fill}' (*note \hspace::). + + Here the graphs are evenly spaced in the middle of the figure. + + \newcommand*{\vcenteredhbox}[1]{\begin{tabular}{@{}c@{}}#1\end{tabular}} + ... + \begin{figure} + \hspace*{\fill}% + \vcenteredhbox{\includegraphics{graph0.png}}% + \hfill\vcenteredhbox{\includegraphics{graph1.png}}% + \hspace*{\fill}% + \caption{Comparison of two graphs} \label{fig:twographs} + \end{figure} + +Note the '\hspace*''s where the space could otherwise be dropped. + + +File: latex2e.info, Node: \hss, Next: \spacefactor, Prev: \hfill, Up: Spaces + +19.4 '\hss' +=========== + +Synopsis: + + \hss + + Produce a horizontal space that is infinitely shrinkable as well as +infinitely stretchable (this command is a TeX primitive). LaTeX authors +should reach first for the '\makebox' command to get the effects of +'\hss' (*note \mbox & \makebox::). + + Here, the first line's '\hss' makes the Z stick out to the right, +overwriting the Y. In the second line the Z sticks out to the left, +overwriting the X. + + X\hbox to 0pt{Z\hss}Y + X\hbox to 0pt{\hss Z}Y + +Without the '\hss' you get something like 'Overfull \hbox (6.11111pt too +wide) detected at line 20'. + + +File: latex2e.info, Node: \spacefactor, Next: \(SPACE), Prev: \hss, Up: Spaces + +19.5 '\spacefactor' +=================== + +Synopsis: + + \spacefactor=INTEGER + + Influence LaTeX's glue stretch and shrink behavior. Most user-level +documents do not use this command. + + While LaTeX is laying out the material, it may stretch or shrink the +gaps between words. (This space is not a character; it is called the +"interword glue"; *note \hspace::). The '\spacefactor' command (from +Plain TeX) allows you to, for instance, have the space after a period +stretch more than the space after a word-ending letter. + + After LaTeX places each character, or rule or other box, it sets a +parameter called the "space factor". If the next thing in the input is +a space then this parameter affects how much stretching or shrinking can +happen. A space factor that is larger than the normal value means that +the glue can stretch more and shrink less. Normally, the space factor +is 1000. This value is in effect following most characters, and any +non-character box or math formula. But it is 3000 after a period, +exclamation mark, or question mark, it is 2000 after a colon, 1500 after +a semicolon, 1250 after a comma, and 0 after a right parenthesis or +bracket, or closing double quote or single quote. Finally, it is 999 +after a capital letter. + + If the space factor F is 1000 then the glue gap will be the font's +normal space value (for Computer Modern Roman 10 point this is +3.3333 points). Otherwise, if the space factor F is greater than 2000 +then TeX adds the font's extra space value (for Computer Modern Roman 10 +point this is 1.11111 points), and then the font's normal stretch value +is multiplied by f /1000 and the normal shrink value is multiplied by +1000/f (for Computer Modern Roman 10 point these are 1.66666 and +1.11111 points). + + For example, consider the period ending 'A man's best friend is his +dog.' After it, TeX puts in a fixed extra space, and also allows the +glue to stretch 3 times as much and shrink 1/3 as much, as the glue +after 'friend', which does not end in a period. + + The rules for space factors are even more complex because they play +additional roles. In practice, there are two consequences. First, if a +period or other punctuation is followed by a right parenthesis or +bracket, or right single or double quote then the spacing effect of that +period carries through those characters (that is, the following glue +will have increased stretch and shrink). Second, if punctuation comes +after a capital letter then its effect is not in place so you get an +ordinary space. This second case also affects abbreviations that do not +end in a capital letter (*note \@::). + + You can only use '\spacefactor' in paragraph mode or LR mode (*note +Modes::). You can see the current value with '\the\spacefactor' or +'\showthe\spacefactor'. + + (Comment, not really related to '\spacefactor': if you get errors +like 'You can't use `\spacefactor' in vertical mode', or 'You can't use +`\spacefactor' in math mode.', or 'Improper \spacefactor' then you have +probably tried to redefine an internal command. *Note \makeatletter & +\makeatother::.) + +* Menu: + +* \@:: Distinguish sentence-ending periods from abbreviations. +* \frenchspacing & \nonfrenchspacing:: Equal interword and inter-sentence space. +* \normalsfcodes:: Restore space factor settings to the default. + + +File: latex2e.info, Node: \@, Next: \frenchspacing & \nonfrenchspacing, Up: \spacefactor + +19.5.1 '\@' +----------- + +Synopsis: + + CAPITAL-LETTER\@. + + Treat a period as sentence-ending, where LaTeX would otherwise think +it is part of an abbreviation. LaTeX thinks that a period ends an +abbreviation if the period comes after a capital letter, and otherwise +thinks the period ends the sentence. By default, in justifying a line +LaTeX adjusts the space after a sentence-ending period (or a question +mark, exclamation point, comma, or colon) more than it adjusts the space +between words (*note \spacefactor::). + + This example shows the two cases to remember. + + The songs \textit{Red Guitar}, etc.\ are by Loudon Wainwright~III\@. + +The second period ends the sentence, despite that it is preceded by a +capital. We tell LaTeX that it ends the sentence by putting '\@' before +it. The first period ends the abbreviation 'etc.' but not the sentence. +The backslash-space, '\ ', produces a mid-sentence space. + + So: if you have a capital letter followed by a period that ends the +sentence, then put '\@' before the period. This holds even if there is +an intervening right parenthesis or bracket, or right single or double +quote, because the spacing effect of that period carries through those +characters. For example, this + + Use the \textit{Instructional Practices Guide}, + (a book by the MAA)\@. + +will have correct inter-sentence spacing after the period. + + The '\@' command is only for a text mode. If you use it outside of a +text mode then you get 'You can't use `\spacefactor' in vertical mode' +(*note Modes::). + + Comment: the converse case is a period ending an abbreviation whose +last letter is not a capital letter, and that abbreviation is not the +last word in the sentence. For that case follow the period with a +backslash-space, ('\ '), or a tie, ('~'), or '\@'. Examples are 'Nat.\ +Acad.\ Science', and 'Mr.~Bean', and '(manure, etc.\@) for sale' (note +in the last one that the '\@' comes before the closing parenthesis). + + +File: latex2e.info, Node: \frenchspacing & \nonfrenchspacing, Next: \normalsfcodes, Prev: \@, Up: \spacefactor + +19.5.2 '\frenchspacing' & '\nonfrenchspacing' +--------------------------------------------- + +Synopsis, one of: + + \frenchspacing + \nonfrenchspacing + + The first declaration causes LaTeX to handle spacing between +sentences in the same way as spacing between words in the middle of a +sentence. The second switches back to the default handling in which +spacing between sentences stretches or shrinks more (*note +\spacefactor::). + + Some typographic traditions, including English, prefer to adjust the +space between sentences (or spaces following a question mark, +exclamation point, comma, or colon) more than the space between words +that are in the middle of a sentence. Declaring '\frenchspacing' (the +command is from plain TeX) switches to the tradition that all spaces are +treated equally. + + +File: latex2e.info, Node: \normalsfcodes, Prev: \frenchspacing & \nonfrenchspacing, Up: \spacefactor + +19.5.3 '\normalsfcodes' +----------------------- + +Synopsis: + + \normalsfcodes + + Reset the LaTeX space factors to the default values (*note +\spacefactor::). + + +File: latex2e.info, Node: \(SPACE), Next: ~, Prev: \spacefactor, Up: Spaces + +19.6 Backslash-space, '\ ' +========================== + +This section refers to the command consisting of two characters, a +backslash followed by a space. +Synopsis: + + \ + + Produce a space. By default it produces white space of length +3.33333pt plus 1.66666pt minus 1.11111pt. + + When you type one or more blanks between words, LaTeX produces white +space. But that is different than an explicit space. This illustrates. + + \begin{tabular}{rl} + One blank:& makes some space \\ + Three blanks:& in a row \\ + Three spaces:&\ \ \ in a row \\ + \end{tabular} + +On the first line LaTeX puts some space after the colon. On the second +line LaTeX collapses the three blanks to output one whitespace, so you +end with the same space after the colon as in the first line. LaTeX +would similarly collapse them to a single whitespace if one, two or all +of the three blanks were replaced by a tab, or by a newline. However, +the bottom line asks for three spaces so the white area is wider. That +is, the backslash-space command creates a fixed amount of horizontal +space. (Note that you can define a horizontal space of any width at all +with '\hspace'; see *note \hspace::.) + + The backslash-space command has two main uses. It is often used +after control sequences to keep them from gobbling the blank that +follows, as after '\TeX' in '\TeX\ (or \LaTeX)'. (But using curly +braces has the advantage of still working whether the next character is +a blank or any other non-letter, as in '\TeX{} (or \LaTeX{})' in which +'{}' can be added after '\LaTeX' as well as after '\TeX'.) The other +common use is that it marks a period as ending an abbreviation instead +of ending a sentence, as in 'Prof.\ Smith' or 'Jones et al.\ (1993)' +(*note \@::). + + Under normal circumstances, '\'<TAB> and '\'<NEWLINE> are equivalent +to backslash-space, '\ '. + + Please also note that in order to allow source code indentation, +under normal circumstances, TeX ignores leading blanks in a line. So +the following prints 'one word': + + one + word + +where the white space between 'one' and 'word' is produced by the +newline after 'one', not by the space before 'word'. + + +File: latex2e.info, Node: ~, Next: \thinspace & \negthinspace, Prev: \(SPACE), Up: Spaces + +19.7 '~' +======== + +Synopsis: + + BEFORE~AFTER + + The "tie" character, '~', produces a space between BEFORE and AFTER +at which the line will not be broken. By default the white space has +length 3.33333pt plus 1.66666pt minus 1.11111pt (*note Lengths::). + + Note that the word 'tie' has this meaning in the TeX/Texinfo +community; this differs from the typographic term "tie", which is a +diacritic in the shape of an arc, called a "tie-after" accent in 'The +TeXbook'. + + Here LaTeX will not break the line between the final two words: + + Thanks to Prof.~Lerman. + +In addition, despite the period, LaTeX does not use the end-of-sentence +spacing (*note \@::). + + Ties prevent the end of line separation of things where that could +cause confusion. They also still allow hyphenation (of either of the +tied words), so they are generally preferable to putting consecutive +words in an '\mbox' (*note \mbox & \makebox::). + + They are also matters of taste, sometimes alarmingly dogmatic taste, +among readers. Nevertheless, here are some usage models, many of them +from 'The TeXbook'. + + * Between an enumerator label and number, such as in references: + 'Chapter~12', or 'Theorem~\ref{th:Wilsons}', or + 'Figure~\ref{fig:KGraph}'. + + * When cases are enumerated inline: '(b)~Show that $f(x)$ is + (1)~continuous, and (2)~bounded'. + + * Between a number and its unit: '$745.7.8$~watts' (the 'siunitx' + package has a special facility for this) or '144~eggs'. This + includes between a month and day number in a date: 'October~12' or + '12~Oct'. In general, in any expressions where numbers and + abbreviations or symbols are separated by a space: 'AD~565', or + '2:50~pm', or 'Boeing~747', or '268~Plains Road', or + '\$$1.4$~billion'. Other common choices here are a thin space + (*note \thinspace & \negthinspace::) and no space at all. + + * When mathematical phrases are rendered in words: 'equals~$n$', or + 'less than~$\epsilon$', or 'given~$X$', or 'modulo~$p^e$ for all + large~$n$' (but compare 'is~$15$' with 'is $15$~times the height'). + Between mathematical symbols in apposition with nouns: + 'dimension~$d$' or 'function~$f(x)$' (but compare 'with length + $l$~or more'). When a symbol is a tightly bound object of a + preposition: 'of~$x$', or 'from $0$ to~$1$', or 'in common + with~$m$'. + + * Between symbols in series: '$1$,~$2$, or~$3$' or '$1$,~$2$, + \ldots,~$n$'. + + * Between a person's given names and between multiple surnames: + 'Donald~E. Knuth', or 'Luis~I. Trabb~Pardo', or 'Charles~XII'--but + you must give TeX places to break the line so you might do 'Charles + Louis Xavier~Joseph de~la Vall\'ee~Poussin'. + + +File: latex2e.info, Node: \thinspace & \negthinspace, Next: \/, Prev: ~, Up: Spaces + +19.8 '\thinspace' & '\negthinspace' +=================================== + +Synopsis, one of: + + \thinspace + \negthinspace + + These produce unbreakable and unstretchable spaces of 1/6em and +-1/6em, respectively. These are the text mode equivalents of '\,' and +'\!' (*note Spacing in math mode/\thinspace::). + + You can use '\,' as a synonym for '\thinspace' in text mode. + + One common use of '\thinspace' is as the space between nested quotes: + + Killick replied, ``I heard the Captain say, `Ahoy there.'\thinspace'' + +Another use is that some style guides call for a '\thinspace' between an +ellipsis and a sentence ending period (other style guides, think the +three dots and/or four dots are plenty). Another style-specific use is +between initials, as in 'D.\thinspace E.\ Knuth'. + + LaTeX provides a variety of similar spacing commands for math mode +(*note Spacing in math mode::). With the 'amsmath' package, or as of +the 2020-10-01 LaTeX release, they can be used in text mode as well as +math mode, including '\!' for '\negthinspace'; but otherwise, they are +available only in math mode. + + +File: latex2e.info, Node: \/, Next: \hrulefill & \dotfill, Prev: \thinspace & \negthinspace, Up: Spaces + +19.9 '\/' +========= + +Synopsis: + + BEFORE-CHARACTER\/AFTER-CHARACTER + + Insert an "italic correction", a small space defined by the font +designer for each character (possibly zero), to avoid the character +colliding with whatever follows. When you use '\/', LaTeX takes the +correction from the font metric file, scales it by any scaling that has +been applied to the font, and then inserts that much horizontal space. + + Here, were it not for the '\/', the BEFORE-CHARACTER italic f would +hit the AFTER-CHARACTER roman H + + \newcommand{\companylogo}{{\it f}\/H} + +because the italic letter f leans far to the right. + + If AFTER-CHARACTER is a period or comma then don't insert an italic +correction since those punctuation symbols are so low to the baseline +already. However, with semicolons or colons, as well as with normal +letters, the italic correction can help. It is typically used between a +switch from italic or slanted fonts to an upright font. + + When you use commands such as '\emph' and '\textit' and '\textsl' to +change fonts, LaTeX automatically inserts the italic correction when +needed (*note Font styles::). However, declarations such as '\em' and +'\itshape' and '\slshape' do not automatically insert italic +corrections. + + Upright characters can also have an italic correction. An example +where this is needed is the name 'pdf\/\TeX'. However, most upright +characters have a zero italic correction. Some font creators do not +include italic correction values even for italic fonts. + + Technically, LaTeX uses another font-specific value, the so-called +"slant parameter" (namely '\fontdimen1'), to determine whether to +possibly insert an italic correction, rather than tying the action to +particular font commands. + + There is no concept of italic correction in math mode; math spacing +is done in a different way. + + +File: latex2e.info, Node: \hrulefill & \dotfill, Next: \bigskip & \medskip & \smallskip, Prev: \/, Up: Spaces + +19.10 '\hrulefill' & '\dotfill' +=============================== + +Synopsis, one of: + + \hrulefill + \dotfill + + Produce an infinite horizontal rubber length (*note Lengths::) that +LaTeX fills with a rule (that is, a line) or with dots, instead of white +space. + + This outputs a line 2 inches long. + + Name:~\makebox[2in]{\hrulefill} + +This example, when placed between blank lines, creates a paragraph that +is left and right justified and where the middle is filled with evenly +spaced dots. + + \noindent John Aubrey, RN \dotfill{} Melbury Lodge + + To make the rule or dots go to the line's end use '\null' at the +start or end. + + To change the rule's thickness, copy the definition and adjust it, as +here + + \renewcommand{\hrulefill}{% + \leavevmode\leaders\hrule height 1pt\hfill\kern0pt } + +which changes the default thickness of 0.4pt to 1pt. Similarly, adjust +the dot spacing as with + + \renewcommand{\dotfill}{% + \leavevmode\cleaders\hbox to 1.00em{\hss .\hss }\hfill\kern0pt } + +which changes the default length of 0.33em to 1.00em. + + This example produces a line for a signature. + + \begin{minipage}{4cm} + \centering + \hrulefill\\ + Signed + \end{minipage} + +The line is 4cm long. + + +File: latex2e.info, Node: \bigskip & \medskip & \smallskip, Next: \bigbreak & \medbreak & \smallbreak, Prev: \hrulefill & \dotfill, Up: Spaces + +19.11 '\bigskip' & '\medskip' & '\smallskip' +============================================ + +Synopsis, one of: + + \bigskip + \medskip + \smallskip + + Produce an amount of vertical space, large or medium-sized or small. +These commands are fragile (*note \protect::). + + Here the skip suggests the passage of time (from The Golden Ocean by +O'Brian). + + Mr Saumarez would have something rude to say to him, no doubt: he + was at home again, and it was delightful. + + \bigskip + ``A hundred and fifty-seven miles and one third, in twenty-four hours,'' + said Peter. + + Each command is associated with a length defined in the document +class file. + +'\bigskip' + The same as '\vspace{\bigskipamount}', ordinarily about one line + space, with stretch and shrink. The default for the 'book' and + 'article' classes is '12pt plus 4pt minus 4pt'. + +'\medskip' + The same as '\vspace{\medskipamount}', ordinarily about half of a + line space, with stretch and shrink. The default for the 'book' + and 'article' classes is '6pt plus 2pt minus 2pt'. + +'\smallskip' + The same as '\vspace{\smallskipamount}', ordinarily about a quarter + of a line space, with stretch and shrink. The default for the + 'book' and 'article' classes is '3pt plus 1pt minus 1pt'. + + Because each command is a '\vspace', if you use it in mid-paragraph +then it will insert its vertical space between the line in which you use +it and the next line, not necessarily at the place that you use it. So +these are best between paragraphs. + + The commands '\bigbreak', '\medbreak', and '\smallbreak' are similar +but also suggest to LaTeX that this is a good place to put a page break +(*note \bigbreak & \medbreak & \smallbreak::. + + +File: latex2e.info, Node: \bigbreak & \medbreak & \smallbreak, Next: \strut, Prev: \bigskip & \medskip & \smallskip, Up: Spaces + +19.12 '\bigbreak' & '\medbreak' & '\smallbreak' +=============================================== + +Synopsis, one of: + + \bigbreak + \medbreak + \smallbreak + + Produce a vertical space that is big or medium-sized or small, and +suggest to LaTeX that this is a good place to break the page. (The +associated penalties are -200, -100, and -50.) + + *Note \bigskip & \medskip & \smallskip::, for more. These commands +produce the same vertical space but differ in that they also remove a +preceding vertical space if it is less than what they would insert (as +with '\addvspace'). In addition, they terminate a paragraph where they +are used: this example + + abc\bigbreak def ghi + + jkl mno pqr + +will output three paragraphs, the first ending in 'abc' and the second +starting, after an extra vertical space and a paragraph indent, with +'def'. + + +File: latex2e.info, Node: \strut, Next: \vspace, Prev: \bigbreak & \medbreak & \smallbreak, Up: Spaces + +19.13 '\strut' +============== + +Synopsis: + + \strut + + Ensure that the current line has height at least '0.7\baselineskip' +and depth at least '0.3\baselineskip'. Essentially, LaTeX inserts into +the line a rectangle having zero width, +'\rule[-0.3\baselineskip]{0pt}{\baselineskip}' (*note \rule::). The +'\baselineskip' changes with the current font or fontsize. + + In this example the '\strut' keeps the box inside the frame from +having zero height. + + \setlength{\fboxsep}{0pt}\framebox[2in]{\strut} + + This example has four lists. In the first there is a much bigger gap +between items 2 and 3 than there is between items 1 and 2. The second +list fixes that with a '\strut' at the end of its first item's second +line. + + \setlength{\fboxsep}{0pt} + \noindent\begin{minipage}[t]{0.2\linewidth} + \begin{enumerate} + \item \parbox[t]{15pt}{test \\ test} + \item test + \item test + \end{enumerate} + \end{minipage}% + \begin{minipage}[t]{0.2\linewidth} + \begin{enumerate} + \item \parbox[t]{15pt}{test \\ test\strut} + \item test + \item test + \end{enumerate} + \end{minipage}% + \begin{minipage}[t]{0.2\linewidth} + \begin{enumerate} + \item \fbox{\parbox[t]{15pt}{test \\ test}} + \item \fbox{test} + \item \fbox{test} + \end{enumerate} + \end{minipage}% + \begin{minipage}[t]{0.2\linewidth} + \begin{enumerate} + \item \fbox{\parbox[t]{15pt}{test \\ test\strut}} + \item \fbox{test} + \item \fbox{test} + \end{enumerate} + \end{minipage}% + +The final two lists use '\fbox' to show what's happening. The first +item '\parbox' of the third list goes only to the bottom of its second +'test', which happens not have any characters that descend below the +baseline. The fourth list adds the strut that gives the needed extra +below-baseline space. + + The '\strut' command is often useful in graphics, such as in 'TikZ' +or 'Asymptote'. For instance, you may have a command such as +'\graphnode{NODE-NAME}' that fits a circle around NODE-NAME. However, +unless you are careful the NODE-NAME's 'x' and 'y' will produce +different-diameter circles because the characters are different sizes. +A careful '\graphnode' might insert a '\strut', then NODE-NAME, and then +draw the circle. + + The general approach of using a zero width '\rule' is useful in many +circumstances. In this table, the zero-width rule keeps the top of the +first integral from hitting the '\hline'. Similarly, the second rule +keeps the second integral from hitting the first. + + \begin{tabular}{rl} + \textsc{Integral} &\textsc{Value} \\ + \hline + $\int_0^x t\, dt$ &$x^2/2$ \rule{0em}{2.5ex} \\ + $\int_0^x t^2\, dt$ &$x^3/3$ \rule{0em}{2.5ex} + \end{tabular} + +(Although the line-ending double backslash command has an available +optional argument to change the corresponding baseline skip, that won't +solve this issue. Changing the first double backslash to something like +'\\[2.5ex]' will put more room between the header line and the '\hline' +rule, and the integral would still hit the rule.) + + +File: latex2e.info, Node: \vspace, Next: \vfill, Prev: \strut, Up: Spaces + +19.14 '\vspace' +=============== + +Synopsis, one of: + + \vspace{LENGTH} + \vspace*{LENGTH} + + Add the vertical space LENGTH. The LENGTH can be positive, negative, +or zero. It is a rubber length--it may contain a 'plus' or 'minus' +component (*note Lengths::). + + This puts space between the two paragraphs. + + And I slept. + + \vspace{1ex plus 0.5ex} + The new day dawned cold. + +(*Note \bigskip & \medskip & \smallskip::, for common inter-paragraph +spaces.) + + The '*'-form inserts vertical space that is non-discardable. More +precisely, LaTeX discards vertical space at a page break and the +'*'-form causes the space to stay. This example leaves space between +the two questions. + + Question: Find the integral of \( 5x^4+5 \). + + \vspace*{2cm plus 0.5cm} + Question: Find the derivative of \( x^5+5x+9 \). + +That space will be present even if the page break happens to fall +between the questions. + + If you use '\vspace' in the middle of a paragraph (i.e., in +horizontal mode) then the space is inserted after the line containing +the '\vspace' command; it does not start a new paragraph at the +'\vspace' command. + + In this example the two questions will be evenly spaced vertically on +the page, with at least one inch of space below each. + + \begin{document} + 1) Who put the bomp in the bomp bah bomp bah bomp? + \vspace{1in plus 1fill} + + 2) Who put the ram in the rama lama ding dong? + \vspace{1in plus 1fill} + \end{document} + + +File: latex2e.info, Node: \vfill, Next: \addvspace, Prev: \vspace, Up: Spaces + +19.15 '\vfill' +============== + +Synopsis: + + \vfill + + End the current paragraph and insert a vertical rubber length that is +infinite, so it can stretch or shrink as far as needed (*note +Lengths::). + + It is often used in the same way as '\vspace{\fill}', except that +'\vfill' ends the current paragraph whereas '\vspace{\fill}' adds the +infinite vertical space below its line, irrespective of the paragraph +structure. In both cases that space will disappear at a page boundary; +to circumvent this see the starred option in *note \vspace::. + + In this example the page is filled, so the top and bottom lines +contain the text 'Lost Dog!' and the second 'Lost Dog!' is exactly +halfway between them. + + \begin{document} + Lost Dog! + \vfill + Lost Dog! % perfectly in the middle + \vfill + Lost Dog! + \end{document} + + +File: latex2e.info, Node: \addvspace, Prev: \vfill, Up: Spaces + +19.16 '\addvspace' +================== + +Synopsis: + + \addvspace{VERT-LENGTH} + + Add a vertical space of VERT-LENGTH. However, if there are two or +more '\addvspace''s in a sequence then together they only add the space +needed to make the natural length equal to the maximum of the +VERT-LENGTH's in that sequence. This command is fragile (*note +\protect::). The VERT-LENGTH is a rubber length (*note Lengths::). + + This example illustrates. The 'picture' draws a scale over which to +rules are placed. In a standard LaTeX article the length +'\baselineskip' is 12pt. As shown by the scale, the two rules are 22pt +apart: the sum of the '\baselineskip' and the 10pt from the first +'\addvspace'. + + \documentclass{article} + \usepackage{color} + \begin{document} + \setlength{\unitlength}{2pt}% + \noindent\begin{picture}(0,0)% + \multiput(0,0)(0,-1){25}{{\color{blue}\line(1,0){1}}} + \multiput(0,0)(0,-5){6}{{\color{red}\line(1,0){2}}} + \end{picture}% + \rule{0.25\linewidth}{0.1pt}% + \par\addvspace{10pt}% \addvspace{20pt}% + \par\noindent\rule{0.25\linewidth}{0.1pt}% + \end{document} + +Now uncomment the second '\addvspace'. It does not make the gap 20pt +longer; instead the gap is the sum of '\baselineskip' and 20pt. So +'\addvspace' in a sense does the opposite of its name--it makes sure +that multiple vertical spaces do not accumulate, but instead that only +the largest one is used. + + LaTeX uses this command to adjust the vertical space above or below +an environment that starts a new paragraph. For instance, a 'theorem' +environment begins and ends with '\addvspace' so that two consecutive +'theorem''s are separated by one vertical space, not two. + + A error 'Something's wrong--perhaps a missing \item' pointing to an +'\addvspace' means that you were not in vertical mode when you hit this +command. One way to change that is to precede '\addvspace' with a +'\par' command (*note \par::), as in the above example. + + +File: latex2e.info, Node: Boxes, Next: Color, Prev: Spaces, Up: Top + +20 Boxes +******** + +At its core, LaTeX puts things in boxes and then puts the boxes on a +page. So these commands are central. + + There are many packages on CTAN that are useful for manipulating +boxes. One useful adjunct to the commands here is 'adjustbox'. + +* Menu: + +* \mbox & \makebox:: Horizontal boxes. +* \fbox & \framebox:: Put a frame around a box. +* \parbox:: Box with text in paragraph mode. +* \raisebox:: Raise or lower text. +* \sbox & \savebox:: Like '\makebox' but save the text for later. +* lrbox:: Environment version of '\sbox'. +* \usebox:: Print saved text. + + +File: latex2e.info, Node: \mbox & \makebox, Next: \fbox & \framebox, Up: Boxes + +20.1 '\mbox' & '\makebox' +========================= + +Synopsis, one of: + + \mbox{TEXT} + \makebox{TEXT} + \makebox[WIDTH]{TEXT} + \makebox[WIDTH][POSITION]{TEXT} + + Create a box, a container for material. The TEXT is typeset in LR +mode (*note Modes::) so it is not broken into lines. The '\mbox' +command is robust, while '\makebox' is fragile (*note \protect::). + + Because 'text' is not broken into lines, you can use '\mbox' to +prevent hyphenation. In this example, LaTeX will not hyphenate the tank +name, 'T-34'. + + The soviet tank \mbox{T-34} is a symbol of victory against nazism. + + The first two command synopsis versions, '\mbox' and '\makebox', are +roughly equivalent. They create a box just wide enough to contain the +TEXT. (They are like plain TeX's '\hbox'.) + + In the third version the optional argument WIDTH specifies the width +of the box. Note that the space occupied by the text need not equal the +width of the box. For one thing, TEXT can be too small; this creates a +full-line box + + \makebox[\linewidth]{Chapter Exam} + +with 'Chapter Exam' centered. But TEXT can also be too wide for WIDTH. +See the example below of zero-width boxes. + + In the WIDTH argument you can use the following lengths that refer to +the dimension of the box that LaTeX gets on typesetting TEXT: '\depth', +'\height', '\width', '\totalheight' (this is the box's height plus its +depth). For example, to make a box with the text stretched to double +the natural size you can say this. + + \makebox[2\width]{Get a stretcher} + + For the fourth command synopsis version the optional argument +POSITION gives position of the text within the box. It may take the +following values: + +'c' + The TEXT is centered (default). + +'l' + The TEXT is flush left. + +'r' + Flush right. + +'s' + Stretch the interword space in TEXT across the entire WIDTH. The + TEXT must contain stretchable space for this to work. For + instance, this could head a press release: + '\noindent\makebox[\textwidth][s]{\large\hfil IMMEDIATE\hfil + RELEASE\hfil}' + + A common use of '\makebox' is to make zero-width text boxes. This +puts the value of the quiz questions to the left of those questions. + + \newcommand{\pts}[1]{\makebox[0em][r]{#1 points\hspace*{1em}}} + \pts{10}What is the air-speed velocity of an unladen swallow? + + \pts{90}An African or European swallow? + + + The right edge of the output '10 points ' (note the ending space +after 'points') will be just before the 'What'. You can use '\makebox' +similarly when making graphics, such as in 'TikZ' or 'Asymptote', where +you put the edge of the text at a known location, regardless of the +length of that text. + + For boxes with frames see *note \fbox & \framebox::. For colors +see *note Colored boxes::. + + There is a related version of '\makebox' that is used within the +'picture' environment, where the length is given in terms of +'\unitlength' (*note \makebox (picture)::). + + As TEXT is typeset in LR mode, neither a double backslash '\\' nor +'\par' will give you a new line; for instance '\makebox{abc def \\ ghi}' +outputs 'abc defghi' while '\makebox{abc def \par ghi}' outputs 'abc def +ghi', both on a single line. To get multiple lines see *note \parbox:: +and *note minipage::. + + +File: latex2e.info, Node: \fbox & \framebox, Next: \parbox, Prev: \mbox & \makebox, Up: Boxes + +20.2 '\fbox' & '\framebox' +========================== + +Synopses, one of: + + \fbox{TEXT} + \framebox{TEXT} + \framebox[WIDTH]{TEXT} + \framebox[WIDTH][POSITION]{TEXT} + + Create a box with an enclosing frame, four rules surrounding the +TEXT. These commands are the same as '\mbox' and '\makebox' except for +the frame (*note \mbox & \makebox::). The '\fbox' command is robust, +the '\framebox' command is fragile (*note \protect::). + + \fbox{Warning! No work shown, no credit given.} + +LaTeX puts the text into a box, the text cannot be hyphenated. Around +that box, separated from it by a small gap, are four rules making a +frame. + + The first two command invocations, '\fbox{...}' and '\framebox{...}', +are roughly the same. As to the third and fourth invocations, the +optional arguments allow you to specify the box width as WIDTH and the +position of the text inside that box as POSITION. *Note \mbox & +\makebox::, for the full description but here is an example creating an +empty box that is 1/4in wide. + + \setlength{\fboxsep}{0pt}\framebox[0.25in]{\strut}} + +The '\strut' ensures a total height of '\baselineskip' (*note \strut::). + + These parameters determine the frame layout. + +'\fboxrule' + The thickness of the rules around the enclosed box. The default is + 0.2pt. Change it with a command such as + '\setlength{\fboxrule}{0.8pt}' (*note \setlength::). + +'\fboxsep' + The distance from the frame to the enclosed box. The default is + 3pt. Change it with a command such as '\setlength{\fboxsep}{0pt}' + (*note \setlength::). Setting it to 0pt is useful sometimes: this + will put a frame around the picture with no white border. + + {\setlength{\fboxsep}{0pt}% + \framebox{% + \includegraphics[width=0.5\textwidth]{prudence.jpg}}} + + The extra curly braces keep the effect of the '\setlength' local. + + As with '\mbox' and '\makebox', LaTeX will not break lines in TEXT. +But this example has LaTeX break lines to make a paragraph, and then +frame the result. + + \framebox{% + \begin{minipage}{0.6\linewidth} + My dear, here we must run as fast as we can, just to stay in place. + And if you wish to go anywhere you must run twice as fast as that. + \end{minipage}} + + *Note Colored boxes::, for colors other than black and white. + + The 'picture' environment has a version of the '\framebox' command +where the units depend on 'picture''s '\unitlength' (*note \framebox +(picture)::). + + +File: latex2e.info, Node: \parbox, Next: \raisebox, Prev: \fbox & \framebox, Up: Boxes + +20.3 '\parbox' +============== + +Synopses, one of: + + \parbox{WIDTH}{CONTENTS} + \parbox[POSITION]{WIDTH}{CONTENTS} + \parbox[POSITION][HEIGHT]{WIDTH}{CONTENTS} + \parbox[POSITION][HEIGHT][INNER-POS]{WIDTH}{CONTENTS} + + Produce a box of text that is WIDTH wide. Use this command to make a +box of small pieces of text, of a single paragraph. This command is +fragile (*note \protect::). + + \begin{picture}(0,0) + ... + \put(1,2){\parbox{1.75in}{\raggedright Because the graph is a line on + this semilog paper, the relationship is + exponential.}} + \end{picture} + + The CONTENTS are processed in a text mode (*note Modes::) so LaTeX +will break lines to make a paragraph. But it won't make multiple +paragraphs; for that, use a 'minipage' environment (*note minipage::). + + The options for '\parbox' (except for CONTENTS) are the same as those +for 'minipage'. For convenience a summary of the options is here but +see *note minipage:: for a complete description. + + There are two required arguments. The WIDTH is a rigid length (*note +Lengths::). It sets the width of the box into which LaTeX typesets +CONTENTS. The CONTENTS is the text that is placed in that box. It +should not have any paragraph-making components. + + There are three optional arguments, POSITION, HEIGHT, and INNER-POS. +The POSITION gives the vertical alignment of the "parbox" with respect +to the surrounding material. The supported values are 'c' or 'm' to +make the vertical center of the parbox lines up with the center of the +adjacent text line (this is the default), or 't' to match the top line +of the parbox with the baseline of the surrounding material, or 'b' to +match the bottom line. + + The optional argument HEIGHT overrides the natural height of the box. + + The optional argument INNER-POS controls the placement of CONTENT +inside the 'parbox'. Its default is the value of POSITION. Its +possible values are: 't' to put the CONTENT at the top of the box, 'c' +to put it in the vertical center, 'b' to put it at the bottom of the +box, and 's' to stretch it out vertically (for this, the text must +contain vertically stretchable space). + + +File: latex2e.info, Node: \raisebox, Next: \sbox & \savebox, Prev: \parbox, Up: Boxes + +20.4 '\raisebox' +================ + +Synopsis, one of: + + \raisebox{DISTANCE}{TEXT} + \raisebox{DISTANCE}[HEIGHT]{TEXT} + \raisebox{DISTANCE}[HEIGHT][DEPTH]{TEXT} + + Raise or lower TEXT. This command is fragile (*note \protect::). + + This example makes a command for denoting the restriction of a +function by lowering the vertical bar symbol. + + \newcommand*\restricted[1]{\raisebox{-.5ex}{$|$}_{#1}} + $f\restricted{A}$ + + The first mandatory argument DISTANCE specifies how far to raise the +second mandatory argument TEXT. This is a rigid length (*note +Lengths::). If it is negative then it lowers TEXT. The TEXT is +processed in LR mode so it cannot contain line breaks (*note Modes::). + + The optional arguments HEIGHT and DEPTH are dimensions. If they are +specified, they override the natural height and depth of the box LaTeX +gets by typesetting TEXT. + + In the arguments DISTANCE, HEIGHT, and DEPTH you can use the +following lengths that refer to the dimension of the box that LaTeX gets +on typesetting TEXT: '\depth', '\height', '\width', '\totalheight' (this +is the box's height plus its depth). + + This will align two graphics on their top (*note Graphics::). + + \usepackage{graphicx,calc} % in preamble + ... + \begin{center} + \raisebox{1ex-\height}{% + \includegraphics[width=0.4\linewidth]{lion.png}} + \qquad + \raisebox{1ex-\height}{% + \includegraphics[width=0.4\linewidth]{meta.png}} + \end{center} + +The first '\height' is the height of 'lion.png' while the second is the +height of 'meta.png'. + + +File: latex2e.info, Node: \sbox & \savebox, Next: lrbox, Prev: \raisebox, Up: Boxes + +20.5 '\sbox' & '\savebox' +========================= + +Synopsis, one of: + + \sbox{BOX-CMD}{TEXT} + \savebox{BOX-CMD}{TEXT} + \savebox{BOX-CMD}[WIDTH]{TEXT} + \savebox{BOX-CMD}[WIDTH][POS]{TEXT} + + Typeset TEXT just as with '\makebox' (*note \mbox & \makebox::) +except that LaTeX does not output it but instead saves it in a box +register referred to by a variable named BOX-CMD. The variable name +BOX-CMD begins with a backslash, '\'. You must have previously +allocated the box register BOX-CMD with '\newsavebox' (*note +\newsavebox::). The '\sbox' command is robust while '\savebox' is +fragile (*note \protect::). + + This creates and uses a box register. + + \newsavebox{\fullname} + \sbox{\fullname}{John Jacob Jingleheimer Schmidt} + ... + \usebox{\fullname}! His name is my name, too! + Whenever we go out, the people always shout! + There goes \usebox{\fullname}! Ya da da da da da da. + +One advantage of using and reusing a box register over a '\newcommand' +macro variable is efficiency, that LaTeX need not repeatedly retypeset +the contents. See the example below. + + The first two command invocations, '\sbox{BOX-CMD}{TEXT}' and +'\savebox{BOX-CMD}{TEXT}', are roughly equivalent. As to the third and +fourth, the optional arguments allow you to specify the box width as +WIDTH, and the position of the text inside that box as POSITION. *Note +\mbox & \makebox::, for the full description. + + In the '\sbox' and '\savebox' commands the TEXT is typeset in LR mode +so it does not have line breaks (*note Modes::). If you use these then +LaTeX doesn't give you an error but it ignores what you want: if you +enter '\sbox{\newreg}{test \\ test}' and '\usebox{\newreg}' then you get +'testtest', while if you enter '\sbox{\newreg}{test \par test}' and +'\usebox{\newreg}' then you get 'test test', but no error or warning. +To fix this use a '\parbox' or 'minipage' as here. + + \newsavebox{\areg} + \savebox{\areg}{% + \begin{minipage}{\linewidth} + \begin{enumerate} + \item First item + \item Second item + \end{enumerate} + \end{minipage}} + ... + \usebox{\areg} + + As an example of the efficiency of reusing a register's contents, +this puts the same picture on each page of the document by putting it in +the header. LaTeX only typesets it once. + + \usepackage{graphicx} % all this in the preamble + \newsavebox{\sealreg} + \savebox{\sealreg}{% + \setlength{\unitlength}{1in}% + \begin{picture}(0,0)% + \put(1.5,-2.5){% + \begin{tabular}{c} + \includegraphics[height=2in]{companylogo.png} \\ + Office of the President + \end{tabular}} + \end{picture}% + } + \markright{\usebox{\sealreg}} + \pagestyle{headings} + +The 'picture' environment is good for fine-tuning the placement. + + If the register '\noreg' has not already been defined then you get +something like 'Undefined control sequence. <argument> \noreg'. + + +File: latex2e.info, Node: lrbox, Next: \usebox, Prev: \sbox & \savebox, Up: Boxes + +20.6 'lrbox' +============ + +Synopsis: + + \begin{lrbox}{BOX-CMD} + TEXT + \end{lrbox} + + This is the environment form of the '\sbox' and '\savebox' commands, +and is equivalent to them. *Note \sbox & \savebox::, for the full +description. + + The TEXT inside the environment is saved in the box register referred +to by variable 'BOX-CMD'. The variable name BOX-CMD must begin with a +backslash, '\'. You must allocate this box register in advance with +'\newsavebox' (*note \newsavebox::). In this example the environment is +convenient for entering the 'tabular'. + + \newsavebox{\jhreg} + \begin{lrbox}{\jhreg} + \begin{tabular}{c} + \includegraphics[height=1in]{jh.png} \\ + Jim Hef{}feron + \end{tabular} + \end{lrbox} + ... + \usebox{\jhreg} + + +File: latex2e.info, Node: \usebox, Prev: lrbox, Up: Boxes + +20.7 '\usebox' +============== + +Synopsis: + + \usebox{BOX-CMD} + + Produce the box most recently saved in the box register BOX-CMD by +the commands '\sbox' or '\savebox', or the 'lrbox' environment. For +more information and examples, *note \sbox & \savebox::. (Note that the +variable name BOX-CMD starts with a backslash, '\'.) This command is +robust (*note \protect::). + + +File: latex2e.info, Node: Color, Next: Graphics, Prev: Boxes, Up: Top + +21 Color +******** + +You can add color to text, rules, etc. You can also have color in a box +or on an entire page and write text on top of it. + + Color support comes as an additional package. So put +'\usepackage{color}' in your document preamble to use the commands +described here. + + Many other packages also supplement LaTeX's color abilities. +Particularly worth mentioning is 'xcolor', which is widely used and +significantly extends the capabilities described here, including adding +'HTML' and 'Hsb' color models. + +* Menu: + +* Color package options:: Options when you load the standard package. +* Color models:: How colors are represented. +* Commands for color:: The available commands. + + +File: latex2e.info, Node: Color package options, Next: Color models, Up: Color + +21.1 'color' package options +============================ + +Synopsis (must be in the document preamble): + + \usepackage[COMMA-SEPARATED OPTION LIST]{color} + + When you load the 'color' package there are two kinds of available +options. + + The first specifies the "printer driver". LaTeX doesn't contain +information about different output systems but instead depends on +information stored in a file. Normally you should not specify the +driver option in the document, and instead rely on your system's +default. One advantage of this is that it makes the document portable +across systems. For completeness we include a list of the drivers. The +currently relevant ones are: 'dvipdfmx', 'dvips', 'dvisvgm', 'luatex', +'pdftex', 'xetex'. The two 'xdvi' and 'oztex' are essentially aliases +for 'dvips' (and 'xdvi' is monochrome). Ones that should not be used +for new systems are: 'dvipdf', 'dvipdfm', 'dviwin', 'dvipsone', 'emtex', +'pctexps', 'pctexwin', 'pctexhp', 'pctex32', 'truetex', 'tcidvi', 'vtex' +(and 'dviwindo' is an alias for 'dvipsone'). + + The second kind of options, beyond the drivers, are below. + +'monochrome' + Disable the color commands, so that they do not generate errors but + do not generate color either. + +'dvipsnames' + Make available a list of 68 color names that are often used, + particularly in legacy documents. These color names were + originally provided by the 'dvips' driver, giving the option name. + +'nodvipsnames' + Do not load that list of color names, saving LaTeX a tiny amount of + memory space. + + +File: latex2e.info, Node: Color models, Next: Commands for color, Prev: Color package options, Up: Color + +21.2 Color models +================= + +A "color model" is a way of representing colors. LaTeX's capabilities +depend on the printer driver. However, the 'pdftex', 'xetex', and +'luatex' printer drivers are today by far the most commonly used. The +models below work for those drivers. All but one of these is also +supported by essentially all other printer drivers used today. + + Note that color combination can be additive or subtractive. Additive +mixes colors of light, so that for instance combining full intensities +of red, green, and blue produces white. Subtractive mixes pigments, +such as with inks, so that combining full intensity of cyan, magenta, +and yellow makes black. + +'cmyk' + A comma-separated list with four real numbers between 0 and 1, + inclusive. The first number is the intensity of cyan, the second + is magenta, and the others are yellow and black. A number value of + 0 means minimal intensity, while a 1 is for full intensity. This + model is often used in color printing. It is a subtractive model. + +'gray' + A single real number between 0 and 1, inclusive. The colors are + shades of grey. The number 0 produces black while 1 gives white. + +'rgb' + A comma-separated list with three real numbers between 0 and 1, + inclusive. The first number is the intensity of the red component, + the second is green, and the third the blue. A number value of 0 + means that none of that component is added in, while a 1 means full + intensity. This is an additive model. + +'RGB' + ('pdftex', 'xetex', 'luatex' drivers) A comma-separated list with + three integers between 0 and 255, inclusive. This model is a + convenience for using 'rgb' since outside of LaTeX colors are often + described in a red-green-blue model using numbers in this range. + The values entered here are converted to the 'rgb' model by + dividing by 255. + +'named' + Colors are accessed by name, such as 'PrussianBlue'. The list of + names depends on the driver, but all support the names 'black', + 'blue', 'cyan', 'green', 'magenta', 'red', 'white', and 'yellow' + (See the 'dvipsnames' option in *note Color package options::). + + +File: latex2e.info, Node: Commands for color, Prev: Color models, Up: Color + +21.3 Commands for color +======================= + +These are the commands available with the 'color' package. + +* Menu: + +* Define colors:: Give a color a name. +* Colored text:: Text or rules in color. +* Colored boxes:: A box of color, to write over. +* Colored pages:: A whole page colored. + + +File: latex2e.info, Node: Define colors, Next: Colored text, Up: Commands for color + +21.3.1 Define colors +-------------------- + +Synopsis: + + \definecolor{NAME}{MODEL}{SPECIFICATION} + + Give the name NAME to the color. For example, after this + + \definecolor{silver}{rgb}{0.75,0.75,0.74} + +you can use that color name with 'Hi ho, \textcolor{silver}{Silver}!'. + + This example gives the color a more abstract name, so it could change +and not be misleading. + + \definecolor{logocolor}{RGB}{145,92,131} % RGB needs pdflatex + \newcommand{\logo}{\textcolor{logocolor}{Bob's Big Bagels}} + + Often a document's colors are defined in the preamble, or in the +class or style, rather than in the document body. + + +File: latex2e.info, Node: Colored text, Next: Colored boxes, Prev: Define colors, Up: Commands for color + +21.3.2 Colored text +------------------- + +Synopses: + + \textcolor{NAME}{...} + \textcolor[COLOR MODEL]{COLOR SPECIFICATION}{...} + +or + + \color{NAME} + \color[COLOR MODEL]{SPECIFICATION} + + The affected text gets the color. This line + + \textcolor{magenta}{My name is Ozymandias, king of kings:} + Look on my works, ye Mighty, and despair! + +causes the first half to be in magenta while the rest is in black. You +can use a color declared with '\definecolor' in exactly the same way +that we just used the builtin color 'magenta'. + + \definecolor{MidlifeCrisisRed}{rgb}{1.0,0.11,0.0} + I'm thinking about getting a \textcolor{MidlifeCrisisRed}{sports car}. + + The two '\textcolor' and '\color' differ in that the first is a +command form, enclosing the text to be colored as an argument. Often +this form is more convenient, or at least more explicit. The second +form is a declaration, as in 'The moon is made of {\color{green} green} +cheese', so it is in effect until the end of the current group or +environment. This is sometimes useful when writing macros or as below +where it colors everything inside the 'center' environment, including +the vertical and horizontal lines. + + \begin{center} \color{blue} + \begin{tabular}{l|r} + UL &UR \\ \hline + LL &LR + \end{tabular} + \end{center} + + You can use color in equations. A document might have this +definition in the preamble + + \definecolor{highlightcolor}{RGB}{225,15,0} + +and then contain this equation. + + \begin{equation} + \int_a^b \textcolor{highlightcolor}{f'(x)}\,dx=f(b)-f(a) + \end{equation} + + Typically the colors used in a document are declared in a class or +style but sometimes you want a one-off. Those are the second forms in +the synopses. + + Colors of \textcolor[rgb]{0.33,0.14,0.47}{Purple} and + {\color[rgb]{0.72,0.60,0.37}Gold} for the team. + + The format of COLOR SPECIFICATION depends on the color model (*note +Color models::). For instance, while 'rgb' takes three numbers, 'gray' +takes only one. + + The selection was \textcolor[gray]{0.5}{grayed out}. + + Colors inside colors do not combine. Thus + + \textcolor{green}{kind of \textcolor{blue}{blue}} + +has a final word that is blue, not a combination of blue and green. + + +File: latex2e.info, Node: Colored boxes, Next: Colored pages, Prev: Colored text, Up: Commands for color + +21.3.3 Colored boxes +-------------------- + +Synopses: + + \colorbox{NAME}{...} + \colorbox[MODEL NAME]{BOX BACKGROUND COLOR}{...} + +or + + \fcolorbox{FRAME COLOR}{BOX BACKGROUND COLOR}{...} + \fcolorbox[MODEL NAME]{FRAME COLOR}{BOX BACKGROUND COLOR}{...} + + Make a box with the stated background color. The '\fcolorbox' +command puts a frame around the box. For instance this + + Name:~\colorbox{cyan}{\makebox[5cm][l]{\strut}} + +makes a cyan-colored box that is five centimeters long and gets its +depth and height from the '\strut' (so the depth is '-.3\baselineskip' +and the height is '\baselineskip'). This puts white text on a blue +background. + + \colorbox{blue}{\textcolor{white}{Welcome to the machine.}} + + The '\fcolorbox' commands use the same parameters as '\fbox' (*note +\fbox & \framebox::), '\fboxrule' and '\fboxsep', to set the thickness +of the rule and the boundary between the box interior and the +surrounding rule. LaTeX's defaults are '0.4pt' and '3pt', respectively. + + This example changes the thickness of the border to 0.8 points. Note +that it is surrounded by curly braces so that the change ends at the end +of the second line. + + {\setlength{\fboxrule}{0.8pt} + \fcolorbox{black}{red}{Under no circumstances turn this knob.}} + + +File: latex2e.info, Node: Colored pages, Prev: Colored boxes, Up: Commands for color + +21.3.4 Colored pages +-------------------- + +Synopses: + + \pagecolor{NAME} + \pagecolor[COLOR MODEL]{COLOR SPECIFICATION} + \nopagecolor + + The first two set the background of the page, and all subsequent +pages, to the color. For an explanation of the specification in the +second form *note Colored text::. The third returns the background to +normal, which is a transparent background. (If that is not supported +use '\pagecolor{white}', although that will make a white background +rather than the default transparent background.) + + ... + \pagecolor{cyan} + ... + \nopagecolor + + +File: latex2e.info, Node: Graphics, Next: Special insertions, Prev: Color, Up: Top + +22 Graphics +*********** + +You can use graphics such as PNG or PDF files in your LaTeX document. +You need an additional package, which comes standard with LaTeX. This +example is the short how-to. + + \include{graphicx} % goes in the preamble + ... + \includegraphics[width=0.5\linewidth]{plot.pdf} + + To use the commands described here your document preamble must +contain either '\usepackage{graphicx}' or '\usepackage{graphics}'. Most +of the time, 'graphicx' is the better choice. + + Graphics come in two main types, raster and vector. LaTeX can use +both. In raster graphics the file contains an entry for each location +in an array, describing what color it is. An example is a photograph in +JPG format. In vector graphics, the file contains a list of +instructions such as 'draw a circle with this radius and that center'. +An example is a line drawing produced by the Asymptote program, in PDF +format. Generally vector graphics are more useful because you can +rescale their size without pixelation or other problems, and because +they often have a smaller size. + + There are systems particularly well-suited to make graphics for a +LaTeX document. For example, these allow you to use the same fonts as +in your document. LaTeX comes with a 'picture' environment (*note +picture::) that has simple capabilities. Besides that, there are other +ways to include the graphic-making commands in the document. Two such +systems are the PSTricks and TikZ packages. There are also systems +external to LaTeX, that generate a graphic that you include using the +commands of this chapter. Two that use a programming language are +Asymptote and MetaPost. One that uses a graphical interface is Xfig. +Full description of these systems is outside the scope of this document; +see their documentation on CTAN. + +* Menu: + +* Graphics package options:: Options when you load the package. +* Graphics package configuration:: Where to look for files, which file types. +* Commands for graphics:: The available commands. + + +File: latex2e.info, Node: Graphics package options, Next: Graphics package configuration, Up: Graphics + +22.1 'graphics' package options +=============================== + +Synopsis (must be in the document preamble): + + \usepackage[COMMA-SEPARATED OPTION LIST]{graphics} + +or + + \usepackage[COMMA-SEPARATED OPTION LIST]{graphicx} + + The 'graphicx' package has a format for optional arguments to the +'\includegraphics' command that is convenient (it is the key-value +format), so it is the better choice for new documents. When you load +the 'graphics' or 'graphicx' package with '\usepackage' there are two +kinds of available options. + + The first is that LaTeX does not contain information about different +output systems but instead depends on information stored in a "printer +driver" file. Normally you should not specify the driver option in the +document, and instead rely on your system's default. One advantage of +this is that it makes the document portable across systems. + + For completeness here is a list of the drivers. The currently +relevant ones are: 'dvipdfmx', 'dvips', 'dvisvgm', 'luatex', 'pdftex', +'xetex'. The two 'xdvi' and 'oztex' are essentially aliases for 'dvips' +(and 'xdvi' is monochrome). Ones that should not be used for new +systems are: 'dvipdf', 'dvipdfm', 'dviwin', 'dvipsone', 'emtex', +'pctexps', 'pctexwin', 'pctexhp', 'pctex32', 'truetex', 'tcidvi', 'vtex' +(and 'dviwindo' is an alias for 'dvipsone'). These are stored in files +with a '.def' extension, such as 'pdftex.def'. + + The second kind of options are below. + +'demo' + Instead of an image file, LaTeX puts in a 150 pt by 100 pt + rectangle (unless another size is specified in the + '\includegraphics' command). + +'draft' + For each graphic file, it is not shown but instead its file name is + printed in a box of the correct size. In order to determine the + size, the file must be present. + +'final' + (Default) Override any previous 'draft' option, so that the + document shows the contents of the graphic files. + +'hiderotate' + Do not show rotated text. (This allows for the possibility that a + previewer does not have the capability to rotate text.) + +'hidescale' + Do not show scaled text. (This allows for the possibility that a + previewer does not have the capability to scale.) + +'hiresbb' + In a PS or EPS file the graphic size may be specified in two ways. + The '%%BoundingBox' lines describe the graphic size using integer + multiples of a PostScript point, that is, integer multiples of 1/72 + inch. A later addition to the PostScript language allows decimal + multiples, such as 1.23, in '%%HiResBoundingBox' lines. This + option has LaTeX to read the size from the latter. + + +File: latex2e.info, Node: Graphics package configuration, Next: Commands for graphics, Prev: Graphics package options, Up: Graphics + +22.2 'graphics' package configuration +===================================== + +These commands configure the way LaTeX searches the file system for the +graphic. + + The behavior of file system search code is necessarily platform +dependent. In this document we cover GNU/Linux, Macintosh, and Windows, +as those systems are typically configured. For other situations consult +the documentation in 'grfguide.pdf', or the LaTeX source, or your TeX +distribution's documentation. + +* Menu: + +* \graphicspath:: Directories to search. +* \DeclareGraphicsExtensions:: File types, such as JPG or EPS. +* \DeclareGraphicsRule:: How to handle file types. + + +File: latex2e.info, Node: \graphicspath, Next: \DeclareGraphicsExtensions, Up: Graphics package configuration + +22.2.1 '\graphicspath' +---------------------- + +Synopsis: + + \graphicspath{LIST OF DIRECTORIES INSIDE CURLY BRACES} + + Declare a list of directories to search for graphics files. This +allows you to later say something like '\includegraphics{lion.png}' +instead of having to give its path. + + LaTeX always looks for graphic files first in the current directory +(and the output directory, if specified; *note output directory::). The +declaration below tells the system to then look in the subdirectory +'pix', and then '../pix'. + + \usepackage{graphicx} % or graphics; put in preamble + ... + \graphicspath{ {pix/} {../pix/} } + + The '\graphicspath' declaration is optional. If you don't include it +then LaTeX's default is to search all of the places that it usually +looks for a file (it uses LaTeX's '\input@path'). In particular, in +this case one of the places it looks is the current directory. + + Enclose each directory name in curly braces; for example, above it +says ''{pix}''. Do this even if there is only one directory. Each +directory name must end in a forward slash, '/'. This is true even on +Windows, where good practice is to use forward slashes for all the +directory separators since it makes the document portable to other +platforms. If you have spaces in your directory name then use double +quotes, as with '{"my docs/"}'. Getting one of these rules wrong will +cause LaTeX to report 'Error: File `FILENAME' not found'. + + Basically, the algorithm is that with this example, after looking in +the current directory, + + \graphicspath{ {pix/} {../pix/} } + ... + \usepackage{lion.png} + +for each of the listed directories, LaTeX concatenates it with the +filename and searches for the result, checking for 'pix/lion.png' and +then '../pix/lion.png'. This algorithm means that the '\graphicspath' +command does not recursively search subdirectories: if you issue +'\graphicspath{{a/}}' and the graphic is in 'a/b/lion.png' then LaTeX +will not find it. It also means that you can use absolute paths such as +'\graphicspath{{/home/jim/logos/}}' or +'\graphicspath{{C:/Users/Albert/Pictures/}}'. However, using these +means that the document is not portable. (You could preserve +portability by adjusting your TeX system settings configuration file +parameter 'TEXINPUTS'; see the documentation of your system.) + + You can use '\graphicspath' anywhere in the document. You can use it +more than once. Show its value with +'\makeatletter\typeout{\Ginput@path}\makeatother'. + + The directories are taken with respect to the base file. That is, +suppose that you are working on a document based on 'book/book.tex' and +it contains '\include{chapters/chap1}'. If in 'chap1.tex' you put +'\graphicspath{{plots/}}' then LaTeX will not search for graphics in +'book/chapters/plots', but instead in 'book/plots'. + + +File: latex2e.info, Node: \DeclareGraphicsExtensions, Next: \DeclareGraphicsRule, Prev: \graphicspath, Up: Graphics package configuration + +22.2.2 '\DeclareGraphicsExtensions' +----------------------------------- + +Synopses: + + \DeclareGraphicsExtensions{COMMA-SEPARATED LIST OF FILE EXTENSIONS} + + Declare the filename extensions to try. This allows you to specify +the order in which to choose graphic formats when you include graphic +files by giving the filename without the extension, as in +'\includegraphics{functionplot}'. + + In this example, LaTeX will find files in the PNG format before PDF +files. + + \DeclareGraphicsExtensions{.png,PNG,.pdf,.PDF} + ... + \includegraphics{lion} % will find lion.png before lion.pdf + +Because the filename 'lion' does not have a period, LaTeX uses the +extension list. For each directory in the graphics path (*note +\graphicspath::), LaTeX will try the extensions in the order given. If +it does not find such a file after trying all the directories and +extensions then it reports '! LaTeX Error: File `'lion'' not found'. +Note that you must include the periods at the start of the extensions. + + Because GNU/Linux and Macintosh filenames are case sensitive, the +list of file extensions is case sensitive on those platforms. The +Windows platform is not case sensitive. + + You are not required to include '\DeclareGraphicsExtensions' in your +document; the printer driver has a sensible default. For example, the +most recent 'pdftex.def' has this extension list. + + .pdf,.png,.jpg,.mps,.jpeg,.jbig2,.jb2,.PDF,.PNG,.JPG,.JPEG,.JBIG2,.JB2 + + To change the order, use the 'grfext' package. + + You can use this command anywhere in the document. You can use it +more than once. Show its value with +'\makeatletter\typeout{\Gin@extensions}\makeatother'. + + +File: latex2e.info, Node: \DeclareGraphicsRule, Prev: \DeclareGraphicsExtensions, Up: Graphics package configuration + +22.2.3 '\DeclareGraphicsRule' +----------------------------- + +Synopsis: + + \DeclareGraphicsRule{EXTENSION}{TYPE}{SIZE-FILE EXTENSION}{COMMAND} + + Declare how to handle graphic files whose names end in EXTENSION. + + This example declares that all files with names of the form +'filename-without-dot.mps' will be treated as output from MetaPost, +meaning that the printer driver will use its MetaPost-handling code to +input the file. + + \DeclareGraphicsRule{.mps}{mps}{.mps}{} + + This + + \DeclareGraphicsRule{*}{mps}{*}{} + +tells LaTeX that it should handle as MetaPost output any file with an +extension not covered by another rule, so it covers 'filename.1', +'filename.2', etc. + + This describes the four arguments. + +EXTENSION + The file extension to which this rule applies. The extension is + anything after and including the first dot in the filename. Use + the Kleene star, '*', to denote the default behavior for all + undeclared extensions. + +TYPE + The type of file involved. This type is a string that must be + defined in the printer driver. For instance, files with extensions + '.ps', '.eps', or '.ps.gz' may all be classed as type 'eps'. All + files of the same type will be input with the same internal command + by the printer driver. For example, the file types that 'pdftex' + recognizes are: 'jpg', 'jbig2', 'mps', 'pdf', 'png', 'tif'. + +SIZE-FILE EXTENSION + The extension of the file to be read to determine the size of the + graphic, if there is such a file. It may be the same as EXTENSION + but it may be different. + + As an example, consider a PostScript graphic. To make it smaller, + it might be compressed into a '.ps.gz' file. Compressed files are + not easily read by LaTeX so you can put the bounding box + information in a separate file. If SIZE-FILE EXTENSION is empty + then you must specify size information in the arguments of + '\includegraphics'. + + If the driver file has a procedure for reading size files for + 'type' then that will be used, otherwise it will use the procedure + for reading '.eps' files. (Thus you may specify the size of bitmap + files in a file with a PostScript style '%%BoundingBox' line if no + other format is available.) + +COMMAND + A command that will be applied to the file. This is very often + left empty. This command must start with a single backward quote. + Thus, '\DeclareGraphicsRule{.eps.gz}{eps}{.eps.bb}{`gunzip -c #1}' + specifies that any file with the extension '.eps.gz' should be + treated as an 'eps' file, with the BoundingBox information stored + in the file with extension '.eps.bb', and that the command 'gunzip + -c' will run on your platform to decompresses the file. + + Such a command is specific to your platform. In addition, your TeX + system must allow you to run external commands; as a security + measure modern systems restrict running commands unless you + explicitly allow it. See the documentation for your TeX + distribution. + + +File: latex2e.info, Node: Commands for graphics, Prev: Graphics package configuration, Up: Graphics + +22.3 Commands for graphics +========================== + +These are the commands available with the 'graphics' and 'graphicx' +packages. + +* Menu: + +* \includegraphics:: Using a graphic in your document. +* \rotatebox:: Rotating boxes, including graphics. +* \scalebox:: Scaling boxes, including graphics. +* \resizebox:: Scaling boxes, including graphics, to a set size. + + +File: latex2e.info, Node: \includegraphics, Next: \rotatebox, Up: Commands for graphics + +22.3.1 '\includegraphics' +------------------------- + +Synopses for 'graphics' package: + + \includegraphics{FILENAME} + \includegraphics[URX,URY]{FILENAME} + \includegraphics[LLX,LLY][URX,URY]{FILENAME} + \includegraphics*{FILENAME} + \includegraphics*[URX,URY]{FILENAME} + \includegraphics*[LLX,LLY][URX,URY]{FILENAME} + + Synopses for 'graphicx' package: + + \includegraphics{FILENAME} + \includegraphics[KEY-VALUE LIST]{FILENAME} + \includegraphics*{FILENAME} + \includegraphics*[KEY-VALUE LIST]{FILENAME} + + Include a graphics file. The starred form '\includegraphics*' will +clip the graphic to the size specified, while for the unstarred form any +part of the graphic that is outside the box of the specified size will +over-print the surrounding area. + + This + + \usepackage{graphicx} % in preamble + ... + \begin{center} + \includegraphics{plot.pdf} + \end{center} + +will incorporate into the document the graphic in 'plot.pdf', centered +and at its nominal size. You can also give a path to the file, as with +'\includegraphics{graphics/plot.pdf}'. To specify a list of locations +to search for the file, *note \graphicspath::. + + If your filename includes spaces then put it in double quotes. An +example is '\includegraphics{"sister picture.jpg"}'. + + The '\includegraphics{FILENAME}' command decides on the type of +graphic by splitting FILENAME on the first dot. You can instead use +FILENAME with no dot, as in '\includegraphics{turing}', and then LaTeX +tries a sequence of extensions such as '.png' and '.pdf' until it finds +a file with that extension (*note \DeclareGraphicsExtensions::). + + If your file name contains dots before the extension then you can +hide them with curly braces, as in +'\includegraphics{{plot.2018.03.12.a}.pdf}'. Or, if you use the +'graphicx' package then you can use the options 'type' and 'ext'; see +below. This and other filename issues are also handled with the package +'grffile'. + + This example puts a graphic in a 'figure' environment so LaTeX can +move it to the next page if fitting it on the current page is awkward +(*note figure::). + + \begin{figure} + \centering + \includegraphics[width=3cm]{lungxray.jpg} + \caption{The evidence is overwhelming: don't smoke.} \label{fig:xray} + \end{figure} + + This places a graphic that will not float, so it is sure to appear at +this point in the document even if makes LaTeX stretch the text or +resort to blank areas on the page. It will be centered and will have a +caption. + + \usepackage{caption} % in preamble + ... + \begin{center} + \includegraphics{pix/nix.png} + \captionof{figure}{The spirit of the night} \label{pix:nix} % optional + \end{center} + + This example puts a box with a graphic side by side with one having +text, with the two vertically centered. + + \newcommand*{\vcenteredhbox}[1]{\begin{tabular}{@{}c@{}}#1\end{tabular}} + ... + \begin{center} + \vcenteredhbox{\includegraphics[width=0.4\textwidth]{plot}} + \hspace{1em} + \vcenteredhbox{\begin{minipage}{0.4\textwidth} + \begin{displaymath} + f(x)=x\cdot \sin (1/x) + \end{displaymath} + \end{minipage}} + \end{center} + + If you use the 'graphics' package then the only options involve the +size of the graphic (but see *note \rotatebox:: and *note \scalebox::). +When one optional argument is present then it is '[URX,URY]' and it +gives the coordinates of the top right corner of the image, as a pair of +TeX dimensions (*note Units of length::). If the units are omitted they +default to 'bp'. In this case, the lower left corner of the image is +assumed to be at (0,0). If two optional arguments are present then the +leading one is '[LLX,LLY]', specifying the coordinates of the image's +lower left. Thus, '\includegraphics[1in,0.618in]{...}' calls for the +graphic to be placed so it is 1 inch wide and 0.618 inches tall and so +its origin is at (0,0). + + The 'graphicx' package gives you many more options. Specify them in +a key-value form, as here. + + \begin{center} + \includegraphics[width=1in,angle=90]{lion} + \hspace{2em} + \includegraphics[angle=90,width=1in]{lion} + \end{center} + +The options are read left-to-right. So the first graphic above is made +one inch wide and then rotated, while the second is rotated and then +made one inch wide. Thus, unless the graphic is perfectly square, the +two will end with different widths and heights. + + There are many options. The primary ones are listed first. + + Note that a graphic is placed by LaTeX into a box, which is +traditionally referred to as its "bounding box" (distinct from the +PostScript BoundingBox described below). The graphic's printed area may +go beyond this box, or sit inside this box, but when LaTeX makes up a +page it puts together boxes and this is the box allocated for the +graphic. + +'width' + The graphic will be shown so its bounding box is this width. An + example is '\includegraphics[width=1in]{plot}'. You can use the + standard TeX dimensions (*note Units of length::) and also + convenient is '\linewidth', or in a two-column document, + '\columnwidth' (*note Page layout parameters::). An example is + that by using the 'calc' package you can make the graphic be 1 cm + narrower than the width of the text with + '\includegraphics[width=\linewidth-1.0cm]{hefferon.jpg}'. + +'height' + The graphic will be shown so its bounding box is this height. You + can use the standard TeX dimensions (*note Units of length::), and + also convenient are '\pageheight' and '\textheight' (*note Page + layout parameters::). For instance, the command + '\includegraphics[height=0.25\textheight]{godel}' will make the + graphic a quarter of the height of the text area. + +'totalheight' + The graphic will be shown so its bounding box has this height plus + depth. This differs from the height if the graphic was rotated. + For instance, if it has been rotated by -90 then it will have zero + height but a large depth. + +'keepaspectratio' + If set to 'true', or just specified as here + + \includegraphics[...,keepaspectratio,...]{...} + + and you give as options both 'width' and 'height' (or + 'totalheight'), then LaTeX will make the graphic is as large as + possible without distortion. That is, LaTeX will ensure that + neither is the graphic wider than 'width' nor taller than 'height' + (or 'totalheight'). + +'scale' + Factor by which to scale the graphic. To make a graphic twice its + nominal size, enter '\includegraphics[scale=2.0]{...}'. This + number may be any value; a number between 0 and 1 will shrink the + graphic and a negative number will reflect it. + +'angle' + Rotate the graphic. The angle is taken in degrees and + counterclockwise. The graphic is rotated about its 'origin'; see + that option. For a complete description of how rotated material is + typeset, *note \rotatebox::. + +'origin' + The point of the graphic about which the rotation happens. + Possible values are any string containing one or two of: 'l' for + left, 'r' for right, 'b' for bottom, 'c' for center, 't' for top, + and 'B' for baseline. Thus, entering the command + '\includegraphics[angle=180,origin=c]{moon}' will turn the picture + upside down about that picture's center, while the command + '\includegraphics[angle=180,origin=lB]{LeBateau}' will turn its + picture upside down about its left baseline. (The character 'c' + gives the horizontal center in 'bc' or 'tc', but gives the vertical + center in 'lc' or 'rc'.) The default is 'lB'. + + To rotate about an arbitrary point, *note \rotatebox::. + + These are lesser-used options. + +'viewport' + Pick out a subregion of the graphic to show. Takes four arguments, + separated by spaces and given in TeX dimensions, as with + '\includegraphics[.., viewport=0in 0in 1in 0.618in]{...}'. When + the unit is omitted, the dimensions default to big points, 'bp'. + They are taken relative to the origin specified by the bounding + box. See also the 'trim' option. + +'trim' + Gives parts of the graphic to not show. Takes four arguments, + separated by spaces, that are given in TeX dimensions, as with + '\includegraphics[.., trim= 0in 0.1in 0.2in 0.3in, ...]{...}'. + These give the amounts of the graphic not to show, that is, LaTeX + will crop the picture by 0 inches on the left, 0.1 inches on the + bottom, 0.2 inches on the right, and 0.3 inches on the top. See + also the 'viewport' option. + +'clip' + If set to 'true', or just specified as here + + \includegraphics[...,clip,...]{...} + + then the graphic is cropped to the bounding box. This is the same + as using the starred form of the command, + '\includegraphics*[...]{...}'. + +'page' + Give the page number of a multi-page PDF file. The default is + 'page=1'. + +'pagebox' + Specifies which bounding box to use for PDF files from among + 'mediabox', 'cropbox', 'bleedbox', 'trimbox', or 'artbox'. PDF + files do not have the BoundingBox that PostScript files have, but + may specify up to four predefined rectangles. The MediaBox gives + the boundaries of the physical medium. The CropBox is the region + to which the contents of the page are to be clipped when displayed. + The BleedBox is the region to which the contents of the page should + be clipped in production. The TrimBox is the intended dimensions + of the finished page. The ArtBox is the extent of the page's + meaningful content. The driver will set the image size based on + CropBox if present, otherwise it will not use one of the others, + with a driver-defined order of preference. MediaBox is always + present. + +'interpolate' + Enable or disable interpolation of raster images by the viewer. + Can be set with 'interpolate=true' or just specified as here. + + \includegraphics[...,interpolate,...]{...} + +'quiet' + Do not write information to the log. You can set it with + 'quiet=true' or just specified it with + '\includegraphics[...,quiet,...]{...}', + +'draft' + If you set it with 'draft=true' or just specify it with + + \includegraphics[...,draft,...]{...} + + then the graphic will not appear in the document, possibly saving + color printer ink. Instead, LaTeX will put an empty box of the + correct size with the filename printed in it. + + These options address the bounding box for Encapsulated PostScript +graphic files, which have a size specified with a line '%%BoundingBox' +that appears in the file. It has four values, giving the lower x +coordinate, lower y coordinate, upper x coordinate, and upper y +coordinate. The units are PostScript points, equivalent to TeX's big +points, 1/72 inch. For example, if an '.eps' file has the line +'%%BoundingBox 10 20 40 80' then its natural size is 30/72 inch wide by +60/72 inch tall. + +'bb' + Specify the bounding box of the displayed region. The argument is + four dimensions separated by spaces, as with '\includegraphics[.., + bb= 0in 0in 1in 0.618in]{...}'. Usually '\includegraphics' reads + the BoundingBox numbers from the EPS file automatically, so this + option is only useful if the bounding box is missing from that file + or if you want to change it. + +'bbllx, bblly, bburx, bbury' + Set the bounding box. These four are obsolete, but are retained + for compatibility with old packages. + +'natwidth, natheight' + An alternative for 'bb'. Setting + + \includegraphics[...,natwidth=1in,natheight=0.618in,...]{...} + + is the same as setting 'bb=0 0 1in 0.618in'. + +'hiresbb' + If set to 'true', or just specified as with + + \includegraphics[...,hiresbb,...]{...} + + then LaTeX will look for '%%HiResBoundingBox' lines instead of + '%%BoundingBox' lines. (The 'BoundingBox' lines use only natural + numbers while the 'HiResBoundingBox' lines use decimals; both use + units equivalent to TeX's big points, 1/72 inch.) To override a + prior setting of 'true', you can set it to 'false'. + + These following options allow a user to override LaTeX's method of +choosing the graphic type based on the filename extension. An example +is that '\includegraphics[type=png,ext=.xxx,read=.xxx]{lion}' will read +the file 'lion.xxx' as though it were 'lion.png'. For more on these, +*note \DeclareGraphicsRule::. + +'type' + Specify the graphics type. + +'ext' + Specify the graphics extension. Only use this in conjunction with + the option 'type'. + +'read' + Specify the file extension of the read file. Only use this in + conjunction with the option 'type'. + +'command' + Specify a command to be applied to this file. Only use this in + conjunction with the option 'type'. *Note Command line options::, + for a discussion of enabling the '\write18' functionality to run + external commands. + + +File: latex2e.info, Node: \rotatebox, Next: \scalebox, Prev: \includegraphics, Up: Commands for graphics + +22.3.2 '\rotatebox' +------------------- + +Synopsis if you use the 'graphics' package: + + \rotatebox{ANGLE}{MATERIAL} + + Synopses if you use the 'graphicx' package: + + \rotatebox{ANGLE}{MATERIAL} + \rotatebox[KEY-VALUE LIST]{ANGLE}{MATERIAL} + + Put MATERIAL in a box and rotate it ANGLE degrees counterclockwise. + + This example rotates the table column heads forty-five degrees. + + \begin{tabular}{ll} + \rotatebox{45}{Character} &\rotatebox{45}{NATO phonetic} \\ + A &AL-FAH \\ + B &BRAH-VOH + \end{tabular} + + The MATERIAL can be anything that goes in a box, including a graphic. + + \rotatebox[origin=c]{45}{\includegraphics[width=1in]{lion}} + + To place the rotated material, the first step is that LaTeX sets +MATERIAL in a box, with a reference point on the left baseline. The +second step is the rotation, by default about the reference point. The +third step is that LaTeX computes a box to bound the rotated material. +Fourth, LaTeX moves this box horizontally so that the left edge of this +new bounding box coincides with the left edge of the box from the first +step (they need not coincide vertically). This new bounding box, in its +new position, is what LaTeX uses as the box when typesetting this +material. + + If you use the 'graphics' package then the rotation is about the +reference point of the box. If you use the 'graphicx' package then +these are the options that can go in the KEY-VALUE LIST, but note that +you can get the same effect without needing this package, except for the +'x' and 'y' options (*note \includegraphics::). + +'origin' + The point of the MATERIAL's box about which the rotation happens. + Possible value is any string containing one or two of: 'l' for + left, 'r' for right, 'b' for bottom, 'c' for center, 't' for top, + and 'B' for baseline. Thus, the first line here + + \rotatebox[origin=c]{180}{moon} + \rotatebox[origin=lB]{180}{LeBateau} + + will turn the picture upside down from the center while the second + will turn its picture upside down about its left baseline. (The + character 'c' gives the horizontal center in 'bc' or 'tc' but gives + the vertical center in 'lc' or 'rc', and gives both in 'c'.) The + default is 'lB'. + +'x, y' + Specify an arbitrary point of rotation with '\rotatebox[x=TeX + DIMENSION,y=TeX DIMENSION]{...}' (*note Units of length::). These + give the offset from the box's reference point. + +'units' + This key allows you to change the default of degrees + counterclockwise. Setting 'units=-360' changes the direction to + degrees clockwise and setting 'units=6.283185' changes to radians + counterclockwise. + + +File: latex2e.info, Node: \scalebox, Next: \resizebox, Prev: \rotatebox, Up: Commands for graphics + +22.3.3 '\scalebox' +------------------ + +Synopses: + + \scalebox{HORIZONTAL FACTOR}{MATERIAL} + \scalebox{HORIZONTAL FACTOR}[VERTICAL FACTOR]{MATERIAL} + \reflectbox{MATERIAL} + + Scale the MATERIAL. + + This example halves the size, both horizontally and vertically, of +the first text and doubles the size of the second. + + \scalebox{0.5}{DRINK ME} and \scalebox{2.0}{Eat Me} + + If you do not specify the optional VERTICAL FACTOR then it defaults +to the same value as the HORIZONTAL FACTOR. + + You can use this command to resize a graphic, as here. + + \scalebox{0.5}{\includegraphics{lion}} + +If you use the 'graphicx' package then you can accomplish the same thing +with optional arguments to '\includegraphics' (*note +\includegraphics::). + + The '\reflectbox' command abbreviates '\scalebox{-1}[1]{MATERIAL}'. +Thus, 'Able was I\reflectbox{Able was I}' will show the phrase 'Able was +I' immediately followed by its mirror reflection against a vertical +axis. + + +File: latex2e.info, Node: \resizebox, Prev: \scalebox, Up: Commands for graphics + +22.3.4 '\resizebox' +------------------- + +Synopses: + + \resizebox{HORIZONTAL LENGTH}{VERTICAL LENGTH}{MATERIAL} + \resizebox*{HORIZONTAL LENGTH}{VERTICAL LENGTH}{MATERIAL} + + Given a size, such as '3cm', transform MATERIAL to make it that size. +If either HORIZONTAL LENGTH or VERTICAL LENGTH is an exclamation +point '!' then the other argument is used to determine a scale factor +for both directions. + + This example makes the graphic be a half inch wide and scales it +vertically by the same factor to keep it from being distorted. + + \resizebox{0.5in}{!}{\includegraphics{lion}} + + The unstarred form '\resizebox' takes VERTICAL LENGTH to be the box's +height while the starred form '\resizebox*' takes it to be height+depth. +For instance, make the text have a height+depth of a quarter-inch with +'\resizebox*{!}{0.25in}{\parbox{3.5in}{This box has both height and +depth.}}'. + + You can use '\depth', '\height', '\totalheight', and '\width' to +refer to the original size of the box. Thus, make the text two inches +wide but keep the original height with '\resizebox{2in}{\height}{Two +inches}'. + + +File: latex2e.info, Node: Special insertions, Next: Splitting the input, Prev: Graphics, Up: Top + +23 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 '# $ % & { } _ ~ ^ \' +* Upper and lower case:: Make text upper or lower case. +* Symbols by font position:: Inserting font symbols by number. +* Text symbols:: Inserting other non-letter symbols in text. +* Accents:: Inserting accents. +* Additional Latin letters:: Inserting other non-English characters. +* inputenc package:: Set the input file text encoding. +* \rule:: Inserting lines and rectangles. +* \today:: Inserting today's date. + + +File: latex2e.info, Node: Reserved characters, Next: Upper and lower case, Up: Special insertions + +23.1 Reserved characters +======================== + +LaTeX sets aside the following characters for special purposes. For +example, the percent sign '%' is for comments. They are called +"reserved characters" or "special characters". They are all discussed +elsewhere in this manual. + + # $ % & { } _ ~ ^ \ + + If you want a reserved character to be printed as itself, in the text +body font, for all but the final three characters in that list simply +put a backslash '\' in front of the character. Thus, typing '\$1.23' +will produce '$1.23' in your output. + + As to the last three characters, to get a tilde in the text body font +use '\~{}' (omitting the curly braces would result in the next character +receiving a tilde accent). Similarly, to get a text body font +circumflex use '\^{}'. To get a backslash in the font of the text body, +enter '\textbackslash{}'. + + To produce the reserved characters in a typewriter font use '\verb!!' +as below (the double backslash '\\' is only there to split the lines in +the output). + + \begin{center} + \# \$ \% \& \{ \} \_ \~{} \^{} \textbackslash \\ + \verb!# $ % & { } _ ~ ^ \! + \end{center} + + +File: latex2e.info, Node: Upper and lower case, Next: Symbols by font position, Prev: Reserved characters, Up: Special insertions + +23.2 Upper and lower case +========================= + +Synopsis: + + \uppercase{TEXT} + \lowercase{TEXT} + \MakeUppercase{TEXT} + \MakeLowercase{TEXT} + + Change the case of characters. The TeX primitive commands +'\uppercase' and '\lowercase' are set up by default to work only with +the 26 letters a-z and A-Z. The LaTeX commands '\MakeUppercase' and +'\MakeLowercase' commands also change characters accessed by commands +such as '\ae' or '\aa'. The commands '\MakeUppercase' and +'\MakeLowercase' are robust but they have moving arguments (*note +\protect::). + + These commands do not change the case of letters used in the name of +a command within TEXT. But they do change the case of every other Latin +letter inside the argument TEXT. Thus, '\MakeUppercase{Let $y=f(x)$'} +produces 'LET Y=F(X)'. Another example is that the name of an +environment will be changed, so that '\MakeUppercase{\begin{tabular} ... +\end{tabular}}' will produce an error because the first half is changed +to '\begin{TABULAR}'. + + LaTeX uses the same fixed table for changing case throughout a +document, The table used is designed for the font encoding T1; this +works well with the standard TeX fonts for all Latin alphabets but will +cause problems when using other alphabets. + + To change the case of text that results from a macro inside TEXT you +need to do expansion. Here the '\Schoolname' produces 'COLLEGE OF +MATHEMATICS'. + + \newcommand{\schoolname}{College of Mathematics} + \newcommand{\Schoolname}{\expandafter\MakeUppercase + \expandafter{\schoolname}} + + The 'textcase' package brings some of the missing feature of the +standard LaTeX commands '\MakeUppercase' and '\MakeLowerCase'. + + To uppercase only the first letter of words, you can use the package +'mfirstuc'. + + Handling all the casing rules specified by Unicode, e.g., for +non-Latin scripts, is a much bigger job than anything envisioned in the +original TeX and LaTeX. It has been implemented in the 'expl3' package +as of 2020. The article "Case changing: From TeX primitives to the +Unicode algorithm", (Joseph Wright, 'TUGboat' 41:1, +<https://tug.org/TUGboat/tb41-1/tb127wright-case.pdf>), gives a good +overview of the topic, past and present. + + +File: latex2e.info, Node: Symbols by font position, Next: Text symbols, Prev: Upper and lower case, Up: Special insertions + +23.3 Symbols by font position +============================= + +You can access any character of the current font using its number with +the '\symbol' command. For example, the visible space character used in +the '\verb*' command has the code decimal 32 in the standard Computer +Modern typewriter font, so it can be typed as '\symbol{32}'. + + You can also specify numbers in octal (base 8) by using a ''' prefix, +or hexadecimal (base 16) with a '"' prefix, so the visible space at 32 +decimal could also be written as '\symbol{'40}' or '\symbol{"20}'. + + +File: latex2e.info, Node: Text symbols, Next: Accents, Prev: Symbols by font position, Up: Special insertions + +23.4 Text symbols +================= + +LaTeX provides commands to generate a number of non-letter symbols in +running text. Some of these, especially the more obscure ones, are not +available in OT1. As of the LaTeX February 2020 release, all symbols +are available by default; before that, it was necessary to use the +'textcomp' package for some (technically, those in the 'TS1' font +encoding). + +'\copyright' +'\textcopyright' + (C) The copyright symbol. + +'\dag' + † The dagger symbol (in text). + +'\ddag' + ‡ The double dagger symbol (in text). + +'\LaTeX' + The LaTeX logo. + +'\LaTeXe' + The LaTeX2e logo. + +'\guillemotleft («)' +'\guillemotright (»)' +'\guilsinglleft (‹)' +'\guilsinglright (›)' + «, », ‹, › Double and single angle quotation marks, commonly used + in French. + +'\ldots' +'\dots' +'\textellipsis' + ... An ellipsis (three dots at the baseline): '\ldots' and '\dots' + also work in math mode. + +'\lq' + ' Left (opening) quote. + +'\P' +'\textparagraph' + ¶ Paragraph sign (pilcrow). + +'\pounds' +'\textsterling' + £ English pounds sterling. + +'\quotedblbase („)' +'\quotesinglbase (‚)' + „ and ‚ Double and single quotation marks on the baseline. + +'\rq' + ' Right (closing) quote. + +'\S' +'\textsection' + § Section sign. + +'\TeX' + The TeX logo. + +'\textasciicircum' + ^ ASCII circumflex. + +'\textasciitilde' + ~ ASCII tilde. + +'\textasteriskcentered' + * Centered asterisk. + +'\textbackslash' + \ Backslash. + +'\textbar' + | Vertical bar. + +'\textbardbl' + ⏸ Double vertical bar. + +'\textbigcircle' + ◯, Big circle symbol. + +'\textbraceleft' + { Left brace. + +'\textbraceright' + } Right brace. + +'\textbullet' + * Bullet. + +'\textcircled{LETTER}' + Ⓐ, Circle around LETTER. + +'\textcompwordmark' +'\textcapitalcompwordmark' +'\textascendercompwordmark' + Used to separate letters that would normally ligature. For + example, 'f\textcompwordmark i' produces 'fi' without a ligature. + This is most useful in non-English languages. The + '\textcapitalcompwordmark' form has the cap height of the font + while the '\textascendercompwordmark' form has the ascender height. + +'\textdagger' + † Dagger. + +'\textdaggerdbl' + ‡ Double dagger. + +'\textdollar (or '\$')' + $ Dollar sign. + +'\textemdash (or '---')' + -- Em-dash. Used for punctuation, usually similar to commas or + parentheses, as in ''The playoffs---if you're lucky enough to make + the playoffs---are more like a sprint.'' Conventions for spacing + around em-dashes vary widely. + +'\textendash (or '--')' + - En-dash. Used for ranges, as in ''see pages 12--14''. + +'\texteuro' + + The Euro currency symbol: €. + + For an alternative glyph design, try the 'eurosym' package; also, + most fonts nowadays come with their own Euro symbol (Unicode + U+20AC). + +'\textexclamdown (or '!`')' + ¡ Upside down exclamation point. + +'\textfiguredash' + Dash used between numerals, Unicode U+2012. Defined in the June + 2021 release of LaTeX. When used in pdfTeX, approximated by an + en-dash; with a Unicode engine, either typesets the glyph if + available in the current font, or writes the usual "Missing + character" warning to the log file. + +'\textgreater' + > Greater than symbol. + +'\texthorizontalbar' + Horizontal bar character, Unicode U+2015. Defined in the June 2021 + release of LaTeX. Behavior as with '\textfiguredash' above; the + pdfTeX approximation is an em-dash. + +'\textless' + < Less than symbol. + +'\textleftarrow' + ←, Left arrow. + +'\textnonbreakinghyphen' + Non-breaking hyphen character, Unicode U+2011. Defined in the June + 2021 release of LaTeX. Behavior as with '\textfiguredash' above; + the pdfTeX approximation is a regular ASCII hyphen (with breaks + disallowed after). + +'\textordfeminine' +'\textordmasculine' + ª, º Feminine and masculine ordinal symbols. + +'\textperiodcentered' + · Centered period. + +'\textquestiondown (or '?`')' + ¿ Upside down question mark. + +'\textquotedblleft (or '``')' + " Double left quote. + +'\textquotedblright (or '''')' + " Double right quote. + +'\textquoteleft (or '`')' + ' Single left quote. + +'\textquoteright (or ''')' + ' Single right quote. + +'\textquotesingle' + ', Straight single quote. (From TS1 encoding.) + +'\textquotestraightbase' +'\textquotestraightdblbase' + Single and double straight quotes on the baseline. + +'\textregistered' + (R) Registered symbol. + +'\textrightarrow' + →, Right arrow. + +'\textthreequartersemdash' + ﹘, "Three-quarters" em-dash, between en-dash and em-dash. + +'\texttrademark' + ™ Trademark symbol. + +'\texttwelveudash' + ﹘, "Two-thirds" em-dash, between en-dash and em-dash. + +'\textunderscore' + _ Underscore. + +'\textvisiblespace' + ␣, Visible space symbol. + + +File: latex2e.info, Node: Accents, Next: Additional Latin letters, Prev: Text symbols, Up: Special insertions + +23.5 Accents +============ + +LaTeX has wide support for many of the world's scripts and languages, +provided through the core 'babel' package, which supports pdfLaTeX, +XeLaTeX and LuaLaTeX. The 'polyglossia' package provides similar +support with the latter two engines. + + This section does not cover that support. It only lists the core +LaTeX commands for creating accented characters. The '\capital...' +commands shown here produce alternative forms for use with capital +letters. These are not available with OT1. + + Below, to make them easier to find, the accents are all illustrated +with lowercase 'o'. + + Note that '\i' produces a dotless i, and '\j' produces a dotless j. +These are often used in place of their dotted counterparts when they are +accented. + +'\"' +'\capitaldieresis' + ö Umlaut (dieresis). + +'\'' +'\capitalacute' + ó Acute accent. + +'\.' + ȯ Dot accent. + +'\=' +'\capitalmacron' + ō Macron (overbar) accent. + +'\^' +'\capitalcircumflex' + ô Circumflex (hat) accent. + +'\`' +'\capitalgrave' + ò Grave accent. + +'\~' +'\capitaltilde' + ñ Tilde accent. + +'\b' + o̲ Bar accent underneath. + + Related to this, '\underbar{TEXT}' produces a bar under TEXT. The + argument is always processed in LR mode (*note Modes::). The bar + is always a fixed position under the baseline, thus crossing + through descenders. See also '\underline' in *note Math + miscellany::. + +'\c' +'\capitalcedilla' + ç Cedilla accent underneath. + +'\d' +'\capitaldotaccent' + ọ Dot accent underneath. + +'\H' +'\capitalhungarumlaut' + ő Long Hungarian umlaut accent. + +'\k' +'\capitalogonek' + ǫ Ogonek. Not available in the OT1 encoding. + +'\r' +'\capitalring' + o̊ Ring accent. + +'\t' +'\capitaltie' +'\newtie' +'\capitalnewtie' + Tie-after accent (used for transliterating from Cyrillic, such as + in the ALA-LC romanization). It expects that the argument has two + characters. The '\newtie' form is centered in its box. + +'\u' +'\capitalbreve' + ŏ Breve accent. + +'\v' +'\capitalcaron' + ǒ Háček (check, caron) accent. + +* Menu: + +* \accent:: Low level command to produce an accented character. + + +File: latex2e.info, Node: \accent, Up: Accents + +23.5.1 '\accent' +---------------- + +Synopsis: + + \accent NUMBER CHARACTER + + A TeX primitive command used to generate accented characters from +accent marks and letters. The accent mark is selected by NUMBER, a +numeric argument, followed by a space and then a CHARACTER argument to +construct the accented character in the current font. + + These are accented 'e' characters. + + \accent18 e + \accent20 e + \accent21 e + \accent22 e + \accent23 e + +The first is a grave, the second a caron, the third a breve, the fourth +a macron, and the fifth a ring above. + + The position of the accent is determined by the font designer and so +the outcome of '\accent' use may differ between fonts. In LaTeX it is +desirable to have glyphs for accented characters rather than building +them using '\accent'. Using glyphs that already contain the accented +characters (as in T1 encoding) allows correct hyphenation whereas +'\accent' disables hyphenation (specifically with OT1 font encoding +where accented glyphs are absent). + + There can be an optional font change between NUMBER and CHARACTER. +Note also that this command sets the '\spacefactor' to 1000 (*note +\spacefactor::). + + An unavoidable characteristic of some Cyrillic letters and the +majority of accented Cyrillic letters is that they must be assembled +from multiple elements (accents, modifiers, etc.) while '\accent' +provides for a single accent mark and a single letter combination. +There are also cases where accents must appear between letters that +\accent does not support. Still other cases exist where the letters I +and J have dots above their lowercase counterparts that conflict with +dotted accent marks. The use of '\accent' in these cases will not work +as it cannot analyze upper/lower case. + + +File: latex2e.info, Node: Additional Latin letters, Next: inputenc package, Prev: Accents, Up: Special insertions + +23.6 Additional Latin letters +============================= + +Here are the basic LaTeX commands for inserting letters beyond A-Z that +extend the Latin alphabet, used primarily in languages other than +English. + +'\aa' +'\AA' + å and Å. + +'\ae' +'\AE' + æ and Æ. + +'\dh' +'\DH' + Icelandic letter eth: ð and Ð. Not available with OT1 encoding, you + need the 'fontenc' package to select an alternate font encoding, + such as T1. + +'\dj' +'\DJ' + Crossed d and D, a.k.a. capital and small letter d with stroke. + Not available with OT1 encoding, you need the 'fontenc' package to + select an alternate font encoding, such as T1. + +'\ij' +'\IJ' + ij and IJ (except somewhat closer together than appears here). + +'\l' +'\L' + ł and Ł. + +'\ng' +'\NG' + Lappish letter eng, also used in phonetics. + +'\o' +'\O' + ø and Ø. + +'\oe' +'\OE' + œ and Œ. + +'\ss' +'\SS' + ß and SS. + +'\th' +'\TH' + Icelandic letter thorn: þ and Þ. Not available with OT1 encoding, + you need the 'fontenc' package to select an alternate font + encoding, such as T1. + + +File: latex2e.info, Node: inputenc package, Next: \rule, Prev: Additional Latin letters, Up: Special insertions + +23.7 'inputenc' package +======================= + +Synopsis: + + \usepackage[ENCODING-NAME]{inputenc} + + Declare the input file's text encoding to be ENCODING-NAME. The +default, if this package is not loaded, is UTF-8. Technically, +specifying the encoding name is optional, but in practice it is not +useful to omit it. + + In a computer file, the characters are stored according to a scheme +called the "encoding". There are many different encodings. The +simplest is ASCII, which supports 95 printable characters, not enough +for most of the world's languages. For instance, to typeset the +a-umlaut character 'ä' in an ASCII-encoded LaTeX source file, the +sequence '\"a' is used. This would make source files for anything but +English hard to read; even for English, often a more extensive encoding +is more convenient. + + The modern encoding standard, in some ways a union of the others, is +UTF-8, one of the representations of Unicode. This is the default for +LaTeX since 2018. + + The 'inputenc' package is how LaTeX knows what encoding is used. For +instance, the following command explicitly says that the input file is +UTF-8 (note the lack of a dash). + + \usepackage[utf8]{inputenc} + + Caution: use 'inputenc' only with the pdfTeX engine (*note TeX +engines::). (The XeTeX and LuaTeX engines assume that the input file is +UTF-8 encoded.) If you invoke LaTeX with either the 'xelatex' command +or the 'lualatex' command, and try to declare a non-UTF-8 encoding with +'inputenc', such as 'latin1', then you will get the error 'inputenc is +not designed for xetex or luatex'. + + An 'inputenc' package error such as 'Invalid UTF-8 byte "96' means +that some of the material in the input file does not follow the encoding +scheme. Often these errors come from copying material from a document +that uses a different encoding than the input file; this one is a left +single quote from a web page using 'latin1' inside a LaTeX input file +that uses UTF-8. The simplest solution is to replace the non-UTF-8 +character with its UTF-8 equivalent, or use a LaTeX equivalent command +or character. + + In some documents, such as a collection of journal articles from a +variety of authors, changing the encoding in mid-document may be +necessary. Use the command '\inputencoding{ENCODING-NAME}'. The most +common values for ENCODING-NAME are: 'ascii', 'latin1', 'latin2', +'latin3', 'latin4', 'latin5', 'latin9', 'latin10', and 'utf8'. + + +File: latex2e.info, Node: \rule, Next: \today, Prev: inputenc package, Up: Special insertions + +23.8 '\rule' +============ + +Synopsis, one of: + + \rule{WIDTH}{THICKNESS} + \rule[RAISE]{WIDTH}{THICKNESS} + + Produce a "rule", a filled-in rectangle. + + This example produces a rectangular blob, sometimes called a Halmos +symbol, or just "qed", often used to mark the end of a proof: + + \newcommand{\qedsymbol}{\rule{0.4em}{2ex}} + +The 'amsthm' package includes this command, with a somewhat +different-looking symbol. + + The mandatory arguments give the horizontal WIDTH and vertical +THICKNESS of the rectangle. They are rigid lengths (*note Lengths::). +The optional argument RAISE is also a rigid length, and tells LaTeX how +much to raise the rule above the baseline, or lower it if the length is +negative. + + This produces a line, a rectangle that is wide but not tall. + + \noindent\rule{\textwidth}{0.4pt} + +The line is the width of the page and 0.4 points tall. This line +thickness is common in LaTeX. + + A rule that has zero width, or zero thickness, will not show up in +the output, but can cause LaTeX to change the output around it. *Note +\strut::, for examples. + + +File: latex2e.info, Node: \today, Prev: \rule, Up: Special insertions + +23.9 '\today' +============= + +Synopsis: + + \today + + Produce today's date in the format 'MONTH DD, YYYY'. An example of a +date in that format is 'July 4, 1976'. + + Multilingual packages such as 'babel' or 'polyglossia', or classes +such as 'lettre', will localize '\today'. For example, the following +will output '4 juillet 1976': + + \year=1976 \month=7 \day=4 + \documentclass{minimal} + \usepackage[french]{babel} + \begin{document} + \today + \end{document} + +'\today' uses the counters '\day', '\month', and '\year' (*note \day & +\month & \year::). + + A number of package on CTAN work with dates. One is 'datetime' +package which can produce a wide variety of date formats, including ISO +standards. + + The date is not updated as the LaTeX process runs, so in principle +the date could be incorrect by the time the program finishes. + + +File: latex2e.info, Node: Splitting the input, Next: Front/back matter, Prev: Special insertions, Up: Top + +24 Splitting the input +********************** + +LaTeX lets you split a large document into several smaller ones. This +can simplify editing or allow multiple authors to work on the document. +It can also speed processing. + + Regardless of how many separate files you use, there is always one +"root file", on which LaTeX compilation starts. This shows such a file +with five included files. + + \documentclass{book} + \includeonly{ % comment out lines below to omit compiling + pref, + chap1, + chap2, + append, + bib + } + \begin{document} + \frontmatter + \include{pref} + \mainmatter + \include{chap1} + \include{chap2} + \appendix + \include{append} + \backmatter + \include{bib} + \end{document} + +This will bring in material from 'pref.tex', 'chap1.tex', 'chap2.tex', +'append.tex', and 'bib.tex'. If you compile this file, and then comment +out all of the lines inside '\includeonly{...}' except for 'chap1', and +compile again, then LaTeX will only process the material in the first +chapter. Thus, your output will appear more quickly and be shorter to +print. However, the advantage of the '\includeonly' command is that +LaTeX will retain the page numbers and all of the cross reference +information from the other parts of the document so these will appear in +your output correctly. + + *Note Larger book template::, for another example of '\includeonly'. + +* Menu: + +* \endinput:: Stop including material from a file. +* \include & \includeonly:: Conditionally include files. +* \input:: Unconditionally include a file. + + +File: latex2e.info, Node: \endinput, Next: \include & \includeonly, Up: Splitting the input + +24.1 '\endinput' +================ + +Synopsis: + + \endinput + + When you '\include{filename}', inside 'filename.tex' the material +after '\endinput' will not be included. This command is optional; if +'filename.tex' has no '\endinput' then LaTeX will read all of the file. + + For example, suppose that a document's root file has '\input{chap1}' +and this is 'chap1.tex'. + + \chapter{One} + This material will appear in the document. + \endinput + This will not appear. + + This can be useful for putting documentation or comments at the end +of a file, or for avoiding junk characters that can be added if the file +is transmitted in the body of an email. It is also useful for +debugging: one strategy to localize errors is to put '\endinput' halfway +through the included file and see if the error disappears. Now, knowing +which half contains the error, moving '\endinput' to halfway through +that area further narrows down the location. This process rapidly finds +the offending line. + + After reading '\endinput', LaTeX continues to read to the end of the +line, so something can follow this command and be read nonetheless. +This allows you, for instance, to close an '\if...' with a '\fi'. + + +File: latex2e.info, Node: \include & \includeonly, Next: \input, Prev: \endinput, Up: Splitting the input + +24.2 '\include' & '\includeonly' +================================ + +Synopsis: + + \includeonly{ % in document preamble + ... + FILENAME, + ... + } + ... + \include{FILENAME} % in document body + + Bring material from the external file 'FILENAME.tex' into a LaTeX +document. + + The '\include' command does three things: it executes '\clearpage' +(*note \clearpage & \cleardoublepage::), then it inputs the material +from 'FILENAME.tex' into the document, and then it does another +'\clearpage'. This command can only appear in the document body. + + The '\includeonly' command controls which files will be read by LaTeX +under subsequent '\include' commands. Its list of filenames is +comma-separated. It must appear in the preamble or even earlier, e.g., +the command line; it can't appear in the document body. + + This example root document, 'constitution.tex', brings in three +files, 'preamble.tex', 'articles.tex', and 'amendments.tex'. + + \documentclass{book} + \includeonly{ + preamble, + articles, + amendments + } + \begin{document} + \include{preamble} + \include{articles} + \include{amendments} + \end{document} + +The file 'preamble.tex' contains no special code; you have just +excerpted the chapter from 'consitution.tex' and put it in a separate +file just for editing convenience. + + \chapter{Preamble} + We the People of the United States, + in Order to form a more perfect Union, ... + +Running LaTeX on 'constitution.tex' makes the material from the three +files appear in the document but also generates the auxiliary files +'preamble.aux', 'articles.aux', and 'amendments.aux'. These contain +information such as page numbers and cross-references (*note Cross +references::). If you now comment out '\includeonly''s lines with +'preamble' and 'amendments' and run LaTeX again then the resulting +document shows only the material from 'articles.tex', not the material +from 'preamble.tex' or 'amendments.tex'. Nonetheless, all of the +auxiliary information from the omitted files is still there, including +the starting page number of the chapter. + + If the document preamble does not have '\includeonly' then LaTeX will +include all the files you call for with '\include' commands. + + The '\include' command makes a new page. To avoid that, see *note +\input:: (which, however, does not retain the auxiliary information). + + *Note Larger book template::, for another example using '\include' +and '\includeonly'. That example also uses '\input' for some material +that will not necessarily start on a new page. + + File names can involve paths. + + \documentclass{book} + \includeonly{ + chapters/chap1, + } + \begin{document} + \include{chapters/chap1} + \end{document} + + To make your document portable across distributions and platforms you +should avoid spaces in the file names. The tradition is to instead use +dashes or underscores. Nevertheless, for the name 'amo amas amat', this +works under TeX Live on GNU/Linux: + + \documentclass{book} + \includeonly{ + "amo\space amas\space amat" + } + \begin{document} + \include{"amo\space amas\space amat"} + \end{document} + + and this works under MiKTeX on Windows: + + \documentclass{book} + \includeonly{ + {"amo amas amat"} + } + \begin{document} + \include{{"amo amas amat"}} + \end{document} + + You cannot use '\include' inside a file that is being included or you +get 'LaTeX Error: \include cannot be nested.' The '\include' command +cannot appear in the document preamble; you will get 'LaTeX Error: +Missing \begin{document}'. + + If a file that you '\include' does not exist, for instance if you +'\include{athiesm}' but you meant '\include{atheism}', then LaTeX does +not give you an error but will warn you 'No file athiesm.tex.' (It will +also create 'athiesm.aux'.) + + If you '\include' the root file in itself then you first get 'LaTeX +Error: Can be used only in preamble.' Later runs get 'TeX capacity +exceeded, sorry [text input levels=15]'. To fix this, you must remove +the inclusion '\include{ROOT}' but also delete the file 'ROOT.aux' and +rerun LaTeX. + + +File: latex2e.info, Node: \input, Prev: \include & \includeonly, Up: Splitting the input + +24.3 '\input' +============= + +Synopsis: + + \input{FILENAME} + + LaTeX processes the file as if its contents were inserted in the +current file. For a more sophisticated inclusion mechanism see *note +\include & \includeonly::. + + If FILENAME does not end in '.tex' then LaTeX first tries the +filename with that extension; this is the usual case. If FILENAME ends +with '.tex' then LaTeX looks for the filename as it is. + + For example, this + + \input{macros} + +will cause LaTeX to first look for 'macros.tex'. If it finds that file +then it processes its contents as thought they had been copy-pasted in. +If there is no file of the name 'macros.tex' then LaTeX tries the name +'macros', without an extension. (This may vary by distribution.) + + To make your document portable across distributions and platforms you +should avoid spaces in the file names. The tradition is to instead use +dashes or underscores. Nevertheless, for the name 'amo amas amat', this +works under TeX Live on GNU/Linux: + + \input{"amo\space amas\space amat"} + + and this works under MiKTeX on Windows: + + \input{{"amo amas amat"}} + + +File: latex2e.info, Node: Front/back matter, Next: Letters, Prev: Splitting the input, Up: Top + +25 Front/back matter +******************** + +* Menu: + +* Table of contents etc.:: Table of contents, list of figures, list of tables. +* Indexes:: Generate an index. +* Glossaries:: Generate a glossary. + + +File: latex2e.info, Node: Table of contents etc., Next: Indexes, Up: Front/back matter + +25.1 Table of contents, list of figures, list of tables +======================================================= + +Synopsis, one of: + + \tableofcontents + \listoffigures + \listoftables + + Produce a table of contents, or list of figures, or list of tables. +Put the command in the input file where you want the table or list to +go. You do not type the entries; for example, typically the table of +contents entries are automatically generated from the sectioning +commands '\chapter', etc. + + This example illustrates the first command, '\tableofcontents'. +LaTeX will produce a table of contents on the book's first page. + + \documentclass{book} + % \setcounter{tocdepth}{1} + \begin{document} + \tableofcontents\newpage + ... + \chapter{...} + ... + \section{...} + ... + \subsection{...} + ... + \end{document} + +Uncommenting the second line would cause that table to contain chapter +and section listings but not subsection listings, because the '\section' +command has level 1. *Note Sectioning::, for level numbers of the +sectioning units. For more on the 'tocdepth' *note +Sectioning/tocdepth::. + + Another example of the use of '\tableofcontents' is in *note Larger +book template::. + + If you want a page break after the table of contents, write a +'\newpage' command after the '\tableofcontents' command, as above. + + To make the table of contents, LaTeX stores the information in an +auxiliary file named 'ROOT-FILE.toc' (*note Splitting the input::). For +example, this LaTeX file 'test.tex' + + \documentclass{article} + \begin{document} + \tableofcontents\newpage + \section{First section} + \subsection{First subsection} + ... + +writes these lines to 'test.toc'. + + \contentsline {section}{\numberline {1}First section}{2} + \contentsline {subsection}{\numberline {1.1}First subsection}{2} + +Each line contains a single command, '\contentsline' (*note +\contentsline::). The first argument, the 'section' or 'subsection', is +the sectioning unit. The second argument has two components. The hook +'\numberline' determines how the sectioning number, '1' or '1.1', +appears in the table of contents (*note \numberline::). The remainder +of the second argument of '\contentsline', 'First section' or 'First +subsection', is the sectioning title text. Finally, the third argument, +'2', is the page number on which this sectioning unit starts. + + To typeset these lines, the document class provides '\l@SECTION-UNIT' +commands such as '\l@section{TEXT}{PAGENUMBER}' and +'\l@subsection{TEXT}{PAGENUMBER}'. These commands often use the +'\@dottedtocline' command (*note \@dottedtocline::). + + A consequence of LaTeX's strategy of using auxiliary files is that to +get the correct information in the document you must run LaTeX twice, +once to store the information and the second time to retrieve it. In +the ordinary course of writing a document authors run LaTeX a number of +times, but you may notice that the first time that you compile a new +document, the table of contents page will be empty except for its +'Contents' header. Just run LaTeX again. + + The commands '\listoffigures' and '\listoftables' produce a list of +figures and a list of tables. Their information is stored in files with +extension '.lof' and '.lot'. They work the same way as +'\tableofcontents' but the latter is more common, so we use it for most +examples. + + You can manually add material to the table of contents, the list of +figures, and the list of tables. For instance, add a line about a +section to the table of contents with +'\addcontentsline{toc}{section}{TEXT}'. (*note \addcontentsline::). +Add arbitrary material, that is, non-line material, with +'\addtocontents', as with the command +'\addtocontents{lof}{\protect\vspace{2ex}}', which adds vertical space +to the list of figures (*note \addtocontents::). + + Lines in the table of contents, the list of figures, and the list of +tables, have four parts. First is an indent. Next is a box into which +sectioning numbers are placed, and then the third box holds the title +text, such as 'First section'. Finally there is a box up against the +right margin, inside of which LaTeX puts the page number box. For the +indent and the width of the number box, *note \@dottedtocline::. The +right margin box has width '\@tocrmarg' and the page number is flush +right in that space, inside a box of width '\@pnumwidth'. By default +'\@tocrmarg' is '2.55em' and '\@pnumwidth' is '1.55em'. Change these as +with '\renewcommand{\@tocrmarg}{3.5em}'. + + CTAN has many packages for the table of contents and lists of figures +and tables (*note CTAN::). The package 'tocloft' is convenient for +adjusting some aspects of the default such as spacing. And, +'tocbibbind' will automatically add the bibliography, index, etc. to +the table of contents. + + To change the header for the table of contents page, do something +like these commands before you call '\tableofcontents', etc. + + \renewcommand{\contentsname}{Table of Contents} + \renewcommand{\listfigurename}{Plots} + \renewcommand{\listtablename}{Specifications} + + + Internationalization packages such as 'babel' or 'polyglossia' will +change these headers depending on the chosen base language. + +* Menu: + +* \@dottedtocline:: Format entry line in table of contents, etc. +* \addcontentsline:: Add an entry to table of contents, etc. +* \addtocontents:: Add text directly to table of contents file, etc. +* \contentsline:: Set line in table of contents, etc. +* \nofiles:: Prevent writing to auxiliary files. +* \numberline:: Put its number argument flush left in a box. + + +File: latex2e.info, Node: \@dottedtocline, Next: \addcontentsline, Up: Table of contents etc. + +25.1.1 '\@dottedtocline' +------------------------ + +Synopsis: + + \@dottedtocline{SECTION-LEVEL-NUM}{INDENT}{NUMWIDTH}{TEXT}{PAGENUMBER} + + Used internally by LaTeX to format an entry line in the table of +contents, list of figures, or list of tables. Authors do not directly +enter '\@dottedtocline' commands. + + This command is typically used by '\l@section', '\l@subsection', +etc., to format the content lines. For example, the 'article.cls' file +contains these definitions: + + \newcommand*\l@section{\@dottedtocline{1}{1.5em}{2.3em}} + \newcommand*\l@subsection{\@dottedtocline{2}{3.8em}{3.2em}} + \newcommand*\l@subsubsection{\@dottedtocline{3}{7.0em}{4.1em}} + +In this example, '\@dottedcline' appears to have been given only three +arguments. But tracing the internal code shows that it picks up the +final TEXT and PAGENUMBER arguments in the synopsis from a call to +'\contentsline' (*note \contentsline::). + + Between the box for the title text of a section and the right margin +box, these '\@dottedtocline' commands insert "leaders", that is, +evenly-spaced dots. The dot-to-dot space is given by the command +'\@dotsep'. By default it is 4.5 (it is in math units, aka. 'mu', which +are '1/18' em. Change it using '\renewcommand', as in +'\renewcommand{\@dotsep}{3.5}'. + + In the standard 'book' class, LaTeX does not use dotted leaders for +the Part and Chapter table entries, and in the standard 'article' class +it does not use dotted leaders for Section entries. + + +File: latex2e.info, Node: \addcontentsline, Next: \addtocontents, Prev: \@dottedtocline, Up: Table of contents etc. + +25.1.2 '\addcontentsline' +------------------------- + +Synopsis: + + \addcontentsline{EXT}{UNIT}{TEXT} + + Add an entry to the auxiliary file with extension EXT. + + The following will result in an 'Appendices' line in the table of +contents. + + \addcontentsline{toc}{section}{\protect\textbf{Appendices}} + +It will appear at the same indentation level as the sections, will be in +boldface, and will be assigned the page number associated with the point +where the command appears in the input file. + + The '\addcontentsline' command writes information to the file +'ROOT-NAME.EXT', where ROOT-NAME is the file name of the root file +(*note Splitting the input::). It writes that information as the text +of the command '\contentsline{UNIT}{TEXT}{NUM}', where 'NUM' is the +current value of counter 'UNIT' (*note \contentsline::). The most +common case is the table of contents and there NUM is the page number of +the first page of UNIT. + + This command is invoked by the sectioning commands '\chapter', etc. +(*note Sectioning::), and also by '\caption' inside a float environment +(*note Floats::). But it is also directly used by authors. For +example, an author writing a book whose style is to have an unnumbered +preface may use the starred '\chapter*'. But that command leaves out +table of contents information, which can be entered manually, as here. + + \chapter*{Preface} + \addcontentsline{toc}{chapter}{\protect\numberline{}Preface} + +In the 'ROOT-NAME.toc' file LaTeX will put the line '\contentsline +{chapter}{\numberline {}Preface}{3}'; note that the page number '3' is +automatically generated by the system, not entered manually. + + All of the arguments for '\addcontentsline' are required. + +EXT + Typically one of the strings 'toc' for the table of contents, 'lof' + for the list of figures, or 'lot' for the list of tables. The + filename extension of the information file. + +UNIT + A string that depends on the value of the EXT argument, typically + one of: + + 'toc' + For the table of contents, this is the name of a sectional + unit: 'part', 'chapter', 'section', 'subsection', etc. + + 'lof' + For the list of figures: 'figure'. + + 'lot' + For the list of tables: 'table'. + +TEXT + The text of the entry. You must '\protect' any fragile commands + (*note \protect::) used in it. + + The '\addcontentsline' command has an interaction with '\include' +(*note \include & \includeonly::). If you use them at the same level, +as with '\addcontentsline{...}{...}{...}\include{...}' then lines in the +table of contents can come out in the wrong order. The solution is to +move '\addcontentsline' into the file being included. + + If you use a UNIT that LaTeX does not recognize, as with the typo +here + + \addcontentsline{toc}{setcion}{\protect\textbf{Appendices}} + +then you don't get an error but the formatting in the table of contents +will not make sense. + + +File: latex2e.info, Node: \addtocontents, Next: \contentsline, Prev: \addcontentsline, Up: Table of contents etc. + +25.1.3 '\addtocontents' +----------------------- + +Synopsis: + + \addtocontents{EXT}{TEXT} + + Add TEXT, which may be text or formatting commands, directly to the +auxiliary file with extension EXT. This is most commonly used for the +table of contents so that is the discussion here, but it also applies to +the list of figures and list of tables. + + This will put some vertical space in the table of contents after the +'Contents' header. + + \tableofcontents\newpage + \addtocontents{toc}{\protect\vspace*{3ex}} + +This puts the word 'Page', in boldface, above the column of page numbers +and after the header. + + \tableofcontents + \addtocontents{toc}{~\hfill\textbf{Page}\par} + \chapter{...} + +This adds a line announcing work by a new author. + + \addtocontents{toc}{% + \protect\vspace{2ex} + \textbf{Chapters by N. Other Author}\par} + + The difference between '\addtocontents' and '\addcontentsline' is +that the latter is strictly for lines, such as with a line giving the +page number for the start of a new subset of the chapters. As the above +examples show, '\addtocontents' is for material such as spacing. + + The '\addtocontents' command has two arguments. Both are required. + +EXT + Typically one of: 'toc' for the table of contents, 'lof' for the + list of figures, or 'lot' for the list of tables. The extension of + the file holding the information. + +TEXT + The text, and possibly commands, to be written. + + The sectioning commands such as '\chapter' use the '\addcontentsline' +command to store information. This command creates lines in the '.toc' +auxiliary file containing the '\contentsline' command (*note +\addcontentsline::). In contrast, the command '\addtocontents' puts +material directly in that file. + + The '\addtocontents' command has an interaction with '\include' +(*note \include & \includeonly::). If you use them at the same level, +as with '\addtocontents{...}{...}\include{...}' then lines in the table +of contents can come out in the wrong order. The solution is to move +'\addtocontents' into the file being included. + + +File: latex2e.info, Node: \contentsline, Next: \nofiles, Prev: \addtocontents, Up: Table of contents etc. + +25.1.4 '\contentsline' +---------------------- + +Synopsis: + + \contentsline{UNIT}{TEXT}{PAGENUMBER} + + Used internally by LaTeX to typeset an entry of the table of +contents, list of figures, or list of tables (*note Table of contents +etc.::). Authors do not directly enter '\contentsline' commands. + + Usually adding material to these lists is done automatically by the +commands '\chapter', '\section', etc. for the table of contents, or by +the '\caption' command inside of a '\figure' or '\table' environment +(*note figure:: and *note table::). Thus, where the root file is +'thesis.tex', and contains the declaration '\tableofcontents', the +command '\chapter{Chapter One}' produces something like this in the file +'thesis.toc'. + + \contentsline {chapter}{\numberline {1}Chapter One}{3} + + If the file contains the declaration '\listoffigures' then a figure +environment involving '\caption{Test}' will produce something like this +in 'thesis.lof'. + + \contentsline {figure}{\numberline {1.1}{\ignorespaces Test}}{6} + + To manually add material, use +'\addcontentsline{FILETYPE}{UNIT}{TEXT}', where FILETYPE is 'toc', +'lof', or 'lot' (*note \addcontentsline::). + + For manipulating how the '\contentline' material is typeset, see the +'tocloft' package. + + Note that the 'hyperref' package changes the definition of +'\contentsline' (and '\addcontentsline') to add more arguments, to make +hyperlinks. This is the source of the error 'Argument of \contentsline +has an extra }' when one adds/remove the use of package 'hyperref' and a +compilation was already run. Fix this error by deleting the '.toc' or +'.lof' or '.lot' file, and running LaTeX again. + + +File: latex2e.info, Node: \nofiles, Next: \numberline, Prev: \contentsline, Up: Table of contents etc. + +25.1.5 '\nofiles' +----------------- + +Synopsis: + + \nofiles + + Prevent LaTeX from writing any auxiliary files. The only output will +be the '.log' and '.pdf' (or '.dvi') files. This command must go in the +preamble. + + Because of the '\nofiles' command this example will not produce a +'.toc' file. + + \documentclass{book} + \nofiles + \begin{document} + \tableofcontents\newpage + \chapter{...} + ... + +LaTeX will not erase any existing auxiliary files, so if you insert the +'\nofiles' command after you have run the file and gotten a '.toc' then +the table of contents page will continue to show the old information. + + +File: latex2e.info, Node: \numberline, Prev: \nofiles, Up: Table of contents etc. + +25.1.6 '\numberline' +-------------------- + +Synopsis: + + \numberline{NUMBER} + + Typeset its argument flush left in a box. This is used in a +'\contentsline' command to typeset the section number (*note +\contentsline::). + + For example, this line in a '.toc' file causes the '1.1' to be +typeset flush left. + + \contentsline {subsection}{\numberline {1.1}Motivation}{2} + + By default, LaTeX typesets the section numbers in a box of length +'\@tempdima'. That length is set by the commands '\l@section', +'\l@subsection', etc. Put section numbers inside a natural-width box +with '\renewcommand{\numberline}[1]{#1~}' before '\tableofcontents'. + + This command is fragile so you may need to precede it with '\protect' +(*note \protect::). An example is the use of '\protect' in this +command, + + \addcontentsline{toc}{section}{\protect\numberline{}Summary} + +to get the '\numberline' into the '\contentsline' command in the '.toc' +file: '\contentsline {section}{\numberline {}Summary}{6}' (the page +number '6' is automatically added by LaTeX; *note \addcontentsline::). + + +File: latex2e.info, Node: Indexes, Next: Glossaries, Prev: Table of contents etc., Up: Front/back matter + +25.2 Indexes +============ + +If you tell LaTeX what terms you want to appear in an index then it can +produce that index, alphabetized and with the page numbers automatically +maintained. This illustrates the basics. + + \documentclass{article} + \usepackage{makeidx} % Provide indexing commands + \makeindex + % \usepackage{showidx} % Show marginal notes of index entries + ... + \begin{document} + ... + Wilson's Theorem\index{Wilson's Theorem} + says that a number $n>1$ is prime if and only if the factorial + of $n-1$ is congruent to $-1$ + modulo~$n$.\index{congruence!and Wilson's Theorem} + ... + \printindex + \end{document} + +As that shows, declare index entries with the '\index' command (*note +\index::). When you run LaTeX, the '\index' writes its information, +such as 'Wilson's Theorem' and the page number, to an auxiliary file +whose name ends in '.idx'. Next, to alphabetize and do other +manipulations, run an external command, typically 'makeindex' (*note +makeindex::), which writes a file whose name ends in '.ind'. Finally, +'\printindex' brings this manipulated information into the output (*note +\printindex::). + + Thus, if the above example is in the file 'numth.tex' then running +'pdflatex numth' will save index entry and page number information to +'numth.idx'. Then running 'makeindex numth' will alphabetize and save +the results to 'numth.ind'. Finally, again running 'pdflatex numth' +will show the desired index, at the place where the '\printindex' +command is in the source file. + + There are many options for the output. An example is that the +exclamation point in '\index{congruence!and Wilson's Theorem}' produces +a main entry of 'congruence' with a subentry of 'and Wilson's Theorem'. +For more, *note makeindex::. + + The '\makeindex' and '\printindex' commands are independent. Leaving +out the '\makeindex' will stop LaTeX from saving the index entries to +the auxiliary file. Leaving out the '\printindex' will cause LaTeX to +not show the index in the document output. + + There are many packages in the area of indexing. The 'showidx' +package causes each index entries to be shown in the margin on the page +where the '\index' appears. This can help in preparing the index. The +'multind' package, among others, supports multiple indexes. See also +the TeX FAQ entry on this topic, <https://www.texfaq.org/FAQ-multind>, +and the CTAN topic, <https://ctan.org/topic/index-multi>. + +* Menu: + +* Produce the index manually:: Alphabetize entries yourself. +* \index:: Declare an index entry. +* makeindex:: Alphabetize index entries automatically. +* \printindex:: Put the index here. + + +File: latex2e.info, Node: Produce the index manually, Next: \index, Up: Indexes + +25.2.1 Produce the index manually +--------------------------------- + +Documents that are small and static can have a manually produced index. +This will make a separate page labeled 'Index', in twocolumn format. + + \begin{theindex} + \item acorn squash, 1 + \subitem maple baked, 2 + \indexspace + \item bacon, 3 + \subitem maple baked, 4 + \end{theindex} + + Note that the author must enter the page numbers, which is tedious +and which will result in wrong numbers if the document changes. This is +why in most cases automated methods such as 'makeindex' are best. *Note +Indexes::. + + However we cover the commands for completeness, and because the +automated methods are based on these commands. There are three levels +of entries. As the example shows, a main entry uses '\item', subentries +use '\subitem', and the lowest level uses '\subsubitem'. Blank lines +between entries have no effect. The example above includes +'\indexspace' to produce vertical space in the output that some index +styles use before the first entry starting with a new letter. + + +File: latex2e.info, Node: \index, Next: makeindex, Prev: Produce the index manually, Up: Indexes + +25.2.2 '\index' +--------------- + +Synopsis: + + \index{INDEX-ENTRY-STRING} + + Declare an entry in the index. This command is fragile (*note +\protect::). + + For example, as described in *note Indexes::, one way to get an index +from what's below is to compile the document with 'pdflatex test', then +process the index entries with 'makeindex test', and then compile again +with 'pdflatex test'. + + % file test.tex + ... + W~Ackermann (1896--1962).\index{Ackermann} + ... + Ackermann function\index{Ackermann!function} + ... + rate of growth\index{Ackermann!function!growth rate} + +All three index entries will get a page number, such as 'Ackermann, 22'. +LaTeX will format the second as a subitem of the first, on the line +below it and indented, and the third as a subitem of the second. Three +levels deep is as far as you can nest subentries. (If you add +'\index{Ackermann!function!growth rate!comparison}' then 'makeindex' +says 'Scanning input file test.idx....done (4 entries accepted, 1 +rejected)' and the fourth level is silently missing from the index.) + + If you enter a second '\index' with the same INDEX-ENTRY-STRING then +you will get a single index entry with two page numbers (unless they +happen to fall on the same page). Thus, adding 'as for +Ackermann.\index{Ackermann}' later in the same document as above will +give an index entry like 'Ackermann, 22, 151'. Also, you can enter the +index entries in any order, so for instance '\index{Ackermann!function}' +could come before '\index{Ackermann}'. + + Get a page range in the output, like 'Hilbert, 23--27', as here. + + W~Ackermann (1896--1962).\index{Ackermann} + ... + D~Hilbert (1862--1943)\index{Ackermann!Hilbert|(} + ... + disapproved of his marriage.\index{Ackermann!Hilbert|)} + +If the beginning and ending of the page range are equal then the system +just gives a single page number, not a range. + + If you index subentries but not a main entry, as with +'\index{Jones!program}' and '\index{Jones!results}', then the output is +the item 'Jones' with no comma or page number, followed by two subitems, +like 'program, 50' and 'results, 51'. + + Generate a index entry that says 'see' by using a vertical bar +character: '\index{Ackermann!function|see{P\'eter's function}}'. You +can instead get 'see also' with 'seealso'. (The text 'see' is defined +by '\seename', and 'see also' by '\alsoname'. You can redefine these +either by using an internationalization package such as 'babel' or +'polyglossia', or directly as with '\renewcommand{\alsoname}{Also +see}'.) + + The 'see' feature is part of a more general functionality. After the +vertical bar you can put the name of a one-input command, as in +'\index{group|textit}' (note the missing backslash on the '\textit' +command) and the system will apply that command to the page number, here +giving something like '\textit{7}'. You can define your own one-input +commands, such as '\newcommand{\definedpage}[1]{{\color{blue}#1}}' and +then '\index{Ackermann!function|definedpage}' will give a blue page +number (*note Color::). Another, less practical, example is this, + + \newcommand\indexownpage[1]{#1, \thepage} + ... Epimenides.\index{self-reference|indexownpage} + +which creates an entry citing the page number of its own index listing. + + The two functions just described combine, as here + + \index{Ackermann!function|(definedpage} + ... + \index{Ackermann!function|)} + +which outputs an index entry like 'function, 23--27' where the page +number range is in blue. + + Consider an index entry such as 'α-ring'. Entering it as +'$\alpha$-ring' will cause it to be alphabetized according to the dollar +sign. You can instead enter it using an at-sign, as +'\index{alpha-ring@$\alpha$-ring}'. If you specify an entry with an +at-sign separating two strings, 'POS@TEXT', then POS gives the +alphabetical position of the entry while TEXT produces the text of the +entry. Another example is that '\index{Saint Michael's College@SMC}' +produces an index entry 'SMC' alphabetized into a different location +than its spelling would naturally give it. + + To put a '!', or '@', or '|', or '"' character in an index entry, +escape it by preceding it with a double quote, '"'. (The double quote +gets deleted before alphabetization.) + + A number of packages on CTAN have additional functionality beyond +that provided by 'makeidx'. One is 'index', which allows for multiple +indices and contains a command '\index*{INDEX-ENTRY-STRING}' that prints +the INDEX-ENTRY-STRING as well as indexing it. + + The '\index' command writes the indexing information to the file +'ROOT-NAME.idx' file. Specifically, it writes text of the command +'\indexentry{INDEX-ENTRY-STRING}{PAGE-NUM}', where PAGE-NUM is the value +of the '\thepage' counter. On occasion, when the '\printindex' command +is confused, you have to delete this file to start with a fresh slate. + + If you omit the closing brace of an '\index' command then you get a +message like this. + + Runaway argument? {Ackermann!function + ! Paragraph ended before \@wrindex was complete. + + +File: latex2e.info, Node: makeindex, Next: \printindex, Prev: \index, Up: Indexes + +25.2.3 'makeindex' +------------------ + +Synopsis, one of: + + makeindex FILENAME + makeindex -s STYLE-FILE FILENAME + makeindex OPTIONS FILENAME0 ... + + Sort, and otherwise process, the index information in the auxiliary +file FILENAME. This is a command line program. It takes one or more +raw index files, 'FILENAME.idx' files, and produces the actual index +file, the 'FILENAME.ind' file that is input by '\printindex' (*note +\printindex::). + + The first form of the command suffices for many uses. The second +allows you to format the index by using an "index style file", a '.isty' +file. The third form is the most general; see the full documentation on +CTAN. + + This is a simple '.isty' file. + + % book.isty + % $ makeindex -s book.isty -p odd book.idx + % creates the index as book.ind, starting on an odd page. + preamble + "\\pagestyle{empty} + \\small + \\begin{theindex} + \\thispagestyle{empty}" + + postamble + "\n + \\end{theindex}" + + The description here covers only some of the index formatting +possibilities in STYLE-FILE. For a full list see the documentation on +CTAN. + + A style file consists of a list of pairs: SPECIFIER and ATTRIBUTE. +These can appear in the file in any order. All of the ATTRIBUTEs are +strings, except where noted. Strings are surrounded with double quotes, +'"', and the maximum length of a string is 144 characters. The '\n' is +for a newline and '\t' is for a tab. Backslashes are escaped with +another backslash, '\\'. If a line begins with a percent sign, '%', +then it is a comment. + +'preamble' + Preamble of the output index file. Defines the context in which + the index is formatted. Default: '"\\begin{theindex}\n"'. + +'postamble' + Postamble of the output index file. Default: + '"\n\n\\end{theindex}\n"'. + +'group_skip' + Traditionally index items are broken into groups, typically a group + for entries starting with letter 'a', etc. This specifier gives + what is inserted when a new group begins. Default: '"\n\n + \\indexspace\n"' ('\indexspace' is a command inserting a rubber + length, by default '10pt plus5pt minus3pt'). + +'lethead_flag' + An integer. It governs what is inserted for a new group or letter. + If it is 0 (which is the default) then other than 'group_skip' + nothing will be inserted before the group. If it is positive then + at a new letter the 'lethead_prefix' and 'lethead_suffix' will be + inserted, with that letter in uppercase between them. If it is + negative then what will be inserted is the letter in lowercase. + The default is 0. + +'lethead_prefix' + If a new group begins with a different letter then this is the + prefix inserted before the new letter header. Default: '""' + +'lethead_suffix' + If a group begins with a different letter then this is the suffix + inserted after the new letter header. Default: '""'. + +'item_0' + What is put between two level 0 items. Default: '"\n \\item "'. + +'item_1' + Put between two level 1 items. Default: '"\n \\subitem "'. + +'item_2' + put between two level 2 items. Default: '"\n \\subsubitem "'. + +'item_01' + What is put between a level 0 item and a level 1 item. Default: + '"\n \\subitem "'. + +'item_x1' + What is put between a level 0 item and a level 1 item in the case + that the level 0 item doesn't have any page numbers (as in + '\index{aaa|see{bbb}}'). Default: '"\n \\subitem "'. + +'item_12' + What is put between a level 1 item and a level 2 item. Default: + '"\n \\subsubitem "'. + +'item_x2' + What is put between a level 1 item and a level 2 item, if the + level 1 item doesn't have page numbers. Default: '"\n \\subsubitem + "'. + +'delim_0' + Delimiter put between a level 0 key and its first page number. + Default: a comma followed by a blank, '", "'. + +'delim_1' + Delimiter put between a level 1 key and its first page number. + Default: a comma followed by a blank, '", "'. + +'delim_2' + Delimiter between a level 2 key and its first page number. + Default: a comma followed by a blank, '", "'. + +'delim_n' + Delimiter between two page numbers for the same key (at any level). + Default: a comma followed by a blank, '", "'. + +'delim_r' + What is put between the starting and ending page numbers of a + range. Default: '"--"'. + +'line_max' + An integer. Maximum length of an index entry's line in the output, + beyond which the line wraps. Default: '72'. + +'indent_space' + What is inserted at the start of a wrapped line. Default: + '"\t\t"'. + +'indent_length' + A number. The length of the wrapped line indentation. The default + 'indent_space' is two tabs and each tab is eight spaces so the + default here is '16'. + +'page_precedence' + A document may have pages numbered in different ways. For example, + a book may have front matter pages numbered in lowercase roman + while main matter pages are in arabic. This string specifies the + order in which they will appear in the index. The 'makeindex' + command supports five different types of numerals: lowercase roman + 'r', and numeric or arabic 'n', and lowercase alphabetic 'a', and + uppercase roman 'R', and uppercase alphabetic 'A'. Default: + '"rnaRA"'. + + There are a number of other programs that do the job 'makeindex' +does. One is 'xindy' (<https://ctan.org/pkg/xindy>), which does +internationalization and can process indexes for documents marked up +using LaTeX and a number of other languages. It is written in Lisp, +highly configurable, both in markup terms and in terms of the collating +order of the text, as described in its documentation. + + A more recent indexing program supporting Unicode is 'xindex', +written in Lua (<https://ctan.org/pkg/xindex>). + + +File: latex2e.info, Node: \printindex, Prev: makeindex, Up: Indexes + +25.2.4 '\printindex' +-------------------- + +Synopsis: + + \printindex + + Place the index into the output. + + To get an index you must first include +'\usepackage{makeidx}\makeindex' in the document preamble and compile +the document, then run the system command 'makeindex', and then compile +the document again. *Note Indexes::, for further discussion and an +example of the use of '\printindex'. + + +File: latex2e.info, Node: Glossaries, Prev: Indexes, Up: Front/back matter + +25.3 Glossaries +=============== + +Synopsis: + + \usepackage{glossaries} \makeglossaries + ... + \newglossaryentry{LABEL}{SETTINGS} + ... + \gls{LABEL}. + ... + \printglossaries + + The 'glossaries' package allows you to make glossaries, including +multiple glossaries, as well as lists of acronyms. + + To get the output from this example, compile the document (for +instance with 'pdflatex filename'), then run the command line command +'makeglossaries filename', and then compile the document again. + + \documentclass{...} + \usepackage{glossaries} \makeglossaries + \newglossaryentry{tm}{% + name={Turing machine}, + description={A model of a machine that computes. The model is simple + but can compute anything any existing device can compute. + It is the standard model used in Computer Science.}, + } + \begin{document} + Everything begins with the definition of a \gls{tm}. + ... + \printglossaries + \end{document} + +That gives two things. In the main text it outputs '... definition of a +Turing machine'. In addition, in a separate sectional unit headed +'Glossary' there appears a description list. In boldface it says +'Turing machine' and the rest of the item says in normal type 'A model +of a machine ... Computer Science'. + + The command '\makeglossary' opens the file that will contain the +entry information, 'ROOT-FILE.glo'. Put the '\printglossaries' command +where you want the glossaries to appear in your document. + + The 'glossaries' package is very powerful. For instance, besides the +commands '\newglossaryentry' and '\gls', there are similar commands for +a list of acronyms. See the package documentations on CTAN. + +* Menu: + +* \newglossaryentry:: Declare the content of a glossary entry. +* \gls:: Give a page reference for a glossary entry. + + +File: latex2e.info, Node: \newglossaryentry, Next: \gls, Up: Glossaries + +25.3.1 '\newglossaryentry' +-------------------------- + +Synopsis, one of: + + \newglossaryentry{LABEL} + { + name={NAME}, + description={DESCRIPTION}, + OTHER OPTIONS, ... + } + + or + + \longnewglossaryentry{LABEL} + { + name={NAME}, + OTHER OPTIONS ..., + } + {DESCRIPTION} + + Declare a new entry for a glossary. The LABEL must be unique for the +document. The settings associated with the label are pairs: +'KEY=VALUE'. + + This puts the blackboard bold symbol for the real numbers ℝ, in the +glossary. + + \newglossaryentry{R} + { + name={\ensuremath{\mathbb{R}}}, + description={the real numbers}, + } + + Use the second command form if the DESCRIPTION spans more than one +paragraph. + + For a full list of KEYs see the package documentation on CTAN but +here are a few. + +'name' + (Required.) The word, phrase, or symbol that you are defining. + +'description' + (Required.) The description that will appear in the glossary. If + this has more than one paragraph then you must use the second + command form given in the synopsis. + +'plural' + The plural form of NAME. Refer to the plural form using '\glspl' + or '\Glspl' (*note \gls::). + +'sort' + How to place this entry in the list of entries that the glossary + holds. + +'symbol' + A symbol, such as a mathematical symbol, besides the name. + + +File: latex2e.info, Node: \gls, Prev: \newglossaryentry, Up: Glossaries + +25.3.2 '\gls' +------------- + +Synopsis, one of: + + \gls{LABEL} + \glspl{LABEL} + \Gls{LABEL} + \Glspl{LABEL} + + Refer to a glossary entry. The entries are declared with +'\newglossaryentry' (*note \newglossaryentry::). + + This + + \newglossaryentry{N}{% + name={the natural numbers}, + description={The numbers $0$, $1$, $2$, $\ldots$\@}, + symbol={\ensuremath{\mathbb{N}}}, + } + ... + Consider \gls{N}. + +gives the output 'Consider the natural numbers'. + + The second command form '\glspl{LABEL}' produces the plural of NAME +(by default it tries adding an 's'). The third form capitalizes the +first letter of NAME, as does the fourth form, which also takes the +plural. + + +File: latex2e.info, Node: Letters, Next: Input/output, Prev: Front/back matter, Up: Top + +26 Letters +********** + +Synopsis: + + \documentclass{letter} + \address{SENDERS ADDRESS} % return address + \signature{SENDER NAME} + \begin{document} + \begin{letter}{RECIPIENT ADDRESS} + \opening{SALUTATION} + LETTER BODY + \closing{CLOSING TEXT} + \end{letter} + ... + \end{document} + + Produce one or more letters. + + Each letter is in a separate 'letter' environment, whose argument +RECIPIENT ADDRESS often contains multiple lines separated with a double +backslash, ('\\'). For example, you might have: + + \begin{letter}{Ninon de l'Enclos \\ + l'h\^otel Sagonne} + ... + \end{letter} + + The start of the 'letter' environment resets the page number to 1, +and the footnote number to 1 also. + + The SENDER ADDRESS and SENDER NAME are common to all of the letters, +whether there is one or more, so these are best put in the preamble. As +with the recipient address, often SENDER ADDRESS contains multiple lines +separated by a double backslash ('\\'). LaTeX will put the SENDER NAME +under the closing, after a vertical space for the traditional +hand-written signature. + + Each 'letter' environment body begins with a required '\opening' +command such as '\opening{Dear Madam or Sir:}'. The LETTER BODY text is +ordinary LaTeX so it can contain everything from enumerated lists to +displayed math, except that commands such as '\chapter' that make no +sense in a letter are turned off. Each 'letter' environment body +typically ends with a '\closing' command such as '\closing{Yours,}'. + + Additional material may come after the '\closing'. You can say who +is receiving a copy of the letter with a command like '\cc{the Boss \\ +the Boss's Boss}'. There's a similar '\encl' command for a list of +enclosures. And, you can add a postscript with '\ps'. + + LaTeX's default is to indent the sender name and the closing above it +by a length of '\longindentation'. By default this is '0.5\textwidth'. +To make them flush left, put '\setlength{\longindentation}{0em}' in your +preamble. + + To set a fixed date use something like +'\renewcommand{\today}{1958-Oct-12}'. If put in your preamble then it +will apply to all the letters. + + This example shows only one 'letter' environment. The three lines +marked as optional are typically omitted. + + \documentclass{letter} + \address{Sender's street \\ Sender's town} + \signature{Sender's name \\ Sender's title} + % optional: \location{Mailbox 13} + % optional: \telephone{(102) 555-0101} + \begin{document} + \begin{letter}{Recipient's name \\ Recipient's address} + \opening{Sir:} + % optional: \thispagestyle{firstpage} + I am not interested in entering a business arrangement with you. + \closing{Your most humble, etc.,} + \end{letter} + \end{document} + + These commands are used with the 'letter' class. + +* Menu: + +* \address:: Sender's return address. +* \cc:: Carbon copy list. +* \closing:: Saying goodbye. +* \encl:: List of enclosed material. +* \location:: Sender's organizational location. +* \makelabels:: Make address labels. +* \name:: Sender's name, for the return address. +* \opening:: Saying hello. +* \ps:: Adding a postscript. +* \signature:: Sender's signature. +* \telephone:: Sender's phone number. + + +File: latex2e.info, Node: \address, Next: \cc, Up: Letters + +26.1 '\address' +=============== + +Synopsis: + + \address{SENDERS ADDRESS} + + Specify the return address, as it appears on the letter and on the +envelope. Separate multiple lines in SENDERS ADDRESS with a double +backslash, '\\'. + + Because it can apply to multiple letters this declaration is often +put in the preamble. However, it can go anywhere, including inside an +individual 'letter' environment. + + This command is optional: if you do not use it then the letter is +formatted with some blank space on top, for copying onto pre-printed +letterhead paper. If you do use the '\address' declaration then it is +formatted as a personal letter. + + Here is an example. + + \address{Stephen Maturin \\ + The Grapes of the Savoy} + + +File: latex2e.info, Node: \cc, Next: \closing, Prev: \address, Up: Letters + +26.2 '\cc' +========== + +Synopsis: + + \cc{NAME0 \\ + ... } + + Produce a list of names to which copies of the letter were sent. +This command is optional. If it appears then typically it comes after +'\closing'. Put the names on different lines by separating them with a +double backslash, '\\', as in: + + \cc{President \\ + Vice President} + + +File: latex2e.info, Node: \closing, Next: \encl, Prev: \cc, Up: Letters + +26.3 '\closing' +=============== + +Synopsis: + + \closing{TEXT} + + Produce the letter's closing. This is optional, but usual. It +appears at the end of a letter, above a handwritten signature. For +example: + + \closing{Regards,} + + +File: latex2e.info, Node: \encl, Next: \location, Prev: \closing, Up: Letters + +26.4 '\encl' +============ + +Synopsis: + + \encl{FIRST ENCLOSED OBJECT \\ + ... } + + Produce a list of things included with the letter. This command is +optional; when it is used, it typically is put after '\closing'. +Separate multiple lines with a double backslash, '\\'. + + \encl{License \\ + Passport} + + +File: latex2e.info, Node: \location, Next: \makelabels, Prev: \encl, Up: Letters + +26.5 '\location' +================ + +Synopsis: + + \location{TEXT} + + The TEXT appears centered at the bottom of the page. It only appears +if the page style is 'firstpage'. + + +File: latex2e.info, Node: \makelabels, Next: \name, Prev: \location, Up: Letters + +26.6 '\makelabels' +================== + +Synopsis: + + \makelabels % in preamble + + Optional, for a document that contains 'letter' environments. If you +just put '\makelabels' in the preamble then at the end of the document +you will get a sheet with labels for all the recipients, one for each +letter environment, that you can copy to a sheet of peel-off address +labels. + + Customize the labels by redefining the commands '\startlabels', +'\mlabel', and '\returnaddress' (and perhaps '\name') in the preamble. +The command '\startlabels' sets the width, height, number of columns, +etc., of the page onto which the labels are printed. The command +'\mlabel{RETURN ADDRESS}{RECIPIENT ADDRESS}' produces the two labels (or +one, if you choose to ignore the RETURN ADDRESS) for each letter +environment. The first argument, RETURN ADDRESS, is the value returned +by the macro '\returnaddress'. The second argument, RECIPIENT ADDRESS, +is the value passed in the argument to the 'letter' environment. By +default '\mlabel' ignores the first argument, the RETURN ADDRESS, +causing the default behavior described in the prior paragraph. + + This illustrates customization. Its output includes a page with two +columns having two labels each. + + \documentclass{letter} + \renewcommand*{\returnaddress}{Fred McGuilicuddy \\ + Oshkosh, Mineola 12305} + \newcommand*\originalMlabel{} + \let\originalMlabel\mlabel + \def\mlabel#1#2{\originalMlabel{}{#1}\originalMlabel{}{#2}} + \makelabels + ... + \begin{document} + \begin{letter}{A Einstein \\ + 112 Mercer Street \\ + Princeton, New Jersey, USA 08540} + ... + \end{letter} + \begin{letter}{K G\"odel \\ + 145 Linden Lane \\ + Princeton, New Jersey, USA 08540} + ... + \end{letter} + \end{document} + +The first column contains the return address twice. The second column +contains the address for each recipient. + + The package 'envlab' makes formatting the labels easier, with +standard sizes already provided. The preamble lines +'\usepackage[personalenvelope]{envlab}' and '\makelabels' are all that +you need to print envelopes. + + +File: latex2e.info, Node: \name, Next: \opening, Prev: \makelabels, Up: Letters + +26.7 '\name' +============ + +Synopsis: + + \name{NAME} + + Optional. Sender's name, used for printing on the envelope together +with the return address. + + +File: latex2e.info, Node: \opening, Next: \ps, Prev: \name, Up: Letters + +26.8 '\opening' +=============== + +Synopsis: + + \opening{SALUTATION} + + Required. Follows the '\begin{letter}{...}'. The argument +SALUTATION is mandatory. For instance: + + \opening{Dear John:} + + +File: latex2e.info, Node: \ps, Next: \signature, Prev: \opening, Up: Letters + +26.9 '\ps' +========== + +Synopsis: + + \ps{TEXT} + + Add a postscript. This command is optional and usually is used after +'\closing'. + + \ps{P.S. After you have read this letter, burn it. Or eat it.} + + +File: latex2e.info, Node: \signature, Next: \telephone, Prev: \ps, Up: Letters + +26.10 '\signature' +================== + +Synopsis: + + \signature{FIRST LINE \\ + ... } + + The sender's name. This command is optional, although its inclusion +is usual. + + The argument text appears at the end of the letter, after the +closing. LaTeX leaves some vertical space for a handwritten signature. +Separate multiple lines with a double backslash, '\\'. For example: + + \signature{J Fred Muggs \\ + White House} + + LaTeX's default for the vertical space from the '\closing' text down +to the '\signature' text is '6\medskipamount', which is six times +'\medskipamount' (where '\medskipamount' is equal to a '\parskip', which +in turn is defined by default here to 0.7em). + + This command is usually in the preamble, to apply to all the letters +in the document. To have it apply to one letter only, put it inside a +'letter' environment and before the '\closing'. + + You can include a graphic in the signature as here. + + \signature{\vspace{-6\medskipamount}\includegraphics{sig.png}\\ + My name} + +For this you must put '\usepackage{graphicx}' in the preamble (*note +Graphics::). + + +File: latex2e.info, Node: \telephone, Prev: \signature, Up: Letters + +26.11 '\telephone' +================== + +Synopsis: + + \telephone{NUMBER} + + The sender's telephone number. This is typically in the preamble, +where it applies to all letters. This only appears if the 'firstpage' +pagestyle is selected. If so, it appears on the lower right of the +page. + + +File: latex2e.info, Node: Input/output, Next: Command line interface, Prev: Letters, Up: Top + +27 Input/output +*************** + +LaTeX uses the ability to write to a file and later read it back in to +build document components such as a table of contents or index. You can +also read a file that other programs written, or write a file for others +to read. You can communicate with users through the terminal. And, you +can issue instructions for the operating system. + +* Menu: + +* \openin & \openout:: Open a file. +* \read:: Read text from a file. +* \typein:: Read text from the terminal. +* \typeout:: Write text to the terminal. +* \write:: Write text to a file or terminal. + + +File: latex2e.info, Node: \openin & \openout, Next: \read, Up: Input/output + +27.1 '\openin' & '\openout' +=========================== + +Synopsis: + + \openin NUMBER=FILENAME + + or: + + \openout NUMBER=FILENAME + + Open a file for reading material, or for writing it. In most +engines, the NUMBER must be between 0 and 15, as in '\openin3'; in +LuaLaTeX, NUMBER can be between 0 and 127. + + Here TeX opens the file 'presidents.tex' for reading. + + \newread\presidentsfile + \openin\presidentsfile=presidents + \typeout{presidentsfile is \the\presidentsfile} + \read\presidentsfile to\presidentline + \typeout{\presidentline} + +The '\newread' command allocates input stream numbers from 0 to 15 +(there is also a '\newwrite'). The '\presidentsfile' is more memorable +but under the hood it is still a number; the first '\typeout' gives +something like 'presidentsfile is 1'. In addition, '\newread' keeps +track of the allocation so that if you use too many then you get an +error like '! No room for a new \read'. The second '\typeout' gives the +first line of the file, something like '1 Washington, George'. + + Ordinarily TeX will not try to open the file until the next page +shipout. To change this, use '\immediate\openin NUMBER=FILENAME' or +'\immediate\openout NUMBER=FILENAME'. + + Close files with '\closein NUMBER' and '\closeout NUMBER'. + + How LaTeX handles filenames varies among distributions, and even can +vary among versions of a distribution. If the file does not have an +extension then TeX will add a '.tex'. This creates 'presidents.tex', +writes one line to it, and closes it. + + \newwrite\presidentsfile + \openout\presidentsfile=presidents + \write\presidentsfile{1 Washington, George} + \closeout\presidentsfile + +But filenames with a period can cause trouble: if TeX finds a FILENAME +of 'presidents.dat' it could look first for 'presidents.dat.tex' and +later for 'presidents.dat', or it could do the opposite. Your +distribution's documentation should say more, and if you find something +that works for you then you are good, but to ensure complete portability +the best thing is to use file names containing only the twenty six ASCII +letters (not case-sensitive) and the ten digits, along with underscore +and dash, and in particular with no dot or space. + + For '\openin', if TeX cannot find the file then it does not give an +error. It just considers that the stream is not open (test for this +with '\ifeof'; one recourse is the command '\InputIfFileExists', *note +Class and package commands::). If you try to use the same number twice, +LaTeX won't give you an error. If you try to use a bad number then you +get an error message like '! Bad number (16). <to be read again> = l.30 +\openin16=test.jh'. + + +File: latex2e.info, Node: \read, Next: \typein, Prev: \openin & \openout, Up: Input/output + +27.2 '\read' +============ + +Synopsis: + + \read NUMBER toMACRO + + Make the command MACRO contain the next line of input from text +stream NUMBER, as in '\read5 to\data'. + + This opens the file 'email.tex' for reading, puts the contents of the +first line into the command '\email', and then closes the file. + + \newread\recipientfile + \openin\recipientfile=email + \read\recipientfile to\email + \typeout{Email address: \email} + \closein\recipientfile + + If NUMBER is outside the range from 0 to 15 or if no file of that +number is open, or if the file has ended, then '\read' will take input +from the terminal (or exit if interaction is not allowed, e.g., +'\nonstopmode'; *note interaction modes::). (However, the natural way +in LaTeX to take input from the terminal is '\typein' (*note \typein::.) + + To read an entire file as additional LaTeX source, use '\input' +(*note \input::) or '\include' (*note \include & \includeonly::). + + A common reason to want to read from a data file is to do mail +merges. CTAN has a number of packages for that; one is 'datatool'. + + +File: latex2e.info, Node: \typein, Next: \typeout, Prev: \read, Up: Input/output + +27.3 '\typein' +============== + +Synopsis, one of: + + \typein{PROMPT-MSG} + \typein[CMD]{PROMPT-MSG} + + Print PROMPT-MSG on the terminal and cause LaTeX to stop and wait for +you to type a line of input. This line of input ends when you hit the +return key. + + For example, this + + As long as I live I shall never forget \typein{Enter student name:} + +coupled with this command line interaction + + Enter student name: + + \@typein=Aphra Behn + +gives the output '... never forget Aphra Behn'. + + The first command version, '\typein{PROMPT-MSG}', causes the input +you typed to be processed as if it had been included in the input file +in place of the '\typein' command. + + In the second command version the optional argument 'CMD' argument +must be a command name, that is, it must begin with a backslash, \. +This command name is then defined or redefined to be the input that you +typed. For example, this + + \typein[\student]{Enter student name:} + \typeout{Recommendation for \student .} + +gives this output on the command line, + + Enter student name: + + \student=John Dee + Recommendation for John Dee. + +where the user has entered 'John Dee.' + + +File: latex2e.info, Node: \typeout, Next: \write, Prev: \typein, Up: Input/output + +27.4 '\typeout' +=============== + +Synopsis: + + \typeout{MSG} + + Print 'msg' on the terminal and in the 'log' file. + + This + + \newcommand{\student}{John Dee} + \typeout{Recommendation for \student .} + +outputs 'Recommendation for John Dee'. Like what happens here with +'\student', commands that are defined with '\newcommand' or +'\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 'msg'. Use the +command '\space' to get a single space, independent of surrounding +spaces. Use '^^J' to get a newline. Get a percent character with +'\csname @percentchar\endcsname'. + + This command can be useful for simple debugging, as here: + + \newlength{\jhlength} + \setlength{\jhlength}{5pt} + \typeout{The length is \the\jhlength.} + +produces on the command line 'The length is 5.0pt'. + + +File: latex2e.info, Node: \write, Prev: \typeout, Up: Input/output + +27.5 '\write' +============= + +Synopsis: + + \write NUMBER{STRING} + + Write STRING to the log file, to the terminal, or to a file opened by +'\openout'. For instance, '\write6' writes to text stream number 6. + + If the following appears in 'BASEFILE.tex' then it opens +'BASEFILE.jh', writes 'Hello World!' and a newline to it, and closes +that file. + + \newwrite\myfile + \immediate\openout\myfile=\jobname.jh % \jobname is root file basename + ... + \immediate\write\myfile{Hello world!} + ... + \immediate\closeout\myfile + +The '\newwrite' allocates a stream number, giving it a symbolic name to +make life easier, so that 'stream \newwrite\myfile\the\myfile' produces +something like 'stream 3'. Then '\openout' associates the stream number +with the given file name. TeX ultimately executed '\write3' which puts +the string in the file. + + Typically NUMBER is between 0 and 15, because typically LaTeX authors +follow the prior example and the number is allocated by the system. If +NUMBER is outside the range from 0 to 15 or if it is not associated with +an open file then LaTeX writes STRING to the log file. If NUMBER is +positive then in addition LaTeX writes STRING to the terminal. + + Thus, 'test \write-1{Hello World!}' puts 'Hello World!' followed by a +newline in the log file. (This is what the '\wlog' command does; *note +\wlog::). And '\write100{Hello World!}' puts the same in the log file +but also puts 'Hello World!' followed by a newline in the terminal +output. (But 16, 17, and 18 are special as NUMBER; see below.) + + In LuaTeX, instead of 16 output streams there are 256 (*note TeX +engines::). + + Use '\write\@auxout{STRING}' to write to the current '.aux' file, +which is associated with either the root file or with the current +include file; and use '\write\@mainaux{STRING}' to write to the main +'.aux'. These symbolic names are defined by LaTeX. + + By default LaTeX does not write STRING to the file right away. This +is because, for example, you may need '\write' to save the current page +number, but when TeX comes across a '\write' it typically does not know +what the page number is, since it has not yet done the page breaking. +So, you use '\write' in one of three contexts: + + \immediate\write\@auxout{STRING} %1 + \write\@auxout{STRING} %2 + \protected@write\@auxout{}{STRING} %3 + + 1. With the first, LaTeX writes STRING to the file immediately. Any + macros in STRING are fully expanded (just as in '\edef') so to + prevent expansion you must use '\noexpand', 'toks', etc., except + that you should use '#' instead of '##'). + + 2. With the second, STRING is stored on the current list of things (as + a TeX "whatsit" item) and kept until the page is shipped out and + likewise the macros are unexpanded until '\shipout'. At + '\shipout', STRING is fully expanded. + + 3. The third, '\protected@write', is like the second except that you + can use '\protect' to avoid expansion. The extra first argument + allows you to locally insert extra definitions to make more macros + protected or to have some other special definition for the write. + + As a simple example of expansion with '\write', STRING here contains +a control sequence '\triplex' which we've defined to be the text 'XYZ': + + \newwrite\jhfile + \openout\jhfile=test.jh + \newcommand{\triplex}{XYZ} + \write\jhfile{test \triplex test} + +This results in the file 'test.jh' containing the text 'test XYZtest' +followed by a newline. + + The cases where NUMBER is 16, 17, or 18 are special. Because of +'\write''s behavior when NUMBER is outside the range from 0 to 15 +described above, in Plain TeX '\write16' and '\write17' were sometimes +used to write to the log file and the terminal; however, in LaTeX, the +natural way to do that is with '\typeout' (*note \typeout::). The +'\write18' command is even more special; modern TeX systems use it for +giving commands to the operating system (*note \write18::). + + Ordinarily '\write' outputs a single line. You can include a newline +with '^^J'. Thus, this produces two lines in the log file: + + \wlog{Parallel lines have a lot in common.^^JBut they never meet.} + + A common case where authors need to write their own file is for +answers to exercises, or another situation where you want to write out +verbatim, without expanding the macros. CTAN has a number of packages +for this; one is 'answers'. + +* Menu: + +* \write and security:: Security. +* \message:: Write text to the log file and terminal. +* \wlog:: Write text to the log file. +* \write18:: Run an operating system command. + + +File: latex2e.info, Node: \write and security, Next: \message, Up: \write + +27.5.1 '\write' and security +---------------------------- + +The ability to write files raises security issues. If you compiled a +downloaded LaTeX file and it overwrote your password file then you would +be justifiably troubled. + + Thus, by default TeX systems only allow you to open files for writing +that are in the current directory or output directory, if specified +(*note output directory::), or in a subdirectory of those. So, this +code + + \newwrite\jhfile + \openout\jhfile=../test.jh + +gives an error like: + Not writing to ../test.jh (openout_any = p). + ! I can't write on file `../test.jh' + + You can get just such an error when using commands such as +'\include{../filename}' because LaTeX will try to open +'../filename.aux'. The simplest solution is to put the included files +in the same directory as the root file, or in subdirectories. + + +File: latex2e.info, Node: \message, Next: \wlog, Prev: \write and security, Up: \write + +27.5.2 '\message' +----------------- + +Synopsis: + + \message{STRING} + + Write STRING to the log file and the terminal. + + Typically, LaTeX authors use '\typeout' (*note \typeout::). It +allows you to use '\protect' on any fragile commands in STRING (*note +\protect::). But '\typeout' always inserts a newline at the end of +STRING while '\message' does not, so the latter can be useful. + + With this example document body. + + before\message{One Two}\message{Three}\message{Four^^JI} + \message{declare a thumb war.}After + +under some circumstances (see below) LaTeX writes the following to both +the terminal and the log file. + + One Two Three Four + I declare a thumb war. + +The '^^J' produces a newline. Also, in the output document, between +'before' and 'After' will be a single space (from the end of line +following 'I}'). + + While '\message' allows you more control over formatting, a gotcha is +that LaTeX may mess up that formatting because it inserts line breaks +depending on what it has already written. Contrast this document body, +where the 'Two' has moved, to the one given above. + + before\message{One}\message{Two Three}\message{Four^^JI} + \message{declare a thumb war.}After + + This can happen: when LaTeX is outputting the messages to the +terminal, now the message with 'One' is shorter and it fits at the end +of the output terminal line, and so LaTeX breaks the line between it and +the 'Two Three'. That line break appears also in the log file. This +line break insertion can depend on, for instance, the length of the full +path names of included files. So producing finely-formatted lines in a +way that is portable is hard, likely requiring starting your message at +the beginning of a line. + + +File: latex2e.info, Node: \wlog, Next: \write18, Prev: \message, Up: \write + +27.5.3 '\wlog' +-------------- + +Synopsis: + + \wlog{STRING} + + Write STRING to the log file. + + \wlog{Did you hear about the mathematician who hates negatives?} + \wlog{He'll stop at nothing to avoid them.} + + Ordinarily STRING appears in a single separate line. Use '^^J' to +insert a newline. + + \wlog{Helvetica and Times Roman walk into a bar.} + \wlog{The barman says,^^JWe don't serve your type.} + + +File: latex2e.info, Node: \write18, Prev: \wlog, Up: \write + +27.5.4 '\write18' +----------------- + +Synopsis: + + \write18{SHELL_COMMAND} + + Issue a command to the operating system shell. The operating system +runs the command and LaTeX's execution is blocked until that finishes. + + This sequence (on Unix) + + \usepackage{graphicx} % in preamble + ... + \newcommand{\fignum}{1} + \immediate\write18{cd pix && asy figure\fignum} + \includegraphics{pix\figure\fignum.pdf} + +will run Asymptote (the 'asy' program) on 'pix/figure1.asy', so that the +document can later read in the resulting graphic (*note +\includegraphics::). Like any '\write', here LaTeX expands macros in +SHELL_COMMAND so that '\fignum' is replaced by '1'. + + Another example is that you can automatically run BibTeX at the start +of each LaTeX run (*note Using BibTeX::) by including +'\immediate\write18{bibtex8 \jobname}' as the first line of the file. +Note that '\jobname' expands to the basename of the root file unless the +'--jobname' option is passed on the command line, in which case this is +the option argument. + + You sometimes need to do a multi-step process to get the information +that you want. This will insert into the input a list of all PDF files +in the current directory (but see 'texosquery' below): + + \immediate\write18{ls *.pdf > tmp.dat} + \input{tmp.dat} + + The standard behavior of any '\write' is to wait until a page is +being shipped out before expanding the macros or writing to the stream +(*note \write::). But sometimes you want it done now. For this, use +'\immediate\write18{SHELL_COMMAND}'. + + There are obvious security issues with allowing system commands +inside a LaTeX file. If you download a file off the net and it contains +commands to delete all your files then you would be unhappy. The +standard settings in modern distributions turn off full shell access. +You can turn it on, if you are sure the shell commands are safe, by +compiling with 'latex --enable-write18 FILENAME' (*note Command line +options::). (The '--shell-escape' option is a synonym, in TeX Live.) + + In the place of full shell access, modern distributions by default +use a restricted version that allows some commands to work, such as +those that run Metafont to generate missing fonts, even if you do not +use the 'enable-write18' option. By default this list of allowed +commands is short and features only commands that are under the control +of the distribution maintainers (*note Command line options::). + + The SHELL_COMMAND text is always passed to '/bin/sh' on Unix-like +operating systems, and the DOS command interpreter 'cmd.exe' on Windows. +Any different shell set by the user, and the 'SHELL' environment +variable, is ignored. + + If what you need is system information, such as the operating system +name, locale information, or directory contents, take a look at the +'texosquery' package, which provides a convenient and secure interface +for this, unlike the above examples using the raw '\write18': +<https://ctan.org/pkg/texosquery>. + + LaTeX provides a package 'shellesc' on top of the primitive +'\write18' command. Its primary purpose is to provide a command +'\ShellEscape' which works identically on all TeX engines; LuaTeX +intentionally did not retain '\write18' as a way to invoke a shell +command, so some engine-specific code is needed. The 'shellesc' package +also provides a command '\DelayedShellEscape', executed at '\output' +time, for the same reason. + + +File: latex2e.info, Node: Command line interface, Next: Document templates, Prev: Input/output, Up: Top + +28 Command line interface +************************* + +Synopsis (from a terminal command line): + + pdflatex OPTIONS ARGUMENT + + Run LaTeX on ARGUMENT. In place of 'pdflatex' you can also use (for +PDF output) 'xelatex' or 'lualatex', or (for DVI output) 'latex' or +'dvilualatex', among others (*note TeX engines::). + + For example, this will run LaTeX on the file 'thesis.tex', creating +the output 'thesis.pdf'. + + pdflatex thesis + +Note that '.tex' is the default file name extension. + + pdfTeX is an extension of the original TeX program, as are XeTeX and +LuaTeX (*note TeX engines::). The first two are completely backward +compatible and the latter, almost so. Perhaps the most fundamental new +feature for all three is that the original TeX output its own DVI +format, while the newer ones can output directly to PDF. This allows +them to take advantage of the extra features in PDF such as hyperlinks, +support for modern image formats such as JPG and PNG, and ubiquitous +viewing programs. In short, if you run 'pdflatex' or 'xelatex' or +'lualatex' then you will by default get PDF and have access to all its +modern features. If you run 'latex', or 'dvilualatex', then you will +get DVI. The description here assumes pdfLaTeX. + + *Note Command line options::, for a selection of the most useful +command line options. As to ARGUMENT, the usual case is that it does +not begin with a backslash, so the system takes it to be the name of a +file and it compiles that file. If ARGUMENT begins with a backslash +then the system will interpret it as a line of LaTeX input, which can be +used for special effects (*note Command line input::). + + If you gave no arguments or options then 'pdflatex' prompts for input +from the terminal. You can escape from this by entering 'CTRL-D'. + + If LaTeX finds an error in your document then by default it stops and +asks you about it. *Note Recovering from errors::, for an outline of +what to do. + +* Menu: + +* Command line options:: Commonly used command line options. +* Command line input:: Specify LaTeX code on the command line. +* Jobname:: How TeX sets the current job name. +* Recovering from errors:: When something goes wrong. + + +File: latex2e.info, Node: Command line options, Next: Command line input, Up: Command line interface + +28.1 Command line options +========================= + +These are the command-line options relevant to ordinary document +authoring. For a full list, try running 'latex --help' from the command +line. + + With many implementations you can specify command line options by +prefixing them with '-' or '--'. This is the case for both TeX Live +(including MacTeX) and MiKTeX. We will use both conventions +interchangeably. If an option takes a value, it can be specified either +as a separate argument ('--foo val'), or as one argument with an '=' +sign ('--foo=val'), but there can be no spaces around the '='. We will +generally use the '=' syntax. + +'-version' + Show the current version, like 'pdfTeX 3.14159265-2.6-1.40.16 (TeX + Live 2015/Debian)' along with a small amount of additional + information, and exit. + +'-help' + Give a brief usage message that is useful as a prompt and exit. + +'-interaction=MODE' + TeX compiles a document in one of four interaction modes: + 'batchmode', 'nonstopmode', 'scrollmode', 'errorstopmode'. In + "errorstopmode" (the default), TeX stops at each error and asks for + user intervention. In "batchmode" it prints nothing on the + terminal, errors are scrolled as if the user hit 'RETURN' at every + error, and missing files cause the job to abort. In "nonstopmode", + diagnostic message appear on the terminal but as in batch mode + there is no user interaction. In "scrollmode", TeX stops for + missing files or keyboard input, but nothing else. + + For instance, starting LaTeX with this command line + + pdflatex -interaction=batchmode FILENAME + + eliminates most terminal output. + +'-jobname=STRING' + Set the value of TeX's "jobname" to the string. The log file and + output file will then be named 'STRING.log' and 'STRING.pdf'. + *note Jobname::. + +'-output-directory=DIRECTORY' + Write files in the directory DIRECTORY. It must already exist. + This applies to all external files created by TeX or LaTeX, such as + the '.log' file for the run, the '.aux', '.toc', etc., files + created by LaTeX, as well as the main '.pdf' or '.dvi' output file + itself. + + When specified, the output directory DIRECTORY is also + automatically checked first for any file that it is input, so that + the external files can be read back in, if desired. The true + current directory (in which LaTeX was run) remains unchanged, and + is also checked for input files. + +'--enable-write18' +'--disable-write18' +'--shell-escape' +'--no-shell-escape' + Enable or disable '\write18{SHELL_COMMAND}' (*note \write18::). + The first two options are supported by both TeX Live and MiKTeX, + while the second two are synonyms supported by TeX Live. + + Enabling this functionality has major security implications, since + it allows a LaTeX file to run any command whatsoever. Thus, by + default, unrestricted '\write18' is not allowed. (The default for + TeX Live, MacTeX, and MiKTeX is to allow the execution of a limited + number of TeX-related programs, which they distribute.) + + For example, if you invoke LaTeX with the option 'no-shell-escape', + and in your document you call '\write18{ls -l}', then you do not + get an error but the log file says 'runsystem(ls -l)...disabled'. + +'-halt-on-error' + Stop processing at the first error. + +'-file-line-error' +'-no-file-line-error' + Enable or disable 'FILENAME:LINENO:ERROR'-style error messages. + These are only available with TeX Live or MacTeX. + + +File: latex2e.info, Node: Command line input, Next: Jobname, Prev: Command line options, Up: Command line interface + +28.2 Command line input +======================= + +As part of the command line invocation + + LATEX-ENGINE OPTIONS ARGUMENT + +you can specify arbitrary LaTeX input by starting ARGUMENT with a +backslash. (All the engines support this.) This allows you to do some +special effects. + + For example, this file (which uses the 'hyperref' package for +hyperlinks) can produce two kinds of output, one to be read on physical +paper and one to be read online. + + \ifdefined\paperversion % in preamble + \newcommand{\urlcolor}{black} + \else + \newcommand{\urlcolor}{blue} + \fi + \usepackage[colorlinks=true,urlcolor=\urlcolor]{hyperref} + ... + \href{https://www.ctan.org}{CTAN} % in body + ... + +Compiling this document 'book.tex' with the command line 'pdflatex book' +will give the 'CTAN' link in blue. But compiling it with + + pdflatex "\def\paperversion{}\input book.tex" + +has the link in black. We use double quotes to prevent interpretation +of the symbols by the command line shell. (This usually works on both +Unix and Windows systems, but there are many peculiarities to shell +quoting, so read your system documentation if need be.) + + In a similar way, from the single file 'main.tex' you can compile two +different versions. + + pdflatex -jobname=students "\def\student{}\input{main}" + pdflatex -jobname=teachers "\def\teachers{}\input{main}" + +The 'jobname' option is there because otherwise both files would be +called 'main.pdf' and the second would overwrite the first. (*note +Jobname::.) + + In this example we use the command line to select which parts of a +document to include. For a book named 'mybook.tex' and structured like +this. + + \documentclass{book} + \begin{document} + ... + \include{chap1} + \include{chap2} + ... + \end{document} + +the command line + + pdflatex "\includeonly{chap1}\input{mybook}" + +will give output that has the first chapter but no other chapter. *Note +Splitting the input::. + + +File: latex2e.info, Node: Jobname, Next: Recovering from errors, Prev: Command line input, Up: Command line interface + +28.3 Jobname +============ + +Running LaTeX creates a number of files, including the main PDF (or DVI) +output but also including others. These files are named with the +so-called "jobname". The most common case is also the simplest, where +for instance the command 'pdflatex thesis' creates 'thesis.pdf' and also +'thesis.log' and 'thesis.aux'. Here the job name is 'thesis'. + + In general, LaTeX is invoked as 'LATEX-ENGINE OPTIONS ARGUMENT', +where LATEX-ENGINE is 'pdflatex', 'lualatex', etc. (*note TeX +engines::). If ARGUMENT does not start with a backslash, as is the case +above with 'thesis', then TeX considers it to be the name of the file to +input as the main document. This file is referred to as the "root file" +(*note Splitting the input::, and *note \input::). The name of that +root file, without the '.tex' extension if any, is the jobname. If +ARGUMENT does start with a backslash, or if TeX is in interactive mode, +then it waits for the first '\input' command, and the jobname is the +argument to '\input'. + + There are two more possibilities for the jobname. It can be directly +specified with the '-jobname' option, as in 'pdflatex -jobname=myname' +(*note Command line input:: for a real example). + + The final possibility is 'texput', which is the final fallback +default if no other name is available to TeX. That is, if no '-jobname' +option was specified, and the compilation stops before any input file is +met, then the log file will be named 'texput.log'. + + A special case of this is that in LaTeX versions of (approximately) +2020 or later, the jobname is also 'texput' if the first '\input' occurs +as a result of being called by either '\documentclass' or +'\RequirePackage'. So this will produce a file named 'texput.pdf': + + pdflatex "\documentclass{minimal}\begin{document}Hello!\end{document}" + + However, this special case only applies to those two commands. Thus, +with + + pdflatex "\documentclass{article}\usepackage{lipsum}\input{thesis}" + +the output file is 'lipsum.pdf', as '\usepackage' calls '\input'. + + Within the document, the macro '\jobname' expands to the jobname. +(When you run LaTeX on a file whose name contains spaces, the string +returned by '\jobname' contains matching start and end quotes.) In the +expansion of that macro, all characters are of catcode 12 (other) except +that spaces are category 10, including letters that are normally +catcode 11. + + Because of this catcode situation, using the jobname in a conditional +can become complicated. One solution is to use the macro '\IfBeginWith' +from the 'xstring' package in its star variant, which is insensitive to +catcode. For example, in the following text the footnote "Including +Respublica Bananensis Francorum." is only present if the task name +starts with 'my-doc'. + + If a democracy is just a regime where citizens vote then + all banana republics \IfBeginWith*{\jobname}{my-doc}% + {\footnote{Including Respublica Bananensis Francorum.}}{} are + democracies. + + Manipulating the value of '\jobname' inside of a document does not +change the name of the output file or the log file. + + +File: latex2e.info, Node: Recovering from errors, Prev: Jobname, Up: Command line interface + +28.4 Recovering from errors +=========================== + +If LaTeX finds an error in your document then it gives you an error +message and prompts you with a question mark, '?'. For instance, +running LaTeX on this file + + \newcommand{\NP}{\ensuremath{\textbf{NP}}} + The \PN{} problem is a million dollar one. + +causes it show this, and wait for input. + + ! Undefined control sequence. + l.5 The \PN + {} problem is a million dollar one. + ? + +The simplest thing is to enter 'x' and 'RETURN' and fix the typo. You +could instead enter '?' and 'RETURN' to see other options. + + There are two other error scenarios. The first is that you forgot to +include the '\end{document}' or misspelled it. In this case LaTeX gives +you a '*' prompt. You can get back to the command line by typing +'\stop' and 'RETURN'; this command does its best to exit LaTeX +immediately, whatever state it may be in. + + The last scenario is that you mistyped the filename. For instance, +instead of 'pdflatex test' you might type 'pdflatex tste'. + + ! I can't find file `tste'. + <*> tste + + (Press Enter to retry, or Control-D to exit) + Please type another input file name: + +The simplest thing is to enter 'CTRL d' (holding the Control and d keys +down at the same time), and then retype the correct command line. + + +File: latex2e.info, Node: Document templates, Next: Index, Prev: Command line interface, Up: Top + +Appendix A Document templates +***************************** + +Although illustrative material, perhaps these document templates will be +useful. Additional template resources are listed at +<https://tug.org/interest.html#latextemplates>. + +* Menu: + +* beamer template:: +* article template:: +* book template:: +* Larger book template:: + + +File: latex2e.info, Node: beamer template, Next: article template, Up: Document templates + +A.1 'beamer' template +===================== + +The 'beamer' class creates presentation slides. It has a vast array of +features, but here is a basic template: + +\documentclass{beamer} + +\title{Beamer Class template} +\author{Alex Author} +\date{July 31, 2020} + +\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} + + The Beamer package on CTAN: <https://ctan.org/pkg/beamer>. + + +File: latex2e.info, Node: article template, Next: book template, Prev: beamer template, Up: Document templates + +A.2 'article' template +====================== + +A simple template for an article. + +\documentclass{article} +\title{Article Class Template} +\author{Alex Author} + +\begin{document} +\maketitle + +\section{First section} +Some text. + +\subsection{First section, first subsection} +Additional text. + +\section{Second section} +Some more text. + +\end{document} + + +File: latex2e.info, Node: book template, Next: Larger book template, Prev: article template, Up: Document templates + +A.3 'book' template +=================== + +This is a straightforward template for a book. *Note Larger book +template::, for a more elaborate one. + +\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} + + +File: latex2e.info, Node: Larger book template, Prev: book template, Up: Document templates + +A.4 Larger 'book' template +========================== + +This is a somewhat elaborate template for a book. *Note book +template::, for a simpler one. + + This template uses '\frontmatter', '\mainmatter', and '\backmatter' +to control the typography of the three main areas of a book (*note +\frontmatter & \mainmatter & \backmatter::). The book has a +bibliography and an index. + + Also notable is that it uses '\include' and '\includeonly' (*note +Splitting the input::). While you are working on a chapter you can +comment out all the other chapter entries from the argument to +'\includeonly'. That will speed up compilation without losing any +information such as cross-references. (Material that does not need to +come on a new page is brought in with '\input' instead of '\include'. +You don't get the cross-reference benefit with '\input'.) + +\documentclass[titlepage]{book} +\usepackage{makeidx}\makeindex + +\title{Book Class Template} +\author{Alex Author} + +\includeonly{% +% frontcover, + preface, + chap1, +% appenA, + } + +\begin{document} +\frontmatter +\include{frontcover} + % maybe comment out while drafting: +\maketitle \input{dedication} \input{copyright} +\tableofcontents +\include{preface} + +\mainmatter +\include{chap1} +... +\appendix +\include{appenA} +... + +\backmatter +\bibliographystyle{apalike} +\addcontentsline{toc}{chapter}{Bibliography} +\bibliography +\addcontentsline{toc}{chapter}{Index} +\printindex + +\include{backcover} +\end{document} + + +File: latex2e.info, Node: Index, Prev: Document templates, Up: Top + +Index +***** + + +* Menu: + +* $ inline math: math. (line 12) +* $$...$$ plain TeX display math: displaymath. (line 32) +* & for table cells: tabular. (line 32) +* * prompt: Recovering from errors. + (line 23) +* *, to \nocite all keys: Using BibTeX. (line 61) +* *-form of environment commands: \newenvironment & \renewenvironment. + (line 27) +* *-form of sectioning commands: Sectioning. (line 31) +* *-form, defining new commands: \newcommand & \renewcommand. + (line 27) +* --disable-write18 command-line option: Command line options. + (line 61) +* --enable-write18 command-line option: Command line options. + (line 61) +* --file-line-error command-line option: Command line options. + (line 82) +* --halt-on-error command-line option: Command line options. + (line 79) +* --help command-line option: Command line options. + (line 23) +* --interaction command-line option: Command line options. + (line 26) +* --jobname command-line option: Command line options. + (line 43) +* --no-file-line-error command-line option: Command line options. + (line 82) +* --no-shell-escape command-line option: Command line options. + (line 61) +* --output-directory command-line option: Command line options. + (line 48) +* --shell-escape command-line option: Command line options. + (line 61) +* --version command-line option: Command line options. + (line 18) +* -1, write stream number: \write. (line 30) +* .aux file: Output files. (line 33) +* .aux file and BibTeX commands: BibTeX error messages. + (line 6) +* .dvi file: Output files. (line 10) +* .fmt file: TeX engines. (line 6) +* .glo file: Glossaries. (line 43) +* .idx file: Indexes. (line 6) +* .idx file <1>: makeindex. (line 6) +* .ind file: makeindex. (line 6) +* .isty file: makeindex. (line 18) +* .lof file: Output files. (line 43) +* .lof file <1>: Table of contents etc.. + (line 6) +* .lof file <2>: \contentsline. (line 6) +* .log file: Output files. (line 28) +* .lot file: Output files. (line 43) +* .lot file <1>: Table of contents etc.. + (line 6) +* .lot file <2>: \contentsline. (line 6) +* .pdf file: Output files. (line 20) +* .tex, default extension: Command line interface. + (line 19) +* .toc file: Output files. (line 43) +* .toc file <1>: Table of contents etc.. + (line 6) +* .toc file <2>: \contentsline. (line 6) +* .xdv file: TeX engines. (line 42) +* /bin/sh, used by \write18: \write18. (line 60) +* 10pt option: Document class options. + (line 14) +* 11pt option: Document class options. + (line 14) +* 12pt option: Document class options. + (line 14) +* : for math: Colon character & \colon. + (line 6) +* [...] for optional arguments: LaTeX command syntax. + (line 6) +* \ (backslash-space): \(SPACE). (line 6) +* \ character starting commands: LaTeX command syntax. + (line 6) +* \!: Spacing in math mode. + (line 61) +* \" (umlaut accent): Accents. (line 25) +* \#: Reserved characters. (line 13) +* \$: Reserved characters. (line 13) +* \%: Reserved characters. (line 13) +* \&: Reserved characters. (line 13) +* \' (acute accent): Accents. (line 29) +* \' (tabbing): tabbing. (line 87) +* \(...\) inline math: math. (line 12) +* \*: \*. (line 6) +* \+: tabbing. (line 79) +* \,: Spacing in math mode. + (line 47) +* \-: tabbing. (line 83) +* \- (hyphenation): \- (hyphenation). (line 6) +* \. (dot-over accent): Accents. (line 32) +* \/: \/. (line 6) +* \:: Spacing in math mode. + (line 36) +* \;: Spacing in math mode. + (line 23) +* \<: tabbing. (line 75) +* \= (macron accent): Accents. (line 36) +* \= (tabbing): tabbing. (line 69) +* \>: tabbing. (line 73) +* \> <1>: Spacing in math mode. + (line 36) +* \> (tabbing): tabbing. (line 72) +* \@: \@. (line 6) +* \@auxout: \write. (line 45) +* \@beginparpenalty: list. (line 243) +* \@dottedtocline: \@dottedtocline. (line 6) +* \@endparpenalty: list. (line 251) +* \@fnsymbol: \footnote. (line 24) +* \@ifstar: \@ifstar. (line 6) +* \@itempenalty: list. (line 247) +* \@mainaux: \write. (line 45) +* \@startsection: \@startsection. (line 6) +* \a (tabbing): tabbing. (line 102) +* \a' (acute accent in tabbing): tabbing. (line 103) +* \a= (macron accent in tabbing): tabbing. (line 103) +* \aa (å): Additional Latin letters. + (line 12) +* \AA (Å): Additional Latin letters. + (line 12) +* \accent: \accent. (line 6) +* \acute: Math accents. (line 10) +* \addcontentsline: \addcontentsline. (line 6) +* \address: \address. (line 6) +* \addtocontents{EXT}{TEXT}: \addtocontents. (line 6) +* \addtocounter: \addtocounter. (line 6) +* \addtolength: \addtolength. (line 6) +* \addvspace: \addvspace. (line 6) +* \ae (æ): Additional Latin letters. + (line 16) +* \AE (Æ): Additional Latin letters. + (line 16) +* \aleph: Math symbols. (line 21) +* \Alph example: enumerate. (line 61) +* \alpha: Math symbols. (line 24) +* \alph{COUNTER}: \alph \Alph \arabic \roman \Roman \fnsymbol. + (line 14) +* \Alph{COUNTER}: \alph \Alph \arabic \roman \Roman \fnsymbol. + (line 19) +* \alsoname: \index. (line 58) +* \amalg: Math symbols. (line 27) +* \and for \author: \maketitle. (line 43) +* \angle: Math symbols. (line 30) +* \appendix: \appendix. (line 6) +* \approx: Math symbols. (line 34) +* \arabic{COUNTER}: \alph \Alph \arabic \roman \Roman \fnsymbol. + (line 24) +* \arccos: Math functions. (line 9) +* \arcsin: Math functions. (line 12) +* \arctan: Math functions. (line 15) +* \arg: Math functions. (line 18) +* \arraycolsep: array. (line 51) +* \arrayrulewidth: tabular. (line 157) +* \arraystretch: tabular. (line 163) +* \ast: Math symbols. (line 37) +* \asymp: Math symbols. (line 44) +* \AtBeginDocument: \AtBeginDocument. (line 6) +* \AtBeginDvi: Class and package commands. + (line 9) +* \AtEndDocument: \AtEndDocument. (line 6) +* \AtEndOfClass: Class and package commands. + (line 14) +* \AtEndOfPackage: Class and package commands. + (line 14) +* \author{NAME1 \and NAME2 \and ...}: \maketitle. (line 42) +* \a` (grave accent in tabbing): tabbing. (line 103) +* \b (bar-under accent): Accents. (line 51) +* \backmatter: \frontmatter & \mainmatter & \backmatter. + (line 6) +* \backslash: Math symbols. (line 47) +* \bar: Math accents. (line 13) +* \baselineskip: Low-level font commands. + (line 101) +* \baselineskip <1>: \baselineskip & \baselinestretch. + (line 6) +* \baselinestretch: \baselineskip & \baselinestretch. + (line 6) +* \begin: Environments. (line 6) +* \beta: Math symbols. (line 51) +* \bf: Font styles. (line 75) +* \bfseries: Font styles. (line 40) +* \bibdata: BibTeX error messages. + (line 16) +* \bibitem: \bibitem. (line 6) +* \bibliography: Using BibTeX. (line 6) +* \bibliography and internal \bibdata: BibTeX error messages. + (line 17) +* \bibliographystyle: Using BibTeX. (line 6) +* \bibliographystyle and internal \bibstyle: BibTeX error messages. + (line 20) +* \bibname: thebibliography. (line 44) +* \bibstyle: BibTeX error messages. + (line 19) +* \bigcap: Math symbols. (line 54) +* \bigcirc: Math symbols. (line 58) +* \bigcup: Math symbols. (line 61) +* \bigodot: Math symbols. (line 65) +* \bigoplus: Math symbols. (line 68) +* \bigotimes: Math symbols. (line 71) +* \bigskip: \bigskip & \medskip & \smallskip. + (line 28) +* \bigskipamount: \bigskip & \medskip & \smallskip. + (line 29) +* \bigsqcup: Math symbols. (line 80) +* \bigtriangledown: Math symbols. (line 74) +* \bigtriangleup: Math symbols. (line 77) +* \biguplus: Math symbols. (line 83) +* \bigvee: Math symbols. (line 87) +* \bigwedge: Math symbols. (line 90) +* \bmod: Math functions. (line 21) +* \boldmath: \boldmath & \unboldmath. + (line 6) +* \boldmath <1>: \boldmath & \unboldmath. + (line 14) +* \bot: Math symbols. (line 93) +* \bottomfraction: Floats. (line 94) +* \bottomfraction <1>: Floats. (line 95) +* \bowtie: Math symbols. (line 97) +* \Box: Math symbols. (line 100) +* \breve: Math accents. (line 16) +* \bullet: Math symbols. (line 105) +* \c (cedilla accent): Accents. (line 61) +* \cal: Font styles. (line 78) +* \cap: Math symbols. (line 108) +* \capitalacute: Accents. (line 29) +* \capitalbreve: Accents. (line 89) +* \capitalcaron: Accents. (line 93) +* \capitalcedilla: Accents. (line 61) +* \capitalcircumflex: Accents. (line 40) +* \capitaldieresis: Accents. (line 25) +* \capitaldotaccent: Accents. (line 65) +* \capitalgrave: Accents. (line 44) +* \capitalhungarumlaut: Accents. (line 69) +* \capitalmacron: Accents. (line 36) +* \capitalnewtie: Accents. (line 83) +* \capitalogonek: Accents. (line 73) +* \capitalring: Accents. (line 77) +* \capitaltie: Accents. (line 83) +* \capitaltilde: Accents. (line 48) +* \caption: \caption. (line 6) +* \caption <1>: figure. (line 43) +* \caption <2>: table. (line 42) +* \cc: \cc. (line 6) +* \cdot: Math symbols. (line 112) +* \cdots: Dots. (line 17) +* \centering: \centering. (line 6) +* \chapter: Sectioning. (line 6) +* \chapter <1>: \chapter. (line 6) +* \check: Math accents. (line 19) +* \CheckCommand: Class and package commands. + (line 21) +* \CheckCommand*: Class and package commands. + (line 21) +* \chi: Math symbols. (line 115) +* \circ: Math symbols. (line 118) +* \circle: \circle. (line 6) +* \citation: BibTeX error messages. + (line 22) +* \cite: \cite. (line 6) +* \cite and internal \citation: BibTeX error messages. + (line 23) +* \ClassError: Class and package commands. + (line 41) +* \ClassInfo: Class and package commands. + (line 41) +* \ClassInfoNoLine: Class and package commands. + (line 41) +* \ClassWarning: Class and package commands. + (line 41) +* \ClassWarningNoLine: Class and package commands. + (line 41) +* \cleardoublepage: \clearpage & \cleardoublepage. + (line 6) +* \clearpage: \clearpage & \cleardoublepage. + (line 6) +* \cline: \cline. (line 6) +* \closein: \openin & \openout. (line 6) +* \closeout: \openin & \openout. (line 6) +* \closing: \closing. (line 6) +* \clubsuit: Math symbols. (line 122) +* \colon: Colon character & \colon. + (line 6) +* \columnsep: \twocolumn. (line 20) +* \columnsep <1>: Page layout parameters. + (line 6) +* \columnsep <2>: Page layout parameters. + (line 9) +* \columnseprule: \twocolumn. (line 26) +* \columnseprule <1>: Page layout parameters. + (line 7) +* \columnseprule <2>: Page layout parameters. + (line 9) +* \columnwidth: \twocolumn. (line 33) +* \columnwidth <1>: Page layout parameters. + (line 8) +* \columnwidth <2>: Page layout parameters. + (line 9) +* \complement: Math symbols. (line 125) +* \cong: Math symbols. (line 131) +* \contentsline: Table of contents etc.. + (line 62) +* \contentsline <1>: \addcontentsline. (line 10) +* \contentsline <2>: \contentsline. (line 6) +* \coprod: Math symbols. (line 134) +* \copyright: Text symbols. (line 13) +* \cos: Math functions. (line 24) +* \cosh: Math functions. (line 27) +* \cot: Math functions. (line 30) +* \coth: Math functions. (line 33) +* \csc: Math functions. (line 36) +* \cup: Math symbols. (line 137) +* \CurrentOption: Class and package commands. + (line 60) +* \d (dot-under accent): Accents. (line 65) +* \dag: Text symbols. (line 17) +* \dagger: Math symbols. (line 141) +* \dashbox: \dashbox. (line 6) +* \dashv: Math symbols. (line 144) +* \date{TEXT}: \maketitle. (line 50) +* \day: \day & \month & \year. + (line 6) +* \dblfloatpagefraction: \twocolumn. (line 66) +* \dblfloatsep: \twocolumn. (line 72) +* \dbltextfloatsep: \twocolumn. (line 79) +* \dbltopfraction: \twocolumn. (line 45) +* \dbltopnumber: \twocolumn. (line 84) +* \ddag: Text symbols. (line 20) +* \ddagger: Math symbols. (line 148) +* \ddot: Math accents. (line 22) +* \ddots: Dots. (line 21) +* \DeclareFontEncoding: \DeclareFontEncoding. + (line 6) +* \DeclareGraphicsExtensions: \DeclareGraphicsExtensions. + (line 6) +* \DeclareGraphicsRule: \DeclareGraphicsRule. + (line 6) +* \DeclareOption: Class and package commands. + (line 66) +* \DeclareOption*: Class and package commands. + (line 66) +* \DeclareRobustCommand: Class and package commands. + (line 96) +* \DeclareRobustCommand*: Class and package commands. + (line 96) +* \DeclareTextAccent: \DeclareTextAccent. (line 6) +* \DeclareTextAccent <1>: \DeclareTextAccentDefault. + (line 6) +* \DeclareTextAccentDefault: \DeclareTextAccentDefault. + (line 6) +* \DeclareTextCommand: \DeclareTextCommand & \ProvideTextCommand. + (line 6) +* \DeclareTextCommand <1>: \DeclareTextCommandDefault & \ProvideTextCommandDefault. + (line 6) +* \DeclareTextCommandDefault: \DeclareTextCommandDefault & \ProvideTextCommandDefault. + (line 6) +* \DeclareTextComposite: \DeclareTextComposite. + (line 6) +* \DeclareTextCompositeCommand: \DeclareTextCompositeCommand. + (line 6) +* \DeclareTextSymbol: \DeclareTextCommand & \ProvideTextCommand. + (line 37) +* \DeclareTextSymbol <1>: \DeclareTextSymbol. (line 6) +* \DeclareTextSymbol <2>: \DeclareTextSymbolDefault. + (line 6) +* \DeclareTextSymbolDefault: \DeclareTextSymbolDefault. + (line 6) +* \deg: Math functions. (line 39) +* \DelayedShellEscape: \write18. (line 71) +* \Delta: Math symbols. (line 151) +* \delta: Math symbols. (line 154) +* \det: Math functions. (line 42) +* \dh (ð): Additional Latin letters. + (line 20) +* \DH (Ð): Additional Latin letters. + (line 20) +* \Diamond: Math symbols. (line 157) +* \diamond: Math symbols. (line 161) +* \diamondsuit: Math symbols. (line 165) +* \dim: Math functions. (line 45) +* \displaystyle: Math styles. (line 29) +* \div: Math symbols. (line 168) +* \dj: Additional Latin letters. + (line 26) +* \DJ: Additional Latin letters. + (line 26) +* \documentclass: Document classes. (line 6) +* \documentclass, and texput jobname: Jobname. (line 32) +* \dot: Math accents. (line 25) +* \doteq: Math symbols. (line 171) +* \dotfill: \hrulefill & \dotfill. + (line 6) +* \dots: Text symbols. (line 37) +* \doublerulesep: tabular. (line 168) +* \downarrow: Math symbols. (line 175) +* \Downarrow: Math symbols. (line 179) +* \ell: Math symbols. (line 183) +* \emph: Font styles. (line 60) +* \emptyset: Math symbols. (line 186) +* \encl: \encl. (line 6) +* \end: Environments. (line 6) +* \endinput: \endinput. (line 6) +* \enlargethispage: \enlargethispage. (line 6) +* \enspace: \enspace & \quad & \qquad. + (line 6) +* \enumi: enumerate. (line 47) +* \enumii: enumerate. (line 47) +* \enumiii: enumerate. (line 47) +* \enumiv: enumerate. (line 47) +* \epsilon: Math symbols. (line 189) +* \equiv: Math symbols. (line 195) +* \eta: Math symbols. (line 198) +* \evensidemargin: Document class options. + (line 84) +* \evensidemargin <1>: Page layout parameters. + (line 67) +* \evensidemargin <2>: Page layout parameters. + (line 68) +* \ExecuteOptions: Class and package commands. + (line 172) +* \exists: Math symbols. (line 201) +* \exp: Math functions. (line 48) +* \externaldocument: xr package. (line 6) +* \extracolsep: tabular. (line 108) +* \fbox: \fbox & \framebox. (line 6) +* \fboxrule: \framebox (picture). (line 31) +* \fboxrule <1>: \fbox & \framebox. (line 38) +* \fboxrule <2>: \fbox & \framebox. (line 37) +* \fboxsep: \framebox (picture). (line 31) +* \fboxsep <1>: \fbox & \framebox. (line 43) +* \fboxsep <2>: \fbox & \framebox. (line 42) +* \fill: \hfill. (line 18) +* \flat: Math symbols. (line 204) +* \floatpagefraction: Floats. (line 98) +* \floatpagefraction <1>: Floats. (line 99) +* \floatsep: Floats. (line 114) +* \floatsep <1>: Floats. (line 115) +* \flushbottom: \flushbottom. (line 6) +* \fnsymbol, and footnotes: \footnote. (line 24) +* \fnsymbol{COUNTER}: \alph \Alph \arabic \roman \Roman \fnsymbol. + (line 37) +* \fontdimen1: \/. (line 40) +* \fontencoding: Low-level font commands. + (line 11) +* \fontfamily: Low-level font commands. + (line 21) +* \fontseries: Low-level font commands. + (line 48) +* \fontshape: Low-level font commands. + (line 88) +* \fontsize: Low-level font commands. + (line 101) +* \footnote: \footnote. (line 6) +* \footnotemark: \footnotemark. (line 6) +* \footnoterule: \footnote. (line 34) +* \footnotesep: \footnote. (line 46) +* \footnotesize: Font sizes. (line 11) +* \footnotetext: \footnotetext. (line 6) +* \footskip: Page layout parameters. + (line 26) +* \footskip <1>: Page layout parameters. + (line 27) +* \forall: Math symbols. (line 207) +* \frac: \frac. (line 6) +* \frame: \frame. (line 6) +* \framebox: \framebox (picture). (line 6) +* \framebox <1>: \fbox & \framebox. (line 6) +* \frenchspacing: \frenchspacing & \nonfrenchspacing. + (line 6) +* \frontmatter: \frontmatter & \mainmatter & \backmatter. + (line 6) +* \frown: Math symbols. (line 210) +* \fussy: \fussy & \sloppy. (line 6) +* \Gamma: Math symbols. (line 213) +* \gamma: Math symbols. (line 216) +* \gcd: Math functions. (line 51) +* \ge: Math symbols. (line 219) +* \geq: Math symbols. (line 223) +* \gets: Math symbols. (line 227) +* \gg: Math symbols. (line 230) +* \gls: \gls. (line 6) +* \graphicspath: \graphicspath. (line 6) +* \graphpaper: \graphpaper. (line 6) +* \grave: Math accents. (line 28) +* \guillemotleft («): Text symbols. (line 29) +* \guillemotright (»): Text symbols. (line 30) +* \guilsinglleft (‹): Text symbols. (line 31) +* \guilsinglright (›): Text symbols. (line 32) +* \H (Hungarian umlaut accent): Accents. (line 69) +* \hat: Math accents. (line 31) +* \hbar: Math symbols. (line 233) +* \headheight: Page layout parameters. + (line 14) +* \headheight <1>: Page layout parameters. + (line 15) +* \headsep: Page layout parameters. + (line 19) +* \headsep <1>: Page layout parameters. + (line 20) +* \heartsuit: Math symbols. (line 236) +* \hfill: \hfill. (line 6) +* \hline: \hline. (line 6) +* \hom: Math functions. (line 54) +* \hookleftarrow: Math symbols. (line 239) +* \hookrightarrow: Math symbols. (line 242) +* \hrulefill: \hrulefill & \dotfill. + (line 6) +* \hsize: Page layout parameters. + (line 119) +* \hsize <1>: Page layout parameters. + (line 120) +* \hspace: \hspace. (line 6) +* \hss: \hss. (line 6) +* \huge: Font sizes. (line 11) +* \Huge: Font sizes. (line 11) +* \hyphenation: \hyphenation. (line 6) +* \i (dotless i): Accents. (line 19) +* \IfBeginWith* macro from xstring: Jobname. (line 53) +* \iff: Math symbols. (line 245) +* \IfFileExists: Class and package commands. + (line 128) +* \ignorespaces: \ignorespaces & \ignorespacesafterend. + (line 6) +* \ignorespacesafterend: \ignorespaces & \ignorespacesafterend. + (line 6) +* \ij (ij): Additional Latin letters. + (line 32) +* \IJ (IJ): Additional Latin letters. + (line 32) +* \Im: Math symbols. (line 249) +* \imath: Math symbols. (line 252) +* \immediate\write: \write. (line 60) +* \in: Math symbols. (line 256) +* \include: \include & \includeonly. + (line 6) +* \includegraphics: \includegraphics. (line 6) +* \includeonly: \include & \includeonly. + (line 6) +* \indent: \indent & \noindent. (line 6) +* \index: Indexes. (line 6) +* \index <1>: \index. (line 6) +* \indexentry: \index. (line 108) +* \indexspace: Produce the index manually. + (line 22) +* \indexspace <1>: makeindex. (line 59) +* \inf: Math functions. (line 57) +* \infty: Math symbols. (line 260) +* \input: \input. (line 6) +* \inputencoding: inputenc package. (line 50) +* \InputIfFileExists: Class and package commands. + (line 128) +* \int: Math symbols. (line 263) +* \intextsep: Floats. (line 118) +* \intextsep <1>: Floats. (line 119) +* \iota: Math symbols. (line 266) +* \it: Font styles. (line 81) +* \item: description. (line 31) +* \item <1>: enumerate. (line 29) +* \item <2>: itemize. (line 6) +* \item <3>: itemize. (line 30) +* \item <4>: Produce the index manually. + (line 22) +* \itemindent: list. (line 84) +* \itemsep: list. (line 88) +* \itshape: Font styles. (line 34) +* \j (dotless j): Accents. (line 19) +* \jmath: Math symbols. (line 272) +* \jobname: Jobname. (line 6) +* \jobname <1>: Jobname. (line 46) +* \Join: Math symbols. (line 269) +* \k (ogonek): Accents. (line 73) +* \kappa: Math symbols. (line 276) +* \ker: Math functions. (line 60) +* \kill: tabbing. (line 107) +* \l (ł): Additional Latin letters. + (line 36) +* \L (Ł): Additional Latin letters. + (line 36) +* \l@chapter: \contentsline. (line 6) +* \l@section: \contentsline. (line 6) +* \l@subsection: \contentsline. (line 6) +* \label: \label. (line 6) +* \labelenumi: enumerate. (line 56) +* \labelenumii: enumerate. (line 56) +* \labelenumiii: enumerate. (line 56) +* \labelenumiv: enumerate. (line 56) +* \labelitemi: itemize. (line 42) +* \labelitemii: itemize. (line 42) +* \labelitemiii: itemize. (line 42) +* \labelitemiv: itemize. (line 42) +* \labelsep: list. (line 100) +* \labelwidth: list. (line 105) +* \Lambda: Math symbols. (line 279) +* \lambda: Math symbols. (line 282) +* \land: Math symbols. (line 285) +* \langle: Math symbols. (line 289) +* \large: Font sizes. (line 11) +* \Large: Font sizes. (line 11) +* \LARGE: Font sizes. (line 11) +* \LastDeclaredEncoding: \LastDeclaredEncoding. + (line 6) +* \LaTeX: Text symbols. (line 23) +* \LaTeXe: Text symbols. (line 26) +* \lbrace: Math symbols. (line 293) +* \lbrack: Math symbols. (line 296) +* \lceil: Math symbols. (line 299) +* \ldots: Dots. (line 24) +* \ldots <1>: Text symbols. (line 36) +* \le: Math symbols. (line 303) +* \leadsto: Math symbols. (line 306) +* \left: \left & \right. (line 6) +* \Leftarrow: Math symbols. (line 312) +* \leftarrow: Math symbols. (line 316) +* \lefteqn: eqnarray. (line 44) +* \leftharpoondown: Math symbols. (line 320) +* \leftharpoonup: Math symbols. (line 323) +* \leftmargin: itemize. (line 58) +* \leftmargin <1>: list. (line 125) +* \leftmargini: itemize. (line 58) +* \leftmarginii: itemize. (line 58) +* \leftmarginiii: itemize. (line 58) +* \leftmarginiv: itemize. (line 58) +* \leftmarginv: itemize. (line 58) +* \leftmarginvi: itemize. (line 58) +* \Leftrightarrow: Math symbols. (line 326) +* \leftrightarrow: Math symbols. (line 330) +* \leq: Math symbols. (line 334) +* \lfloor: Math symbols. (line 337) +* \lg: Math functions. (line 63) +* \lhd: Math symbols. (line 340) +* \lim: Math functions. (line 66) +* \liminf: Math functions. (line 69) +* \limsup: Math functions. (line 72) +* \line: \line. (line 6) +* \linebreak: \linebreak & \nolinebreak. + (line 6) +* \lineskip: \baselineskip & \baselinestretch. + (line 45) +* \lineskiplimit: \baselineskip & \baselinestretch. + (line 45) +* \linespread: Low-level font commands. + (line 112) +* \linespread <1>: \baselineskip & \baselinestretch. + (line 6) +* \linethickness: \linethickness. (line 6) +* \linewidth: Page layout parameters. + (line 33) +* \linewidth <1>: Page layout parameters. + (line 34) +* \listoffigures: Table of contents etc.. + (line 6) +* \listoffigures <1>: \contentsline. (line 6) +* \listoftables: Table of contents etc.. + (line 6) +* \listoftables <1>: \contentsline. (line 6) +* \listparindent: list. (line 142) +* \ll: Math symbols. (line 346) +* \ln: Math functions. (line 75) +* \lnot: Math symbols. (line 349) +* \LoadClass: Class and package commands. + (line 148) +* \LoadClassWithOptions: Class and package commands. + (line 148) +* \location: \location. (line 6) +* \log: Math functions. (line 78) +* \long: \newcommand & \renewcommand. + (line 27) +* \longleftarrow: Math symbols. (line 352) +* \longleftrightarrow: Math symbols. (line 356) +* \longmapsto: Math symbols. (line 360) +* \longrightarrow: Math symbols. (line 364) +* \lor: Math symbols. (line 368) +* \lq: Text symbols. (line 42) +* \mainmatter: \frontmatter & \mainmatter & \backmatter. + (line 6) +* \makebox: \mbox & \makebox. (line 6) +* \makebox (for picture): \makebox (picture). (line 6) +* \makeglossary: Glossaries. (line 6) +* \makeglossary <1>: Glossaries. (line 43) +* \makeindex: Indexes. (line 6) +* \makelabel: list. (line 61) +* \makelabels: \makelabels. (line 6) +* \maketitle: \maketitle. (line 6) +* \mapsto: Math symbols. (line 372) +* \marginpar: Marginal notes. (line 6) +* \marginparpush: Page layout parameters. + (line 40) +* \marginparpush <1>: Page layout parameters. + (line 43) +* \marginparpush <2>: Marginal notes. (line 35) +* \marginparsep: Marginal notes. (line 40) +* \marginparwidth: Page layout parameters. + (line 42) +* \marginparwidth <1>: Page layout parameters. + (line 43) +* \marginparwidth <2>: Marginal notes. (line 44) +* \marginsep: Page layout parameters. + (line 41) +* \marginsep <1>: Page layout parameters. + (line 43) +* \markboth{LEFT-HEAD}{RIGHT-HEAD}: \pagestyle. (line 75) +* \markright{RIGHT}: \pagestyle. (line 84) +* \mathbf: Font styles. (line 111) +* \mathcal: Font styles. (line 127) +* \mathdollar: Math symbols. (line 832) +* \mathnormal: Font styles. (line 124) +* \mathparagraph: Math symbols. (line 835) +* \mathring: Math accents. (line 34) +* \mathrm: Font styles. (line 108) +* \mathsection: Math symbols. (line 838) +* \mathsf: Font styles. (line 114) +* \mathsterling: Math symbols. (line 841) +* \mathstrut: \mathstrut. (line 6) +* \mathtt: Font styles. (line 117) +* \mathunderscore: Math symbols. (line 844) +* \mathversion: Font styles. (line 129) +* \max: Math functions. (line 81) +* \mbox: \mbox & \makebox. (line 6) +* \mdseries: Font styles. (line 37) +* \medskip: \bigskip & \medskip & \smallskip. + (line 33) +* \medskipamount: \bigskip & \medskip & \smallskip. + (line 34) +* \medspace: Spacing in math mode. + (line 36) +* \message: \message. (line 6) +* \mho: Math symbols. (line 376) +* \mid: Math symbols. (line 379) +* \min: Math functions. (line 84) +* \models: Math symbols. (line 389) +* \month: \day & \month & \year. + (line 6) +* \mp: Math symbols. (line 393) +* \mu: Math symbols. (line 396) +* \multicolumn: \multicolumn. (line 6) +* \multiput: \multiput. (line 6) +* \nabla: Math symbols. (line 399) +* \name: \name. (line 6) +* \natural: Math symbols. (line 402) +* \ne: Math symbols. (line 405) +* \nearrow: Math symbols. (line 408) +* \NeedsTeXFormat: Class and package commands. + (line 182) +* \neg: Math symbols. (line 411) +* \negmedspace: Spacing in math mode. + (line 42) +* \negthickspace: Spacing in math mode. + (line 30) +* \negthinspace: Spacing in math mode. + (line 61) +* \negthinspace <1>: \thinspace & \negthinspace. + (line 6) +* \neq: Math symbols. (line 415) +* \newcommand: \newcommand & \renewcommand. + (line 6) +* \newcounter: \newcounter. (line 6) +* \newenvironment: \newenvironment & \renewenvironment. + (line 6) +* \newfont: \newfont. (line 6) +* \newglossaryentry: \newglossaryentry. (line 6) +* \newlength: \newlength. (line 6) +* \newline: \newline. (line 6) +* \<NEWLINE>: \(SPACE). (line 6) +* \newpage: \newpage. (line 6) +* \newsavebox: \newsavebox. (line 6) +* \newtheorem: \newtheorem. (line 6) +* \newtie: Accents. (line 83) +* \newwrite: \write. (line 24) +* \ng: Additional Latin letters. + (line 40) +* \NG: Additional Latin letters. + (line 40) +* \ni: Math symbols. (line 418) +* \nocite: \nocite. (line 6) +* \nocite and internal \citation: BibTeX error messages. + (line 23) +* \nocite {*}, for all keys: Using BibTeX. (line 61) +* \nocorr: Font styles. (line 22) +* \nocorrlist: Font styles. (line 22) +* \nofiles: \nofiles. (line 6) +* \noindent: \indent & \noindent. (line 6) +* \nolinebreak: \linebreak & \nolinebreak. + (line 6) +* \nonfrenchspacing: \frenchspacing & \nonfrenchspacing. + (line 6) +* \nonumber: eqnarray. (line 39) +* \nopagebreak: \pagebreak & \nopagebreak. + (line 6) +* \normalfont: Font styles. (line 58) +* \normalmarginpar: Marginal notes. (line 22) +* \normalsfcodes: \normalsfcodes. (line 6) +* \normalsize: Font sizes. (line 11) +* \not: Math symbols. (line 422) +* \notin: Math symbols. (line 430) +* \nu: Math symbols. (line 434) +* \numberline: \numberline. (line 6) +* \nwarrow: Math symbols. (line 437) +* \o (ø): Additional Latin letters. + (line 44) +* \O (Ø): Additional Latin letters. + (line 44) +* \obeycr: \obeycr & \restorecr. + (line 6) +* \oddsidemargin: Document class options. + (line 84) +* \oddsidemargin <1>: Page layout parameters. + (line 66) +* \oddsidemargin <2>: Page layout parameters. + (line 68) +* \odot: Math symbols. (line 440) +* \oe (œ): Additional Latin letters. + (line 48) +* \OE (Œ): Additional Latin letters. + (line 48) +* \oint: Math symbols. (line 444) +* \oldstylenums: Font styles. (line 133) +* \Omega: Math symbols. (line 447) +* \omega: Math symbols. (line 450) +* \ominus: Math symbols. (line 453) +* \onecolumn: \onecolumn. (line 6) +* \openin: \openin & \openout. (line 6) +* \opening: \opening. (line 6) +* \openout: \openin & \openout. (line 6) +* \oplus: Math symbols. (line 456) +* \OptionNotUsed: Class and package commands. + (line 200) +* \oslash: Math symbols. (line 460) +* \otimes: Math symbols. (line 463) +* \oval: \oval. (line 6) +* \overbrace{MATH}: Over- and Underlining. + (line 39) +* \overline{TEXT}: Over- and Underlining. + (line 20) +* \owns: Math symbols. (line 467) +* \P: Text symbols. (line 45) +* \PackageError: Class and package commands. + (line 41) +* \PackageInfo: Class and package commands. + (line 41) +* \PackageInfoNoLine: Class and package commands. + (line 41) +* \PackageWarning: Class and package commands. + (line 41) +* \PackageWarningNoLine: Class and package commands. + (line 41) +* \pagebreak: \pagebreak & \nopagebreak. + (line 6) +* \pagenumbering: \pagenumbering. (line 6) +* \pageref: \pageref. (line 6) +* \pagestyle: \pagestyle. (line 6) +* \paperheight: Page layout parameters. + (line 79) +* \paperheight <1>: Page layout parameters. + (line 80) +* \paperwidth: Page layout parameters. + (line 85) +* \paperwidth <1>: Page layout parameters. + (line 86) +* \par: \par. (line 6) +* \paragraph: Sectioning. (line 6) +* \paragraph <1>: \subsubsection & \paragraph & \subparagraph. + (line 6) +* \parallel: Math symbols. (line 471) +* \parbox: \parbox. (line 6) +* \parindent: minipage. (line 103) +* \parindent <1>: \indent & \noindent. (line 6) +* \parindent <2>: \parindent & \parskip. + (line 6) +* \parsep: list. (line 148) +* \parskip: \parindent & \parskip. + (line 6) +* \parskip example: itemize. (line 78) +* \part: Sectioning. (line 6) +* \part <1>: \part. (line 6) +* \partial: Math symbols. (line 474) +* \partopsep: list. (line 157) +* \PassOptionsToClass: Class and package commands. + (line 206) +* \PassOptionsToPackage: Class and package commands. + (line 206) +* \pdfpageheight: Document class options. + (line 40) +* \pdfpagewidth: Document class options. + (line 40) +* \perp: Math symbols. (line 477) +* \Phi: Math symbols. (line 481) +* \phi: Math symbols. (line 484) +* \Pi: Math symbols. (line 488) +* \pi: Math symbols. (line 491) +* \pm: Math symbols. (line 495) +* \pmod: Math functions. (line 87) +* \poptabs: tabbing. (line 113) +* \poptabs <1>: tabbing. (line 114) +* \pounds: Text symbols. (line 49) +* \Pr: Math functions. (line 90) +* \prec: Math symbols. (line 498) +* \preceq: Math symbols. (line 501) +* \prevdepth: \baselineskip & \baselinestretch. + (line 45) +* \prime: Math symbols. (line 505) +* \printglossaries: Glossaries. (line 6) +* \printglossaries <1>: Glossaries. (line 43) +* \printindex: \printindex. (line 6) +* \ProcessOptions: Class and package commands. + (line 243) +* \ProcessOptions*: Class and package commands. + (line 243) +* \prod: Math symbols. (line 514) +* \propto: Math symbols. (line 517) +* \protect: \protect. (line 6) +* \protected@write: \write. (line 70) +* \providecommand: \providecommand. (line 6) +* \ProvidesClass: Class and package commands. + (line 281) +* \ProvidesFile: Class and package commands. + (line 314) +* \ProvidesPackage: Class and package commands. + (line 281) +* \ProvideTextCommand: \DeclareTextCommand & \ProvideTextCommand. + (line 6) +* \ProvideTextCommand <1>: \DeclareTextCommandDefault & \ProvideTextCommandDefault. + (line 6) +* \ProvideTextCommandDefault: \DeclareTextCommandDefault & \ProvideTextCommandDefault. + (line 6) +* \ps: \ps. (line 6) +* \Psi: Math symbols. (line 520) +* \psi: Math symbols. (line 523) +* \pushtabs: tabbing. (line 116) +* \put: \put. (line 6) +* \qbezier: \qbezier. (line 6) +* \qquad: Spacing in math mode. + (line 75) +* \qquad <1>: \enspace & \quad & \qquad. + (line 6) +* \quad: Spacing in math mode. + (line 69) +* \quad <1>: \enspace & \quad & \qquad. + (line 6) +* \quotedblbase („): Text symbols. (line 53) +* \quotesinglbase (‚): Text symbols. (line 54) +* \r (ring accent): Accents. (line 77) +* \raggedbottom: \raggedbottom. (line 6) +* \raggedleft: \raggedleft. (line 6) +* \raggedright: \raggedright. (line 6) +* \raisebox: \raisebox. (line 6) +* \rangle: Math symbols. (line 526) +* \rbrace: Math symbols. (line 530) +* \rbrack: Math symbols. (line 533) +* \rceil: Math symbols. (line 537) +* \Re: Math symbols. (line 540) +* \read: \read. (line 6) +* \ref: \ref. (line 6) +* \reflectbox: \scalebox. (line 6) +* \refname: thebibliography. (line 44) +* \refstepcounter: \refstepcounter. (line 6) +* \renewenvironment: \newenvironment & \renewenvironment. + (line 6) +* \RequirePackage: Class and package commands. + (line 323) +* \RequirePackage, and texput jobname: Jobname. (line 32) +* \RequirePackageWithOptions: Class and package commands. + (line 323) +* \resizebox: \resizebox. (line 6) +* \restorecr: \obeycr & \restorecr. + (line 6) +* \restriction: Math symbols. (line 545) +* \revemptyset: Math symbols. (line 550) +* \reversemarginpar: Marginal notes. (line 22) +* \rfloor: Math symbols. (line 555) +* \rhd: Math symbols. (line 559) +* \rho: Math symbols. (line 565) +* \right: \left & \right. (line 6) +* \Rightarrow: Math symbols. (line 569) +* \rightarrow: Math symbols. (line 573) +* \rightharpoondown: Math symbols. (line 577) +* \rightharpoonup: Math symbols. (line 580) +* \rightleftharpoons: Math symbols. (line 583) +* \rightmargin: list. (line 172) +* \rm: Font styles. (line 84) +* \rmfamily: Font styles. (line 31) +* \roman{COUNTER}: \alph \Alph \arabic \roman \Roman \fnsymbol. + (line 27) +* \Roman{COUNTER}: \alph \Alph \arabic \roman \Roman \fnsymbol. + (line 32) +* \rotatebox: \rotatebox. (line 6) +* \rq: Text symbols. (line 57) +* \rule: \rule. (line 6) +* \S: Text symbols. (line 60) +* \samepage: \pagebreak & \nopagebreak. + (line 44) +* \savebox: \sbox & \savebox. (line 6) +* \sbox: \sbox & \savebox. (line 6) +* \sc: Font styles. (line 87) +* \scalebox: \scalebox. (line 6) +* \scriptscriptstyle: Math styles. (line 29) +* \scriptsize: Font sizes. (line 11) +* \scriptstyle: Math styles. (line 29) +* \scshape: Font styles. (line 52) +* \searrow: Math symbols. (line 586) +* \sec: Math functions. (line 93) +* \section: Sectioning. (line 6) +* \section <1>: \section. (line 6) +* \seename: \index. (line 58) +* \selectfont: Low-level font commands. + (line 118) +* \setcounter: \setcounter. (line 6) +* \setlength: \setlength. (line 6) +* \setminus: Math symbols. (line 589) +* \settodepth: \settodepth. (line 6) +* \settoheight: \settoheight. (line 6) +* \settowidth: \settowidth. (line 6) +* \sf: Font styles. (line 90) +* \sffamily: Font styles. (line 49) +* \sharp: Math symbols. (line 594) +* \ShellEscape: \write18. (line 71) +* \shipout and expansion: \write. (line 65) +* \shortstack: \shortstack. (line 6) +* \Sigma: Math symbols. (line 597) +* \sigma: Math symbols. (line 600) +* \signature: \signature. (line 11) +* \sim: Math symbols. (line 604) +* \simeq: Math symbols. (line 607) +* \sin: Math functions. (line 96) +* \sinh: Math functions. (line 99) +* \sl: Font styles. (line 93) +* \sloppy: \fussy & \sloppy. (line 6) +* \slshape: Font styles. (line 46) +* \small: Font sizes. (line 11) +* \smallint: Math symbols. (line 610) +* \smallskip: \bigskip & \medskip & \smallskip. + (line 38) +* \smallskipamount: \bigskip & \medskip & \smallskip. + (line 39) +* \smile: Math symbols. (line 614) +* \<SPACE>: \(SPACE). (line 6) +* \<SPACE> <1>: \(SPACE). (line 6) +* \space: \include & \includeonly. + (line 88) +* \space <1>: \input. (line 32) +* \space <2>: \typeout. (line 22) +* \spacefactor: \spacefactor. (line 10) +* \spadesuit: Math symbols. (line 617) +* \sqcap: Math symbols. (line 620) +* \sqcup: Math symbols. (line 624) +* \sqrt: \sqrt. (line 6) +* \sqsubset: Math symbols. (line 628) +* \sqsubseteq: Math symbols. (line 633) +* \sqsupset: Math symbols. (line 637) +* \sqsupseteq: Math symbols. (line 642) +* \ss (ß): Additional Latin letters. + (line 52) +* \SS (SS): Additional Latin letters. + (line 52) +* \stackrel: \stackrel. (line 6) +* \star: Math symbols. (line 646) +* \stepcounter: \stepcounter. (line 6) +* \stop: Recovering from errors. + (line 23) +* \stretch: \stretch. (line 6) +* \strut: \strut. (line 6) +* \subitem: Produce the index manually. + (line 22) +* \subparagraph: Sectioning. (line 6) +* \subparagraph <1>: \subsubsection & \paragraph & \subparagraph. + (line 6) +* \subsection: Sectioning. (line 6) +* \subsection <1>: \subsection. (line 6) +* \subset: Math symbols. (line 653) +* \subseteq: Math symbols. (line 656) +* \subsubitem: Produce the index manually. + (line 22) +* \subsubsection: Sectioning. (line 6) +* \subsubsection <1>: \subsubsection & \paragraph & \subparagraph. + (line 6) +* \succ: Math symbols. (line 659) +* \succeq: Math symbols. (line 662) +* \sum: Math symbols. (line 666) +* \sup: Math functions. (line 102) +* \suppressfloats: Floats. (line 87) +* \supset: Math symbols. (line 669) +* \supseteq: Math symbols. (line 672) +* \surd: Math symbols. (line 675) +* \swarrow: Math symbols. (line 680) +* \symbol: Symbols by font position. + (line 6) +* \t (tie-after accent): Accents. (line 83) +* \<TAB>: \(SPACE). (line 6) +* \tabbingsep: tabbing. (line 121) +* \tabcolsep: tabular. (line 172) +* \tableofcontents: Table of contents etc.. + (line 6) +* \tableofcontents <1>: \contentsline. (line 6) +* \tan: Math functions. (line 105) +* \tanh: Math functions. (line 108) +* \tau: Math symbols. (line 683) +* \telephone: \telephone. (line 6) +* \TeX: Text symbols. (line 64) +* \textascendercompwordmark: Text symbols. (line 102) +* \textasciicircum: Text symbols. (line 67) +* \textasciitilde: Text symbols. (line 70) +* \textasteriskcentered: Text symbols. (line 73) +* \textbackslash: Reserved characters. (line 18) +* \textbackslash <1>: Text symbols. (line 76) +* \textbar: Text symbols. (line 79) +* \textbardbl: Text symbols. (line 82) +* \textbf: Font styles. (line 40) +* \textbigcircle: Text symbols. (line 85) +* \textbraceleft: Text symbols. (line 88) +* \textbraceright: Text symbols. (line 91) +* \textbullet: Text symbols. (line 94) +* \textcapitalcompwordmark: Text symbols. (line 101) +* \textcircled{LETTER}: Text symbols. (line 97) +* \textcompwordmark: Text symbols. (line 100) +* \textcopyright: Text symbols. (line 14) +* \textdagger: Text symbols. (line 109) +* \textdaggerdbl: Text symbols. (line 112) +* \textdollar (or \$): Text symbols. (line 115) +* \textellipsis: Text symbols. (line 38) +* \textemdash (or ---): Text symbols. (line 118) +* \textendash (or --): Text symbols. (line 124) +* \texteuro: Text symbols. (line 127) +* \textexclamdown (or !`): Text symbols. (line 135) +* \textfiguredash: Text symbols. (line 138) +* \textfloatsep: Floats. (line 123) +* \textfloatsep <1>: Floats. (line 124) +* \textfraction: Floats. (line 102) +* \textfraction <1>: Floats. (line 103) +* \textgreater: Text symbols. (line 145) +* \textheight: Page layout parameters. + (line 91) +* \textheight <1>: Page layout parameters. + (line 92) +* \texthorizontalbar: Text symbols. (line 148) +* \textit: Font styles. (line 34) +* \textleftarrow: Text symbols. (line 156) +* \textless: Text symbols. (line 153) +* \textmd: Font styles. (line 37) +* \textnonbreakinghyphen: Text symbols. (line 159) +* \textnormal: Font styles. (line 58) +* \textordfeminine: Text symbols. (line 165) +* \textordmasculine: Text symbols. (line 166) +* \textparagraph: Text symbols. (line 46) +* \textperiodcentered: Text symbols. (line 169) +* \textquestiondown (or ?`): Text symbols. (line 172) +* \textquotedblleft (or ``): Text symbols. (line 175) +* \textquotedblright (or ''): Text symbols. (line 178) +* \textquoteleft (or `): Text symbols. (line 181) +* \textquoteright (or '): Text symbols. (line 184) +* \textquotesingle: Text symbols. (line 187) +* \textquotestraightbase: Text symbols. (line 190) +* \textquotestraightdblbase: Text symbols. (line 191) +* \textregistered: Text symbols. (line 194) +* \textrightarrow: Text symbols. (line 197) +* \textrm: Font styles. (line 31) +* \textsc: Font styles. (line 52) +* \textsection: Text symbols. (line 61) +* \textsf: Font styles. (line 49) +* \textsl: Font styles. (line 46) +* \textsterling: Text symbols. (line 50) +* \textstyle: Math styles. (line 29) +* \textthreequartersemdash: Text symbols. (line 200) +* \texttrademark: Text symbols. (line 203) +* \texttt: Font styles. (line 55) +* \texttwelveudash: Text symbols. (line 206) +* \textunderscore: Text symbols. (line 209) +* \textup: Font styles. (line 43) +* \textvisiblespace: Text symbols. (line 212) +* \textwidth: Page layout parameters. + (line 99) +* \textwidth <1>: Page layout parameters. + (line 100) +* \th (þ): Additional Latin letters. + (line 56) +* \TH (Þ): Additional Latin letters. + (line 56) +* \thanks{TEXT}: \maketitle. (line 56) +* \theta: Math symbols. (line 686) +* \thicklines: \thicklines. (line 6) +* \thickspace: Spacing in math mode. + (line 23) +* \thinlines: \thinlines. (line 6) +* \thinspace: Spacing in math mode. + (line 47) +* \thinspace <1>: \thinspace & \negthinspace. + (line 6) +* \thispagestyle: \thispagestyle. (line 6) +* \tilde: Math accents. (line 37) +* \times: Math symbols. (line 690) +* \tiny: Font sizes. (line 11) +* \title{TEXT}: \maketitle. (line 63) +* \to: Math symbols. (line 693) +* \today: \today. (line 6) +* \top: Math symbols. (line 697) +* \topfraction: Floats. (line 107) +* \topfraction <1>: Floats. (line 108) +* \topmargin: Page layout parameters. + (line 124) +* \topsep: list. (line 177) +* \topskip: Page layout parameters. + (line 131) +* \topskip <1>: Page layout parameters. + (line 132) +* \triangle: Math symbols. (line 701) +* \triangleleft: Math symbols. (line 704) +* \triangleright: Math symbols. (line 710) +* \tt: Font styles. (line 96) +* \ttfamily: Font styles. (line 55) +* \twocolumn: \twocolumn. (line 6) +* \typein: \typein. (line 6) +* \typeout: \typeout. (line 6) +* \u (breve accent): Accents. (line 89) +* \unboldmath: \boldmath & \unboldmath. + (line 6) +* \unboldmath <1>: \boldmath & \unboldmath. + (line 14) +* \underbar: Accents. (line 53) +* \underbrace{MATH}: Over- and Underlining. + (line 25) +* \underline{TEXT}: Over- and Underlining. + (line 9) +* \unitlength: picture. (line 28) +* \unlhd: Math symbols. (line 716) +* \unrhd: Math symbols. (line 722) +* \Uparrow: Math symbols. (line 728) +* \uparrow: Math symbols. (line 732) +* \Updownarrow: Math symbols. (line 736) +* \updownarrow: Math symbols. (line 741) +* \upharpoonright: Math symbols. (line 746) +* \uplus: Math symbols. (line 751) +* \upshape: Font styles. (line 43) +* \Upsilon: Math symbols. (line 756) +* \upsilon: Math symbols. (line 759) +* \usebox: \usebox. (line 6) +* \usecounter: \usecounter. (line 6) +* \usefont: Low-level font commands. + (line 126) +* \usepackage: Additional packages. (line 6) +* \UseTextAccent: \UseTextSymbol & \UseTextAccent. + (line 6) +* \UseTextSymbol: \UseTextSymbol & \UseTextAccent. + (line 6) +* \v (breve accent): Accents. (line 93) +* \value: \value. (line 6) +* \vanothing: Math symbols. (line 767) +* \varepsilon: Math symbols. (line 762) +* \varphi: Math symbols. (line 772) +* \varpi: Math symbols. (line 776) +* \varrho: Math symbols. (line 780) +* \varsigma: Math symbols. (line 784) +* \vartheta: Math symbols. (line 788) +* \vbox (plain TeX): minipage. (line 57) +* \vdash: Math symbols. (line 792) +* \vdots: Dots. (line 33) +* \vec: Math accents. (line 40) +* \vector: \vector. (line 6) +* \vee: Math symbols. (line 796) +* \verb: \verb. (line 6) +* \Vert: Math symbols. (line 800) +* \vert: Math symbols. (line 804) +* \vfill: \vfill. (line 6) +* \vline: \vline. (line 6) +* \vspace: \vspace. (line 6) +* \vtop plain TeX: minipage. (line 53) +* \wedge: Math symbols. (line 810) +* \widehat: Math accents. (line 43) +* \widetilde: Math accents. (line 46) +* \wlog: \wlog. (line 6) +* \wp: Math symbols. (line 814) +* \wr: Math symbols. (line 817) +* \write: \write. (line 6) +* \write and security: \write and security. (line 6) +* \write streams 16, 17, 18: \write. (line 86) +* \write18: \write18. (line 6) +* \write18, enabling: Command line options. + (line 61) +* \Xi: Math symbols. (line 820) +* \xi: Math symbols. (line 823) +* \xspace: xspace package. (line 6) +* \year: \day & \month & \year. + (line 6) +* \zeta: Math symbols. (line 826) +* \[...\] display math: displaymath. (line 26) +* \\ (for center): center. (line 16) +* \\ (for eqnarray): eqnarray. (line 29) +* \\ (for flushright): flushright. (line 12) +* \\ (for \shortstack objects): \shortstack. (line 35) +* \\ (tabbing): tabbing. (line 66) +* \\ for flushleft: flushleft. (line 14) +* \\ for letters: Letters. (line 48) +* \\ for tabular: tabular. (line 36) +* \\ for verse: verse. (line 21) +* \\ for \author: \maketitle. (line 43) +* \\ for \title: \maketitle. (line 64) +* \\ force line break: \\. (line 6) +* \\* (for eqnarray): eqnarray. (line 35) +* \^: Reserved characters. (line 18) +* \^ (circumflex accent): Accents. (line 40) +* \_: Reserved characters. (line 13) +* \` (grave accent): Accents. (line 44) +* \` (tabbing): tabbing. (line 93) +* \{: Reserved characters. (line 13) +* \|: Math symbols. (line 18) +* \}: Reserved characters. (line 13) +* \~: Reserved characters. (line 18) +* \~ (tilde accent): Accents. (line 48) +* ^ superscript: Subscripts & superscripts. + (line 6) +* ^^J, in \write: \write. (line 94) +* _ subscript: Subscripts & superscripts. + (line 6) +* {...} for required arguments: LaTeX command syntax. + (line 6) +* ~: ~. (line 6) +* a4paper option: Document class options. + (line 19) +* a5paper option: Document class options. + (line 19) +* abstract environment: abstract. (line 6) +* abstract package: abstract. (line 27) +* abstracts: abstract. (line 6) +* accents: Accents. (line 6) +* accents, defining: \DeclareFontEncoding. + (line 6) +* accents, defining <1>: \DeclareTextAccent. (line 6) +* accents, defining <2>: \DeclareTextAccentDefault. + (line 6) +* accents, defining <3>: \DeclareTextComposite. + (line 6) +* accents, defining <4>: \DeclareTextCompositeCommand. + (line 6) +* accents, defining <5>: \DeclareTextSymbolDefault. + (line 6) +* accents, mathematical: Math accents. (line 6) +* accessing any character of a font: Symbols by font position. + (line 6) +* acronyms, list of: Glossaries. (line 6) +* acute accent: Accents. (line 29) +* acute accent, math: Math accents. (line 11) +* additional packages, loading: Additional packages. (line 6) +* adjustbox package: Boxes. (line 9) +* ae ligature: Additional Latin letters. + (line 16) +* algorithm2e package: tabbing. (line 146) +* align environment, from amsmath: eqnarray. (line 6) +* aligning equations: eqnarray. (line 6) +* alignment via tabbing: tabbing. (line 6) +* amscd package: Arrows. (line 41) +* amsfonts package: Math formulas. (line 61) +* amsfonts package <1>: Arrows. (line 6) +* amsmath package: array. (line 55) +* amsmath package <1>: array. (line 63) +* amsmath package <2>: displaymath. (line 22) +* amsmath package <3>: equation. (line 20) +* amsmath package <4>: theorem. (line 28) +* amsmath package <5>: Math formulas. (line 61) +* amsmath package <6>: \left & \right. (line 30) +* amsmath package <7>: \bigl & \bigr etc.. (line 67) +* amsmath package <8>: Dots. (line 36) +* amsmath package <9>: Math functions. (line 111) +* amsmath package <10>: Spacing in math mode. + (line 23) +* amsmath package <11>: \phantom & \vphantom & \hphantom. + (line 56) +* amsmath package <12>: Colon character & \colon. + (line 15) +* amsmath package <13>: Colon character & \colon. + (line 19) +* amsmath package <14>: \thinspace & \negthinspace. + (line 26) +* amsmath package, replacing eqnarray: eqnarray. (line 6) +* amsthm package: theorem. (line 28) +* amsthm package <1>: \rule. (line 18) +* answers package: \write. (line 99) +* appendices: \appendix. (line 6) +* appendix: \appendix. (line 6) +* appendix package: \appendix. (line 29) +* aring: Additional Latin letters. + (line 12) +* array environment: array. (line 6) +* array package: array. (line 74) +* arrays, math: array. (line 6) +* arrow, left, in text: Text symbols. (line 157) +* arrow, right, in text: Text symbols. (line 198) +* arrows: Arrows. (line 6) +* article class: Document classes. (line 11) +* ascender height: Text symbols. (line 103) +* ASCII circumflex, in text: Text symbols. (line 68) +* ASCII tilde, in text: Text symbols. (line 71) +* asterisk, centered, in text: Text symbols. (line 74) +* Asymptote package: \line. (line 35) +* Asymptote package <1>: \strut. (line 62) +* Asymptote package <2>: \mbox & \makebox. (line 74) +* Asymptote package <3>: \write18. (line 13) +* at clause, in font definitions: \newfont. (line 19) +* at-sign: \@. (line 6) +* author, for titlepage: \maketitle. (line 43) +* auxiliary file: Output files. (line 33) +* b5paper option: Document class options. + (line 19) +* babel package: \chapter. (line 71) +* babel package <1>: thebibliography. (line 53) +* babel package <2>: Accents. (line 6) +* babel package <3>: \today. (line 13) +* babel package <4>: Table of contents etc.. + (line 123) +* babel package <5>: \index. (line 58) +* back matter of a book: \frontmatter & \mainmatter & \backmatter. + (line 6) +* background, colored: Colored pages. (line 6) +* backslash, in text: Text symbols. (line 77) +* bar, double vertical, in text: Text symbols. (line 83) +* bar, vertical, in text: Text symbols. (line 80) +* bar-over accent: Accents. (line 36) +* bar-over accent, math: Math accents. (line 14) +* bar-under accent: Accents. (line 51) +* basics of LaTeX: Overview. (line 6) +* batchmode: Command line options. + (line 27) +* beamer package: beamer template. (line 6) +* beamer template and class: beamer template. (line 6) +* beginning of document hook: \AtBeginDocument. (line 6) +* bibliography format, open: Document class options. + (line 67) +* bibliography, creating (automatically): Using BibTeX. (line 6) +* bibliography, creating (manually): thebibliography. (line 6) +* BibTeX error messages: BibTeX error messages. + (line 6) +* bibTeX, using: Using BibTeX. (line 6) +* big circle symbols, in text: Text symbols. (line 86) +* big point: Units of length. (line 20) +* bigfoot package: Footnotes of footnotes. + (line 6) +* black boxes, omitting: Document class options. + (line 53) +* blackboard bold: Blackboard bold. (line 6) +* bm package: \boldmath & \unboldmath. + (line 32) +* bold font: Font styles. (line 76) +* bold math: Font styles. (line 129) +* bold typewriter, avoiding: description. (line 36) +* boldface mathematics: \boldmath & \unboldmath. + (line 6) +* book class: Document classes. (line 11) +* book, back matter: \frontmatter & \mainmatter & \backmatter. + (line 6) +* book, end matter: \frontmatter & \mainmatter & \backmatter. + (line 6) +* book, front matter: \frontmatter & \mainmatter & \backmatter. + (line 6) +* book, main matter: \frontmatter & \mainmatter & \backmatter. + (line 6) +* bottomnumber: Floats. (line 130) +* bottomnumber <1>: Floats. (line 131) +* bounding box: \includegraphics. (line 121) +* box: \mbox & \makebox. (line 6) +* box, allocating new: \newsavebox. (line 6) +* box, bounding: \includegraphics. (line 121) +* box, colored: Colored boxes. (line 6) +* box, save: \sbox & \savebox. (line 6) +* box, use saved box: \usebox. (line 6) +* boxes: Boxes. (line 6) +* bp: Units of length. (line 19) +* brace, left, in text: Text symbols. (line 89) +* brace, right, in text: Text symbols. (line 92) +* braces: Delimiters. (line 6) +* brackets: Delimiters. (line 6) +* breaking lines: Line breaking. (line 6) +* breaking pages: Page breaking. (line 6) +* breaks, multiplication discretionary: \*. (line 6) +* breve accent: Accents. (line 89) +* breve accent, math: Math accents. (line 17) +* bug reporting: About this document. (line 24) +* bullet lists: itemize. (line 6) +* bullet symbol: Math symbols. (line 106) +* bullet, in text: Text symbols. (line 95) +* bulleted lists: itemize. (line 6) +* calligraphic fonts: Calligraphic. (line 6) +* calligraphic letters for math: Font styles. (line 79) +* cap height: Text symbols. (line 103) +* caption package: \caption. (line 72) +* captions: \caption. (line 6) +* caron accent: Accents. (line 93) +* catcode: \makeatletter & \makeatother. + (line 18) +* category code, character: \makeatletter & \makeatother. + (line 18) +* cc: Units of length. (line 32) +* cc list, in letters: \cc. (line 6) +* cedilla accent: Accents. (line 61) +* center environment: center. (line 6) +* centered asterisk, in text: Text symbols. (line 74) +* centered equations: Document class options. + (line 57) +* centered period, in text: Text symbols. (line 170) +* centering text, declaration for: \centering. (line 6) +* centering text, environment for: center. (line 6) +* centimeter: Units of length. (line 27) +* changing case of characters: Upper and lower case. + (line 6) +* chapter: Sectioning. (line 6) +* chapter <1>: \chapter. (line 6) +* chapter counter: Counters. (line 15) +* character category code: \makeatletter & \makeatother. + (line 18) +* character encoding: inputenc package. (line 15) +* character, invisible: \phantom & \vphantom & \hphantom. + (line 6) +* character, invisible <1>: \mathstrut. (line 6) +* characters, accented: Accents. (line 6) +* characters, case of: Upper and lower case. + (line 6) +* characters, non-English: Additional Latin letters. + (line 6) +* characters, reserved: Reserved characters. (line 6) +* characters, special: Reserved characters. (line 6) +* check accent: Accents. (line 93) +* check accent, math: Math accents. (line 20) +* cicero: Units of length. (line 33) +* circle symbol, big, in text: Text symbols. (line 86) +* circled letter, in text: Text symbols. (line 98) +* circumflex accent: Accents. (line 40) +* circumflex accent, math: Math accents. (line 32) +* circumflex, ASCII, in text: Text symbols. (line 68) +* citation key: \bibitem. (line 15) +* class and package commands: Class and package commands. + (line 6) +* class and package difference: Class and package construction. + (line 15) +* class and package structure: Class and package structure. + (line 6) +* class file example: Class and package structure. + (line 39) +* class file layout: Class and package structure. + (line 6) +* class options: Document class options. + (line 6) +* class options <1>: Class and package structure. + (line 6) +* class options <2>: Class and package commands. + (line 66) +* classes of documents: Document classes. (line 6) +* cleveref package: Cross references. (line 38) +* cleveref package <1>: \ref. (line 29) +* cleveref package <2>: \footnotemark. (line 48) +* CLI: Command line interface. + (line 6) +* clock option to slides class: Document class options. + (line 99) +* closing letters: \closing. (line 6) +* closing quote: Text symbols. (line 58) +* cm: Units of length. (line 26) +* cm-super package: fontenc package. (line 36) +* cmd.exe, used by \write18: \write18. (line 60) +* code, typesetting: verbatim. (line 6) +* colon character: Colon character & \colon. + (line 6) +* color: Color. (line 6) +* color <1>: Define colors. (line 6) +* color <2>: Colored text. (line 6) +* color <3>: Colored boxes. (line 6) +* color <4>: Colored pages. (line 6) +* color models: Color models. (line 6) +* color package commands: Commands for color. (line 6) +* color package options: Color package options. + (line 6) +* color, define: Define colors. (line 6) +* colored boxes: Colored boxes. (line 6) +* colored page: Colored pages. (line 6) +* colored text: Colored text. (line 6) +* command line interface: Command line interface. + (line 6) +* command syntax: LaTeX command syntax. + (line 6) +* commands, class and package: Class and package commands. + (line 6) +* commands, defining new ones: \newcommand & \renewcommand. + (line 6) +* commands, defining new ones <1>: \providecommand. (line 6) +* commands, document class: Class and package construction. + (line 6) +* commands, graphics package: Commands for graphics. + (line 6) +* commands, ignore spaces: \ignorespaces & \ignorespacesafterend. + (line 6) +* commands, ignore spaces <1>: xspace package. (line 6) +* commands, redefining: \newcommand & \renewcommand. + (line 6) +* commands, run from LaTeX: \write18. (line 6) +* commands, star-variants: \@ifstar. (line 6) +* composite word mark, in text: Text symbols. (line 103) +* comprehensive package: Math symbols. (line 6) +* computer programs, typesetting: verbatim. (line 6) +* configuration, graphics package: Graphics package configuration. + (line 6) +* contents file: Output files. (line 43) +* copyright symbol: Text symbols. (line 15) +* counters, a list of: Counters. (line 6) +* counters, defining new: \newcounter. (line 6) +* counters, getting value of: \value. (line 6) +* counters, printing: \alph \Alph \arabic \roman \Roman \fnsymbol. + (line 6) +* counters, setting: \setcounter. (line 6) +* cprotect package: verbatim. (line 25) +* cprotect package <1>: \verb. (line 45) +* creating pictures: picture. (line 6) +* creating tables: table. (line 6) +* credit footnote: \maketitle. (line 57) +* cross references: Cross references. (line 6) +* cross references, resolving: Output files. (line 33) +* cross referencing with page number: \pageref. (line 6) +* cross referencing, across documents: xr package. (line 6) +* cross referencing, symbolic: \ref. (line 6) +* CTAN: CTAN. (line 6) +* curly braces: Delimiters. (line 6) +* currency, dollar: Text symbols. (line 116) +* currency, euro: Text symbols. (line 128) +* dagger, double, in text: Text symbols. (line 113) +* dagger, in text: Text symbols. (line 18) +* dagger, in text <1>: Text symbols. (line 110) +* DANTE e.V.: CTAN. (line 20) +* datatool package: \read. (line 31) +* date, for titlepage: \maketitle. (line 51) +* date, today's: \today. (line 6) +* datetime package: \today. (line 27) +* dbltopnumber: Floats. (line 134) +* dbltopnumber <1>: Floats. (line 135) +* dcolumn package: array. (line 74) +* dd: Units of length. (line 29) +* declaration form of font size commands: Font sizes. (line 24) +* declaration form of font style commands: Font styles. (line 8) +* define color: Define colors. (line 6) +* defining a new command: \newcommand & \renewcommand. + (line 6) +* defining a new command <1>: \providecommand. (line 6) +* defining new environments: \newenvironment & \renewenvironment. + (line 6) +* defining new fonts: \newfont. (line 6) +* defining new theorems: \newtheorem. (line 6) +* definitions: Definitions. (line 6) +* delayed \write: \write. (line 65) +* delimiters: Delimiters. (line 6) +* delimiters, paired: \left & \right. (line 6) +* delim_0: makeindex. (line 109) +* delim_1: makeindex. (line 113) +* delim_2: makeindex. (line 117) +* delim_n: makeindex. (line 121) +* delim_r: makeindex. (line 125) +* description: \newglossaryentry. (line 46) +* description environment: description. (line 6) +* description lists, creating: description. (line 6) +* design size, in font definitions: \newfont. (line 19) +* didot point: Units of length. (line 30) +* dieresis accent: Accents. (line 25) +* difference between class and package: Class and package construction. + (line 15) +* dimen plain TeX: Lengths. (line 9) +* directory listings, from system: \write18. (line 65) +* discretionary breaks, multiplication: \*. (line 6) +* discretionary hyphenation: \discretionary. (line 6) +* display math mode: Modes. (line 31) +* display style: Math styles. (line 18) +* displaying quoted text with paragraph indentation: quotation & quote. + (line 6) +* displaying quoted text without paragraph indentation: quotation & quote. + (line 6) +* displaymath environment: displaymath. (line 6) +* displaymath environment <1>: Math formulas. (line 6) +* document class commands: Class and package construction. + (line 6) +* document class options: Document class options. + (line 6) +* document class, defined: Starting and ending. (line 17) +* document classes: Document classes. (line 6) +* document environment: document. (line 6) +* document root name: Jobname. (line 6) +* document templates: Document templates. (line 6) +* dollar sign: Text symbols. (line 116) +* dot accent: Accents. (line 32) +* dot over accent, math: Math accents. (line 26) +* dot-over accent: Accents. (line 32) +* dot-under accent: Accents. (line 65) +* dotless i: Accents. (line 19) +* dotless i, math: Math symbols. (line 253) +* dotless j: Accents. (line 19) +* dotless j, math: Math symbols. (line 273) +* dots: Dots. (line 6) +* double angle quotation marks: Text symbols. (line 33) +* double dagger, in text: Text symbols. (line 21) +* double dagger, in text <1>: Text symbols. (line 113) +* double dot accent, math: Math accents. (line 23) +* double guillemets: Text symbols. (line 33) +* double left quote: Text symbols. (line 176) +* double low-9 quotation mark: Text symbols. (line 55) +* double quote, straight base: Text symbols. (line 192) +* double right quote: Text symbols. (line 179) +* double spacing: \baselineskip & \baselinestretch. + (line 6) +* double vertical bar, in text: Text symbols. (line 83) +* doublestruck: Blackboard bold. (line 6) +* draft option: Document class options. + (line 49) +* dvilualatex-dev: TeX engines. (line 63) +* dvipdfmx command: Output files. (line 10) +* dvips command: Output files. (line 10) +* dvitype command: Output files. (line 10) +* e-dash: Text symbols. (line 125) +* e-TeX: TeX engines. (line 16) +* ellipses: Dots. (line 6) +* ellipsis: Text symbols. (line 39) +* em: Units of length. (line 46) +* em <1>: Units of length. (line 45) +* em-dash: Text symbols. (line 119) +* em-dash, three-quarters: Text symbols. (line 201) +* em-dash, two-thirds: Text symbols. (line 207) +* emphasis: Font styles. (line 60) +* enclosure list: \encl. (line 6) +* encoding, font: \DeclareFontEncoding. + (line 6) +* encoding, of input files: inputenc package. (line 15) +* end matter of a book: \frontmatter & \mainmatter & \backmatter. + (line 6) +* end of document hook: \AtEndDocument. (line 6) +* ending and starting: Starting and ending. (line 6) +* engines, TeX: TeX engines. (line 6) +* enlarge current page: \enlargethispage. (line 6) +* enumerate environment: enumerate. (line 6) +* enumi counter: Counters. (line 15) +* enumii counter: Counters. (line 15) +* enumiii counter: Counters. (line 15) +* enumitem package: itemize. (line 66) +* enumitem package <1>: list. (line 255) +* enumiv counter: Counters. (line 15) +* environment: Starting and ending. (line 25) +* environment form of font size commands: Font sizes. (line 47) +* environment, abstract: abstract. (line 6) +* environment, array: array. (line 6) +* environment, center: center. (line 6) +* environment, description: description. (line 6) +* environment, displaymath: displaymath. (line 6) +* environment, displaymath <1>: Math formulas. (line 6) +* environment, document: document. (line 6) +* environment, enumerate: enumerate. (line 6) +* environment, eqnarray: eqnarray. (line 6) +* environment, equation: equation. (line 6) +* environment, equation <1>: Math formulas. (line 6) +* environment, figure: figure. (line 6) +* environment, filecontents: filecontents. (line 6) +* environment, filecontents*: filecontents. (line 6) +* environment, flushleft: flushleft. (line 6) +* environment, flushright: flushright. (line 6) +* environment, itemize: itemize. (line 6) +* environment, letter: letter. (line 6) +* environment, list: list. (line 6) +* environment, math: math. (line 6) +* environment, math <1>: Math formulas. (line 6) +* environment, minipage: minipage. (line 6) +* environment, picture: picture. (line 6) +* environment, quotation: quotation & quote. (line 6) +* environment, quote: quotation & quote. (line 6) +* environment, sloppypar: sloppypar. (line 6) +* environment, tabbing: tabbing. (line 6) +* environment, table: table. (line 6) +* environment, tabular: tabular. (line 6) +* environment, thebibliography: thebibliography. (line 6) +* environment, theindex: Produce the index manually. + (line 9) +* environment, theorem: theorem. (line 6) +* environment, theorem-like: \newtheorem. (line 6) +* environment, titlepage: titlepage. (line 6) +* environment, verbatim: verbatim. (line 6) +* environment, verse: verse. (line 6) +* environments: Environments. (line 6) +* environments, defining: \newenvironment & \renewenvironment. + (line 6) +* envlab package: \makelabels. (line 55) +* EPS files: \includegraphics. (line 6) +* eqnarray environment: eqnarray. (line 6) +* equation counter: Counters. (line 15) +* equation environment: equation. (line 6) +* equation environment <1>: Math formulas. (line 6) +* equation number, cross referencing: \ref. (line 6) +* equation numbers, left vs. right: Document class options. + (line 63) +* equation numbers, omitting: eqnarray. (line 39) +* equations, aligning: eqnarray. (line 6) +* equations, environment for: equation. (line 6) +* equations, flush left vs. centered: Document class options. + (line 57) +* error messages, from BibTeX: BibTeX error messages. + (line 6) +* errorstopmode: Command line options. + (line 27) +* es-zet German letter: Additional Latin letters. + (line 52) +* etex command: TeX engines. (line 16) +* eth, Icelandic letter: Additional Latin letters. + (line 20) +* etoolbox package: Class and package commands. + (line 110) +* euro symbol: Text symbols. (line 128) +* eurosym package: Text symbols. (line 128) +* eurosym package <1>: Text symbols. (line 129) +* ex: Units of length. (line 42) +* ex <1>: Units of length. (line 41) +* exclamation point, upside-down: Text symbols. (line 136) +* executivepaper option: Document class options. + (line 19) +* expl3 package: LaTeX command syntax. + (line 35) +* expl3 package <1>: Upper and lower case. + (line 48) +* exponent: Subscripts & superscripts. + (line 6) +* expressions: Expressions. (line 6) +* extended Latin: Additional Latin letters. + (line 6) +* external commands: \write18. (line 6) +* external files, writing: filecontents. (line 6) +* fallback jobname: Jobname. (line 27) +* families, of fonts: Low-level font commands. + (line 21) +* fancyhdr package: Page styles. (line 12) +* fancyhdr package <1>: \pagestyle. (line 13) +* fancyvrb package: tabbing. (line 146) +* fancyvrb package <1>: verbatim. (line 41) +* feminine ordinal symbol: Text symbols. (line 167) +* figure counter: Counters. (line 15) +* figure dash character: Text symbols. (line 139) +* figure environment: figure. (line 6) +* figure number, cross referencing: \ref. (line 6) +* figures, footnotes in: minipage. (line 107) +* figures, inserting: figure. (line 6) +* file, closing: \openin & \openout. (line 6) +* file, opening: \openin & \openout. (line 6) +* file, reading: \read. (line 6) +* file, root: Splitting the input. (line 10) +* file, root <1>: Jobname. (line 6) +* filecontents environment: filecontents. (line 6) +* filecontents* environment: filecontents. (line 6) +* filename for current job: Command line options. + (line 43) +* final option: Document class options. + (line 49) +* first-latex-doc document: About this document. (line 36) +* fixed-width font: Font styles. (line 97) +* flafter package: Floats. (line 82) +* fleqn option: Document class options. + (line 49) +* float package: Floats. (line 52) +* float page: Floats. (line 58) +* flush left equations: Document class options. + (line 57) +* flushing floats and starting a page: \clearpage & \cleardoublepage. + (line 6) +* flushleft environment: flushleft. (line 6) +* flushright environment: flushright. (line 6) +* font catalogue: Low-level font commands. + (line 21) +* font commands, low-level: Low-level font commands. + (line 6) +* font dimension, slant: \/. (line 40) +* font encoding: fontenc package. (line 6) +* font encoding <1>: \DeclareTextAccent. (line 6) +* font encoding, declaring: \DeclareFontEncoding. + (line 6) +* font size: Low-level font commands. + (line 101) +* font sizes: Font sizes. (line 6) +* font styles: Font styles. (line 6) +* font symbols, by number: Symbols by font position. + (line 6) +* fontenc: fontenc package. (line 6) +* fonts: Fonts. (line 6) +* fonts, new commands for: \newfont. (line 6) +* fonts, script: Calligraphic. (line 6) +* fontspec package: fontenc package. (line 17) +* footer style: \pagestyle. (line 6) +* footer, parameters for: Page layout parameters. + (line 6) +* footnote counter: Counters. (line 15) +* footnote number, cross referencing: \ref. (line 6) +* footnote parameters: \footnote. (line 34) +* footnote, in a table: Footnotes in a table. + (line 6) +* footnote, in section headings: Footnotes in section headings. + (line 6) +* footnote, of a footnote: Footnotes of footnotes. + (line 6) +* footnotes in figures: minipage. (line 107) +* footnotes, creating: Footnotes. (line 6) +* footnotes, in a minipage: \footnote. (line 62) +* footnotes, symbols instead of numbers: \footnote. (line 24) +* force option for filecontents: filecontents. (line 31) +* format files, TeX: TeX engines. (line 6) +* formulas, environment for: equation. (line 6) +* formulas, math: Math formulas. (line 6) +* forward reference: Cross references. (line 27) +* forward references, resolving: Output files. (line 33) +* fraction: \frac. (line 6) +* fragile commands: \protect. (line 6) +* frame rule width: \fbox & \framebox. (line 38) +* frame, line width: \fbox & \framebox. (line 38) +* frame, separation from contents: \fbox & \framebox. (line 43) +* French quotation marks: Text symbols. (line 33) +* front matter of a book: \frontmatter & \mainmatter & \backmatter. + (line 6) +* functions, math: Math functions. (line 6) +* geometry package: Document class options. + (line 40) +* geometry package <1>: Document class options. + (line 44) +* global options: Document class options. + (line 6) +* global options <1>: Additional packages. (line 15) +* glossaries: Glossaries. (line 6) +* glossary: Glossaries. (line 6) +* glossary, entries: \newglossaryentry. (line 6) +* glossary, entry reference: \gls. (line 6) +* glue plain TeX: Lengths. (line 9) +* glue register, plain TeX: \newlength. (line 6) +* graphics: Graphics. (line 6) +* graphics <1>: Graphics package configuration. + (line 6) +* graphics <2>: \includegraphics. (line 6) +* graphics package: Graphics. (line 6) +* graphics package <1>: Graphics package configuration. + (line 6) +* graphics package <2>: \includegraphics. (line 6) +* graphics package commands: Commands for graphics. + (line 6) +* graphics package options: Graphics package options. + (line 6) +* graphics packages: \line. (line 35) +* graphics, resizing: \scalebox. (line 6) +* graphics, resizing <1>: \resizebox. (line 6) +* graphics, scaling: \scalebox. (line 6) +* graphics, scaling <1>: \resizebox. (line 6) +* graphpap package: \graphpaper. (line 11) +* grave accent: Accents. (line 44) +* grave accent, math: Math accents. (line 29) +* greater than symbol, in text: Text symbols. (line 146) +* greek letters: Math symbols. (line 6) +* Greek letters: Greek letters. (line 6) +* grfext package: \DeclareGraphicsExtensions. + (line 39) +* group, and environments: Environments. (line 18) +* group_skip: makeindex. (line 58) +* hacek accent: Accents. (line 93) +* Halmos symbol: \rule. (line 13) +* hard space: ~. (line 6) +* hat accent: Accents. (line 40) +* hat accent, math: Math accents. (line 32) +* header style: \pagestyle. (line 6) +* header, parameters for: Page layout parameters. + (line 6) +* hello, world: Starting and ending. (line 6) +* here, putting floats: Floats. (line 52) +* home page for manual: About this document. (line 6) +* horizontal bar character: Text symbols. (line 149) +* horizontal paragraph indentation: \parindent & \parskip. + (line 6) +* horizontal space: \hss. (line 6) +* horizontal space, stretchable: \hss. (line 6) +* horizontal spacing: \phantom & \vphantom & \hphantom. + (line 6) +* hungarian umlaut accent: Accents. (line 69) +* hyperref package: \footnotemark. (line 48) +* hyperref package <1>: \footnotemark. (line 57) +* hyperref package <2>: \pagenumbering. (line 45) +* hyperref package <3>: \contentsline. (line 37) +* hyperref package <4>: Command line input. (line 14) +* hyphen character, non-breaking: Text symbols. (line 160) +* hyphenation, defining: \hyphenation. (line 6) +* hyphenation, discretionary: \discretionary. (line 6) +* hyphenation, forcing: \- (hyphenation). (line 6) +* hyphenation, preventing: \mbox & \makebox. (line 6) +* háček accent, math: Math accents. (line 20) +* Icelandic eth: Additional Latin letters. + (line 20) +* Icelandic thorn: Additional Latin letters. + (line 56) +* idx file: \index. (line 108) +* ij letter, Dutch: Additional Latin letters. + (line 32) +* immediate \write: \write. (line 60) +* implementations of TeX: TeX engines. (line 6) +* importing graphics: \includegraphics. (line 6) +* in: Units of length. (line 16) +* inch: Units of length. (line 17) +* including graphics: \includegraphics. (line 6) +* indent, forcing: \indent & \noindent. (line 6) +* indentation of paragraphs, in minipage: minipage. (line 103) +* indentfirst package: \part. (line 50) +* indentfirst package <1>: \chapter. (line 58) +* indentfirst package <2>: \section. (line 60) +* indentfirst package <3>: \subsection. (line 48) +* indentfirst package <4>: \subsubsection & \paragraph & \subparagraph. + (line 59) +* indentfirst package <5>: \indent & \noindent. (line 48) +* indent_length: makeindex. (line 137) +* indent_space: makeindex. (line 133) +* index entries, subentries: \index. (line 26) +* index entries, 'see' and 'see also': \index. (line 58) +* index entry: \index. (line 6) +* index package: \index. (line 103) +* index, multiple: Indexes. (line 51) +* index, page range: \index. (line 42) +* index, printing: \printindex. (line 6) +* index, processing: makeindex. (line 6) +* index, producing manually: Produce the index manually. + (line 6) +* index, style file: makeindex. (line 18) +* indexes: Indexes. (line 6) +* infinite horizontal stretch: \hfill. (line 6) +* infinite vertical stretch: \vfill. (line 6) +* inline formulas: math. (line 6) +* inner paragraph mode: Modes. (line 51) +* input file: Splitting the input. (line 6) +* input, on command line: Command line input. (line 6) +* input/output: Input/output. (line 6) +* input/output, to terminal: Input/output. (line 6) +* inputenc: inputenc package. (line 6) +* inserting figures: figure. (line 6) +* insertions of special characters: Special insertions. (line 6) +* interface, command line: Command line interface. + (line 6) +* interline space: \baselineskip & \baselinestretch. + (line 6) +* internal vertical mode: Modes. (line 41) +* invisible character: \phantom & \vphantom & \hphantom. + (line 6) +* invisible character <1>: \mathstrut. (line 6) +* italic correction: \/. (line 6) +* italic font: Font styles. (line 82) +* itemize environment: itemize. (line 6) +* item_0: makeindex. (line 82) +* item_01: makeindex. (line 91) +* item_1: makeindex. (line 85) +* item_12: makeindex. (line 100) +* item_2: makeindex. (line 88) +* item_x1: makeindex. (line 95) +* item_x2: makeindex. (line 104) +* jobname: Command line options. + (line 43) +* jobname <1>: Jobname. (line 6) +* JPEG files: \includegraphics. (line 6) +* JPG files: \includegraphics. (line 6) +* justification, ragged left: \raggedleft. (line 6) +* justification, ragged right: \raggedright. (line 6) +* Knuth, Donald E.: Overview. (line 6) +* label: Cross references. (line 6) +* labelled lists, creating: description. (line 6) +* Lamport TeX: Overview. (line 27) +* Lamport, Leslie: Overview. (line 6) +* landscape option: Document class options. + (line 49) +* landscape orientation: Document class options. + (line 60) +* latex: TeX engines. (line 14) +* latex command: Output files. (line 10) +* LaTeX format (.fmt) files: TeX engines. (line 6) +* LaTeX logo: Text symbols. (line 24) +* LaTeX overview: Overview. (line 6) +* LaTeX Project team: About this document. (line 20) +* LaTeX vs. LaTeX2e: About this document. (line 16) +* latex-dev: TeX engines. (line 64) +* latex-doc-ptr document: About this document. (line 33) +* LaTeX2e logo: Text symbols. (line 27) +* LaTeX3 syntax: LaTeX command syntax. + (line 35) +* <latexrefman@tug.org> email address: About this document. (line 20) +* latexsym package: Arrows. (line 6) +* Latin letters, additional: Additional Latin letters. + (line 6) +* layout commands: Layout. (line 6) +* layout, page parameters for: Page layout parameters. + (line 6) +* leaders, dots in table of contents: \@dottedtocline. (line 27) +* leading: \baselineskip & \baselinestretch. + (line 6) +* left angle quotation marks: Text symbols. (line 33) +* left arrow, in text: Text symbols. (line 157) +* left brace, in text: Text symbols. (line 89) +* left quote: Text symbols. (line 43) +* left quote, double: Text symbols. (line 176) +* left quote, single: Text symbols. (line 182) +* left-hand equation numbers: Document class options. + (line 63) +* left-justifying text: \raggedright. (line 6) +* left-justifying text, environment for: flushleft. (line 6) +* left-to-right mode: Modes. (line 18) +* legalpaper option: Document class options. + (line 19) +* lengths, adding to: \addtolength. (line 6) +* lengths, allocating new: \newlength. (line 6) +* lengths, defining and using: Lengths. (line 6) +* lengths, setting: \setlength. (line 6) +* leqno option: Document class options. + (line 49) +* less than symbol, in text: Text symbols. (line 154) +* lethead_flag: makeindex. (line 65) +* lethead_prefix: makeindex. (line 74) +* lethead_suffix: makeindex. (line 78) +* letter class: Document classes. (line 11) +* letter environment: letter. (line 6) +* letterpaper option: Document class options. + (line 19) +* letters, accented: Accents. (line 6) +* letters, additional Latin: Additional Latin letters. + (line 6) +* letters, ending: \closing. (line 6) +* letters, starting: \opening. (line 6) +* letters, writing: Letters. (line 6) +* line break, forcing: \\. (line 6) +* line breaking: Line breaking. (line 6) +* line breaks, changing: \fussy & \sloppy. (line 6) +* line breaks, forcing: \linebreak & \nolinebreak. + (line 6) +* line breaks, multiplication discretionary: \*. (line 6) +* line breaks, preventing: \linebreak & \nolinebreak. + (line 6) +* lines in tables: tabular. (line 6) +* line_max: makeindex. (line 129) +* lining numerals: Font styles. (line 133) +* lining text up in tables: tabular. (line 6) +* lining text up using tab stops: tabbing. (line 6) +* list environment: list. (line 6) +* list items, specifying counter: \usecounter. (line 6) +* list of figures file: Output files. (line 43) +* list of tables file: Output files. (line 43) +* listings package: tabbing. (line 146) +* listings package <1>: verbatim. (line 35) +* listings package <2>: \verb. (line 42) +* lists of items: itemize. (line 6) +* lists of items, generic: list. (line 6) +* lists of items, numbered: enumerate. (line 6) +* lmodern package: fontenc package. (line 36) +* loading additional packages: Additional packages. (line 6) +* locale information, from system: \write18. (line 65) +* log file: Output files. (line 28) +* log file, writing to: \write. (line 30) +* logo, LaTeX: Text symbols. (line 24) +* logo, LaTeX2e: Text symbols. (line 27) +* logo, TeX: Text symbols. (line 65) +* long command: Class and package commands. + (line 23) +* low-9 quotation marks, single and double: Text symbols. (line 55) +* low-level font commands: Low-level font commands. + (line 6) +* lowercase: Upper and lower case. + (line 6) +* LR box: picture. (line 93) +* LR mode: Modes. (line 18) +* lrbox: lrbox. (line 6) +* lshort document: About this document. (line 39) +* lualatex: TeX engines. (line 32) +* lualatex-dev: TeX engines. (line 65) +* LuaTeX: TeX engines. (line 33) +* LuaTeX, 256 output streams in: \write. (line 42) +* m-width: Units of length. (line 46) +* macron accent: Accents. (line 36) +* macron accent, math: Math accents. (line 14) +* macros2e package: \makeatletter & \makeatother. + (line 38) +* Madsen, Lars: eqnarray. (line 6) +* mail merges: \read. (line 31) +* main matter of a book: \frontmatter & \mainmatter & \backmatter. + (line 6) +* make a box: \mbox & \makebox. (line 6) +* makeidx package: \printindex. (line 12) +* makeindex program: makeindex. (line 6) +* makeindex, program: makeindex. (line 6) +* makeindex, style file: makeindex. (line 18) +* making a title page: titlepage. (line 6) +* making paragraphs: Making paragraphs. (line 6) +* marginal notes: Marginal notes. (line 6) +* masculine ordinal symbol: Text symbols. (line 167) +* matching brackets: \left & \right. (line 6) +* matching parentheses: \left & \right. (line 6) +* math accents: Math accents. (line 6) +* math environment: math. (line 6) +* math environment <1>: Math formulas. (line 6) +* math formulas: Math formulas. (line 6) +* math functions: Math functions. (line 6) +* math miscellany: Math miscellany. (line 6) +* math mode: Modes. (line 28) +* math mode, entering: Math formulas. (line 6) +* math mode, spacing: Spacing in math mode. + (line 6) +* math mode, spacing <1>: \phantom & \vphantom & \hphantom. + (line 6) +* math mode, spacing <2>: \mathstrut. (line 6) +* math mode, vertical space: \smash. (line 6) +* math styles: Math styles. (line 6) +* math symbols: Math symbols. (line 6) +* math, arrows: Arrows. (line 6) +* math, bold: Font styles. (line 129) +* mathtools package: Math formulas. (line 61) +* mathtools package <1>: Delimiters. (line 41) +* mathtools package <2>: \left & \right. (line 30) +* mathtools package <3>: Over- and Underlining. + (line 44) +* mathtools package <4>: \smash. (line 60) +* mathtools package <5>: \phantom & \vphantom & \hphantom. + (line 48) +* MetaPost package: \line. (line 35) +* mfirstuc package: Upper and lower case. + (line 45) +* mhchem package: Subscripts & superscripts. + (line 62) +* millimeter: Units of length. (line 24) +* minipage environment: minipage. (line 6) +* minipage, creating a: minipage. (line 6) +* minted package: tabbing. (line 146) +* minted package <1>: verbatim. (line 35) +* minted package <2>: \verb. (line 42) +* mirrors of CTAN: CTAN. (line 25) +* mm: Units of length. (line 23) +* modes: Modes. (line 6) +* monospace font: Font styles. (line 97) +* moving arguments: \protect. (line 19) +* mpfootnote counter: \footnote. (line 62) +* mpfootnote counter <1>: Counters. (line 15) +* mu: Units of length. (line 52) +* mu, math unit: Units of length. (line 53) +* multicolumn text: \twocolumn. (line 6) +* multilingual support: Accents. (line 6) +* multind package: Indexes. (line 51) +* multiple indexes: Indexes. (line 51) +* multiplication, discretionary: \*. (line 6) +* name: \newglossaryentry. (line 43) +* name of document root: Jobname. (line 6) +* NBSP: ~. (line 6) +* nested \include, not allowed: \include & \includeonly. + (line 106) +* new class commands: Class and package construction. + (line 6) +* new command, check: Class and package commands. + (line 21) +* new command, definition: Class and package commands. + (line 96) +* new commands, defining: \newcommand & \renewcommand. + (line 6) +* new commands, defining <1>: \providecommand. (line 6) +* new line, output as input: \obeycr & \restorecr. + (line 6) +* new line, starting: \\. (line 6) +* new line, starting (paragraph mode): \newline. (line 6) +* new page, starting: \newpage. (line 6) +* newline, in \write: \write. (line 94) +* noheader option for filecontents: filecontents. (line 34) +* non-breaking hyphen character: Text symbols. (line 160) +* non-English characters: Additional Latin letters. + (line 6) +* nonstopmode: Command line options. + (line 27) +* nosearch option for filecontents: filecontents. (line 37) +* notes in the margin: Marginal notes. (line 6) +* notitlepage option: Document class options. + (line 49) +* null delimiter: \left & \right. (line 6) +* numbered items, specifying counter: \usecounter. (line 6) +* numerals, old-style: Font styles. (line 133) +* oblique font: Font styles. (line 94) +* oe ligature: Additional Latin letters. + (line 48) +* ogonek: Accents. (line 73) +* old-style numerals: Font styles. (line 133) +* one-column output: \onecolumn. (line 6) +* onecolumn option: Document class options. + (line 78) +* oneside option: Document class options. + (line 78) +* open a file: \openin & \openout. (line 6) +* openany option: Document class options. + (line 78) +* openbib option: Document class options. + (line 49) +* opening quote: Text symbols. (line 43) +* openright option: Document class options. + (line 78) +* OpenType fonts: TeX engines. (line 6) +* operating system information: \write18. (line 65) +* options, class: Class and package commands. + (line 66) +* options, color package: Color package options. + (line 6) +* options, command line: Command line options. + (line 6) +* options, document class: Document class options. + (line 6) +* options, document class <1>: Class and package structure. + (line 6) +* options, global: Additional packages. (line 15) +* options, graphics package: Graphics package options. + (line 6) +* options, package: Class and package structure. + (line 6) +* options, package <1>: Class and package commands. + (line 66) +* ordinals, feminine and masculine: Text symbols. (line 167) +* oslash: Additional Latin letters. + (line 44) +* OT1: fontenc package. (line 6) +* outer paragraph mode: Modes. (line 51) +* output directory for all external files: Command line options. + (line 48) +* overbar accent: Accents. (line 36) +* overdot accent, math: Math accents. (line 26) +* overlining: Over- and Underlining. + (line 6) +* overview of LaTeX: Overview. (line 6) +* overwrite option for filecontents: filecontents. (line 31) +* package file layout: Class and package structure. + (line 6) +* package options: Class and package structure. + (line 6) +* package options <1>: Class and package commands. + (line 66) +* package, abstract: abstract. (line 27) +* package, adjustbox: Boxes. (line 9) +* package, algorithm2e: tabbing. (line 146) +* package, amscd: Arrows. (line 41) +* package, amsfonts: Math formulas. (line 61) +* package, amsfonts <1>: Arrows. (line 6) +* package, amsmath: array. (line 55) +* package, amsmath <1>: array. (line 63) +* package, amsmath <2>: displaymath. (line 22) +* package, amsmath <3>: equation. (line 20) +* package, amsmath <4>: theorem. (line 28) +* package, amsmath <5>: Math formulas. (line 61) +* package, amsmath <6>: \left & \right. (line 30) +* package, amsmath <7>: \bigl & \bigr etc.. (line 67) +* package, amsmath <8>: Dots. (line 36) +* package, amsmath <9>: Math functions. (line 111) +* package, amsmath <10>: Spacing in math mode. + (line 23) +* package, amsmath <11>: \phantom & \vphantom & \hphantom. + (line 56) +* package, amsmath <12>: Colon character & \colon. + (line 15) +* package, amsmath <13>: Colon character & \colon. + (line 19) +* package, amsmath <14>: \thinspace & \negthinspace. + (line 26) +* package, amsthm: theorem. (line 28) +* package, amsthm <1>: \rule. (line 18) +* package, answers: \write. (line 99) +* package, appendix: \appendix. (line 29) +* package, array: array. (line 74) +* package, Asymptote: \line. (line 35) +* package, Asymptote <1>: \strut. (line 62) +* package, Asymptote <2>: \mbox & \makebox. (line 74) +* package, Asymptote <3>: \write18. (line 13) +* package, babel: \chapter. (line 71) +* package, babel <1>: thebibliography. (line 53) +* package, babel <2>: Accents. (line 6) +* package, babel <3>: \today. (line 13) +* package, babel <4>: Table of contents etc.. + (line 123) +* package, babel <5>: \index. (line 58) +* package, beamer: beamer template. (line 6) +* package, bigfoot: Footnotes of footnotes. + (line 6) +* package, bm: \boldmath & \unboldmath. + (line 32) +* package, caption: \caption. (line 72) +* package, cleveref: Cross references. (line 38) +* package, cleveref <1>: \ref. (line 29) +* package, cleveref <2>: \footnotemark. (line 48) +* package, cm-super: fontenc package. (line 36) +* package, comprehensive: Math symbols. (line 6) +* package, cprotect: verbatim. (line 25) +* package, cprotect <1>: \verb. (line 45) +* package, datatool: \read. (line 31) +* package, datetime: \today. (line 27) +* package, dcolumn: array. (line 74) +* package, enumitem: itemize. (line 66) +* package, enumitem <1>: list. (line 255) +* package, envlab: \makelabels. (line 55) +* package, etoolbox: Class and package commands. + (line 110) +* package, eurosym: Text symbols. (line 128) +* package, eurosym <1>: Text symbols. (line 129) +* package, expl3: LaTeX command syntax. + (line 35) +* package, expl3 <1>: Upper and lower case. + (line 48) +* package, fancyhdr: Page styles. (line 12) +* package, fancyhdr <1>: \pagestyle. (line 13) +* package, fancyvrb: tabbing. (line 146) +* package, fancyvrb <1>: verbatim. (line 41) +* package, flafter: Floats. (line 82) +* package, float: Floats. (line 52) +* package, fontspec: fontenc package. (line 17) +* package, geometry: Document class options. + (line 40) +* package, geometry <1>: Document class options. + (line 44) +* package, graphpap: \graphpaper. (line 11) +* package, grfext: \DeclareGraphicsExtensions. + (line 39) +* package, hyperref: \footnotemark. (line 48) +* package, hyperref <1>: \footnotemark. (line 57) +* package, hyperref <2>: \pagenumbering. (line 45) +* package, hyperref <3>: \contentsline. (line 37) +* package, hyperref <4>: Command line input. (line 14) +* package, indentfirst: \part. (line 50) +* package, indentfirst <1>: \chapter. (line 58) +* package, indentfirst <2>: \section. (line 60) +* package, indentfirst <3>: \subsection. (line 48) +* package, indentfirst <4>: \subsubsection & \paragraph & \subparagraph. + (line 59) +* package, indentfirst <5>: \indent & \noindent. (line 48) +* package, index: \index. (line 103) +* package, latexsym: Arrows. (line 6) +* package, listings: tabbing. (line 146) +* package, listings <1>: verbatim. (line 35) +* package, listings <2>: \verb. (line 42) +* package, lmodern: fontenc package. (line 36) +* package, macros2e: \makeatletter & \makeatother. + (line 38) +* package, makeidx: \printindex. (line 12) +* package, mathtools: Math formulas. (line 61) +* package, mathtools <1>: Delimiters. (line 41) +* package, mathtools <2>: \left & \right. (line 30) +* package, mathtools <3>: Over- and Underlining. + (line 44) +* package, mathtools <4>: \smash. (line 60) +* package, mathtools <5>: \phantom & \vphantom & \hphantom. + (line 48) +* package, MetaPost: \line. (line 35) +* package, mfirstuc: Upper and lower case. + (line 45) +* package, mhchem: Subscripts & superscripts. + (line 62) +* package, minted: tabbing. (line 146) +* package, minted <1>: verbatim. (line 35) +* package, minted <2>: \verb. (line 42) +* package, multind: Indexes. (line 51) +* package, pict2e: \line. (line 35) +* package, polyglossia: Accents. (line 6) +* package, polyglossia <1>: \today. (line 13) +* package, polyglossia <2>: Table of contents etc.. + (line 124) +* package, polyglossia <3>: \index. (line 58) +* package, PSTricks: \line. (line 35) +* package, setspace: \baselineskip & \baselinestretch. + (line 79) +* package, shellesc: \write18. (line 71) +* package, showidx: Indexes. (line 51) +* package, siunitx: minipage. (line 137) +* package, siunitx <1>: ~. (line 42) +* package, suffix: \@ifstar. (line 64) +* package, tablefootnote: Footnotes in a table. + (line 53) +* package, texosquery: \write18. (line 65) +* package, textcase: Upper and lower case. + (line 42) +* package, TikZ: \line. (line 35) +* package, TikZ <1>: \strut. (line 62) +* package, TikZ <2>: \mbox & \makebox. (line 73) +* package, tikz-cd: Arrows. (line 41) +* package, titlesec: Sectioning. (line 60) +* package, titlesec <1>: \part. (line 54) +* package, titlesec <2>: \chapter. (line 79) +* package, titlesec <3>: \section. (line 64) +* package, titlesec <4>: \subsection. (line 52) +* package, titlesec <5>: \subsubsection & \paragraph & \subparagraph. + (line 63) +* package, tocbibbind: Table of contents etc.. + (line 110) +* package, tocloft: Table of contents etc.. + (line 110) +* package, tocloft <1>: \contentsline. (line 34) +* package, ulem: Over- and Underlining. + (line 15) +* package, unicode-math: Greek letters. (line 37) +* package, url: \verb. (line 39) +* package, verbatimbox: verbatim. (line 41) +* package, xparse: LaTeX command syntax. + (line 35) +* package, xparse <1>: \@ifstar. (line 64) +* package, xr: xr package. (line 6) +* package, xr-hyper: xr package. (line 6) +* package, xspace: xspace package. (line 6) +* package, xstring: Jobname. (line 53) +* packages, loading additional: Additional packages. (line 6) +* page break, forcing: \pagebreak & \nopagebreak. + (line 6) +* page break, preventing: \pagebreak & \nopagebreak. + (line 6) +* page breaking: Page breaking. (line 6) +* page counter: Counters. (line 15) +* page layout parameters: Page layout parameters. + (line 6) +* page number, cross referencing: \pageref. (line 6) +* page numbering style: \pagenumbering. (line 6) +* page style, this page: \thispagestyle. (line 6) +* page styles: Page styles. (line 6) +* page, colored: Colored pages. (line 6) +* page_precedence: makeindex. (line 142) +* paired delimiters: \left & \right. (line 6) +* paragraph: Sectioning. (line 6) +* paragraph <1>: \subsubsection & \paragraph & \subparagraph. + (line 6) +* paragraph counter: Counters. (line 15) +* paragraph indentation: \parindent & \parskip. + (line 6) +* paragraph indentation, in minipage: minipage. (line 103) +* paragraph indentations in quoted text: quotation & quote. (line 6) +* paragraph indentations in quoted text, omitting: quotation & quote. + (line 6) +* paragraph mode: Modes. (line 12) +* paragraph mode <1>: \parbox. (line 6) +* paragraph symbol: Text symbols. (line 47) +* paragraph, ending: \par. (line 6) +* paragraph, in a box: \parbox. (line 6) +* paragraphs: Making paragraphs. (line 6) +* parameters, for footnotes: \footnote. (line 34) +* parameters, page layout: Page layout parameters. + (line 6) +* parent directories, cannot write to: \write and security. (line 22) +* parentheses: Delimiters. (line 6) +* part: Sectioning. (line 6) +* part <1>: \part. (line 6) +* part counter: Counters. (line 15) +* pattern, current tab stops, tabbing: tabbing. (line 51) +* pc: Units of length. (line 13) +* PDF graphic files: \includegraphics. (line 6) +* pdflatex: TeX engines. (line 15) +* pdflatex command: Output files. (line 20) +* pdflatex-dev: TeX engines. (line 66) +* pdfTeX: Output files. (line 20) +* pdfTeX engine: TeX engines. (line 16) +* period, abbreviation-ending: \@. (line 6) +* period, centered, in text: Text symbols. (line 170) +* period, sentence-ending: \@. (line 6) +* period, spacing after: \@. (line 6) +* pica: Units of length. (line 14) +* pict2e package: \line. (line 35) +* picture environment: picture. (line 6) +* pictures, creating: picture. (line 6) +* pilcrow: Text symbols. (line 47) +* placement of floats: Floats. (line 31) +* platex: TeX engines. (line 54) +* platex-dev: TeX engines. (line 67) +* plural: \newglossaryentry. (line 51) +* PNG files: \includegraphics. (line 6) +* poetry, an environment for: verse. (line 6) +* point: Units of length. (line 10) +* polish l: Additional Latin letters. + (line 36) +* polyglossia package: Accents. (line 6) +* polyglossia package <1>: \today. (line 13) +* polyglossia package <2>: Table of contents etc.. + (line 124) +* polyglossia package <3>: \index. (line 58) +* portrait orientation: Document class options. + (line 60) +* position, in picture: picture. (line 64) +* positional parameter: \newcommand & \renewcommand. + (line 54) +* postamble: makeindex. (line 54) +* PostScript point: Units of length. (line 20) +* postscript, in letters: \ps. (line 6) +* pounds symbol: Text symbols. (line 51) +* preamble: makeindex. (line 50) +* preamble, defined: Starting and ending. (line 22) +* prerelease testing: TeX engines. (line 70) +* prompt, *: Recovering from errors. + (line 23) +* pronunciation: Overview. (line 27) +* PSTricks package: \line. (line 35) +* pt: Units of length. (line 9) +* quad: Spacing in math mode. + (line 69) +* question mark, upside-down: Text symbols. (line 173) +* quotation environment: quotation & quote. (line 6) +* quotation marks, French: Text symbols. (line 33) +* quote environment: quotation & quote. (line 6) +* quote, single straight: Text symbols. (line 188) +* quote, straight base: Text symbols. (line 192) +* quoted text with paragraph indentation, displaying: quotation & quote. + (line 6) +* quoted text without paragraph indentation, displaying: quotation & quote. + (line 6) +* radical: \sqrt. (line 6) +* ragged left text: \raggedleft. (line 6) +* ragged left text, environment for: flushright. (line 6) +* ragged right text: \raggedright. (line 6) +* ragged right text, environment for: flushleft. (line 6) +* read a file: \read. (line 6) +* redefining environments: \newenvironment & \renewenvironment. + (line 6) +* reference, forward: Cross references. (line 27) +* references, resolving forward: Output files. (line 33) +* registered symbol: Text symbols. (line 195) +* relation, text above: \stackrel. (line 6) +* release candidates: TeX engines. (line 70) +* remarks in the margin: Marginal notes. (line 6) +* report class: Document classes. (line 11) +* reporting bugs: About this document. (line 24) +* reserved characters: Reserved characters. (line 6) +* resizing: \scalebox. (line 6) +* resizing <1>: \resizebox. (line 6) +* restricted shell access: \write18. (line 53) +* right angle quotation marks: Text symbols. (line 33) +* right arrow, in text: Text symbols. (line 198) +* right brace, in text: Text symbols. (line 92) +* right quote: Text symbols. (line 58) +* right quote, double: Text symbols. (line 179) +* right quote, single: Text symbols. (line 185) +* right-hand equation numbers: Document class options. + (line 63) +* right-justifying text: \raggedleft. (line 6) +* right-justifying text, environment for: flushright. (line 6) +* rigid lengths: Lengths. (line 9) +* ring accent: Accents. (line 77) +* ring accent, math: Math accents. (line 35) +* robust commands: \protect. (line 6) +* roman font: Font styles. (line 85) +* root file: Splitting the input. (line 10) +* root file <1>: Jobname. (line 6) +* roots: \sqrt. (line 6) +* rotating graphics: \rotatebox. (line 6) +* rotating text: \rotatebox. (line 6) +* rotation: \rotatebox. (line 6) +* row, tabbing: tabbing. (line 46) +* rubber lengths: Lengths. (line 9) +* rubber lengths, defining new: \newlength. (line 6) +* running header and footer: Page layout parameters. + (line 6) +* running header and footer style: \pagestyle. (line 6) +* samepage environment: \pagebreak & \nopagebreak. + (line 44) +* sans serif font: Font styles. (line 91) +* scaled point: Units of length. (line 36) +* scaling: \scalebox. (line 6) +* scaling <1>: \resizebox. (line 6) +* script fonts: Calligraphic. (line 6) +* script letters for math: Font styles. (line 79) +* script style: Math styles. (line 23) +* scriptscript style: Math styles. (line 26) +* scrollmode: Command line options. + (line 27) +* secnumdepth: Sectioning. (line 69) +* secnumdepth counter: Sectioning. (line 70) +* section: Sectioning. (line 6) +* section <1>: \section. (line 6) +* section counter: Counters. (line 15) +* section number, cross referencing: \ref. (line 6) +* section numbers, printing: Sectioning. (line 70) +* section symbol: Text symbols. (line 62) +* section, redefining: \@startsection. (line 6) +* sectioning commands: Sectioning. (line 6) +* sectioning, part: \part. (line 6) +* security and \write: \write and security. (line 6) +* see and see also index entries: \index. (line 58) +* self-contained sources: filecontents. (line 42) +* series, of fonts: Low-level font commands. + (line 48) +* setspace package: \baselineskip & \baselinestretch. + (line 79) +* setting counters: \setcounter. (line 6) +* sh, used by \write18: \write18. (line 60) +* shapes, of fonts: Low-level font commands. + (line 88) +* sharp S letters: Additional Latin letters. + (line 52) +* shell access: \write18. (line 6) +* shell escape: Command line options. + (line 61) +* SHELL, environment variables: \write18. (line 60) +* shellesc package: \write18. (line 71) +* showidx package: Indexes. (line 51) +* simulating typed text: verbatim. (line 6) +* single angle quotation marks: Text symbols. (line 33) +* single guillemets: Text symbols. (line 33) +* single left quote: Text symbols. (line 182) +* single low-9 quotation mark: Text symbols. (line 55) +* single quote, straight: Text symbols. (line 188) +* single right quote: Text symbols. (line 185) +* siunitx package: minipage. (line 137) +* siunitx package <1>: ~. (line 42) +* sizes of text: Font sizes. (line 6) +* skip plain TeX: Lengths. (line 9) +* skip register, plain TeX: \newlength. (line 6) +* slanted font: Font styles. (line 94) +* slides class: Document classes. (line 11) +* sloppypar environment: sloppypar. (line 6) +* sloppypar environment <1>: sloppypar. (line 6) +* slot, font: \DeclareTextAccent. (line 13) +* small caps font: Font styles. (line 88) +* sort: \newglossaryentry. (line 55) +* source files, making self-contained: filecontents. (line 42) +* sp: Units of length. (line 35) +* space between lines: \baselineskip & \baselinestretch. + (line 6) +* space, inserting horizontal: \hss. (line 6) +* space, inserting vertical: \addvspace. (line 6) +* space, negative thin: \thinspace & \negthinspace. + (line 6) +* space, thin: \thinspace & \negthinspace. + (line 6) +* space, unbreakable: ~. (line 6) +* space, vertical: \vspace. (line 6) +* spaces: Spaces. (line 6) +* spaces, ignore around commands: \ignorespaces & \ignorespacesafterend. + (line 6) +* spaces, ignore around commands <1>: xspace package. (line 6) +* spacing within math mode: Spacing in math mode. + (line 6) +* spacing, inter-sentence: \frenchspacing & \nonfrenchspacing. + (line 6) +* spacing, inter-sentence <1>: \normalsfcodes. (line 6) +* spacing, math mode: \phantom & \vphantom & \hphantom. + (line 6) +* spacing, math mode <1>: \mathstrut. (line 6) +* Spanish ordinals, feminine and masculine: Text symbols. (line 167) +* special characters: Reserved characters. (line 6) +* special characters <1>: Additional Latin letters. + (line 6) +* special insertions: Special insertions. (line 6) +* specifier, float placement: Floats. (line 31) +* splitting the input file: Splitting the input. (line 6) +* square root: \sqrt. (line 6) +* stack math: \stackrel. (line 6) +* star-variants, commands: \@ifstar. (line 6) +* starred form, defining new commands: \newcommand & \renewcommand. + (line 27) +* starting a new page: \newpage. (line 6) +* starting a new page and clearing floats: \clearpage & \cleardoublepage. + (line 6) +* starting and ending: Starting and ending. (line 6) +* starting on a right-hand page: \clearpage & \cleardoublepage. + (line 6) +* sterling symbol: Text symbols. (line 51) +* straight double quote, base: Text symbols. (line 192) +* straight quote, base: Text symbols. (line 192) +* straight single quote: Text symbols. (line 188) +* stretch, infinite horizontal: \hfill. (line 6) +* stretch, infinite vertical: \vfill. (line 6) +* stretch, omitting vertical: \raggedbottom. (line 6) +* strut: \footnote. (line 47) +* strut <1>: \strut. (line 6) +* strut, math: \mathstrut. (line 6) +* styles of text: Font styles. (line 6) +* styles, page: Page styles. (line 6) +* subparagraph: Sectioning. (line 6) +* subparagraph <1>: \subsubsection & \paragraph & \subparagraph. + (line 6) +* subparagraph counter: Counters. (line 15) +* subscript: Subscripts & superscripts. + (line 6) +* subsection: Sectioning. (line 6) +* subsection <1>: \subsection. (line 6) +* subsection counter: Counters. (line 15) +* subsubsection: Sectioning. (line 6) +* subsubsection <1>: \subsubsection & \paragraph & \subparagraph. + (line 6) +* subsubsection counter: Counters. (line 15) +* suffix package: \@ifstar. (line 64) +* superscript: Subscripts & superscripts. + (line 6) +* symbol: \newglossaryentry. (line 59) +* symbol, defining: \DeclareTextSymbol. (line 6) +* symbols, arrows: Arrows. (line 6) +* symbols, boldface: \boldmath & \unboldmath. + (line 6) +* symbols, math: Math symbols. (line 6) +* symbols, text: Text symbols. (line 6) +* system commands, run from LaTeX: \write18. (line 6) +* system information: \write18. (line 65) +* T1: fontenc package. (line 6) +* tab stops, using: tabbing. (line 6) +* tabbing environment: tabbing. (line 6) +* table counter: Counters. (line 15) +* table environment: table. (line 6) +* table of contents: \contentsline. (line 6) +* table of contents entry, create dotted line: \@dottedtocline. + (line 6) +* table of contents entry, manually adding: \addcontentsline. (line 6) +* table of contents file: Output files. (line 43) +* table of contents, avoiding footnotes: Footnotes in section headings. + (line 6) +* table of contents, creating: Table of contents etc.. + (line 6) +* table of contents, sectioning numbers printed: Sectioning. (line 81) +* tablefootnote package: Footnotes in a table. + (line 53) +* tables, creating: table. (line 6) +* tabular environment: tabular. (line 6) +* template (simple), article: article template. (line 6) +* template, beamer: beamer template. (line 6) +* template, book: book template. (line 6) +* template, book <1>: Larger book template. + (line 6) +* templates, document: Document templates. (line 6) +* terminal input/output: Input/output. (line 6) +* terminal, writing to: \write. (line 30) +* TeX format (.fmt) files: TeX engines. (line 6) +* TeX logo: Text symbols. (line 65) +* texosquery package: \write18. (line 65) +* texput, jobname default: Jobname. (line 27) +* text style: Math styles. (line 21) +* text symbols: Text symbols. (line 6) +* text, resizing: \scalebox. (line 6) +* text, resizing <1>: \resizebox. (line 6) +* text, scaling: \scalebox. (line 6) +* text, scaling <1>: \resizebox. (line 6) +* textcase package: Upper and lower case. + (line 42) +* textcomp package: Text symbols. (line 6) +* thanks, for titlepage: \maketitle. (line 57) +* thebibliography environment: thebibliography. (line 6) +* theindex: Produce the index manually. + (line 6) +* theindex environment: Produce the index manually. + (line 9) +* theorem environment: theorem. (line 6) +* theorem-like environment: \newtheorem. (line 6) +* theorems, defining: \newtheorem. (line 6) +* theorems, typesetting: theorem. (line 6) +* thin space: Spacing in math mode. + (line 47) +* thin space <1>: \thinspace & \negthinspace. + (line 6) +* thin space, negative: Spacing in math mode. + (line 61) +* thin space, negative <1>: \thinspace & \negthinspace. + (line 6) +* thorn, Icelandic letter: Additional Latin letters. + (line 56) +* three-quarters em-dash: Text symbols. (line 201) +* tie: ~. (line 6) +* tie-after accent: Accents. (line 83) +* TikZ package: \line. (line 35) +* TikZ package <1>: \strut. (line 62) +* TikZ package <2>: \mbox & \makebox. (line 73) +* tikz-cd package: Arrows. (line 41) +* tilde accent: Accents. (line 48) +* tilde accent, math: Math accents. (line 38) +* tilde, ASCII, in text: Text symbols. (line 71) +* title page, separate or run-in: Document class options. + (line 71) +* title pages, creating: titlepage. (line 6) +* title, for titlepage: \maketitle. (line 64) +* titlepage environment: titlepage. (line 6) +* titlepage option: Document class options. + (line 49) +* titles, making: \maketitle. (line 6) +* titlesec package: Sectioning. (line 60) +* titlesec package <1>: \part. (line 54) +* titlesec package <2>: \chapter. (line 79) +* titlesec package <3>: \section. (line 64) +* titlesec package <4>: \subsection. (line 52) +* titlesec package <5>: \subsubsection & \paragraph & \subparagraph. + (line 63) +* tocbibbind package: Table of contents etc.. + (line 110) +* tocdepth: Sectioning. (line 80) +* tocdepth counter: Sectioning. (line 81) +* tocloft package: Table of contents etc.. + (line 110) +* tocloft package <1>: \contentsline. (line 34) +* today's date: \today. (line 6) +* tombstone: \rule. (line 13) +* topmargin: Page layout parameters. + (line 125) +* topnumber: Floats. (line 138) +* topnumber <1>: Floats. (line 139) +* totalnumber: Floats. (line 142) +* totalnumber <1>: Floats. (line 143) +* trademark symbol: Text symbols. (line 204) +* transcript file: Output files. (line 28) +* TrueType fonts: TeX engines. (line 6) +* TS1 encoding: Text symbols. (line 6) +* two-column output: \twocolumn. (line 6) +* two-thirds em-dash: Text symbols. (line 207) +* twocolumn option: Document class options. + (line 78) +* twoside option: Document class options. + (line 78) +* type styles: Font styles. (line 6) +* typed text, simulating: verbatim. (line 6) +* typeface sizes: Font sizes. (line 6) +* typefaces: Fonts. (line 6) +* typewriter font: Font styles. (line 97) +* typewriter labels in lists: description. (line 36) +* ulem package: Over- and Underlining. + (line 15) +* umlaut accent: Accents. (line 25) +* unbreakable space: ~. (line 6) +* underbar: Accents. (line 53) +* underlining: Over- and Underlining. + (line 6) +* underscore, in text: Text symbols. (line 210) +* Unicode: inputenc package. (line 15) +* Unicode input, native: TeX engines. (line 6) +* unicode-math package: Greek letters. (line 37) +* units, of length: Units of length. (line 6) +* unofficial nature of this manual: About this document. (line 20) +* unordered lists: itemize. (line 6) +* uplatex: TeX engines. (line 55) +* uplatex-dev: TeX engines. (line 68) +* uppercase: Upper and lower case. + (line 6) +* url package: \verb. (line 39) +* using BibTeX: Using BibTeX. (line 6) +* UTF-8, default LaTeX input encoding: Overview. (line 12) +* UTF-8, engine support for: TeX engines. (line 6) +* UTF-8, font support for: fontenc package. (line 6) +* variables, a list of: Counters. (line 6) +* vector symbol, math: Math accents. (line 41) +* verbatim environment: verbatim. (line 6) +* verbatim text: verbatim. (line 6) +* verbatim text, inline: \verb. (line 6) +* verbatimbox package: verbatim. (line 41) +* verse environment: verse. (line 6) +* vertical bar, double, in text: Text symbols. (line 83) +* vertical bar, in text: Text symbols. (line 80) +* vertical mode: Modes. (line 36) +* vertical space: \vspace. (line 6) +* vertical space <1>: \addvspace. (line 6) +* vertical space before paragraphs: \parindent & \parskip. + (line 6) +* vertical spacing: \phantom & \vphantom & \hphantom. + (line 6) +* vertical spacing <1>: \mathstrut. (line 6) +* vertical spacing, math mode: \smash. (line 6) +* visible space: \verb. (line 31) +* visible space symbol, in text: Text symbols. (line 213) +* weights, of fonts: Low-level font commands. + (line 58) +* whatsit item: \write. (line 65) +* white space: Spaces. (line 6) +* wide hat accent, math: Math accents. (line 44) +* wide tilde accent, math: Math accents. (line 47) +* widths, of fonts: Low-level font commands. + (line 70) +* Wright, Joseph: Upper and lower case. + (line 48) +* writing external files: filecontents. (line 6) +* writing letters: Letters. (line 6) +* x-height: Units of length. (line 42) +* xdvi command: Output files. (line 10) +* xdvipdfmx: TeX engines. (line 42) +* xelatex: TeX engines. (line 41) +* xelatex-dev: TeX engines. (line 69) +* XeTeX: TeX engines. (line 42) +* xindex program: makeindex. (line 159) +* xindy program: makeindex. (line 152) +* xparse package: LaTeX command syntax. + (line 35) +* xparse package <1>: \@ifstar. (line 64) +* xr package: xr package. (line 6) +* xr-hyper package: xr package. (line 6) +* xspace package: xspace package. (line 6) +* xstring package: Jobname. (line 53) + + + +Tag Table: +Node: Top1861 +Node: About this document3668 +Node: Overview5406 +Node: Starting and ending7186 +Ref: Starting & ending7321 +Node: Output files8498 +Ref: output files dvi8777 +Ref: output files pdf9289 +Ref: output files log9614 +Ref: output files aux9811 +Node: TeX engines10780 +Ref: tex engines latex11316 +Ref: tex engines lualatex12151 +Ref: tex engines xelatex12612 +Node: LaTeX command syntax14572 +Node: Environment16499 +Node: CTAN17726 +Node: Document classes19182 +Ref: document classes article19622 +Ref: document classes book19710 +Ref: document classes letter19895 +Ref: document classes report19971 +Ref: document classes slides20123 +Node: Document class options20576 +Node: Additional packages23658 +Node: Class and package construction24289 +Node: Class and package structure25739 +Node: Class and package commands28034 +Node: Fonts45639 +Ref: Typefaces45742 +Node: fontenc package47704 +Node: \DeclareFontEncoding51956 +Node: \DeclareTextAccent53376 +Node: \DeclareTextAccentDefault54295 +Node: \DeclareTextCommand & \ProvideTextCommand55370 +Node: \DeclareTextCommandDefault & \ProvideTextCommandDefault57622 +Node: \DeclareTextComposite58934 +Node: \DeclareTextCompositeCommand60019 +Node: \DeclareTextSymbol60701 +Node: \DeclareTextSymbolDefault61810 +Node: \LastDeclaredEncoding62770 +Node: \UseTextSymbol & \UseTextAccent63394 +Node: Font styles64604 +Node: Font sizes68834 +Node: Low-level font commands71713 +Ref: low level font commands fontencoding71997 +Ref: low level font commands fontfamily72553 +Ref: low level font commands fontseries73316 +Ref: low level font commands fontshape74448 +Ref: low level font commands fontsize74765 +Ref: low level font commands linespread75342 +Ref: low level font commands selectfont75623 +Ref: low level font commands usefont75949 +Node: Layout76192 +Node: \onecolumn76758 +Node: \twocolumn77117 +Ref: twocolumn columnsep77740 +Ref: twocolumn columnseprule77984 +Ref: twocolumn columnwidth78284 +Ref: twocolumn dbltopfraction78867 +Ref: twocolumn dblfloatpagefraction79833 +Ref: twocolumn dblfloatsep80071 +Ref: twocolumn dbltextfloatsep80380 +Ref: twocolumn dbltopnumber80560 +Node: \flushbottom81509 +Node: \raggedbottom82609 +Node: Page layout parameters83145 +Ref: page layout parameters columnsep83374 +Ref: page layout parameters columnseprule83374 +Ref: page layout parameters columnwidth83374 +Ref: page layout parameters headheight83628 +Ref: page layout parameters headsep83795 +Ref: page layout parameters footskip84107 +Ref: page layout parameters linewidth84441 +Ref: page layout parameters marginparpush84794 +Ref: page layout parameters marginsep84794 +Ref: page layout parameters marginparwidth84794 +Ref: page layout parameters oddsidemargin85834 +Ref: page layout parameters evensidemargin85834 +Ref: page layout parameters paperheight86379 +Ref: page layout parameters paperwidth86605 +Ref: page layout parameters textheight86829 +Ref: page layout parameters textwidth87218 +Ref: page layout parameters hsize88156 +Ref: page layout parameters topmargin88353 +Ref: page layout parameters topskip88657 +Node: \baselineskip & \baselinestretch88873 +Node: Floats94043 +Ref: floats bottomfraction98381 +Ref: floats floatpagefraction98508 +Ref: floats textfraction98619 +Ref: floats topfraction98821 +Ref: floats floatsep99073 +Ref: floats intextsep99183 +Ref: floats textfloatsep99398 +Ref: floats bottomnumber99662 +Ref: floats dbltopnumber99770 +Ref: floats topnumber99889 +Ref: floats totalnumber99993 +Node: \caption100610 +Node: Sectioning103336 +Ref: sectioning secnumdepth106445 +Ref: Sectioning/secnumdepth106445 +Ref: sectioning tocdepth107071 +Ref: Sectioning/tocdepth107071 +Node: \part108111 +Node: \chapter110283 +Node: \section114056 +Node: \subsection117323 +Node: \subsubsection & \paragraph & \subparagraph120037 +Node: \appendix122694 +Node: \frontmatter & \mainmatter & \backmatter123987 +Node: \@startsection125396 +Ref: startsection name126885 +Ref: \@startsection/name126885 +Ref: startsection level127339 +Ref: \@startsection/level127339 +Ref: startsection indent128220 +Ref: \@startsection/indent128220 +Ref: startsection beforeskip128483 +Ref: \@startsection/beforeskip128483 +Ref: startsection afterskip130004 +Ref: \@startsection/afterskip130004 +Ref: startsection style131315 +Ref: \@startsection/style131315 +Node: Cross references135016 +Node: \label137165 +Node: \pageref138985 +Node: \ref139775 +Node: xr package140770 +Node: Environments142591 +Node: abstract144593 +Node: array146182 +Node: center149095 +Node: \centering150848 +Node: description152345 +Node: displaymath154562 +Node: document156258 +Node: \AtBeginDocument156688 +Node: \AtEndDocument157312 +Node: enumerate157956 +Ref: enumerate enumi159819 +Ref: enumerate enumii159819 +Ref: enumerate enumiii159819 +Ref: enumerate enumiv159819 +Ref: enumerate labelenumi160217 +Ref: enumerate labelenumii160217 +Ref: enumerate labelenumiii160217 +Ref: enumerate labelenumiv160217 +Node: eqnarray160756 +Node: equation162752 +Node: figure163420 +Node: filecontents165593 +Node: flushleft167502 +Node: \raggedright168529 +Node: flushright169727 +Node: \raggedleft170551 +Node: itemize171422 +Ref: itemize labelitemi172970 +Ref: itemize labelitemii172970 +Ref: itemize labelitemiii172970 +Ref: itemize labelitemiv172970 +Ref: itemize leftmargin173629 +Ref: itemize leftmargini173629 +Ref: itemize leftmarginii173629 +Ref: itemize leftmarginiii173629 +Ref: itemize leftmarginiv173629 +Ref: itemize leftmarginv173629 +Ref: itemize leftmarginvi173629 +Node: letter175111 +Node: list175349 +Ref: list makelabel177796 +Ref: list itemindent179181 +Ref: list itemsep179318 +Ref: list labelsep179971 +Ref: list labelwidth180134 +Ref: list leftmargin181145 +Ref: list listparindent181998 +Ref: list parsep182229 +Ref: list partopsep182697 +Ref: list rightmargin183495 +Ref: list topsep183680 +Ref: list beginparpenalty187256 +Ref: list itempenalty187355 +Ref: list endparpenalty187459 +Node: \item188330 +Node: trivlist189576 +Node: math191104 +Node: minipage191410 +Node: picture197007 +Node: \put203237 +Node: \multiput203802 +Node: \qbezier204541 +Node: \graphpaper206014 +Node: \line206808 +Node: \linethickness208782 +Node: \thinlines209247 +Node: \thicklines209658 +Node: \circle210043 +Node: \oval210585 +Node: \shortstack211600 +Node: \vector213298 +Node: \makebox (picture)214212 +Node: \framebox (picture)215394 +Node: \frame216867 +Node: \dashbox217307 +Node: quotation & quote218442 +Node: tabbing219338 +Node: table225241 +Node: tabular227324 +Ref: tabular arrayrulewidth233661 +Ref: tabular arraystrech233901 +Ref: tabular doublerulesep234122 +Ref: tabular tabcolsep234258 +Node: \multicolumn234779 +Node: \vline238656 +Node: \cline240047 +Node: \hline240757 +Node: thebibliography241439 +Node: \bibitem243922 +Node: \cite246224 +Node: \nocite248092 +Node: Using BibTeX248600 +Node: BibTeX error messages250980 +Node: theorem251885 +Node: titlepage252807 +Node: verbatim254090 +Node: \verb255903 +Node: verse257996 +Node: Line breaking259223 +Node: \\260589 +Node: \obeycr & \restorecr263019 +Node: \newline263830 +Node: \- (hyphenation)264871 +Node: \discretionary266511 +Node: \fussy & \sloppy267402 +Node: sloppypar268217 +Node: \hyphenation269363 +Node: \linebreak & \nolinebreak269983 +Node: Page breaking271163 +Node: \clearpage & \cleardoublepage273193 +Node: \newpage274713 +Node: \enlargethispage276011 +Node: \pagebreak & \nopagebreak276967 +Node: Footnotes278938 +Node: \footnote280084 +Ref: footnote footnoterule281352 +Ref: footnote footnotesep281963 +Node: \footnotemark283029 +Node: \footnotetext285386 +Node: Footnotes in section headings285988 +Node: Footnotes in a table286821 +Node: Footnotes of footnotes289752 +Node: Definitions290450 +Node: \newcommand & \renewcommand291497 +Node: Control sequences296932 +Node: \providecommand298286 +Node: \makeatletter & \makeatother299449 +Node: \@ifstar301551 +Node: \newcounter305036 +Node: \newlength306756 +Node: \newsavebox307679 +Node: \newenvironment & \renewenvironment308658 +Node: \newtheorem313982 +Node: \newfont317554 +Node: \protect318787 +Node: \ignorespaces & \ignorespacesafterend321175 +Node: xspace package323925 +Node: Counters326124 +Node: \alph \Alph \arabic \roman \Roman \fnsymbol327825 +Node: \usecounter330460 +Node: \value331319 +Node: \setcounter332372 +Node: \addtocounter332968 +Node: \refstepcounter333422 +Node: \stepcounter334091 +Node: \day & \month & \year334644 +Node: Lengths335553 +Node: Units of length340131 +Ref: units of length pt340334 +Ref: units of length pc340451 +Ref: units of length in340474 +Ref: units of length bp340500 +Ref: units of length mm340631 +Ref: units of length cm340663 +Ref: units of length dd340692 +Ref: units of length cc340724 +Ref: units of length sp340749 +Ref: Lengths/ex340891 +Ref: units of length ex340891 +Ref: Lengths/em341034 +Ref: units of length em341034 +Ref: units of length mu341375 +Node: \setlength341904 +Node: \addtolength343016 +Node: \settodepth344439 +Node: \settoheight345427 +Node: \settowidth346425 +Node: \stretch347430 +Node: Expressions348632 +Node: Making paragraphs353446 +Node: \par355761 +Node: \indent & \noindent357807 +Node: \parindent & \parskip359342 +Node: Marginal notes360671 +Ref: marginal notes marginparpush362067 +Ref: marginal notes marginparsep362241 +Ref: marginal notes marginparwidth362373 +Node: Math formulas362722 +Node: Subscripts & superscripts365770 +Node: Math symbols367931 +Node: Arrows391702 +Node: \boldmath & \unboldmath392890 +Node: Blackboard bold394409 +Node: Calligraphic395211 +Node: Delimiters395742 +Node: \left & \right397929 +Node: \bigl & \bigr etc.401966 +Node: Dots404736 +Ref: ellipses cdots405167 +Ref: ellipses ddots405312 +Ref: ellipses ldots405393 +Ref: ellipses vdots405810 +Node: Greek letters406994 +Node: Math functions408673 +Node: Math accents410317 +Node: Over- and Underlining411216 +Node: Spacing in math mode413043 +Ref: spacing in math mode thickspace413974 +Ref: spacing in math mode medspace414425 +Ref: Spacing in math mode/\thinspace414881 +Ref: spacing in math mode thinspace414881 +Ref: spacing in math mode negthinspace415362 +Ref: spacing in math mode quad415735 +Ref: spacing in math mode qquad415991 +Node: \smash416329 +Node: \phantom & \vphantom & \hphantom418546 +Node: \mathstrut421120 +Node: Math styles422082 +Node: Math miscellany424816 +Node: Colon character & \colon425313 +Node: \*426006 +Node: \frac426586 +Node: \sqrt426957 +Node: \stackrel427543 +Node: Modes427816 +Ref: modes paragraph mode428266 +Ref: modes lr mode428578 +Ref: modes math mode429184 +Ref: modes vertical mode429519 +Ref: modes internal vertical mode429737 +Ref: modes inner paragraph mode430260 +Ref: modes outer paragraph mode430260 +Node: \ensuremath430674 +Node: Page styles431379 +Node: \maketitle432142 +Node: \pagenumbering435160 +Node: \pagestyle437147 +Node: \thispagestyle440655 +Node: Spaces441609 +Node: \enspace & \quad & \qquad442929 +Node: \hspace443844 +Node: \hfill445701 +Node: \hss446765 +Node: \spacefactor447459 +Node: \@450866 +Ref: \AT450986 +Node: \frenchspacing & \nonfrenchspacing452926 +Ref: \frenchspacing453044 +Node: \normalsfcodes453846 +Node: \(SPACE)454114 +Ref: Leading blanks456054 +Node: ~456367 +Node: \thinspace & \negthinspace459177 +Node: \/460375 +Node: \hrulefill & \dotfill462333 +Node: \bigskip & \medskip & \smallskip463693 +Ref: bigskip464511 +Ref: medskip464715 +Ref: smallskip464924 +Node: \bigbreak & \medbreak & \smallbreak465585 +Node: \strut466571 +Node: \vspace469808 +Node: \vfill471369 +Node: \addvspace472297 +Node: Boxes474343 +Node: \mbox & \makebox475049 +Ref: mbox makebox depth476317 +Ref: mbox makebox height476317 +Ref: mbox makebox width476317 +Ref: mbox makebox totalheight476317 +Node: \fbox & \framebox478412 +Ref: fbox framebox fboxrule479719 +Ref: fbox framebox fboxsep479909 +Node: \parbox481011 +Node: \raisebox483317 +Ref: raisebox depth484290 +Ref: raisebox height484290 +Ref: raisebox width484290 +Ref: raisebox totalheight484290 +Node: \sbox & \savebox484991 +Node: lrbox488077 +Node: \usebox488963 +Node: Color489402 +Node: Color package options490201 +Node: Color models491847 +Ref: color models cmyk492644 +Ref: color models gray493007 +Ref: color models rgb493156 +Ref: color models RGB493493 +Ref: color models named493868 +Node: Commands for color494156 +Node: Define colors494571 +Node: Colored text495296 +Node: Colored boxes497693 +Node: Colored pages499082 +Node: Graphics499775 +Node: Graphics package options501901 +Node: Graphics package configuration504654 +Node: \graphicspath505456 +Node: \DeclareGraphicsExtensions508414 +Node: \DeclareGraphicsRule510232 +Node: Commands for graphics513411 +Node: \includegraphics513916 +Ref: includegraphics width518979 +Ref: includegraphics height519512 +Ref: includegraphics totalheight519918 +Ref: includegraphics keepaspectratio520182 +Ref: includegraphics viewport521868 +Ref: includegraphics trim522263 +Ref: includegraphics clip522719 +Ref: includegraphics page522979 +Ref: includegraphics pagebox523070 +Ref: includegraphics interpolate523935 +Ref: includegraphics quiet524140 +Ref: includegraphics draft524301 +Ref: includegraphics bb525106 +Ref: includegraphics bbllx525504 +Ref: includegraphics bblly525504 +Ref: includegraphics bburx525504 +Ref: includegraphics bbury525504 +Ref: includegraphics natwidth525646 +Ref: includegraphics natheight525646 +Ref: includegraphics hiresbb525832 +Ref: includegraphics type526594 +Ref: includegraphics ext526634 +Ref: includegraphics read526737 +Ref: includegraphics command526854 +Node: \rotatebox527100 +Node: \scalebox529954 +Node: \resizebox531034 +Node: Special insertions532228 +Node: Reserved characters533096 +Node: Upper and lower case534356 +Node: Symbols by font position536742 +Node: Text symbols537421 +Node: Accents542405 +Node: \accent544690 +Node: Additional Latin letters546516 +Ref: Non-English characters546698 +Node: inputenc package547717 +Ref: \inputencoding549933 +Node: \rule550269 +Node: \today551457 +Node: Splitting the input552393 +Node: \endinput554135 +Node: \include & \includeonly555438 +Node: \input559735 +Node: Front/back matter560950 +Node: Table of contents etc.561283 +Node: \@dottedtocline567044 +Node: \addcontentsline568631 +Node: \addtocontents571694 +Node: \contentsline573911 +Node: \nofiles575689 +Node: \numberline576440 +Node: Indexes577604 +Node: Produce the index manually580398 +Node: \index581562 +Node: makeindex586773 +Ref: makeindex preamble588441 +Ref: makeindex postamble588587 +Ref: makeindex group skip588683 +Ref: makeindex letheadflag589023 +Ref: makeindex lethead prefix589484 +Ref: makeindex lethead suffix589636 +Ref: makeindex item 0589784 +Ref: makeindex item 1589864 +Ref: makeindex item 2589939 +Ref: makeindex item 01590017 +Ref: makeindex item x1590122 +Ref: makeindex item 12590327 +Ref: makeindex item x2590435 +Ref: makeindex delim 0590595 +Ref: makeindex delim 1590725 +Ref: makeindex delim 2590855 +Ref: makeindex delim n590981 +Ref: makeindex delim r591116 +Ref: makeindex line max591224 +Ref: makeindex indent space591359 +Ref: makeindex indent length591454 +Ref: makeindex page precedence591639 +Node: \printindex592676 +Node: Glossaries593149 +Node: \newglossaryentry595116 +Node: \gls596583 +Node: Letters597377 +Node: \address600995 +Node: \cc601806 +Node: \closing602248 +Node: \encl602562 +Node: \location602976 +Node: \makelabels603240 +Node: \name605557 +Node: \opening605798 +Node: \ps606079 +Node: \signature606368 +Node: \telephone607596 +Node: Input/output607961 +Node: \openin & \openout608691 +Node: \read611451 +Node: \typein612638 +Node: \typeout613898 +Node: \write614938 +Node: \write and security619665 +Node: \message620609 +Node: \wlog622438 +Node: \write18622939 +Node: Command line interface626430 +Ref: Command line626594 +Node: Command line options628747 +Ref: interaction modes629750 +Ref: output directory630704 +Node: Command line input632403 +Node: Jobname634520 +Node: Recovering from errors637763 +Node: Document templates639191 +Node: beamer template639625 +Node: article template640267 +Node: book template640730 +Node: Larger book template641209 +Node: Index642751 +Ref: Command Index642837 + +End Tag Table + + +Local Variables: +coding: utf-8 +End: |
