summaryrefslogtreecommitdiff
path: root/info/latex2e-help-texinfo/latex2e.dbk
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2022-01-27 03:00:41 +0000
committerNorbert Preining <norbert@preining.info>2022-01-27 03:00:41 +0000
commitb5deca5ab245af14ca010a3e61225189e9c860f9 (patch)
tree50f4cfc4a516024350a41166589f283a0d0c1871 /info/latex2e-help-texinfo/latex2e.dbk
parentd36626add433e216b29d959884d3593baa216866 (diff)
CTAN sync 202201270300
Diffstat (limited to 'info/latex2e-help-texinfo/latex2e.dbk')
-rw-r--r--info/latex2e-help-texinfo/latex2e.dbk1977
1 files changed, 1222 insertions, 755 deletions
diff --git a/info/latex2e-help-texinfo/latex2e.dbk b/info/latex2e-help-texinfo/latex2e.dbk
index b1a75624cb..a2145d20b9 100644
--- a/info/latex2e-help-texinfo/latex2e.dbk
+++ b/info/latex2e-help-texinfo/latex2e.dbk
@@ -4,10 +4,10 @@
<!ENTITY latex "LaTeX">
]>
<book id="latex2e.dbk" lang="en">
-<!-- $Id: common.texi 729 2018-11-13 23:22:27Z karl $ -->
+<!-- $Id: common.texi 1031 2021-09-01 17:02:05Z vincentb1 $ -->
<!-- Public domain. -->
-<title>&latex;2e unofficial reference manual (July 2021)</title>
+<title>&latex;2e unofficial reference manual (January 2022)</title>
<!-- %**end of header (This is for running Texinfo on a region.) -->
<!-- latex 2.09 commands should all be present now, -->
@@ -28,7 +28,8 @@
<!-- xx JH expand theorem, AMS math -->
<!-- xx JH something on code listings -->
<!-- xx JH ligatures -->
-<!-- xx JH \caption -->
+<!-- -->
+<!-- xx \NewCommandCopy et al. (Brian Dunn, 21 Dec 2021 06:50:17). -->
<!-- -->
<!-- xx The typeset source2e has an index with all kernel -->
<!-- xx commands, though some are internal and shouldn't be included. -->
@@ -38,7 +39,7 @@
<!-- xx All the special characters should be definitively described. -->
<bookinfo><legalnotice><para>This document is an unofficial reference manual for &latex;, a
-document preparation system, version of July 2021.
+document preparation system, version of January 2022.
</para>
<para>This manual was originally translated from <filename>LATEX.HLP</filename> v1.0a in the
VMS Help Library. The pre-translation version was written by
@@ -55,7 +56,7 @@ latex2e-reference by Martin Herbert Dietze. (From these references no
text was directly copied.)
</para>
<para>Copyright 2007, 2008, 2009, 2010, 2011, 2012, 2013,
-2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Karl Berry.
+2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Karl Berry.
Copyright 1988, 1994, 2007 Stephen Gilmore.
@@ -82,7 +83,7 @@ into another language, under the above conditions for modified versions.
<para>This document is an unofficial reference manual for &latex;, a
-document preparation system, version of July 2021.
+document preparation system, version of January 2022.
</para>
<para>This manual was originally translated from <filename>LATEX.HLP</filename> v1.0a in the
VMS Help Library. The pre-translation version was written by
@@ -99,7 +100,7 @@ latex2e-reference by Martin Herbert Dietze. (From these references no
text was directly copied.)
</para>
<para>Copyright 2007, 2008, 2009, 2010, 2011, 2012, 2013,
-2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Karl Berry.
+2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Karl Berry.
Copyright 1988, 1994, 2007 Stephen Gilmore.
@@ -128,7 +129,7 @@ into another language, under the above conditions for modified versions.
<title>&latex;2e: An unofficial reference manual</title>
<para>This document is an unofficial reference manual (version of
-July 2021) for &latex;2e, a document preparation system.
+January 2022) for &latex;2e, a document preparation system.
</para>
</chapter>
@@ -1034,7 +1035,7 @@ command is used within a moving argument, use <literal>\newcommand</literal>.
</para>
<indexterm role="cp"><primary>package, <literal>etoolbox</literal></primary></indexterm>
<indexterm role="cp"><primary><literal>etoolbox</literal> package</primary></indexterm>
-<para>The <filename>etoolbox</filename> package offers the commands
+<para>The <literal>etoolbox</literal> package offers the commands
<literal>\newrobustcmd</literal>, <literal>\newrobustcmd*</literal>, as well as the commands
<literal>\renewrobustcmd</literal>, <literal>\renewrobustcmd*</literal>, and the commands
<literal>\providerobustcmd</literal>, and <literal>\providerobustcmd*</literal>. These are
@@ -1366,16 +1367,19 @@ alphabet free fonts available for easy use with &latex;.
<para>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.
</para>
+<indexterm role="cp"><primary>package, <literal>fontspec</literal></primary></indexterm>
+<indexterm role="cp"><primary><literal>fontspec</literal> package</primary></indexterm>
+
<para>This package only applies if you use the <literal>pdflatex</literal> engine
(see <link linkend="TeX-engines">&tex; engines</link>). If you use the <command>xelatex</command> or
-<command>lualatex</command> engine then instead use the <filename>fontspec</filename> package.
+<command>lualatex</command> engine then instead use the <literal>fontspec</literal> package.
</para>
<para>&tex;&#8217;s original font family, Computer Modern, has a limited character
set. For instance, to make common accented characters you must use
<literal>\accent</literal> (see <link linkend="_005caccent">\accent</link>) 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
-<command>pdflatex</command> then this in the preamble
+<command>pdflatex</command> then put this in the preamble
</para>
<screen>\usepackage[T1]{fontenc}
</screen>
@@ -1393,7 +1397,7 @@ to directly enter accented characters into your source file.)
<para>If you are using an encoding such as <literal>T1</literal> and the characters appear
blurry or do not magnify well then your fonts may be bitmapped,
sometimes called raster or Type&#160;3. You want vector fonts. Use a
-package such as <filename>lmodern</filename> or <filename>cm-super</filename> to get a font that
+package such as <literal>lmodern</literal> or <literal>cm-super</literal> to get a font that
extends &latex;&#8217;s default using vector fonts.
</para>
<para>For each <replaceable>font_encoding</replaceable> given as an option but not already
@@ -1465,7 +1469,7 @@ is not in effect.
</screen>
<para>The <replaceable>text-settings</replaceable> are the commands that &latex; will run every
time it switches from one encoding to another with the
-<literal>\selectfont</literal> or <literal>\fontencoding</literal> command. The
+<literal>\selectfont</literal> and <literal>\fontencoding</literal> commands. The
<replaceable>math-settings</replaceable> are the commands that &latex; will use whenever the
font is accessed as a math alphabet.
</para>
@@ -1501,6 +1505,9 @@ should only contain declarations specific to that encoding.
<para>Define an accent, to be put on top of other glyphs, in the encoding
<replaceable>encoding</replaceable> at the location <replaceable>slot</replaceable>.
</para>
+<indexterm role="cp"><primary>slot, font</primary></indexterm>
+<para>A <firstterm>slot</firstterm> is the number identifying a glyph within a font.
+</para>
<para>This line from <filename>t1enc.def</filename> declares that to make a circumflex
accent as in <literal>\^A</literal>, the system will put the accent in slot&#160;2
over the &#8216;<literal>A</literal>&#8217; character, which is represented in ASCII as&#160;65.
@@ -1525,9 +1532,9 @@ transcript file.
<para>Synopsis:
</para>
-<screen>\DeclareTextAccentDefault{<replaceable>cmd</replaceable>}{<replaceable>encoding</replaceable>}
+<screen>\DeclareTextAccentDefault{\<replaceable>cmd</replaceable>}{<replaceable>encoding</replaceable>}
</screen>
-<para>If there is an encoding-specific accent command <replaceable>cmd</replaceable> but there is
+<para>If there is an encoding-specific accent command \<replaceable>cmd</replaceable> but there is
no associated <literal>\DeclareTextAccent</literal> for that encoding then this
command will pick up the slack, by saying to use it as described for
<replaceable>encoding</replaceable>.
@@ -1544,8 +1551,8 @@ definition for that accent then &latex; will use the definition from
<para>That is, this command is equivalent to this call (see <link linkend="_005cUseTextSymbol-_0026-_005cUseTextAccent">\UseTextSymbol
&amp; \UseTextAccent</link>).
</para>
-<screen>\DeclareTextCommandDefault[1]{<replaceable>cmd</replaceable>}
- {\UseTextAccent{<replaceable>encoding</replaceable>}{<replaceable>cmd</replaceable>}{#1}}
+<screen>\DeclareTextCommandDefault[1]{\<replaceable>cmd</replaceable>}
+ {\UseTextAccent{<replaceable>encoding</replaceable>}{\<replaceable>cmd</replaceable>}{#1}}
</screen>
<para>Note that <literal>\DeclareTextAccentDefault</literal> works for any one-argument
<filename>fontenc</filename> command, not just the accent command.
@@ -1556,26 +1563,25 @@ definition for that accent then &latex; will use the definition from
<title><literal>\DeclareTextCommand</literal> &amp; <literal>\ProvideTextCommand</literal></title>
<indexterm role="fn"><primary>\DeclareTextCommand</primary></indexterm>
-<indexterm role="fn"><primary>\DeclareTextCommandDefault</primary></indexterm>
<indexterm role="fn"><primary>\ProvideTextCommand</primary></indexterm>
<para>Synopsis, one of:
</para>
-<screen>\DeclareTextCommand{<replaceable>cmd</replaceable>}{<replaceable>encoding</replaceable>}{<replaceable>defn</replaceable>}
-\DeclareTextCommand{<replaceable>cmd</replaceable>}{<replaceable>encoding</replaceable>}[<replaceable>nargs</replaceable>]{<replaceable>defn}</replaceable>
-\DeclareTextCommand{<replaceable>cmd</replaceable>}{<replaceable>encoding</replaceable>}[<replaceable>nargs</replaceable>][<replaceable>optargdefault</replaceable>]{<replaceable>defn</replaceable>}
+<screen>\DeclareTextCommand{\<replaceable>cmd</replaceable>}{<replaceable>encoding</replaceable>}{<replaceable>defn</replaceable>}
+\DeclareTextCommand{\<replaceable>cmd</replaceable>}{<replaceable>encoding</replaceable>}[<replaceable>nargs</replaceable>]{<replaceable>defn}</replaceable>
+\DeclareTextCommand{\<replaceable>cmd</replaceable>}{<replaceable>encoding</replaceable>}[<replaceable>nargs</replaceable>][<replaceable>optargdefault</replaceable>]{<replaceable>defn</replaceable>}
</screen>
<para>or one of:
</para>
-<screen>\ProvideTextCommand{<replaceable>cmd</replaceable>}{<replaceable>encoding</replaceable>}{<replaceable>defn</replaceable>}
-\ProvideTextCommand{<replaceable>cmd</replaceable>}{<replaceable>encoding</replaceable>}[<replaceable>nargs</replaceable>]{<replaceable>defn</replaceable>}
-\ProvideTextCommand{<replaceable>cmd</replaceable>}{<replaceable>encoding</replaceable>}[<replaceable>nargs</replaceable>][<replaceable>optargdefault</replaceable>]{<replaceable>defn</replaceable>}
+<screen>\ProvideTextCommand{\<replaceable>cmd</replaceable>}{<replaceable>encoding</replaceable>}{<replaceable>defn</replaceable>}
+\ProvideTextCommand{\<replaceable>cmd</replaceable>}{<replaceable>encoding</replaceable>}[<replaceable>nargs</replaceable>]{<replaceable>defn</replaceable>}
+\ProvideTextCommand{\<replaceable>cmd</replaceable>}{<replaceable>encoding</replaceable>}[<replaceable>nargs</replaceable>][<replaceable>optargdefault</replaceable>]{<replaceable>defn</replaceable>}
</screen>
-<para>Define the command <replaceable>cmd</replaceable>, which will be specific to one encoding.
-The command name <replaceable>cmd</replaceable> must begin with a backslash, \. These
-commands can only appear in the preamble. Redefining <literal>cmd</literal> does
-not cause an error. The defined command will be robust even if the code
-in <replaceable>defn</replaceable> is fragile (see <link linkend="_005cprotect">\protect</link>).
+<para>Define the command <literal>\<replaceable>cmd</replaceable></literal>, which will be specific to one
+encoding. The command name <replaceable>cmd</replaceable> must be preceded by a backslash,
+<literal>\</literal>. These commands can only appear in the preamble. Redefining
+\<replaceable>cmd</replaceable> does not cause an error. The defined command will be robust
+even if the code in <replaceable>defn</replaceable> is fragile (see <link linkend="_005cprotect">\protect</link>).
</para>
<para>For example, the file <filename>t1enc.def</filename> contains this line.
</para>
@@ -1591,22 +1597,23 @@ Legal limit is \( 0.8 \)\textperthousand.
&#8216;<literal>LaTeX Error: Command \textperthousand unavailable in encoding
OT1</literal>&#8217;.
</para>
+<indexterm role="fn"><primary>\DeclareTextSymbol</primary></indexterm>
<para>The <literal>\ProvideTextCommand</literal> variant does the same, except that it
-does nothing if <replaceable>cmd</replaceable> is already defined. The
+does nothing if <literal>\<replaceable>cmd</replaceable></literal> is already defined. The
<literal>\DeclareTextSymbol</literal> command is faster than this one for simple
slot-to-glyph association (see <link linkend="_005cDeclareTextSymbol">\DeclareTextSymbol</link>)
</para>
-<para>The optional <replaceable>nargs</replaceable> and <replaceable>optargsdefault</replaceable> arguments play the
-same role here as in <literal>\newcommand</literal> (see <link linkend="_005cnewcommand-_0026-_005crenewcommand">\newcommand &amp;
+<para>The optional <replaceable>nargs</replaceable> and <replaceable>optargdefault</replaceable> arguments play the same
+role here as in <literal>\newcommand</literal> (see <link linkend="_005cnewcommand-_0026-_005crenewcommand">\newcommand &amp;
\renewcommand</link>). Briefly, <replaceable>nargs</replaceable> is an integer from 0 to 9
-specifying the number of arguments that the defined command <literal>cmd</literal>
-takes. This number includes any optional argument. Omitting this
-argument is the same as specifying 0, meaning that <replaceable>cmd</replaceable> will have
-no arguments. And, if <replaceable>optargsdefault</replaceable> is present then the first
-argument of <literal>\<replaceable>cmd</replaceable></literal> is optional, with default value
-<replaceable>optargdefault</replaceable> (which may be the empty string). If
-<replaceable>optargsdefault</replaceable> is not present then <literal>\<replaceable>cmd</replaceable></literal> does not take
-an optional argument.
+specifying the number of arguments that the defined command
+<literal>\<replaceable>cmd</replaceable></literal> takes. This number includes any optional argument.
+Omitting this argument is the same as specifying 0, meaning that
+<literal>\<replaceable>cmd</replaceable></literal> will have no arguments. And, if <replaceable>optargdefault</replaceable>
+is present then the first argument of <literal>\<replaceable>cmd</replaceable></literal> is optional,
+with default value <replaceable>optargdefault</replaceable> (which may be the empty string).
+If <replaceable>optargdefault</replaceable> is not present then <literal>\<replaceable>cmd</replaceable></literal> does not
+take an optional argument.
</para>
</sect2>
@@ -1620,15 +1627,15 @@ an optional argument.
<para>Synopsis:
</para>
-<screen>\DeclareTextCommandDefault{<replaceable>cmd</replaceable>}{<replaceable>defn</replaceable>}
+<screen>\DeclareTextCommandDefault{\<replaceable>cmd</replaceable>}{<replaceable>defn</replaceable>}
</screen>
<para>or:
</para>
-<screen>\ProvideTextCommandDefault{<replaceable>cmd</replaceable>}{<replaceable>defn</replaceable>}
+<screen>\ProvideTextCommandDefault{\<replaceable>cmd</replaceable>}{<replaceable>defn</replaceable>}
</screen>
-<para>Give a default definition for <replaceable>cmd</replaceable>, for when that command is not
-defined in the encoding currently in force. This default should only use
-encodings known to be available.
+<para>Give a default definition for <literal>\<replaceable>cmd</replaceable></literal>, for when that command
+is not defined in the encoding currently in force. This default should
+only use encodings known to be available.
</para>
<para>This makes <literal>\copyright</literal> available.
</para>
@@ -1643,7 +1650,7 @@ when you select that encoding. It should instead be in a package.
<para>As with the related non-default commands, the
<literal>\ProvideTextCommandDefault</literal> has exactly the same behavior as
<literal>\DeclareTextCommandDefault</literal> except that it does nothing if
-<replaceable>cmd</replaceable> is already defined (see <link linkend="_005cDeclareTextCommand-_0026-_005cProvideTextCommand">\DeclareTextCommand &amp;
+<literal>\<replaceable>cmd</replaceable></literal> is already defined (see <link linkend="_005cDeclareTextCommand-_0026-_005cProvideTextCommand">\DeclareTextCommand &amp;
\ProvideTextCommand</link>). So, packages can use it to provide fallbacks
that other packages can improve upon.
</para>
@@ -1657,14 +1664,14 @@ that other packages can improve upon.
<para>Synopsis:
</para>
-<screen>\DeclareTextComposite{<replaceable>cmd</replaceable>}{<replaceable>encoding</replaceable>}{<replaceable>simple_object</replaceable>}{<replaceable>slot</replaceable>}
+<screen>\DeclareTextComposite{\<replaceable>cmd</replaceable>}{<replaceable>encoding</replaceable>}{<replaceable>simple_object</replaceable>}{<replaceable>slot</replaceable>}
</screen>
<para>Access an accented glyph directly, that is, without having to put an
accent over a separate character.
</para>
<para>This line from <filename>t1enc.def</filename> means that <literal>\^o</literal> will cause
&latex; to typeset lowercase&#160;&#8216;<literal>o</literal>&#8217; by taking the character
-directly from location 224 in the font.
+directly from slot 224 in the font.
</para>
<screen>\DeclareTextComposite{\^}{T1}{o}{244}
</screen>
@@ -1672,7 +1679,7 @@ directly from location 224 in the font.
<replaceable>simple_object</replaceable> should be a single character or a single command.
The <replaceable>slot</replaceable> argument is usually a positive integer represented in
decimal (although octal or hexadecimal are possible). Normally
-<replaceable>cmd</replaceable> has already been declared for this encoding, either with
+\<replaceable>cmd</replaceable> has already been declared for this encoding, either with
<literal>\DeclareTextAccent</literal> or with a one-argument
<literal>\DeclareTextCommand</literal>. In <filename>t1enc.def</filename>, the above line follows
the <literal>\DeclareTextAccent{\^}{T1}{2}</literal> command.
@@ -1687,10 +1694,10 @@ the <literal>\DeclareTextAccent{\^}{T1}{2}</literal> command.
<para>Synopsis:
</para>
-<screen>\DeclareTextCompositeCommand{<replaceable>cmd</replaceable>}{<replaceable>encoding</replaceable>}{<replaceable>arg</replaceable>}{<replaceable>code</replaceable>}
+<screen>\DeclareTextCompositeCommand{\<replaceable>cmd</replaceable>}{<replaceable>encoding</replaceable>}{<replaceable>arg</replaceable>}{<replaceable>code</replaceable>}
</screen>
<para>A more general version of <literal>\DeclareTextComposite</literal> that runs
-arbitrary code with <replaceable>cmd</replaceable>.
+arbitrary code with <literal>\<replaceable>cmd</replaceable></literal>.
</para>
<para>This allows accents on &#8216;<literal>i</literal>&#8217; to act like accents on dotless&#160;i,
<literal>\i</literal>.
@@ -1698,7 +1705,7 @@ arbitrary code with <replaceable>cmd</replaceable>.
<screen>\DeclareTextCompositeCommand{\'}{OT1}{i}{\'\i}
</screen>
<para>See <link linkend="fontenc-package">fontenc package</link>, for a list of common encodings. Normally
-<replaceable>cmd</replaceable> will have already been declared with <literal>\DeclareTextAccent</literal>
+<literal>\<replaceable>cmd</replaceable></literal> will have already been declared with <literal>\DeclareTextAccent</literal>
or as a one argument <literal>\DeclareTextCommand</literal>.
</para>
@@ -1711,7 +1718,7 @@ or as a one argument <literal>\DeclareTextCommand</literal>.
<para>Synopsis:
</para>
-<screen>\DeclareTextSymbol{<replaceable>cmd</replaceable>}{<replaceable>encoding</replaceable>}{<replaceable>slot</replaceable>}
+<screen>\DeclareTextSymbol{\<replaceable>cmd</replaceable>}{<replaceable>encoding</replaceable>}{<replaceable>slot</replaceable>}
</screen>
<para>Define a symbol in the encoding <replaceable>encoding</replaceable> at the location
<replaceable>slot</replaceable>. Symbols defined in this way are for use in text, not
@@ -1731,9 +1738,9 @@ can be specified in decimal, or octal (as in <literal>'023</literal>), or
hexadecimal (as in <literal>&quot;13</literal>), although decimal has the advantage that
single quote or double quote could be redefined by another package.
</para>
-<para>If <replaceable>cmd</replaceable> has already been defined then <literal>\DeclareTextSymbol</literal>
-does not give an error but it does log the redefinition in the
-transcript file.
+<para>If <literal>\<replaceable>cmd</replaceable></literal> has already been defined then
+<literal>\DeclareTextSymbol</literal> does not give an error but it does log the
+redefinition in the transcript file.
</para>
</sect2>
@@ -1746,12 +1753,12 @@ transcript file.
<para>Synopsis:
</para>
-<screen>\DeclareTextSymbolDefault{<replaceable>cmd</replaceable>}{<replaceable>encoding</replaceable>}
+<screen>\DeclareTextSymbolDefault{\<replaceable>cmd</replaceable>}{<replaceable>encoding</replaceable>}
</screen>
-<para>If there is an encoding-specific symbol command <replaceable>cmd</replaceable> but there is no
-associated <literal>\DeclareTextSymbol</literal> for that encoding, then this command
-will pick up the slack, by saying to get the symbol as described for
-<replaceable>encoding</replaceable>.
+<para>If there is an encoding-specific symbol command <literal>\<replaceable>cmd</replaceable></literal> but
+there is no associated <literal>\DeclareTextSymbol</literal> for that encoding, then
+this command will pick up the slack, by saying to get the symbol as
+described for <replaceable>encoding</replaceable>.
</para>
<para>For example, to declare that if the current encoding has no meaning for
<literal>\textdollar</literal> then use the one from <literal>OT1</literal>, declare this.
@@ -1761,8 +1768,8 @@ will pick up the slack, by saying to get the symbol as described for
<para>That is, this command is equivalent to this call (see <link linkend="_005cUseTextSymbol-_0026-_005cUseTextAccent">\UseTextSymbol
&amp; \UseTextAccent</link>).
</para>
-<screen>\DeclareTextCommandDefault{<replaceable>cmd</replaceable>}
- {\UseTextSymbol{<replaceable>encoding</replaceable>}{<replaceable>cmd</replaceable>}}
+<screen>\DeclareTextCommandDefault{\<replaceable>cmd</replaceable>}
+ {\UseTextSymbol{<replaceable>encoding</replaceable>}{\<replaceable>cmd</replaceable>}}
</screen>
<para>Note that <literal>\DeclareTextSymbolDefault</literal> can be used to define a
default for any zero-argument <filename>fontenc</filename> command.
@@ -1798,11 +1805,11 @@ name of the encoding explicitly.
<para>Synopsis:
</para>
-<screen>\UseTextSymbol{<replaceable>encoding</replaceable>}{<replaceable>cmd</replaceable>}
+<screen>\UseTextSymbol{<replaceable>encoding</replaceable>}{\<replaceable>cmd</replaceable>}
</screen>
<para>or:
</para>
-<screen>\UseTextAccent{<replaceable>encoding</replaceable>}{<replaceable>cmd</replaceable>}{<replaceable>text</replaceable>}
+<screen>\UseTextAccent{<replaceable>encoding</replaceable>}{\<replaceable>cmd</replaceable>}{<replaceable>text</replaceable>}
</screen>
<para>Use a symbol or accent not from the current encoding.
</para>
@@ -2093,6 +2100,18 @@ since that is how they are typically used. For example.
style command or the end of the current group, so you could enclose it
in curly braces <literal>{\small This text is typeset in the small font.}</literal>.
</para>
+<para>Trying to use these commands in math, as with <literal>$\small mv^2/2$</literal>,
+results in &#8216;<literal>LaTeX Font Warning: Command \small
+invalid in math mode</literal>&#8217;, and the font size doesn&#8217;t
+change. To work with a too-large formula, often the best option is to
+use the <literal>displaymath</literal> environment (see <link linkend="Math-formulas">Math formulas</link>), or
+one of the environments from the <literal>amsmath</literal> package. For inline
+mathematics, such as in a table of formulas, an alternative is something
+like <literal>{\small $mv^2/2$}</literal>. (Sometimes <literal>\scriptsize</literal> and
+<literal>\scriptstyle</literal> are confused. Both change the font size, but the
+latter also changes a number of other aspects of how mathematics is
+typeset. See <link linkend="Math-styles">Math styles</link>.)
+</para>
<indexterm role="cp"><primary>environment form of font size commands</primary></indexterm>
<para>An <firstterm>environment form</firstterm> of each of these commands is also defined; for
instance, <literal>\begin{tiny}...\end{tiny}</literal>. However, in practice
@@ -2251,10 +2270,10 @@ relationship of these terms varies with individual typefaces):
weight and width are <literal>m</literal>, in which case use just one
(&#8216;<literal><literal>m</literal></literal>&#8217;).
</para>
-</listitem></varlistentry><varlistentry><term><literal>\fontshape{<replaceable>shape</replaceable>}</literal>
+<anchor id="low-level-font-commands-fontshape"/></listitem></varlistentry><varlistentry><term><literal>\fontshape{<replaceable>shape</replaceable>}</literal>
</term><listitem><indexterm role="fn"><primary>\fontshape</primary></indexterm>
<indexterm role="cp"><primary>shapes, of fonts</primary></indexterm>
-<anchor id="low-level-font-commands-fontshape"/><para>Select font shape. Valid shapes are:
+<para>Select font shape. Valid shapes are:
</para>
<informaltable><tgroup cols="2"><colspec colwidth="2*"></colspec><colspec colwidth="19*"></colspec><tbody><row><entry><para><literal>n</literal>
</para></entry><entry><para>Upright (normal)
@@ -2287,11 +2306,10 @@ reset every time a size change happens; instead use
</para>
<anchor id="low-level-font-commands-linespread"/></listitem></varlistentry><varlistentry><term><literal>\linespread{<replaceable>factor</replaceable>}</literal>
</term><listitem><indexterm role="fn"><primary>\linespread</primary></indexterm>
-<para>Equivalent to
-<literal>\renewcommand{\baselinestretch}{<replaceable>factor</replaceable>}</literal>, and
-therefore must be followed by <literal>\selectfont</literal> to have any effect.
-Best specified in the preamble, or use the <literal>setspace</literal> package, as
-just described.
+<para>Equivalent to <literal>\renewcommand{\baselinestretch}{<replaceable>factor</replaceable>}</literal>,
+and therefore must be followed by <literal>\selectfont</literal> to have any
+effect. Best specified in the preamble. See <link linkend="_005cbaselineskip-_0026-_005cbaselinestretch">\baselineskip &amp;
+\baselinestretch</link>, for using <literal>setspace</literal> package instead.
</para>
<anchor id="low-level-font-commands-selectfont"/></listitem></varlistentry><varlistentry><term><literal>\selectfont</literal>
</term><listitem><indexterm role="fn"><primary>\selectfont</primary></indexterm>
@@ -2679,7 +2697,7 @@ same as the font size, e.g., &#8216;<literal>10pt</literal>&#8217; at a type siz
<indexterm role="cp"><primary>double spacing</primary></indexterm>
<para>The <literal>\baselineskip</literal> is a rubber length (see <link linkend="Lengths">Lengths</link>). It gives
-the leading, the normal distance between lines in a paragraph, from
+the <firstterm>leading</firstterm>, the normal distance between lines in a paragraph, from
baseline to baseline.
</para>
<para>Ordinarily document authors do not directly change <literal>\baselineskip</literal>
@@ -2730,9 +2748,9 @@ lines would be too close together, closer than <literal>\lineskiplimit</literal>
then &tex; instead uses <literal>\lineskip</literal> as the interline glue. The
second is that &tex; doesn&#8217;t actually use the depth of the previous
line. Instead it uses <literal>\prevdepth</literal>, which usually contains that
-depth. But at the beginning of the paragraph (or any vertical list)
-or just after a rule, <literal>\prevdepth</literal> has the value -1000pt and this
-special value tells &tex; not to insert any interline glue at the
+depth. But at the beginning of the paragraph (or any vertical list) or
+just after a rule, <literal>\prevdepth</literal> has the value -1000pt and
+this special value tells &tex; not to insert any interline glue at the
paragraph start.
</para>
<para>In the standard classes <literal>\lineskiplimit</literal> is 0pt and
@@ -2752,7 +2770,7 @@ document is to put <literal>\linespread{<replaceable>factor</replaceable>}</lite
For double spacing, take <replaceable>factor</replaceable> to be 1.6 and for one-and-a-half
spacing use 1.3. These number are rough: for instance, since the
<literal>\baselineskip</literal> is about 1.2 times the font size, multiplying by
-1.6 gives a font size to baseline ratio of about 2. (The
+1.6 gives a baseline skip to font size ratio of about 2. (The
<literal>\linespread</literal> command is defined as
<literal>\renewcommand{\baselinestretch}{<replaceable>factor</replaceable>}</literal> so it won&#8217;t
take effect until a font setting happens. But that always takes place at
@@ -2762,7 +2780,7 @@ the start of a document, so there you don&#8217;t need to follow it with
<indexterm role="cp"><primary>package, <literal>setspace</literal></primary></indexterm>
<indexterm role="cp"><primary><literal>setspace</literal> package</primary></indexterm>
-<para>A simpler approach is the <filename>setspace</filename> package. The basic example:
+<para>A simpler approach is the <literal>setspace</literal> package. The basic example:
</para>
<screen>\usepackage{setspace}
\doublespacing % or \onehalfspacing for 1.5
@@ -2776,8 +2794,10 @@ environments, such as <literal>\begin{doublespace}
... \end{doublespace}</literal>. The package also has commands to do
arbitrary spacing: <literal>\setstretch{<replaceable>factor</replaceable>}</literal> and
<literal>\begin{spacing}{<replaceable>factor</replaceable>} ... \end{spacing}</literal>.
+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.
</para>
-
</sect1>
<sect1 label="5.7" id="Floats">
<title>Floats</title>
@@ -2789,7 +2809,7 @@ for instance floating to the top of a later page.
<para>&latex; can have a number of different classes of floating material.
The default is the two classes, <literal>figure</literal> (see <link linkend="figure">figure</link>) and
<literal>table</literal> (see <link linkend="table">table</link>), but you can create a new class with the
-package <filename>float</filename>.
+package <literal>float</literal>.
</para>
<para>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
@@ -2875,7 +2895,7 @@ is finished and then flush all outstanding floats.
the <replaceable>placement</replaceable> parameter. If this is not desired, and deleting
the <literal>t</literal> 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 <filename>flafter</filename> package or using the command
+the <literal>flafter</literal> package or using the command
<indexterm role="fn"><primary>\suppressfloats</primary></indexterm>
<literal>\suppressfloats[t]</literal>, which causes floats for the top position on
this page to moved to the next page.
@@ -2958,6 +2978,92 @@ influence the position of float environments like figure and table in
(<ulink url="https://www.latex-project.org/publications/2014-FMi-TUB-tb111mitt-float-placement.pdf">https://www.latex-project.org/publications/2014-FMi-TUB-tb111mitt-float-placement.pdf</ulink>).
</para>
+
+<sect2 label="5.7.1" id="_005ccaption">
+<title><literal>\caption</literal></title>
+
+<indexterm role="fn"><primary>\caption</primary></indexterm>
+<indexterm role="cp"><primary>captions</primary></indexterm>
+
+<para>Synopsis:
+</para>
+<screen>\caption{<replaceable>caption-text</replaceable>}
+</screen>
+<para>or
+</para>
+<screen>\caption[<replaceable>short-caption-text</replaceable>]{<replaceable>caption-text</replaceable>}
+</screen>
+<para>Make a caption for a floating environment, such as a <literal>figure</literal> or
+<literal>table</literal> environment (see <link linkend="figure">figure</link> or <link linkend="table">table</link>).
+</para>
+<para>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.
+</para>
+<screen>\begin{figure}
+ \vspace*{1cm}
+ \caption{Alonzo Cushing, Battery A, 4th US Artillery.}
+ \label{fig:CushingPic}
+\end{figure}
+</screen>
+<para>The <literal>\caption</literal> command will label the <replaceable>caption-text</replaceable> with
+something like &#8216;<literal>Figure&#160;1:</literal>&#8217; for an article or
+&#8216;<literal>Figure&#160;1.1:</literal>&#8217; 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.
+</para>
+<para>In addition to placing the <replaceable>caption-text</replaceable> in the output, the
+<literal>\caption</literal> command also saves that information for use in a list of
+figures or list of tables (see <link linkend="Table-of-contents-etc_002e">Table of contents etc.</link>).
+</para>
+<para>Here the <literal>\caption</literal> command uses the optional
+<replaceable>short-caption-text</replaceable>, so that the shorter text appears in the list
+of tables, rather than the longer <replaceable>caption-text</replaceable>.
+</para>
+<screen>\begin{table}
+ \centering
+ \begin{tabular}{|*{3}{c}|}
+ \hline
+ 4 &amp;9 &amp;2 \\
+ 3 &amp;5 &amp;7 \\
+ 8 &amp;1 &amp;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}
+</screen>
+<para>&latex; will label the <replaceable>caption-text</replaceable> with something like
+&#8216;<literal>Table&#160;1:</literal>&#8217; for an article or &#8216;<literal>Table&#160;1.1:</literal>&#8217; for a
+book.
+</para>
+<para>The caption can appear at the top of the <literal>figure</literal> or <literal>table</literal>.
+For instance, that would happen in the prior example by putting the
+<literal>\caption</literal> between the <literal>\centering</literal> and the
+<literal>\begin{tabular}</literal>.
+</para>
+<para>Different floating environments are numbered separately, by default. It
+is <literal>\caption</literal> that updates the counter, and so any <literal>\label</literal>
+must come after the <literal>\caption</literal>. The counter for the <literal>figure</literal>
+environment is named <literal>figure</literal>, and similarly the counter for the
+<literal>table</literal> environment is <literal>table</literal>.
+</para>
+<para>The text that will be put in the list of figures or list of tables is
+moving argument. If you get the &latex; error &#8216;<literal>! Argument of
+\@caption has an extra }</literal>&#8217; then you must put <literal>\protect</literal> in front
+of any fragile commands. See <link linkend="_005cprotect">\protect</link>.
+</para>
+<indexterm role="cp"><primary>package, <literal>caption</literal></primary></indexterm>
+<indexterm role="cp"><primary><literal>caption</literal> package</primary></indexterm>
+
+<para>The <literal>caption</literal> 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.
+</para>
+
+</sect2>
</sect1>
</chapter>
<chapter label="6" id="Sectioning">
@@ -3048,7 +3154,7 @@ simple example, you can change the section numbering to upper-case
letters with <literal>\renewcommand\thesection{\Alph{section}}</literal> in the
preamble (see <link linkend="_005calph-_005cAlph-_005carabic-_005croman-_005cRoman-_005cfnsymbol">\alph \Alph \arabic \roman \Roman \fnsymbol</link>). CTAN
has many packages that make this adjustment easier, notably
-<filename>titlesec</filename>.
+<literal>titlesec</literal>.
</para>
<para>Two counters relate to the appearance of headings made by sectioning commands.
</para>
@@ -3123,8 +3229,8 @@ but it does not show the part number, does not increment the
<para>The optional argument <replaceable>toc-title</replaceable> will appear as the part title in
the table of contents (see <link linkend="Table-of-contents-etc_002e">Table of contents etc.</link>) and in running
headers (see <link linkend="Page-styles">Page styles</link>). If it is not present then <replaceable>title</replaceable>
-will be there. This example puts a line break in <replaceable>title</replaceable> but leaves
-out the break in the table of contents.
+will be there. This example puts a line break in <replaceable>title</replaceable> but omits
+the break in the table of contents.
</para>
<screen>\part[Up from the bottom; my life]{Up from the bottom\\ my life}
</screen>
@@ -3137,12 +3243,12 @@ the table of contents, the level number of a part is&#160;-1
<para>In the class <literal>article</literal>, if a paragraph immediately follows the part
title then it is not indented. To get an indent you can use the package
-<filename>indentfirst</filename>.
+<literal>indentfirst</literal>.
</para>
<indexterm role="cp"><primary>package, <literal>titlesec</literal></primary></indexterm>
<indexterm role="cp"><primary><literal>titlesec</literal> package</primary></indexterm>
-<para>One package to change the behavior of <literal>\part</literal> is <filename>titlesec</filename>.
+<para>One package to change the behavior of <literal>\part</literal> is <literal>titlesec</literal>.
See its documentation on CTAN.
</para>
@@ -3212,7 +3318,7 @@ the table of contents, the level number of a chapter is&#160;0
<para>The paragraph that follows the chapter title is not indented, as is a
standard typographical practice. To get an indent use the package
-<filename>indentfirst</filename>.
+<literal>indentfirst</literal>.
</para>
<para>You can change what is shown for the chapter number. To change it to
something like &#8216;<literal>Lecture 1</literal>&#8217;, put in the preamble either
@@ -3227,7 +3333,7 @@ something like &#8216;<literal>Lecture 1</literal>&#8217;, put in the preamble e
<indexterm role="cp"><primary><literal>babel</literal> package</primary></indexterm>
<para>To make this change because of the primary language for
-the document, see the package <filename>babel</filename>.
+the document, see the package <literal>babel</literal>.
</para>
<para>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
@@ -3240,7 +3346,7 @@ see&#160;<link linkend="_005cclearpage-_0026-_005ccleardoublepage">\clearpage &a
<para>To change the behavior of the <literal>\chapter</literal> 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
-<filename>titlesec</filename>. See its documentation, but the example below gives a
+<literal>titlesec</literal>. See its documentation, but the example below gives a
sense of what it can do.
</para>
<screen>\usepackage{titlesec} % in preamble
@@ -3301,7 +3407,7 @@ prior section.)
in the table of contents (see <link linkend="Table-of-contents-etc_002e">Table of contents etc.</link>) and in
running headers (see <link linkend="Page-styles">Page styles</link>). If it is not present then
<replaceable>title</replaceable> will be there. This shows the full name in the title of the
-section,
+section:
</para>
<screen>\section[Elizabeth~II]{Elizabeth the Second,
by the Grace of God of the United Kingdom,
@@ -3324,7 +3430,7 @@ the table of contents, the level number of a section is&#160;1
<para>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 <filename>indentfirst</filename>.
+package <literal>indentfirst</literal>.
</para>
<indexterm role="cp"><primary>package, <literal>titlesec</literal></primary></indexterm>
<indexterm role="cp"><primary><literal>titlesec</literal> package</primary></indexterm>
@@ -3332,7 +3438,7 @@ package <filename>indentfirst</filename>.
<para>In general, to change the behavior of the <literal>\section</literal> command, there
are a number of options. One is the <literal>\@startsection</literal> command
(see <link linkend="_005c_0040startsection">\@startsection</link>). There are also many packages on CTAN that
-address this, including <filename>titlesec</filename>. See the documentation but the
+address this, including <literal>titlesec</literal>. See the documentation but the
example below gives a sense of what they can do.
</para>
<!-- credit: egreg https://groups.google.com/forum/#!topic/comp.text.tex/tvc8oM5P4y4 -->
@@ -3386,8 +3492,8 @@ But it does not show the subsection number, does not increment the
</para>
<para>The optional argument <replaceable>toc-title</replaceable> will appear as the subsection title
in the table of contents (see <link linkend="Table-of-contents-etc_002e">Table of contents etc.</link>). If it is
-not present then <replaceable>title</replaceable> will be there. This shows the full text in
-the title of the subsection,
+not present then <replaceable>title</replaceable> will be there. This
+shows the full text in the title of the subsection:
</para>
<screen>\subsection[$\alpha,\beta,\gamma$ paper]{\textit{The Origin of
Chemical Elements} by R.A.~Alpher, H.~Bethe, and G.~Gamow}
@@ -3404,7 +3510,7 @@ the table of contents, the level number of a subsection is&#160;2
<para>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 <filename>indentfirst</filename>.
+package <literal>indentfirst</literal>.
</para>
<indexterm role="cp"><primary>package, <literal>titlesec</literal></primary></indexterm>
<indexterm role="cp"><primary><literal>titlesec</literal> package</primary></indexterm>
@@ -3412,7 +3518,7 @@ package <filename>indentfirst</filename>.
<para>There are a number of ways to change the behavior of the
<literal>\subsection</literal> command. One is the <literal>\@startsection</literal> command
(see <link linkend="_005c_0040startsection">\@startsection</link>). There are also many packages on CTAN that
-address this, including <filename>titlesec</filename>. See the documentation but the
+address this, including <literal>titlesec</literal>. See the documentation but the
example below gives a sense of what they can do.
</para>
<screen>\usepackage{titlesec} % in preamble
@@ -3497,7 +3603,7 @@ a paragraph is&#160;4, and of a subparagraph is&#160;5
<para>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 <filename>indentfirst</filename>.
+package <literal>indentfirst</literal>.
</para>
<indexterm role="cp"><primary>package, <literal>titlesec</literal></primary></indexterm>
<indexterm role="cp"><primary><literal>titlesec</literal> package</primary></indexterm>
@@ -3505,7 +3611,7 @@ package <filename>indentfirst</filename>.
<para>There are a number of ways to change the behavior of the these commands.
One is the <literal>\@startsection</literal> command (see <link linkend="_005c_0040startsection">\@startsection</link>).
There are also many packages on CTAN that address this, including
-<filename>titlesec</filename>. See the documentation on CTAN.
+<literal>titlesec</literal>. See the documentation on CTAN.
</para>
</sect1>
@@ -3545,7 +3651,7 @@ for another example.
<indexterm role="cp"><primary>package, <literal>appendix</literal></primary></indexterm>
<indexterm role="cp"><primary><literal>appendix</literal> package</primary></indexterm>
-<para>The <filename>appendix</filename> package adds the command
+<para>The <literal>appendix</literal> package adds the command
<literal>\appendixpage</literal> to put a separate &#8216;<literal>Appendices</literal>&#8217; in the document
body before the first appendix, and the command <literal>\addappheadtotoc</literal>
to do the same in the table of contents. You can reset the name
@@ -3617,7 +3723,7 @@ switches the chapters back to being not numbered.
<para>Used to help redefine the behavior of commands that start sectioning
divisions such as <literal>\section</literal> or <literal>\subsection</literal>.
</para>
-<para>Note that the <filename>titlesec</filename> package makes manipulation of sectioning
+<para>Note that the <literal>titlesec</literal> package makes manipulation of sectioning
easier. Further, while most requirements for sectioning commands can be
satisfied with <literal>\@startsection</literal>, some cannot. For instance, in
the standard &latex; <literal>book</literal> and <literal>report</literal> classes the commands
@@ -4004,7 +4110,7 @@ so this document would have to be compiled twice.
<indexterm role="cp"><primary>package, <literal>cleveref</literal></primary></indexterm>
<indexterm role="cp"><primary><literal>cleveref</literal> package</primary></indexterm>
-<para>The <filename>cleveref</filename> package includes text such as &#8216;<literal>Theorem</literal>&#8217; in the
+<para>The <literal>cleveref</literal> package includes text such as &#8216;<literal>Theorem</literal>&#8217; in the
reference. See the documentation on CTAN.
</para>
@@ -4012,8 +4118,12 @@ reference. See the documentation on CTAN.
<sect1 label="7.4" id="xr-package">
<title><literal>xr</literal> package</title>
-<indexterm role="fn"><primary><literal>xr</literal> package</primary></indexterm>
-<indexterm role="fn"><primary><literal>xr-hyper</literal> package</primary></indexterm>
+<indexterm role="cp"><primary>package, <literal>xr</literal></primary></indexterm>
+<indexterm role="cp"><primary><literal>xr</literal> package</primary></indexterm>
+
+<indexterm role="cp"><primary>package, <literal>xr-hyper</literal></primary></indexterm>
+<indexterm role="cp"><primary><literal>xr-hyper</literal> package</primary></indexterm>
+
<indexterm role="fn"><primary>\externaldocument</primary></indexterm>
<indexterm role="cp"><primary>cross referencing, across documents</primary></indexterm>
@@ -4028,9 +4138,9 @@ reference. See the documentation on CTAN.
\externaldocument[<replaceable>reference-prefix</replaceable>]{<replaceable>document-basename</replaceable>}
</screen>
<para>Make cross references to the external document
-<literal><replaceable>document-basename</replaceable>.tex</literal>.
+<filename><replaceable>document-basename</replaceable>.tex</filename>.
</para>
-<para>Here is an example. If <literal>lectures.tex</literal> has this in the preamble
+<para>Here is an example. If <filename>lectures.tex</filename> has this in the preamble
</para>
<screen>\usepackage{xr}
\externaldocument{exercises}
@@ -4038,22 +4148,22 @@ reference. See the documentation on CTAN.
\externaldocument{answers}
</screen>
<para>then it can use cross reference labels from the other three documents.
-Suppose that <literal>exercises.tex</literal> has an enumerated list containing
+Suppose that <filename>exercises.tex</filename> has an enumerated list containing
this,
</para>
<screen>\item \label{exer:EulersThm} What if every vertex has odd degree?
</screen>
-<para>and <literal>hints.tex</literal> has an enumerated list with this,
+<para>and <filename>hints.tex</filename> has an enumerated list with this,
</para>
<screen>\item \label{exer:EulersThm} Distinguish the case of two vertices.
</screen>
-<para>and <literal>answers.tex</literal> has an enumerated list with this.
+<para>and <filename>answers.tex</filename> has an enumerated list with this,
</para>
<screen>\item \label{ans:EulersThm} There is no Euler path, except if there
are exactly two vertices.
</screen>
<para>After compiling the exercises, hints, and answers documents, entering
-this in the body of <literal>lectures.tex</literal> will result in the lectures
+this in the body of <filename>lectures.tex</filename> will result in the lectures
getting the reference numbers used in the other documents.
</para>
<screen>See Exercise~\ref{exer:EulersThm}, with Hint~\ref{H-exer:EulersThm}.
@@ -4178,10 +4288,10 @@ a more flexible solution, use the package <filename>abstract</filename>).
\end{array}
</screen>
<para>Produce a mathematical array. This environment can only be used in math
-mode, and normally appears within a displayed mathematics environment
-such as <literal>equation</literal> (see <link linkend="equation">equation</link>). Inside of each row the
-column entries are separated by an ampersand, (<literal>&amp;</literal>). Rows are
-terminated with double-backslashes (see <link linkend="_005c_005c">\\</link>).
+mode (see <link linkend="Modes">Modes</link>), and normally appears within a displayed
+mathematics environment such as <literal>equation</literal> (see <link linkend="equation">equation</link>).
+Inside of each row the column entries are separated by an ampersand,
+(<literal>&amp;</literal>). Rows are terminated with double-backslashes (see <link linkend="_005c_005c">\\</link>).
</para>
<para>This example shows a three by three array.
</para>
@@ -4206,7 +4316,7 @@ other common features of the two environments, including the optional
</para>
<para>There are two ways that <literal>array</literal> diverges from <literal>tabular</literal>. The
first is that <literal>array</literal> entries are typeset in math mode, in
-textstyle (see <link linkend="Modes">Modes</link>) except if the <replaceable>cols</replaceable> definition specifies
+textstyle (see <link linkend="Math-styles">Math styles</link>) except if the <replaceable>cols</replaceable> definition specifies
the column with <literal>p{...}</literal>, which causes the entry to be typeset in
text mode. The second is that, instead of <literal>tabular</literal>&#8217;s parameter
<literal>\tabcolsep</literal>, &latex;&#8217;s intercolumn space in an <literal>array</literal> is
@@ -4219,7 +4329,7 @@ default for this is &#8216;<literal>5pt</literal>&#8217; so that between two col
<indexterm role="cp"><primary>package, <literal>amsmath</literal></primary></indexterm>
<indexterm role="cp"><primary><literal>amsmath</literal> package</primary></indexterm>
-<para>To obtain arrays with braces the standard is to use the <filename>amsmath</filename>
+<para>To obtain arrays with braces the standard is to use the <literal>amsmath</literal>
package. It comes with environments <literal>pmatrix</literal> for an array
surrounded by parentheses&#160;<literal>(...)</literal>, <literal>bmatrix</literal> for an array
surrounded by square brackets&#160;<literal>[...]</literal>, <literal>Bmatrix</literal> for an
@@ -4231,7 +4341,7 @@ bars&#160;<literal>||...||</literal>, along with a number of other array constru
<indexterm role="cp"><primary>package, <literal>amsmath</literal></primary></indexterm>
<indexterm role="cp"><primary><literal>amsmath</literal> package</primary></indexterm>
-<para>The next example uses the <filename>amsmath</filename> package.
+<para>The next example uses the <literal>amsmath</literal> package.
</para>
<screen>\usepackage{amsmath} % in preamble
@@ -4242,14 +4352,14 @@ bars&#160;<literal>||...||</literal>, along with a number of other array constru
\end{vmatrix}=ad-bc
\end{equation}
</screen>
-<indexterm role="cp"><primary>package, <literal>array (package)</literal></primary></indexterm>
-<indexterm role="cp"><primary><literal>array (package)</literal> package</primary></indexterm>
+<indexterm role="cp"><primary>package, <literal>array</literal></primary></indexterm>
+<indexterm role="cp"><primary><literal>array</literal> package</primary></indexterm>
<indexterm role="cp"><primary>package, <literal>dcolumn</literal></primary></indexterm>
<indexterm role="cp"><primary><literal>dcolumn</literal> package</primary></indexterm>
-<para>There are many packages concerning arrays. The <filename>array</filename> package has
-many useful extensions, including more column types. The <filename>dcolumn</filename>
+<para>There are many packages concerning arrays. The <literal>array</literal> package has
+many useful extensions, including more column types. The <literal>dcolumn</literal>
package adds a column type to center on a decimal point. For both see
the documentation on CTAN.
</para>
@@ -4318,7 +4428,6 @@ entire page.
<indexterm role="fn"><primary>\centering</primary></indexterm>
<indexterm role="cp"><primary>centering text, declaration for</primary></indexterm>
-
<para>Synopsis:
</para>
<screen>{\centering ... }
@@ -4419,7 +4528,7 @@ boldface and flush left at all levels.
</para>
<para>For information about list layout parameters, including the default
values, and for information about customizing list layout, see
-<link linkend="list">list</link>. The package <filename>enumitem</filename> is useful for customizing
+<link linkend="list">list</link>. The package <literal>enumitem</literal> is useful for customizing
lists.
</para>
<para>This example changes the description labels to small caps.
@@ -4456,7 +4565,7 @@ math text. One way to get an equation number is to use the
<indexterm role="cp"><primary>package, <literal>amsmath</literal></primary></indexterm>
<indexterm role="cp"><primary><literal>amsmath</literal> package</primary></indexterm>
-<para>Note that the <filename>amsmath</filename> package has significantly more extensive
+<para>Note that the <literal>amsmath</literal> 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.
</para>
@@ -4604,7 +4713,7 @@ the outermost level.
<para>For other major &latex; labeled list environments, see
<link linkend="description">description</link> and <link linkend="itemize">itemize</link>. For information about list layout
parameters, including the default values, and for information about
-customizing list layout, see <link linkend="list">list</link>. The package <filename>enumitem</filename> is
+customizing list layout, see <link linkend="list">list</link>. The package <literal>enumitem</literal> is
useful for customizing lists.
</para>
<indexterm role="fn"><primary>\labelenumi</primary></indexterm>
@@ -4645,7 +4754,7 @@ period.
including spacing that is inconsistent with other mathematics elements.
(See &#8220;Avoid eqnarray!&#8221; by Lars Madsen
<ulink url="https://tug.org/TUGboat/tb33-1/tb103madsen.pdf">https://tug.org/TUGboat/tb33-1/tb103madsen.pdf</ulink>). New documents
-should include the <filename>amsmath</filename> package and use the displayed
+should include the <literal>amsmath</literal> package and use the displayed
mathematics environments provided there, such as the <literal>align</literal>
environment. We include a description only for completeness and for
working with old documents.
@@ -4725,7 +4834,7 @@ missing dollar sign.
<indexterm role="cp"><primary>package, <literal>amsmath</literal></primary></indexterm>
<indexterm role="cp"><primary><literal>amsmath</literal> package</primary></indexterm>
-<para>The package <filename>amsmath</filename> package has extensive displayed equation
+<para>The package <literal>amsmath</literal> package has extensive displayed equation
facilities. New documents should include this package.
</para>
@@ -4776,13 +4885,12 @@ spans both columns, at the top of the page. To add the possibility of
placing at a page bottom see the discussion of <replaceable>placement</replaceable> <literal>b</literal>
in <link linkend="Floats">Floats</link>.
</para>
-<para>The label is optional; it is used for cross references (see <link linkend="Cross-references">Cross
-references</link>).
<indexterm role="fn"><primary>\caption</primary></indexterm>
-The optional <literal>\caption</literal> command specifies caption text for the
-figure. By default it is numbered. If <replaceable>loftitle</replaceable> is present, it is
-used in the list of figures instead of <replaceable>title</replaceable> (see <link linkend="Table-of-contents-etc_002e">Table of
-contents etc.</link>).
+<para>The label is optional; it is used for cross references (see <link linkend="Cross-references">Cross
+references</link>). The optional <literal>\caption</literal> command specifies caption
+text for the figure (see <link linkend="_005ccaption">\caption</link>). By default it is numbered.
+If <replaceable>loftitle</replaceable> is present, it is used in the list of figures
+instead of <replaceable>title</replaceable> (see <link linkend="Table-of-contents-etc_002e">Table of contents etc.</link>).
</para>
<para>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
@@ -5059,7 +5167,7 @@ must be at least one <literal>\item</literal> within the environment; having non
\item Rice portrait
\end{itemize}
</screen>
-<para>With the default locale&#8212;without loading e.g. <filename>babel</filename> package
+<para>With the default locale&#8212;without loading e.g. <literal>babel</literal> package
with another language than USenglish&#8212;as a top-level list each label
would come out as a bullet, &#8226;. The format of the labeling
depends on the nesting level; see below.
@@ -5121,7 +5229,7 @@ smaller values for more deeply nested levels.
<literal>enumerate</literal> and <literal>description</literal> environment use the same list
layout parameters. For a description, including the default values, and
for information about customizing list layout, see <link linkend="list">list</link>. The
-package <filename>enumitem</filename> is useful for customizing lists.
+package <literal>enumitem</literal> is useful for customizing lists.
</para>
<para>This example greatly reduces the margin space for outermost itemized
lists.
@@ -5633,15 +5741,13 @@ vertical center lines up with the center of the adjacent text line.
</para>
</listitem></varlistentry><varlistentry><term><literal>t</literal>
</term><listitem><indexterm role="fn"><primary>\vtop plain &tex;</primary></indexterm>
-<!-- xx Is there any reason why the word ``match'' is used instead of word -->
-<!-- ``align''. Do we mean some more permissive alignment? -->
-<para>Match the top line in the <literal>minipage</literal> with the baseline of the
-surrounding text (plain &tex;&#8217;s <literal>\vtop</literal>).
+<para>Align the baseline of the top line in the <literal>minipage</literal> with the
+baseline of the surrounding text (plain &tex;&#8217;s <literal>\vtop</literal>).
</para>
</listitem></varlistentry><varlistentry><term><literal>b</literal>
-</term><listitem><indexterm role="fn"><primary>\vbox plain &tex;</primary></indexterm>
-<para>Match the bottom line in the <literal>minipage</literal> with the baseline of the
-surrounding text (plain &tex;&#8217;s <literal>\vbox</literal>).
+</term><listitem><indexterm role="fn"><primary>\vbox (plain &tex;)</primary></indexterm>
+<para>Align the baseline of the bottom line in the <literal>minipage</literal> with the
+baseline of the surrounding text (plain &tex;&#8217;s <literal>\vbox</literal>).
</para></listitem></varlistentry></variablelist>
<para>To see the effects of these, contrast running this
</para>
@@ -6007,7 +6113,7 @@ that curve.
<indexterm role="cp"><primary>package, <literal>graphpap</literal></primary></indexterm>
<indexterm role="cp"><primary><literal>graphpap</literal> package</primary></indexterm>
-<para>Draw a coordinate grid. Requires the <filename>graphpap</filename> package.
+<para>Draw a coordinate grid. Requires the <literal>graphpap</literal> package.
The grid&#8217;s origin is <literal>(<replaceable>x_init</replaceable>,<replaceable>y_init</replaceable>)</literal>.
Grid lines come every <replaceable>spacing</replaceable> units (the default is 10).
The grid extends <replaceable>x_dimen</replaceable> units to the right and <replaceable>y_dimen</replaceable> units up.
@@ -6063,7 +6169,6 @@ then the line&#8217;s ending point has a second coordinate that is less than
<para>If <replaceable>travel</replaceable> is negative then you get <literal>LaTeX Error: Bad \line or
\vector argument.</literal>
</para>
-<indexterm role="cp"><primary><literal>pict2e</literal> package</primary></indexterm>
<indexterm role="cp"><primary>graphics packages</primary></indexterm>
<indexterm role="cp"><primary>package, <literal>pict2e</literal></primary></indexterm>
<indexterm role="cp"><primary><literal>pict2e</literal> package</primary></indexterm>
@@ -6088,7 +6193,7 @@ relatively prime, so that <replaceable>(x_run,y_rise)</replaceable> can be (2,1)
(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
-<literal>picture</literal>, see the package <filename>pict2e</filename>
+<literal>picture</literal>, see the package <literal>pict2e</literal>
(<ulink url="https://ctan.org/pkg/pict2e">https://ctan.org/pkg/pict2e</ulink>). Another solution
is to use a full-featured graphics system such as TikZ, PSTricks,
MetaPost, or Asymptote.
@@ -6108,7 +6213,7 @@ MetaPost, or Asymptote.
picture to be <replaceable>dim</replaceable>, which must be a positive length
(see <link linkend="Lengths">Lengths</link>). It differs from <literal>\thinlines</literal> and
<literal>\thicklines</literal> in that it does not affect the thickness of slanted
-lines, circles, or ovals.
+lines, circles, or ovals (see <link linkend="_005coval">\oval</link>).
</para>
</sect2>
@@ -6132,7 +6237,7 @@ changed with either <link linkend="_005clinethickness">\linethickness</link> or
<para>Declaration to set the thickness of subsequent lines, circles, and ovals
in a picture environment to be 0.8pt. See also
<link linkend="_005clinethickness">\linethickness</link> and <link linkend="_005cthinlines">\thinlines</link>. This command is illustrated
-in the Trapezoidal Rule example of <link linkend="picture">picture</link>.
+in the Trapezoidal Rule example of <link linkend="_005cqbezier">\qbezier</link>.
</para>
</sect2>
@@ -6169,9 +6274,10 @@ integers from 1 to 15.
<screen>\oval(<replaceable>width</replaceable>,<replaceable>height</replaceable>)
\oval(<replaceable>width</replaceable>,<replaceable>height</replaceable>)[<replaceable>portion</replaceable>]
</screen>
-<para>Produce a rectangle with rounded corners. The optional argument
-<replaceable>portion</replaceable> allows you to produce only half or a quarter of the oval.
-For half an oval take <replaceable>portion</replaceable> to be one of these.
+<para>Produce a rectangle with rounded corners, hereinafter referred to as an
+<firstterm>oval</firstterm>. The optional argument <replaceable>portion</replaceable> allows you to produce
+only half or a quarter of the oval. For half an oval take <replaceable>portion</replaceable>
+to be one of these.
</para>
<variablelist><varlistentry><term><literal>t</literal>
</term><listitem><para>top half
@@ -6195,7 +6301,7 @@ top half.
<para>These shapes are not ellipses. They are rectangles whose corners are
made with quarter circles. These circles have a maximum radius of
20pt (see <link linkend="_005ccircle">\circle</link> for the sizes). Thus large ovals are just
-boxes with a small amount of corner rounding.
+frames with a small amount of corner rounding.
</para>
</sect2>
@@ -6210,16 +6316,20 @@ boxes with a small amount of corner rounding.
</screen>
<para>Produce a vertical stack of objects.
</para>
-<para>This labels the <inlineequation><mathphrase>y</mathphrase></inlineequation> axis.
+<para>This labels the <inlineequation><mathphrase>y</mathphrase></inlineequation> axis by writing the word &#8216;<literal><inlineequation><mathphrase>y</mathphrase></inlineequation></literal>&#8217; above
+the word &#8216;<literal>axis</literal>&#8217;.
</para>
-<screen>\put(0,0){\vector(1,0){4}} % x axis
-\put(0,0){\vector(0,1){2}} % y
-\put(-0.25,2){\makebox[0][r]{\shortstack[r]{$y$\\ axis}}}
+<screen>\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}
</screen>
<para>For a short stack, the reference point is the lower left of the stack.
-In the above example the <link linkend="_005cmbox-_0026-_005cmakebox">\mbox &amp; \makebox</link> puts the stack flush
-right in a zero width box so in total the short stack sits slightly to
-the left of the <inlineequation><mathphrase>y</mathphrase></inlineequation>&#160;axis.
+In the above example the <literal>\makebox</literal> (see <link linkend="_005cmbox-_0026-_005cmakebox">\mbox &amp; \makebox</link>) puts
+the stack flush right in a zero width box so in total the short stack
+sits slightly to the left of the <inlineequation><mathphrase>y</mathphrase></inlineequation>&#160;axis.
</para>
<para>The valid positions are:
</para>
@@ -6233,11 +6343,13 @@ the left of the <inlineequation><mathphrase>y</mathphrase></inlineequation>&#160
<indexterm role="fn"><primary>\\ (for <literal>\shortstack</literal> objects)</primary></indexterm>
<para>Separate objects into lines with <literal>\\</literal>. These stacks are short in
that, unlike in a <literal>tabular</literal> or <literal>array</literal> environment, here the
-rows are not spaced out to be of even heights. Thus, in
+rows are not spaced out to be of even baseline skips. Thus, in
<literal>\shortstack{X\\o\\o\\X}</literal> the first and last rows are taller than
-the middle two. You can adjust row heights either by putting in the
-usual interline spacing with <literal>\shortstack{X\\ \strut o\\o\\X}</literal>,
-or by hand, via an explicit zero-width box <literal>\shortstack{X \\
+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 <literal>\shortstack{X\\ \strut o\\o\\X}</literal> (see <link linkend="_005cstrut">\strut</link>),
+or explicitly, via an zero-width box <literal>\shortstack{X \\
\rule{0pt}{12pt} o\\o\\X}</literal> or by using <literal>\\</literal>&#8217;s optional
argument <literal>\shortstack{X\\[2pt] o\\o\\X}</literal>.
</para>
@@ -6686,10 +6798,11 @@ float placement algorithm, see <link linkend="Floats">Floats</link>.
<para>The label is optional; it is used for cross references (see <link linkend="Cross-references">Cross
references</link>).
<indexterm role="fn"><primary>\caption</primary></indexterm>
-The <literal>\caption</literal> command is also optional. It specifies caption text
-<replaceable>title</replaceable> for the table. By default it is numbered. If its optional
-<replaceable>lottitle</replaceable> is present then that text is used in the list of tables
-instead of <replaceable>title</replaceable> (see <link linkend="Table-of-contents-etc_002e">Table of contents etc.</link>).
+The <literal>\caption</literal> command is also optional. It specifies caption
+text <replaceable>title</replaceable> for the table (see <link linkend="_005ccaption">\caption</link>). By default it is
+numbered. If its optional <replaceable>lottitle</replaceable> is present then that text is
+used in the list of tables instead of <replaceable>title</replaceable> (see <link linkend="Table-of-contents-etc_002e">Table of
+contents etc.</link>).
</para>
<para>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.
@@ -6977,7 +7090,7 @@ range en-dash.
</para>
<screen>\begin{tabular}{l|r@{--}l}
\multicolumn{1}{c}{\textsc{Period}}
- &amp;multicolumn{2}{c}{\textsc{Span}} \\ \hline
+ &amp;\multicolumn{2}{c}{\textsc{Span}} \\ \hline
Baroque &amp;1600 &amp;1760 \\
Classical &amp;1730 &amp;1820 \\
Romantic &amp;1780 &amp;1910 \\
@@ -7132,7 +7245,7 @@ as with <literal>\renewcommand{\refname}{Cited references}</literal>, after
<indexterm role="cp"><primary>package, <literal>babel</literal></primary></indexterm>
<indexterm role="cp"><primary><literal>babel</literal> package</primary></indexterm>
-<para>Language support packages such as <filename>babel</filename> will automatically
+<para>Language support packages such as <literal>babel</literal> will automatically
redefine <literal>\refname</literal> or <literal>\bibname</literal> to fit the selected
language.
</para>
@@ -7294,8 +7407,8 @@ sophisticated approach to managing bibliographies is provided by the
Bib&tex; program. This is only an introduction; see the full
documentation on CTAN (see <link linkend="CTAN">CTAN</link>).
</para>
-<para>With Bib&tex;, you don&#8217;t use <literal>thebibliography</literal>
-(see <link linkend="thebibliography">thebibliography</link>). Instead, include these lines.
+<para>With Bib&tex;, you don&#8217;t use the <literal>thebibliography</literal> environment
+directly (see <link linkend="thebibliography">thebibliography</link>). Instead, include these lines:
</para>
<screen>\bibliographystyle{<replaceable>bibstyle</replaceable>}
\bibliography{<replaceable>bibfile1</replaceable>, <replaceable>bibfile2</replaceable>, ...}
@@ -7316,8 +7429,8 @@ Sort the bibliographic items alphabetically.
</term><listitem><para>Like <literal>plain</literal>, but more compact labels.
</para></listitem></varlistentry></variablelist>
<para>Many, many other Bib&tex; style files exist,
-tailored to the demands of various publications. See CTAN&#8217;s listing
-<ulink url="https://mirror.ctan.org/biblio/bibtex/contrib">https://mirror.ctan.org/biblio/bibtex/contrib</ulink>.
+tailored to the demands of various publications. See the CTAN topic
+<ulink url="https://ctan.org/topic/bibtex-sty">https://ctan.org/topic/bibtex-sty</ulink>.
</para>
<para>The <literal>\bibliography</literal> command is what actually produces the
bibliography. Its argument is a comma-separated list, referring to
@@ -7346,7 +7459,50 @@ can keep all your sources together in one file, or a small number of
files, and rely on Bib&tex; to include in this document only those that
you used.
</para>
+<indexterm role="cp"><primary>&#8216;<literal>*</literal>&#8217;, to <literal>\nocite</literal> all keys</primary></indexterm>
+<indexterm role="fn"><primary>\nocite {*}, for all keys</primary></indexterm>
+<para>With Bib&tex;, the <replaceable>keys</replaceable> argument to <literal>\nocite</literal> can also be
+the single character &#8216;<literal>*</literal>&#8217;. This means to implicitly cite all
+entries from all given bibliographies.
+</para>
+
+<sect3 label="8.24.4.1" id="BibTeX-error-messages">
+<title>Bib&tex; error messages</title>
+
+<indexterm role="cp"><primary>Bib&tex; error messages</primary></indexterm>
+<indexterm role="cp"><primary>error messages, from Bib&tex;</primary></indexterm>
+<indexterm role="fn"><primary>.aux file and Bib&tex; commands</primary></indexterm>
+<para>If you forget to use <literal>\bibliography</literal> or <literal>\bibliographystyle</literal>
+in your document (or, less likely, any <literal>\cite</literal> or <literal>\nocite</literal>
+command), Bib&tex; will issue an error message. Because Bib&tex;
+can be used with any program, not just &latex;, the error messages
+refer to the internal commands read by Bib&tex; (from the <filename>.aux</filename>
+file), rather than the user-level commands described above.
+</para>
+<para>Here is a table showing internal commands mentioned in the Bib&tex;
+errors, and the corresponding user-level commands.
+</para>
+<variablelist><varlistentry><term><indexterm role="fn"><primary>\bibdata</primary></indexterm><literal>\bibdata</literal>
+</term><listitem><indexterm role="fn"><primary>\bibliography and internal <literal>\bibdata</literal></primary></indexterm>
+<para><literal>\bibliography</literal>
+</para>
+</listitem></varlistentry><varlistentry><term><indexterm role="fn"><primary>\bibstyle</primary></indexterm><literal>\bibstyle</literal>
+</term><listitem><indexterm role="fn"><primary>\bibliographystyle and internal <literal>\bibstyle</literal></primary></indexterm>
+<para><literal>\bibliographystyle</literal>
+</para>
+</listitem></varlistentry><varlistentry><term><indexterm role="fn"><primary>\citation</primary></indexterm><literal>\citation</literal>
+</term><listitem><indexterm role="fn"><primary>\cite and internal <literal>\citation</literal></primary></indexterm>
+<indexterm role="fn"><primary>\nocite and internal <literal>\citation</literal></primary></indexterm>
+<para><literal>\cite</literal>, <literal>\nocite</literal>
+</para></listitem></varlistentry></variablelist>
+<para>For example, if your document has no <literal>\bibliographystyle</literal>
+command, Bib&tex; complains as follows:
+</para>
+<screen>I found no \bibstyle command---while reading file <replaceable>document</replaceable>.aux
+</screen>
+
+</sect3>
</sect2>
</sect1>
<sect1 label="8.25" id="theorem">
@@ -7564,7 +7720,7 @@ it allows line breaks.
<indexterm role="cp"><primary><literal>minted</literal> package</primary></indexterm>
<para>For computer code there are many packages with advantages over
-<literal>\verb</literal>. One is <filename>listings</filename>, another is <filename>minted</filename>.
+<literal>\verb</literal>. One is <literal>listings</literal>, another is <literal>minted</literal>.
</para>
<indexterm role="cp"><primary>package, <literal>cprotect</literal></primary></indexterm>
<indexterm role="cp"><primary><literal>cprotect</literal> package</primary></indexterm>
@@ -7645,6 +7801,8 @@ 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.
+<!-- Alernative text proposed here: https://tug.org/pipermail/latexrefman/2021q3/000803.html -->
+<!-- this text is that of the French version. -->
</para>
@@ -7671,12 +7829,12 @@ rubber length (see <link linkend="Lengths">Lengths</link>) and can be negative.
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 (see <link linkend="_005cprotect">\protect</link>).
</para>
-<para>The starred form, <literal>\\*</literal>, tells &latex; not to start a new page
-between the two lines, by issuing a <literal>\nobreak</literal>.
-</para>
<screen>\title{My story: \\[0.25in]
a tale of woe}
</screen>
+<para>The starred form, <literal>\\*</literal>, tells &latex; not to start a new page
+between the two lines, by issuing a <literal>\nobreak</literal>.
+</para>
<para>Explicit line breaks in the main text body are unusual in &latex;. In
particular, don&#8217;t start new paragraphs with <literal>\\</literal>. Instead leave a
blank line between the two paragraphs. And don&#8217;t put in a sequence of
@@ -7775,9 +7933,9 @@ fff ggg
<indexterm role="cp"><primary>new line, starting (paragraph mode)</primary></indexterm>
<para>In ordinary text, this ends a line in a way that does not right-justify
-the line, so the prior text is not stretched. That is, in paragraph mode
-(see <link linkend="Modes">Modes</link>), the <literal>\newline</literal> command is equivalent to
-double-backslash (see <link linkend="_005c_005c">\\</link>). This command is fragile
+it, so the text before the end of line is not stretched. That is, in
+paragraph mode (see <link linkend="Modes">Modes</link>), the <literal>\newline</literal> command is
+equivalent to double-backslash (see <link linkend="_005c_005c">\\</link>). This command is fragile
(see <link linkend="_005cprotect">\protect</link>).
</para>
<para>However, the two commands are different inside a <literal>tabular</literal> or
@@ -7790,7 +7948,7 @@ equivalent <literal>\tabularnewline</literal>.
<para>This will print &#8216;<literal>Name:</literal>&#8217; and &#8216;<literal>Address:</literal>&#8217; as two lines in a
single cell of the table.
</para>
-<screen>\begin{tabular}{p{1in}{\hspace{2in}}p{1in}}
+<screen>\begin{tabular}{p{1in}@{\hspace{2in}}p{1in}}
Name: \newline Address: &amp;Date: \\ \hline
\end{tabular}
</screen>
@@ -7806,8 +7964,9 @@ single cell of the table.
<para>Tell &latex; that it may hyphenate the word at that point. When you
insert <literal>\-</literal> commands in a word, the word will only be hyphenated at
-those points and not at any of the hyphenation points that &latex;
-might otherwise have chosen. This command is robust (see <link linkend="_005cprotect">\protect</link>).
+those points and not at any of the other hyphenation points that
+&latex; might otherwise have chosen. This command is robust
+(see <link linkend="_005cprotect">\protect</link>).
</para>
<para>&latex; is good at hyphenating and usually finds most of the correct
hyphenation points, while almost never using an incorrect one. The
@@ -7831,9 +7990,9 @@ in unacceptably large spaces to set the narrow column.
better fit.
</para>
<para>The <literal>\-</literal> command only allows &latex; to break there, it does not
-require that it break there. You can insist on a split with something
-like <literal>Hef-\linebreak feron</literal>. Of course, if you later change the
-text then this forced break may look very odd, so this approach requires
+require that it break there. You can force a split with something like
+<literal>Hef-\linebreak feron</literal>. Of course, if you later change the text
+then this forced break may look very odd, so this approach requires
care.
</para>
@@ -7853,16 +8012,19 @@ care.
<para>If a line break occurs at the point where <literal>\discretionary</literal> appears
then &tex; puts <replaceable>pre-break</replaceable> at the end of the current line and puts
<replaceable>post-break</replaceable> at the start of the next line. If there is no line
-break here then &tex; puts <replaceable>no-break</replaceable>
+break here then &tex; puts <replaceable>no-break</replaceable>.
</para>
<para>In &#8216;<literal>difficult</literal>&#8217; the three letters <literal>ffi</literal> form a ligature. But
-&tex; can nonetheless break between the two f&#8217;s with this.
+&tex; can nonetheless break between the two &#8216;<literal>f</literal>&#8217;&#8217;s with this.
</para>
<screen>di\discretionary{f-}{fi}{ffi}cult
</screen>
<para>Note that users do not have to do this. It is typically handled
automatically by &tex;&#8217;s hyphenation algorithm.
</para>
+<!-- xxx TODO, complete this node, see LaTeX-fr (copied & pasted below, -->
+<!-- with accented letter escaped) -->
+
</sect1>
<sect1 label="9.6" id="_005cfussy-_0026-_005csloppy">
@@ -7879,17 +8041,19 @@ words, at the cost of an occasional overfull box. Conversely,
spacing.
</para>
<para>The default is <literal>\fussy</literal>. Line breaking in a paragraph is
-controlled by whichever declaration is current at the blank line, or
-<literal>\par</literal>, or displayed equation ending that paragraph. So to affect
-the line breaks, include that paragraph-ending material in the scope of
-the command.
+controlled by whichever declaration is current at the end of the
+paragraph, i.e., at the blank line or <literal>\par</literal> or displayed
+equation ending that paragraph. So to affect the line breaks, include
+that paragraph-ending material in the scope of the command.
</para>
<sect2 label="9.6.1" id="sloppypar">
<title><literal>sloppypar</literal></title>
-<indexterm role="fn"><primary>sloppypar</primary></indexterm>
+<indexterm role="fn"><primary>environment, <literal>sloppypar</literal></primary></indexterm>
+<indexterm role="fn"><primary><literal>sloppypar</literal> environment</primary></indexterm>
+
<indexterm role="cp"><primary>sloppypar environment</primary></indexterm>
<para>Synopsis:
@@ -7939,8 +8103,13 @@ hyphenation with a dash character, <literal>-</literal>.
<screen>\hyphenation{hat-er il-lit-e-ra-ti tru-th-i-ness}
</screen>
<para>Use lowercase letters. &tex; will only hyphenate if the word matches
-exactly. Multiple <literal>\hyphenation</literal> commands accumulate.
+exactly, no inflections are tried. Multiple <literal>\hyphenation</literal>
+commands accumulate.
</para>
+<!-- xx Re-align on LaTeX-fr which also mentions fontenc, and that -->
+<!-- babel/polyglossia already load hyphenation patterns, and you have to -->
+<!-- declare only non existing words. -->
+
</sect1>
<sect1 label="9.8" id="_005clinebreak-_0026-_005cnolinebreak">
@@ -7962,12 +8131,12 @@ exactly. Multiple <literal>\hyphenation</literal> commands accumulate.
\nolinebreak[<replaceable>zero-to-four</replaceable>]
</screen>
<para>Encourage or discourage a line break. The optional <replaceable>zero-to-four</replaceable>
-is an integer 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, <literal>\nolinebreak[1]</literal> is a
-suggestion that another place may be better. The higher the number, the
-more insistent the request. Both commands are fragile
-(see <link linkend="_005cprotect">\protect</link>).
+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,
+<literal>\nolinebreak[1]</literal> is a suggestion that another place may be better.
+The higher the number, the more insistent the request. Both commands
+are fragile (see <link linkend="_005cprotect">\protect</link>).
</para>
<para>Here we tell &latex; that a good place to put a linebreak is after the
standard legal text.
@@ -7977,11 +8146,10 @@ We especially encourage applications from members of traditionally
underrepresented groups.
</screen>
<para>When you issue <literal>\linebreak</literal>, the spaces in the line are stretched
-out so that it extends to the right margin. See <link linkend="_005c_005c">\\</link>
+out so that the break point reaches the right margin. See <link linkend="_005c_005c">\\</link>
and&#160;<link linkend="_005cnewline">\newline</link>, to have the spaces not stretched out.
</para>
-
</sect1>
</chapter>
<chapter label="10" id="Page-breaking">
@@ -8191,6 +8359,14 @@ this can cause you to get &#8216;<literal>Underfull \vbox (badness 10000) has
occurred while \output is active</literal>&#8217;. See <link linkend="_005cnewpage">\newpage</link>, for a command that
does not have these effects.
</para>
+<indexterm role="fn"><primary>\samepage</primary></indexterm>
+<indexterm role="fn"><primary>samepage environment</primary></indexterm>
+<para>(There is an obsolete declaration <literal>\samepage</literal>, which tries to only
+allow a break between two paragraphs. There is a related environment
+<literal>samepage</literal>, also obsolete. Neither of these work reliably. For
+more on keeping material on the same page, see the FAQ entry
+<ulink url="https://texfaq.org/FAQ-nopagebrk">https://texfaq.org/FAQ-nopagebrk</ulink>.)
+</para>
</sect1>
</chapter>
@@ -8271,7 +8447,8 @@ Change the rule with something like this.
\kern 2pt} % and this 2
</screen>
</listitem></varlistentry><varlistentry><term><indexterm role="fn"><primary>\footnotesep</primary></indexterm><literal>\footnotesep</literal>
-</term><listitem><anchor id="footnote-footnotesep"/><para>The height of the strut placed at the beginning of the footnote
+</term><listitem><anchor id="footnote-footnotesep"/><indexterm role="cp"><primary>strut</primary></indexterm>
+<para>The height of the strut placed at the beginning of the footnote
(see <link linkend="_005cstrut">\strut</link>). By default, this is set to the normal strut for
<literal>\footnotesize</literal> fonts (see <link linkend="Font-sizes">Font sizes</link>), therefore there is no
extra space between footnotes. This is &#8216;<literal>6.65pt</literal>&#8217; for &#8216;<literal>10pt</literal>&#8217;,
@@ -8314,18 +8491,19 @@ footnote mark. This command can be used in inner paragraph mode
(see <link linkend="Modes">Modes</link>).
</para>
<para>If you use <literal>\footnotemark</literal> without the optional argument then it
-increments the footnote counter but if you use the optional <replaceable>number</replaceable>
-then it does not. The next example produces several consecutive footnote
-markers referring to the same footnote.
+increments the <literal>footnote</literal> counter, but if you use the optional
+<replaceable>number</replaceable> then it does not. The next example produces several
+consecutive footnote markers referring to the same footnote.
</para>
<screen>The first theorem\footnote{Due to Gauss.}
and the second theorem\footnotemark[\value{footnote}]
and the third theorem.\footnotemark[\value{footnote}]
</screen>
-<para>If there are intervening footnotes then you must remember the value of the
-common mark. This example gives the same institutional affiliation to
-both the first and third authors (<literal>\thanks</literal> is a version of
-<literal>footnote</literal>), by-hand giving the number of the footnote.
+<para>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
+(<literal>\thanks</literal> is a version of <literal>\footnote</literal>), by-hand giving the
+number of the footnote.
</para>
<screen>\title{A Treatise on the Binomial Theorem}
\author{J Moriarty\thanks{University of Leeds}
@@ -8351,7 +8529,7 @@ Therefore, anyone who can manage a crocodile is not a baby.
<indexterm role="cp"><primary>package, <literal>hyperref</literal></primary></indexterm>
<indexterm role="cp"><primary><literal>hyperref</literal> package</primary></indexterm>
-<para>This example accomplishes the same by using the package <filename>cleveref</filename>.
+<para>This example accomplishes the same by using the package <literal>cleveref</literal>.
</para>
<!-- from SE user Jake http://tex.stackexchange.com/a/10116/339 -->
<screen>\usepackage{cleveref}[2012/02/15] % in preamble
@@ -8364,7 +8542,7 @@ But the key lemma is from Tinker.\cref{fn:TE}
<indexterm role="cp"><primary>package, <literal>hyperref</literal></primary></indexterm>
<indexterm role="cp"><primary><literal>hyperref</literal> package</primary></indexterm>
-<para>It will work with the package <filename>hyperref</filename>.
+<para>It will work with the package <literal>hyperref</literal>.
</para>
</sect1>
@@ -8431,7 +8609,7 @@ the footnote text does not appear. The solution is to use a
\textit{HMS Polychrest} &amp;Post Captain \\
\textit{HMS Lively} &amp;Post Captain \\
\textit{HMS Surprise} &amp;A number of books\footnote{%
- Starting with HMS Surprise.}
+ Starting with \textit{HMS Surprise}.}
\end{tabular}
\end{minipage}
\end{center}
@@ -8465,8 +8643,11 @@ part of the regular footnote sequence, use the <literal>\footnotemark</literal>
Relationship is unresolved in XXI.}
\end{center}
</screen>
+<indexterm role="cp"><primary>package, <literal>tablefootnote</literal></primary></indexterm>
+<indexterm role="cp"><primary><literal>tablefootnote</literal> package</primary></indexterm>
+
<para>For a floating <literal>table</literal> environment (see <link linkend="table">table</link>), use the
-<filename>tablefootnote</filename> package.
+<literal>tablefootnote</literal> package.
</para>
<screen>\usepackage{tablefootnote} % in preamble
...
@@ -8497,7 +8678,7 @@ other footnotes.
<para>Particularly in the humanities, authors can have multiple classes of
footnotes, including having footnotes of footnotes. The package
-<filename>bigfoot</filename> extends &latex;&#8217;s default footnote mechanism in many
+<literal>bigfoot</literal> extends &latex;&#8217;s default footnote mechanism in many
ways, including allow these two, as in this example.
</para>
<screen>\usepackage{bigfoot} % in preamble
@@ -8506,7 +8687,7 @@ ways, including allow these two, as in this example.
...
The third theorem is a partial converse of the
second.\footnotefrom{%
- First noted in Wilson.\footnote{Second edition only.}}
+ Noted in Wilson.\footnote{Second edition only.}}
</screen>
</sect1>
@@ -8562,8 +8743,8 @@ multiple paragraphs.
</para>
<variablelist><varlistentry><term><replaceable>cmd</replaceable>
</term><listitem>
-<para>Required; the command name. It must begin with a backslash, <literal>\</literal>,
-and must not begin with the four letter string <literal>\end</literal>. For
+<para>Required; <literal>\<replaceable>cmd</replaceable></literal> is the command name. It must begin with a backslash, <literal>\</literal>,
+and must not begin with the four character string <literal>\end</literal>. For
<literal>\newcommand</literal>, it must not be already defined. For
<literal>\renewcommand</literal>, this name must already be defined.
</para>
@@ -8602,10 +8783,11 @@ you call the command (or by the default value if there is an optional
argument and you don&#8217;t exercise the option).
</para>
</listitem></varlistentry></variablelist>
-<para>&tex; ignores spaces in the source following an alphabetic control
-sequence, as in &#8216;<literal>\cmd </literal>&#8217;. If you actually want a space there, one
-solution is to type <literal>{}</literal> after the command (&#8216;<literal>\cmd{} </literal>&#8217;, and
-another solution is to use an explicit control space (&#8216;<literal>\cmd\ </literal>&#8217;).
+<para>&tex; ignores blanks in the source following a control word
+(see <link linkend="Control-sequences">Control sequences</link>), as in &#8216;<literal>\cmd </literal>&#8217;. If you actually want a
+space there, one solution is to type <literal>{}</literal> after the command
+(&#8216;<literal>\cmd{} </literal>&#8217;, and another solution is to use an explicit control
+space (&#8216;<literal>\cmd\ </literal>&#8217;).
</para>
<para>A simple example of defining a new command:
<literal>\newcommand{\RS}{Robin Smith}</literal> results in <literal>\RS</literal> being
@@ -8618,14 +8800,14 @@ defined. Or name \end... illegal, see p.192 of the manual</literal>&#8217;. If
to redefine a command and the name has not yet been used then you get
something like &#8216;<literal>LaTeX Error: \hank undefined</literal>&#8217;.
</para>
-<para>Here the first command definition has no arguments, and the second has
-one required argument.
+<para>Here the first definition creates a command with no arguments, and the
+second, one with one required argument.
</para>
<screen>\newcommand{\student}{Ms~O'Leary}
\newcommand{\defref}[1]{Definition~\ref{#1}}
</screen>
<para>Use the first as in <literal>I highly recommend \student{} to you</literal>. The
-second has a variable, so that <literal>\defref{def:basis}</literal> expands to
+second has a variable argument, so that <literal>\defref{def:basis}</literal> expands to
<literal>Definition~\ref{def:basis}</literal>, which ultimately expands to
something like &#8216;<literal>Definition~3.14</literal>&#8217;.
</para>
@@ -8664,6 +8846,38 @@ is to put another pair of braces inside the definition:
<literal>\newcommand{\shipname}[1]{{\it #1}}</literal>.
</para>
+<sect2 label="12.1.1" id="Control-sequences">
+<title>Control sequence, control word and control symbol</title>
+
+<para>When reading input &tex; converts the sequences of read characters into
+a sequence of <firstterm>tokens</firstterm>. When &tex; sees a backslash <literal>\</literal>, it
+will handle the following characters in a special way in order to make a
+<firstterm>control sequence</firstterm> token.
+</para>
+<para>The control sequences fall into two categories:
+</para>
+<itemizedlist><listitem><para><firstterm>control word</firstterm>, when the control sequence is gathered from a
+<literal>\</literal> followed by at least one ASCII letter, followed by at least one
+blank. The sequence of at least one ASCII letter is called the
+<firstterm>control sequence name</firstterm>.
+</para></listitem><listitem><para><firstterm>control symbol</firstterm>, when the control sequence is gathered from a
+<literal>\</literal> followed by one non-letter character.
+</para></listitem></itemizedlist>
+<para>Blanks after a control word are ignored and do not produce any
+whitespace in the output (see <link linkend="_005cnewcommand-_0026-_005crenewcommand">\newcommand &amp; \renewcommand</link> and
+<link linkend="_005c_0028SPACE_0029">\(SPACE)</link>).
+</para>
+<para>Just as the <literal>\relax</literal> command does nothing, the following will print
+&#8216;<literal>Hello!</literal>&#8217;:
+</para>
+<screen>Hel\relax <!-- /@w --> <!-- /@w --> <!-- /@w -->
+ <!-- /@w --> <!-- /@w --> <!-- /@w -->lo!
+</screen>
+<para>This is because blanks after <literal>\relax</literal>, including the newline are
+ignored, and blanks at the beginning of a line are also ignored
+(see <link linkend="Leading-blanks">Leading blanks</link>).
+</para>
+</sect2>
</sect1>
<sect1 label="12.2" id="_005cprovidecommand">
<title><literal>\providecommand</literal></title>
@@ -8675,12 +8889,12 @@ is to put another pair of braces inside the definition:
<para>Synopses, one of:
</para>
-<screen>\providecommand{<replaceable>cmd</replaceable>}{<replaceable>defn</replaceable>}
-\providecommand{<replaceable>cmd</replaceable>}[<replaceable>nargs</replaceable>]{<replaceable>defn</replaceable>}
-\providecommand{<replaceable>cmd</replaceable>}[<replaceable>nargs</replaceable>][<replaceable>optargdefault</replaceable>]{<replaceable>defn</replaceable>}
-\providecommand*{<replaceable>cmd</replaceable>}{<replaceable>defn</replaceable>}
-\providecommand*{<replaceable>cmd</replaceable>}[<replaceable>nargs</replaceable>]{<replaceable>defn</replaceable>}
-\providecommand*{<replaceable>cmd</replaceable>}[<replaceable>nargs</replaceable>][<replaceable>optargdefault</replaceable>]{<replaceable>defn</replaceable>}
+<screen>\providecommand{\<replaceable>cmd</replaceable>}{<replaceable>defn</replaceable>}
+\providecommand{\<replaceable>cmd</replaceable>}[<replaceable>nargs</replaceable>]{<replaceable>defn</replaceable>}
+\providecommand{\<replaceable>cmd</replaceable>}[<replaceable>nargs</replaceable>][<replaceable>optargdefault</replaceable>]{<replaceable>defn</replaceable>}
+\providecommand*{\<replaceable>cmd</replaceable>}{<replaceable>defn</replaceable>}
+\providecommand*{\<replaceable>cmd</replaceable>}[<replaceable>nargs</replaceable>]{<replaceable>defn</replaceable>}
+\providecommand*{\<replaceable>cmd</replaceable>}[<replaceable>nargs</replaceable>][<replaceable>optargdefault</replaceable>]{<replaceable>defn</replaceable>}
</screen>
<para>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
@@ -8692,8 +8906,8 @@ See <link linkend="_005cnewcommand-_0026-_005crenewcommand">\newcommand &amp; \r
<para>This example
</para>
<screen>\providecommand{\myaffiliation}{Saint Michael's College}
-\providecommand{\myaffiliation}{Saint Michael's College}
-&gt;From \myaffiliation.
+\providecommand{\myaffiliation}{Lyc\'ee Henri IV}
+From \myaffiliation.
</screen>
<para>outputs &#8216;<literal>From Saint Michael's College</literal>&#8217;. Unlike <literal>\newcommand</literal>,
the repeated use of <literal>\providecommand</literal> does not give an error.
@@ -8831,11 +9045,11 @@ standard practice is not to insert any such spaces.
<indexterm role="cp"><primary><literal>xparse</literal> package</primary></indexterm>
<para>There are two alternative ways to accomplish the work of
-<literal>\@ifstar</literal>. (1)&#160;The <filename>suffix</filename> package allows the
+<literal>\@ifstar</literal>. (1)&#160;The <literal>suffix</literal> package allows the
construct <literal>\newcommand\mycommand{<replaceable>unstarred-variant</replaceable>}</literal>
followed by
<literal>\WithSuffix\newcommand\mycommand*{<replaceable>starred-variant</replaceable>}</literal>.
-(2)&#160;&latex; provides the <filename>xparse</filename> package, which allows
+(2)&#160;&latex; provides the <literal>xparse</literal> package, which allows
this code:
</para>
<screen>\NewDocumentCommand\foo{s}{\IfBooleanTF#1
@@ -8905,21 +9119,23 @@ defined.</literal>&#8217;
<para>Synopsis:
</para>
-<screen>\newlength{<replaceable>arg</replaceable>}
+<screen>\newlength{\<replaceable>len</replaceable>}
</screen>
<para>Allocate a new length register (see <link linkend="Lengths">Lengths</link>). The required argument
-<replaceable>arg</replaceable> must begin with a backslash, <literal>\</literal>. The new register holds
-rubber lengths such as <literal>72.27pt</literal> or <literal>1in plus.2in minus.1in</literal>
-(a &latex; length register is what plain &tex; calls a <literal>skip</literal>
-register). The initial value is zero. The control sequence
-<literal>\<replaceable>arg</replaceable></literal> must not be already defined.
+<literal>\<replaceable>len</replaceable></literal> has to be a control sequence (see <link linkend="Control-sequences">Control
+sequences</link>), and as such must begin with a backslash, <literal>\</literal> under
+normal circumstances. The new register holds rubber lengths such as
+<literal>72.27pt</literal> or <literal>1in plus.2in minus.1in</literal> (a &latex; length
+register is what plain &tex; calls a <literal>skip</literal> register). The
+initial value is zero. The control sequence <literal>\<replaceable>len</replaceable></literal> must not
+be already defined.
</para>
<para>An example:
</para>
<screen>\newlength{\graphichgt}
</screen>
<para>If you forget the backslash then you get &#8216;<literal>Missing control sequence
-inserted</literal>&#8217;. If the command sequence already exists then you get
+inserted</literal>&#8217;. If the control sequence already exists then you get
something like &#8216;<literal>LaTeX Error: Command \graphichgt already defined.
Or name \end... illegal, see p.192 of the manual</literal>&#8217;.
</para>
@@ -9351,11 +9567,12 @@ to <literal>\protect\(..\protect\)</literal>.
</para>
<screen>\ignorespacesafterend
</screen>
-<para>Both commands cause &latex; to ignore spaces after the end of the
-command up until the first non-space character. The first is a command
-from plain &tex;, and the second is &latex;-specific.
+<para>Both commands cause &latex; to ignore blanks (that is, characters of
+catcode&#160;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.
</para>
-<para>The <literal>ignorespaces</literal> is often used when defining commands via
+<para>The <literal>\ignorespaces</literal> is often used when defining commands via
<literal>\newcommand</literal>, or <literal>\newenvironment</literal>, or <literal>\def</literal>. 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
@@ -9373,7 +9590,7 @@ the command and the question text.
<screen>\newcommand{\points}[1]{%
\makebox[0pt]{\makebox[10em][l]{#1~pts}}\ignorespaces}
</screen>
-<para>A second example shows spaces being removed from the front of text. The
+<para>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
<literal>\fullname</literal> will reproduce that.
@@ -9394,7 +9611,7 @@ at the end of the <replaceable>begin</replaceable> clause, as in
<literal>\begin{newenvironment}{<replaceable>env
name</replaceable>}{... \ignorespaces}{...}</literal>.
</para>
-<para>To strip spaces off the end of an environment use
+<para>To strip blanks off the end of an environment use
<literal>\ignorespacesafterend</literal>. An example is that this will show a much
larger vertical space between the first and second environments than
between the second and third.
@@ -9421,6 +9638,9 @@ inconvenient. The solution is to change to
<title>xspace package</title>
<indexterm role="fn"><primary>\xspace</primary></indexterm>
+<indexterm role="cp"><primary>package, <literal>xspace</literal></primary></indexterm>
+<indexterm role="cp"><primary><literal>xspace</literal> package</primary></indexterm>
+
<indexterm role="cp"><primary>spaces, ignore around commands</primary></indexterm>
<indexterm role="cp"><primary>commands, ignore spaces</primary></indexterm>
@@ -9430,27 +9650,30 @@ inconvenient. The solution is to change to
...
\newcommand{...}{...\xspace}
</screen>
-<para>The <literal>\xspace</literal> macro, when used at the end of a command, adds a
-space unless the command is followed by certain punctuation characters.
+<para>The <literal>\xspace</literal> macro, when used at the end of a command definition,
+adds a space unless the command is followed by certain punctuation
+characters.
</para>
-<para>After a command name that uses letters (as opposed to single character
-command names using non-letters such as <literal>\$</literal>), &tex; gobbles white
-space. Thus, in the first sentence below, the output has &#8216;<literal>Vermont</literal>&#8217;
-placed snugly against the period, without any intervening space.
+<para>After a command control sequence that is a control word (see <link linkend="Control-sequences">Control
+sequences</link>, as opposed to control symbols such as <literal>\$</literal>), &tex;
+gobbles blank characters. Thus, in the first sentence below, the output
+has &#8216;<literal>Vermont</literal>&#8217; placed snugly against the period, without any
+intervening space.
</para>
<screen>\newcommand{\VT}{Vermont}
Our college is in \VT .
The \VT{} summers are nice.
</screen>
-<para>But because of the gobbling, the second sentence needs the dummy curly
+<para>But because of the gobbling, the second sentence needs the empty curly
braces or else there would be no space separating &#8216;<literal>Vermont</literal>&#8217; from
-&#8216;<literal>summers</literal>&#8217;. (Many authors instead instead use a backslash-space
+&#8216;<literal>summers</literal>&#8217;. (Many authors instead use a backslash-space
<literal>\ </literal> for this. See <link linkend="_005c_0028SPACE_0029">\(SPACE)</link>.)
</para>
-<para>The <filename>xspace</filename> package provides <literal>\xspace</literal>. It is for writing
-commands which are designed to be used mainly in text. It inserts a
-space after that command unless what immediately follows is in a list of
-exceptions. In this example, the dummy braces are not needed.
+<para>The <literal>xspace</literal> package provides <literal>\xspace</literal>. 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.
</para>
<screen>\newcommand{\VT}{Vermont\xspace}
Our college is in \VT .
@@ -9459,16 +9682,17 @@ Our college is in \VT .
<para>The default exception list contains the characters <literal>,.'/?;:!~-)</literal>,
the open curly brace and the backslash-space command discussed above,
and the commands <literal>\footnote</literal> or <literal>\footnotemark</literal>. Add to that
-list as with <literal>\xspaceaddexceptions{\myfni \myfnii}</literal> and remove
-from that list as with <literal>\xspaceremoveexception{!}</literal>.
+list as with <literal>\xspaceaddexceptions{\myfni \myfnii}</literal> which adds
+<literal>\myfni</literal> and&#160;<literal>\myfnii</literal> to the list, and remove from that
+list as with <literal>\xspaceremoveexception{!}</literal>.
</para>
<!-- David Carlisle https://tex.stackexchange.com/a/86620/339 -->
<para>A comment: many experts prefer not to use <literal>\xspace</literal>. Putting it in
a definition means that the command will usually get the spacing right.
-But it isn&#8217;t easy to predict when to enter dummy braces because
+But it isn&#8217;t easy to predict when to enter empty braces because
<literal>\xspace</literal> will get it wrong, such as when it is followed by another
command, and so <literal>\xspace</literal> can make editing material harder and more
-error-prone than instead always remembering the dummy braces.
+error-prone than instead always inserting the empty braces.
</para>
</sect1>
@@ -9489,6 +9713,23 @@ track of the chapter number.
<para>Below is a list of the counters used in &latex;&#8217;s standard document
classes to control numbering.
</para>
+<indexterm role="fn"><primary>part counter</primary></indexterm>
+<indexterm role="fn"><primary>chapter counter</primary></indexterm>
+<indexterm role="fn"><primary>section counter</primary></indexterm>
+<indexterm role="fn"><primary>subsection counter</primary></indexterm>
+<indexterm role="fn"><primary>subsubsection counter</primary></indexterm>
+<indexterm role="fn"><primary>paragraph counter</primary></indexterm>
+<indexterm role="fn"><primary>subparagraph counter</primary></indexterm>
+<indexterm role="fn"><primary>page counter</primary></indexterm>
+<indexterm role="fn"><primary>equation counter</primary></indexterm>
+<indexterm role="fn"><primary>figure counter</primary></indexterm>
+<indexterm role="fn"><primary>table counter</primary></indexterm>
+<indexterm role="fn"><primary>footnote counter</primary></indexterm>
+<indexterm role="fn"><primary>mpfootnote counter</primary></indexterm>
+<indexterm role="fn"><primary>enumi counter</primary></indexterm>
+<indexterm role="fn"><primary>enumii counter</primary></indexterm>
+<indexterm role="fn"><primary>enumiii counter</primary></indexterm>
+<indexterm role="fn"><primary>enumiv counter</primary></indexterm>
<screen>part paragraph figure enumi
chapter subparagraph table enumii
section page footnote enumiii
@@ -9554,7 +9795,7 @@ warning but &latex; does not output anything.
</para>
<para>Here are the symbols:
</para>
-<informaltable><tgroup cols="4"><colspec colwidth="10*"></colspec><colspec colwidth="30*"></colspec><colspec colwidth="30*"></colspec><colspec colwidth="30*"></colspec><thead><row><entry><para>Number</para></entry><entry><para>Name</para></entry><entry><para>Command</para></entry><entry><para>Symbol
+<informaltable><tgroup cols="4"><colspec colwidth="11*"></colspec><colspec colwidth="30*"></colspec><colspec colwidth="30*"></colspec><colspec colwidth="29*"></colspec><thead><row><entry><para>Number</para></entry><entry><para>Name</para></entry><entry><para>Command</para></entry><entry><para>Symbol
</para></entry></row></thead><tbody><row><entry><para>1</para></entry><entry><para>asterisk</para></entry><entry><para><literal>\ast</literal></para></entry><entry><para>*<!-- -->
</para></entry></row><row><entry><para>2</para></entry><entry><para>dagger</para></entry><entry><para><literal>\dagger</literal></para></entry><entry><para>&#x2020;
</para></entry></row><row><entry><para>3</para></entry><entry><para>ddagger</para></entry><entry><para><literal>\ddagger</literal></para></entry><entry><para>&#x2021;
@@ -9734,9 +9975,9 @@ not influence references; that is, it does not define the current
<para>&latex; defines the counter <literal>\day</literal> for the day of the month
(nominally with value between 1 and 31), <literal>\month</literal> for the month of
-the year (nominally with value between 1 and 12), and year <literal>\year</literal>.
-When &tex; starts up, they are set from the current values on the
-system. The related command <literal>\today</literal> produces a string
+the year (nominally with value between 1 and 12), and <literal>\year</literal> for
+the year. When &tex; starts up, they are set from the current values
+on the system. The related command <literal>\today</literal> produces a string
representing the current day (see <link linkend="_005ctoday">\today</link>).
</para>
<para>They counters are not updated as the job progresses so in principle they
@@ -9748,7 +9989,9 @@ check:
<para>gives no error or warning and results in the output &#8216;<literal>-2, -4</literal>&#8217; (the
bogus month value produces no output).
</para>
-
+<para>See <link linkend="Command-line-input">Command line input</link>, to force the date to a given value from the
+command line.
+</para>
</sect1>
</chapter>
<chapter label="14" id="Lengths">
@@ -9850,10 +10093,10 @@ the page.
\hspace{0pt plus 1fill}
\end{minipage}
</screen>
-<para>&tex; actually has three levels of infinity for glue components:
-<literal>fil</literal>, <literal>fill</literal>, and <literal>filll</literal>. The later ones are more
-infinite than the earlier ones. Ordinarily document authors only use
-the middle one (see <link linkend="_005chfill">\hfill</link> and see <link linkend="_005cvfill">\vfill</link>).
+<para>&tex; has three levels of infinity for glue components: <literal>fil</literal>,
+<literal>fill</literal>, and <literal>filll</literal>. The later ones are more infinite than
+the earlier ones. Ordinarily document authors only use the middle one
+(see <link linkend="_005chfill">\hfill</link> and see <link linkend="_005cvfill">\vfill</link>).
</para>
<para>Multiplying a rubber length by a number turns it into a rigid length, so
that after <literal>\setlength{\ylength}{1in plus 0.2in}</literal> and
@@ -9870,79 +10113,79 @@ that after <literal>\setlength{\ylength}{1in plus 0.2in}</literal> and
<para>&tex; and &latex; know about these units both inside and outside of
math mode.
</para>
-<variablelist><varlistentry><term><literal>pt</literal>
-</term><listitem><indexterm role="fn"><primary>pt</primary></indexterm>
-<indexterm role="cp"><primary>point</primary></indexterm>
-<anchor id="units-of-length-pt"/><para>Point, 1/72.27 inch. The conversion to metric units
-is 1point = 2.845mm = .2845cm.
+<variablelist><varlistentry><term><indexterm role="fn"><primary>pt</primary></indexterm><literal>pt</literal>
+</term><listitem><indexterm role="cp"><primary>point</primary></indexterm>
+<anchor id="units-of-length-pt"/><para>Point, 1/72.27 inch. The (approximate) conversion to metric units
+is 1point = .35146mm = .035146cm.
</para>
-</listitem></varlistentry><varlistentry><term><literal>pc</literal>
+</listitem></varlistentry><varlistentry><term><indexterm role="fn"><primary>pc</primary></indexterm><literal>pc</literal>
</term><listitem><indexterm role="cp"><primary>pica</primary></indexterm>
-<indexterm role="fn"><primary>pc</primary></indexterm>
<anchor id="units-of-length-pc"/><para>Pica, 12 pt
</para>
-</listitem></varlistentry><varlistentry><term><literal>in</literal>
-</term><listitem><indexterm role="fn"><primary>in</primary></indexterm>
-<indexterm role="fn"><primary>inch</primary></indexterm>
-<anchor id="units-of-length-in"/><para>Inch, 72.27 pt
+</listitem></varlistentry><varlistentry><term><indexterm role="fn"><primary>in</primary></indexterm><literal>in</literal>
+</term><listitem><indexterm role="cp"><primary>inch</primary></indexterm>
+<anchor id="units-of-length-in"/><para>Inch, 72.27 pt
</para>
-</listitem></varlistentry><varlistentry><term><literal>bp</literal>
-</term><listitem><indexterm role="fn"><primary>bp</primary></indexterm>
-<indexterm role="cp"><primary>big point</primary></indexterm>
+</listitem></varlistentry><varlistentry><term><indexterm role="fn"><primary>bp</primary></indexterm><literal>bp</literal>
+</term><listitem><indexterm role="cp"><primary>big point</primary></indexterm>
+<indexterm role="cp"><primary>PostScript point</primary></indexterm>
<anchor id="units-of-length-bp"/><para>Big point, 1/72 inch. This length is the definition of a point in
PostScript and many desktop publishing systems.
</para>
-</listitem></varlistentry><varlistentry><term><literal>cm</literal>
-</term><listitem><indexterm role="cp"><primary>centimeter</primary></indexterm>
-<indexterm role="fn"><primary>cm</primary></indexterm>
-<anchor id="units-of-length-cm"/><para>Centimeter
-</para>
-</listitem></varlistentry><varlistentry><term><literal>mm</literal>
+</listitem></varlistentry><varlistentry><term><indexterm role="fn"><primary>mm</primary></indexterm><literal>mm</literal>
</term><listitem><indexterm role="cp"><primary>millimeter</primary></indexterm>
-<indexterm role="fn"><primary>mm</primary></indexterm>
-<anchor id="units-of-length-mm"/><para>Millimeter
+<anchor id="units-of-length-mm"/><para>Millimeter, 2.845 pt
</para>
-</listitem></varlistentry><varlistentry><term><literal>dd</literal>
+</listitem></varlistentry><varlistentry><term><indexterm role="fn"><primary>cm</primary></indexterm><literal>cm</literal>
+</term><listitem><indexterm role="cp"><primary>centimeter</primary></indexterm>
+<anchor id="units-of-length-cm"/><para>Centimeter, 10 mm
+</para>
+</listitem></varlistentry><varlistentry><term><indexterm role="fn"><primary>dd</primary></indexterm><literal>dd</literal>
</term><listitem><indexterm role="cp"><primary>didot point</primary></indexterm>
-<indexterm role="fn"><primary>dd</primary></indexterm>
<anchor id="units-of-length-dd"/><para>Didot point, 1.07 pt
</para>
-</listitem></varlistentry><varlistentry><term><literal>cc</literal>
+</listitem></varlistentry><varlistentry><term><indexterm role="fn"><primary>cc</primary></indexterm><literal>cc</literal>
</term><listitem><indexterm role="cp"><primary>cicero</primary></indexterm>
-<indexterm role="fn"><primary>cc</primary></indexterm>
<anchor id="units-of-length-cc"/><para>Cicero, 12 dd
</para>
-</listitem></varlistentry><varlistentry><term><literal>sp</literal>
+</listitem></varlistentry><varlistentry><term><indexterm role="fn"><primary>sp</primary></indexterm><literal>sp</literal>
</term><listitem><indexterm role="cp"><primary>scaled point</primary></indexterm>
-<indexterm role="fn"><primary>sp</primary></indexterm>
<anchor id="units-of-length-sp"/><para>Scaled point, 1/65536 pt
</para>
</listitem></varlistentry></variablelist>
+<para>Three other units are defined according to the current font, rather
+than being an absolute dimension.
+</para>
+<variablelist><varlistentry><term><indexterm role="fn"><primary>ex</primary></indexterm><literal>ex</literal>
+</term><listitem><indexterm role="cp"><primary>x-height</primary></indexterm>
<indexterm role="cp"><primary>ex</primary></indexterm>
-<indexterm role="cp"><primary>x-height</primary></indexterm>
-<indexterm role="fn"><primary>ex</primary></indexterm>
-<indexterm role="cp"><primary>m-width</primary></indexterm>
-<indexterm role="cp"><primary>em</primary></indexterm>
-<indexterm role="fn"><primary>em</primary></indexterm>
-<anchor id="Lengths_002fem"/><anchor id="Lengths_002fen"/><anchor id="Lengths_002fex"/><anchor id="units-of-length-em"/><anchor id="units-of-length-en"/><anchor id="units-of-length-ex"/><para>Two other lengths that are often used are values set by the designer of
-the font. The x-height of the current font <firstterm>ex</firstterm>, traditionally the
+<anchor id="Lengths_002fex"/><anchor id="units-of-length-ex"/><para>The x-height of the current font <firstterm>ex</firstterm>, traditionally the
height of the lowercase letter x, is often used for vertical
-lengths. Similarly <firstterm>em</firstterm>, traditionally the width of the capital
-letter M, is often used for horizontal lengths (there is also
-<literal>\enspace</literal>, which is <literal>0.5em</literal>). Use of these can help make a
-definition work better across font changes. For example, a definition
-of the vertical space between list items given as
-<literal>\setlength{\itemsep}{1ex plus 0.05ex minus 0.01ex}</literal> is more
-likely to still be reasonable if the font is changed than a definition
-given in points.
-</para>
-<indexterm role="cp"><primary>mu, math unit</primary></indexterm>
-<indexterm role="fn"><primary>mu</primary></indexterm>
-<para>In math mode, many definitions are expressed in terms of the math unit
-<firstterm>mu</firstterm> given by 1 em = 18 mu, where the em is taken from the current
-math symbols family. See <link linkend="Spacing-in-math-mode">Spacing in math mode</link>.
+lengths.
+</para>
+</listitem></varlistentry><varlistentry><term><indexterm role="fn"><primary>em</primary></indexterm><literal>em</literal>
+</term><listitem><indexterm role="cp"><primary>m-width</primary></indexterm>
+<indexterm role="cp"><primary>em</primary></indexterm>
+<anchor id="Lengths_002fem"/><anchor id="units-of-length-em"/><para>Similarly <firstterm>em</firstterm>, 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 (see <link linkend="_005censpace-_0026-_005cquad-_0026-_005cqquad">\enspace &amp; \quad &amp; \qquad</link>).
+</para>
+</listitem></varlistentry><varlistentry><term><indexterm role="fn"><primary>mu</primary></indexterm><literal>mu</literal>
+</term><listitem><indexterm role="cp"><primary>mu, math unit</primary></indexterm>
+<anchor id="units-of-length-mu"/><para>Finally, in math mode, many definitions are expressed in terms
+of the math unit <firstterm>mu</firstterm>, defined by 1em = 18mu, where the
+em is taken from the current math symbols family. See <link linkend="Spacing-in-math-mode">Spacing in
+math mode</link>.
+</para>
+</listitem></varlistentry></variablelist>
+<para>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 <literal>\setlength{\itemsep}{1ex plus 0.05ex minus
+0.01ex}</literal> is more likely to still be reasonable if the font is changed
+than a definition given in points.
</para>
-
</sect1>
<sect1 label="14.2" id="_005csetlength">
<title><literal>\setlength</literal></title>
@@ -9952,13 +10195,14 @@ math symbols family. See <link linkend="Spacing-in-math-mode">Spacing in math m
<para>Synopsis:
</para>
-<screen>\setlength{<replaceable>len</replaceable>}{<replaceable>amount</replaceable>}
+<screen>\setlength{\<replaceable>len</replaceable>}{<replaceable>amount</replaceable>}
</screen>
-<para>Set the length <replaceable>len</replaceable> to <replaceable>amount</replaceable>. The length name <replaceable>len</replaceable>
-must begin with a backslash, <literal>\</literal>. The <literal>amount</literal> can be a
-rubber length (see <link linkend="Lengths">Lengths</link>). It can be positive, negative or zero,
-and can be in any units that &latex; understands (see <link linkend="Units-of-length">Units of
-length</link>).
+<para>Set the length \<replaceable>len</replaceable> to <replaceable>amount</replaceable>. The length name
+<literal>\<replaceable>len</replaceable></literal> has to be a control sequence (see <link linkend="Control-sequences">Control
+sequences</link>), and as such must begin with a backslash, <literal>\</literal> under
+normal circumstances. The <replaceable>amount</replaceable> can be a rubber length
+(see <link linkend="Lengths">Lengths</link>). It can be positive, negative or zero, and can be in
+any units that &latex; understands (see <link linkend="Units-of-length">Units of length</link>).
</para>
<para>Below, with &latex;&#8217;s defaults the first paragraph will be indented
while the second will not.
@@ -9968,15 +10212,13 @@ while the second will not.
\setlength{\parindent}{0em}
He said stop going to those places.
</screen>
-<para>If you did not declare <replaceable>len</replaceable> with <literal>\newlength</literal>, for example if
-you mistype the above as
+<para>If you did not declare \<replaceable>len</replaceable> with <literal>\newlength</literal>, for example if
+you mistype it as in
<literal>\newlength{\specparindent}\setlength{\sepcparindent}{...}</literal>,
then you get an error like &#8216;<literal>Undefined control sequence. &lt;argument&gt;
\sepcindent</literal>&#8217;. If you omit the backslash at the start of the length name
-then you get an error like &#8216;<literal>Missing number, treated as zero. &lt;to be
-read again&gt; \relax l.19 \setlength{specparindent}{0.6\parindent}</literal>&#8217;
+then you get an error like &#8216;<literal>Missing number, treated as zero.</literal>&#8217;.
</para>
-
</sect1>
<sect1 label="14.3" id="_005caddtolength">
<title><literal>\addtolength</literal></title>
@@ -9986,13 +10228,14 @@ read again&gt; \relax l.19 \setlength{specparindent}{0.6\parindent}</literal>&#8
<para>Synopsis:
</para>
-<screen>\addtolength{<replaceable>len</replaceable>}{<replaceable>amount</replaceable>}
+<screen>\addtolength{\<replaceable>len</replaceable>}{<replaceable>amount</replaceable>}
</screen>
-<para>Increment the length <replaceable>len</replaceable> by <replaceable>amount</replaceable>. The length name
-<replaceable>len</replaceable> begins with a backslash, <literal>\</literal>. The <literal>amount</literal> is a
-rubber length (see <link linkend="Lengths">Lengths</link>). It can be positive, negative or zero,
-and can be in any units that &latex; understands (see <link linkend="Units-of-length">Units of
-length</link>).
+<para>Increment the length \<replaceable>len</replaceable> by <replaceable>amount</replaceable>. The length name
+<literal>\<replaceable>len</replaceable></literal> has to be a control sequence (see <link linkend="Control-sequences">Control
+sequences</link>), and as such must begin with a backslash, <literal>\</literal> under
+normal circumstances. The <replaceable>amount</replaceable> is a rubber length
+(see <link linkend="Lengths">Lengths</link>). It can be positive, negative or zero, and can be in
+any units that &latex; understands (see <link linkend="Units-of-length">Units of length</link>).
</para>
<para>Below, if <literal>\parskip</literal> starts with the value <literal>0pt plus 1pt</literal>
</para>
@@ -10003,15 +10246,18 @@ Nurse: no change.
</screen>
<para>then it has the value <literal>1pt plus 1pt</literal> for the second paragraph.
</para>
-<para>If you did not declare the length <replaceable>len</replaceable> with <literal>\newlength</literal>, if
-for example you mistype the above as
+<para>If you did not declare \<replaceable>len</replaceable> with <literal>\newlength</literal>, for example if
+you mistype it as in
+<literal>\newlength{\specparindent}\addtolength{\sepcparindent}{...}</literal>,
+then you get an error like &#8216;<literal>Undefined control sequence. &lt;argument&gt;
+\sepcindent</literal>&#8217;. If the <replaceable>amount</replaceable> uses some length that has not been
+declared, for instance if for example you mistype the above as
<literal>\addtolength{\specparindent}{0.6\praindent}</literal>, then you get
something like &#8216;<literal>Undefined control sequence. &lt;argument&gt; \praindent</literal>&#8217;.
-If you leave off the backslash at the start of <replaceable>len</replaceable>, as in
+If you leave off the backslash at the start of \<replaceable>len</replaceable>, as in
<literal>\addtolength{parindent}{1pt}</literal>, then you get something like
&#8216;<literal>You can't use `the letter p' after \advance</literal>&#8217;.
</para>
-
</sect1>
<sect1 label="14.4" id="_005csettodepth">
<title><literal>\settodepth</literal></title>
@@ -10020,22 +10266,23 @@ If you leave off the backslash at the start of <replaceable>len</replaceable>, a
<para>Synopsis:
</para>
-<screen>\settodepth{<replaceable>len</replaceable>}{<replaceable>text</replaceable>}
+<screen>\settodepth{\<replaceable>len</replaceable>}{<replaceable>text</replaceable>}
</screen>
-<para>Set the length <replaceable>len</replaceable> to the depth of box that &latex; gets on
-typesetting the <replaceable>text</replaceable> argument. The length name <replaceable>len</replaceable> must
-begin with a backslash, <literal>\</literal>.
+<para>Set the length \<replaceable>len</replaceable> to the depth of box that &latex; gets on
+typesetting the <replaceable>text</replaceable> argument. The length name <literal>\<replaceable>len</replaceable></literal>
+has to be a control sequence (see <link linkend="Control-sequences">Control sequences</link>), and as such
+must begin with a backslash, <literal>\</literal> under normal circumstances.
</para>
-<para>This will show how low the character descenders go.
+<para>This will print how low the character descenders go.
</para>
<screen>\newlength{\alphabetdepth}
\settodepth{\alphabetdepth}{abcdefghijklmnopqrstuvwxyz}
\the\alphabetdepth
</screen>
-<para>If you did not set aside the length <replaceable>len</replaceable>, if for example you
+<para>If you did not declare \<replaceable>len</replaceable> with <literal>\newlength</literal>, if for example you
mistype the above as <literal>\settodepth{\aplhabetdepth}{abc...}</literal>,
then you get something like &#8216;<literal>Undefined control sequence. &lt;argument&gt;
-\aplhabetdepth</literal>&#8217;. If you leave the backslash out of <replaceable>len</replaceable>, as in
+\aplhabetdepth</literal>&#8217;. If you leave the backslash out of \<replaceable>len</replaceable>, as in
<literal>\settodepth{alphabetdepth}{...}</literal> then you get something like
&#8216;<literal>Missing number, treated as zero. &lt;to be read again&gt; \setbox</literal>&#8217;.
</para>
@@ -10048,23 +10295,24 @@ then you get something like &#8216;<literal>Undefined control sequence. &lt;argu
<para>Synopsis:
</para>
-<screen>\settoheight{<replaceable>len</replaceable>}{text}
+<screen>\settoheight{\<replaceable>len</replaceable>}{text}
</screen>
-<para>Sets the length <replaceable>len</replaceable> to the height of box that &latex; gets on
-typesetting the <literal>text</literal> argument. The length name <replaceable>len</replaceable> must
-begin with a backslash, <literal>\</literal>.
+<para>Sets the length \<replaceable>len</replaceable> to the height of box that &latex; gets on
+typesetting the <literal>text</literal> argument. The length name <literal>\<replaceable>len</replaceable></literal>
+has to be a control sequence (see <link linkend="Control-sequences">Control sequences</link>), and as such
+must begin with a backslash, <literal>\</literal> under normal circumstances.
</para>
-<para>This will show how high the characters go.
+<para>This will print how high the characters go.
</para>
<screen>\newlength{\alphabetheight}
\settoheight{\alphabetheight}{abcdefghijklmnopqrstuvwxyz}
\the\alphabetheight
</screen>
-<para>If no such length <replaceable>len</replaceable> has been declared with <literal>\newlength</literal>, if
+<para>If no such length \<replaceable>len</replaceable> has been declared with <literal>\newlength</literal>, if
for example you mistype as
<literal>\settoheight{\aplhabetheight}{abc...}</literal>, then you get something
like &#8216;<literal>Undefined control sequence. &lt;argument&gt; \alphabetheight</literal>&#8217;. If
-you leave the backslash out of <replaceable>len</replaceable>, as in
+you leave the backslash out of \<replaceable>len</replaceable>, as in
<literal>\settoheight{alphabetheight}{...}</literal> then you get something like
&#8216;<literal>Missing number, treated as zero. &lt;to be read again&gt; \setbox</literal>&#8217;.
</para>
@@ -10077,22 +10325,24 @@ you leave the backslash out of <replaceable>len</replaceable>, as in
<para>Synopsis:
</para>
-<screen>\settowidth{<replaceable>len</replaceable>}{<replaceable>text</replaceable>}
+<screen>\settowidth{\<replaceable>len</replaceable>}{<replaceable>text</replaceable>}
</screen>
-<para>Set the length <replaceable>len</replaceable> to the width of the box that &latex; gets on
-typesetting the <replaceable>text</replaceable> argument. The length name <replaceable>len</replaceable> must
-begin with a backslash, <literal>\</literal>.
+<para>Set the length \<replaceable>len</replaceable> to the width of the box that &latex; gets on
+typesetting the <replaceable>text</replaceable> argument. The length name <literal>\<replaceable>len</replaceable></literal>
+has to be a control sequence (see <link linkend="Control-sequences">Control sequences</link>), and as such
+must begin with a backslash, <literal>\</literal> under normal circumstances.
</para>
-<para>This measures the width of the lowercase ASCII alphabet.
+<para>This prints the width of the lowercase ASCII alphabet.
</para>
<screen>\newlength{\alphabetwidth}
\settowidth{\alphabetwidth}{abcdefghijklmnopqrstuvwxyz}
\the\alphabetwidth
</screen>
-<para>If no such length <replaceable>len</replaceable> has been set aside, if for example you
-mistype the above as <literal>\settowidth{\aplhabetwidth}{abc...}</literal>,
-then you get something like &#8216;<literal>Undefined control sequence. &lt;argument&gt;
-\aplhabetwidth</literal>&#8217;. If you leave the backslash out of <replaceable>len</replaceable>, as in
+<para>If no such length \<replaceable>len</replaceable> has been declared with <literal>\newlength</literal>,
+if for example you mistype the above as
+<literal>\settowidth{\aplhabetwidth}{abc...}</literal>, then you get something
+like &#8216;<literal>Undefined control sequence. &lt;argument&gt; \aplhabetwidth</literal>&#8217;. If
+you leave the backslash out of \<replaceable>len</replaceable>, as in
<literal>\settoheight{alphabetwidth}{...}</literal> then you get something like
&#8216;<literal>Missing number, treated as zero. &lt;to be read again&gt; \setbox</literal>&#8217;.
</para>
@@ -10220,10 +10470,11 @@ parentheses to be affected by a factor. So <literal>\the\glueexpr 5pt plus
<para>&tex; will coerce other numerical types in the same way as it does when
doing register assignment. Thus <literal>\the\numexpr\dimexpr
1pt\relax\relax</literal> will result in &#8216;<literal>65536</literal>&#8217;, which is <literal>1pt</literal>
-converted to scaled points (&tex;&#8217;s internal unit) and then coerced
-into an integer. With a <literal>\glueexpr</literal> here, the stretch and shrink
-would be dropped. Going the other way, a <literal>\numexpr</literal> inside a
-<literal>\dimexpr</literal> or <literal>\glueexpr</literal> will need appropriate units, as in
+converted to scaled points (see <link linkend="units-of-length-sp"><literal>sp</literal></link>,
+&tex;&#8217;s internal unit) and then coerced into an integer. With a
+<literal>\glueexpr</literal> here, the stretch and shrink would be dropped. Going
+the other way, a <literal>\numexpr</literal> inside a <literal>\dimexpr</literal> or
+<literal>\glueexpr</literal> will need appropriate units, as in
<literal>\the\dimexpr\numexpr 1 + 2\relax pt\relax</literal>, which produces
&#8216;<literal>3.0pt</literal>&#8217;.
</para>
@@ -10253,8 +10504,8 @@ because it rounds <literal>3/2</literal> to <literal>2</literal>, while
<indexterm role="cp"><primary>paragraphs</primary></indexterm>
<para>To start a paragraph, just type some text. To end the current
-paragraph, put an empty line. This is three paragraphs, separated by
-two empty lines.
+paragraph, put an empty line. This is three paragraphs, the
+separation of which is made by two empty lines.
</para>
<screen>It is a truth universally acknowledged, that a single man in possession
of a good fortune, must be in want of a wife.
@@ -10267,15 +10518,33 @@ 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?''
</screen>
-<para>The separator lines must be empty, including not containing a comment
-character, <literal>%</literal>.
+<para>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 <literal>%</literal> and
+span up to the end of line. In the following example the two columns
+are identical:
</para>
+<screen>\documentclass[twocolumn]{article}
+\begin{document}
+First paragraph.
+
+Second paragraph.
+\newpage
+First paragraph.
+
+ % separator lines may contain blank characters.
+
+Second paragraph.
+\end{document}
+</screen>
+
<para>Once &latex; has gathered all of a paragraph&#8217;s contents it divides that
content into lines in a way that is optimized over the entire paragraph
(see <link linkend="Line-breaking">Line breaking</link>).
</para>
<para>There are places where a new paragraph is not permitted. Don&#8217;t put a
-blank line in math mode (see <link linkend="Modes">Modes</link>); here the line before the
+blank line in math mode (see <link linkend="Modes">Modes</link>); here the blank line before the
<literal>\end{equation}</literal>
</para>
<screen>\begin{equation}
@@ -10284,7 +10553,7 @@ blank line in math mode (see <link linkend="Modes">Modes</link>); here the line
\end{equation}
</screen>
<para>will get you the error &#8216;<literal>Missing $ inserted</literal>&#8217;. Similarly, the blank
-line in this <literal>section</literal> argument
+line in this <literal>\section</literal> argument
</para>
<screen>\section{aaa
@@ -10302,8 +10571,8 @@ complete</literal>&#8217;.
<indexterm role="fn"><primary>\par</primary></indexterm>
<indexterm role="cp"><primary>paragraph, ending</primary></indexterm>
-<para>Synopsis (note that while reading the input &tex; converts two
-consecutive newlines to a <literal>\par</literal>):
+<para>Synopsis (note that while reading the input &tex; converts any sequence
+of one or more blank lines to a <literal>\par</literal>, <link linkend="Making-paragraphs">Making paragraphs</link>):
</para>
<screen>\par
</screen>
@@ -10317,18 +10586,18 @@ readability.
<screen>\newcommand{\syllabusLegalese}{%
\whatCheatingIs\par\whatHappensWhenICatchYou}
</screen>
-<para>In LR mode or a vertical mode the <literal>\par</literal> command does nothing but
-it terminates paragraph mode, switching &latex; to vertical mode
-(see <link linkend="Modes">Modes</link>).
+<para>In LR mode the <literal>\par</literal> command does nothing and is ignored. In
+paragraph mode, the <literal>\par</literal> command terminates paragraph mode,
+switching &latex; to vertical mode (see <link linkend="Modes">Modes</link>).
</para>
<para>You cannot use the <literal>\par</literal> command in a math mode. You also cannot
-use it in the argument of many commands, such as the <literal>\section</literal>
-command (see <link linkend="Making-paragraphs">Making paragraphs</link> and <link linkend="_005cnewcommand-_0026-_005crenewcommand">\newcommand &amp;
-\renewcommand</link>).
+use it in the argument of many commands, such as the sectioning
+commands, e.g. <literal>\section</literal> (see <link linkend="Making-paragraphs">Making paragraphs</link> and
+<link linkend="_005cnewcommand-_0026-_005crenewcommand">\newcommand &amp; \renewcommand</link>).
</para>
<para>The <literal>\par</literal> command is not the same as the <literal>\paragraph</literal>
command. The latter is, like <literal>\section</literal> or <literal>\subsection</literal>, a
-sectioning unit used by the standard &latex; documents
+sectioning command used by the &latex; document standard classes
(see <link linkend="_005csubsubsection-_0026-_005cparagraph-_0026-_005csubparagraph">\subsubsection &amp; \paragraph &amp; \subparagraph</link>).
</para>
<para>The <literal>\par</literal> command is not the same as <literal>\newline</literal> or the line
@@ -10440,17 +10709,19 @@ paragraphs, respectively.
<para>The document will have paragraphs that are not indented, but instead
are vertically separated by about the height of a lowercase &#8216;<literal>x</literal>&#8217;.
</para>
-<para>In standard &latex; documents, the default value for <literal>\parindent</literal>
-in one-column documents is <literal>15pt</literal> when the default text size is
-<literal>10pt</literal>, <literal>17pt</literal> for <literal>11pt</literal>, and <literal>1.5em</literal> for
-<literal>12pt</literal>. In two-column documents it is <literal>1em</literal>. (These values
-are set before &latex; calls <literal>\normalfont</literal> so <literal>em</literal> is derived
-from the default font, Computer Modern. If you use a different font
-then to set <literal>\parindent</literal> in units matching that font, do
-<literal>\AtBeginDocument{\setlength{\parindent}{1em}}</literal>.)
+<para>In &latex; standard class documents, the default value for
+<literal>\parindent</literal> in one-column documents is <literal>15pt</literal> when the
+default text size is <literal>10pt</literal>, <literal>17pt</literal> for <literal>11pt</literal>, and
+<literal>1.5em</literal> for <literal>12pt</literal>. In two-column documents it is <literal>1em</literal>.
+(These values are set before &latex; calls <literal>\normalfont</literal> so
+<literal>em</literal> is derived from the default font, Computer Modern. If you use
+a different font then to set <literal>\parindent</literal> to 1em matching
+that font, put
+<literal>\AtBeginDocument{\setlength{\parindent}{1em}}</literal> in the
+preamble.)
</para>
<para>The default value for <literal>\parskip</literal> in &latex;&#8217;s standard document
-styles is <literal>0pt plus1pt</literal>.
+classes is <literal>0pt plus1pt</literal>.
</para>
</sect1>
@@ -10593,32 +10864,6 @@ equivalent to <literal>\begin{displaymath} <replaceable>math</replaceable>
\end{displaymath}</literal>. These environments can only be used in paragraph
mode (see <link linkend="Modes">Modes</link>).
</para>
-<indexterm role="fn"><primary>\displaystyle</primary></indexterm>
-<para>The two mathematics modes are similar, but there are some differences.
-One involves the placement of subscripts and superscripts; in display
-math mode they are further apart and in inline math mode they are closer
-together.
-</para>
-<para>Sometimes you want the display math typographical treatment to happen in
-the inline math mode. For this, the <literal>\displaystyle</literal> declaration
-forces the size and style of the formula to be that of
-<literal>displaymath</literal>. Thus <literal>\(\displaystyle \sum_{n=0}^\infty
-x_n\)</literal> will have the limits above and below the summation sign, not next
-to it. Another example is that
-</para>
-<screen>\begin{tabular}{r|cc}
- \textsc{Name} &amp;\textsc{Series} &amp;\textsc{Sum} \\ \hline
- Arithmetic &amp;\( a+(a+b)+(a+2b)+\cdots+(a+(n-1)b) \)
- &amp;\( na+(n-1)n\cdot\frac{b}{2}\) \\
- Geometric &amp;\( a+ab+ab^2+\cdots+ab^{n-1} \)
- &amp;\(\displaystyle a\cdot\frac{1-b^n}{1-b}\) \\
-\end{tabular}
-</screen>
-<para>because it has no <literal>\displaystyle</literal>, the &#8216;<literal>Arithmetic</literal>&#8217; line&#8217;s
-fraction will be scrunched. But, because of its <literal>\displaystyle</literal>,
-the &#8216;<literal>Geometric</literal>&#8217; line&#8217;s fraction will be easy to read, with
-characters the same size as in the rest of the line.
-</para>
<indexterm role="cp"><primary>package, <literal>amsmath</literal></primary></indexterm>
<indexterm role="cp"><primary><literal>amsmath</literal> package</primary></indexterm>
@@ -10630,8 +10875,8 @@ characters the same size as in the rest of the line.
<para>The American Mathematical Society has made freely available a set of
packages that greatly expand your options for writing mathematics,
-<filename>amsmath</filename> and <filename>amssymb</filename> (also be aware of the <filename>mathtools</filename>
-package that is an extension to, and loads, <filename>amsmath</filename>). New
+<literal>amsmath</literal> and <literal>amssymb</literal> (also be aware of the <literal>mathtools</literal>
+package that is an extension to, and loads, <literal>amsmath</literal>). 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.
@@ -10709,7 +10954,7 @@ the error &#8216;<literal>Missing $ inserted</literal>&#8217;.
<para>A common reason to want subscripts outside of a mathematics mode is to
typeset chemical formulas. There are packages for that, such as
-<filename>mhchem</filename>; see CTAN.
+<literal>mhchem</literal>; see CTAN.
</para>
</sect1>
@@ -10827,7 +11072,7 @@ set, or a contradiction (ordinary). See also&#160;<literal>\top</literal>.
</para>
</listitem></varlistentry><varlistentry><term><indexterm role="fn"><primary>\Box</primary></indexterm><literal>\Box</literal>
</term><listitem><para>&#x25A1; Modal operator for necessity; square open box
-(ordinary). Not available in plain &tex;. In &latex; you need to load the <filename>amssymb</filename> package.
+(ordinary). Not available in plain &tex;. In &latex; you need to load the <literal>amssymb</literal> package.
<!-- bb Best Unicode equivalent? -->
</para>
</listitem></varlistentry><varlistentry><term><indexterm role="fn"><primary>\bullet</primary></indexterm><literal>\bullet</literal>
@@ -10855,7 +11100,7 @@ variable-sized operator&#160;<literal>\bigcirc</literal>.
</para>
</listitem></varlistentry><varlistentry><term><indexterm role="fn"><primary>\complement</primary></indexterm><literal>\complement</literal>
</term><listitem><para>&#x2201;, Set complement, used as a superscript as in
-<literal>$S^\complement$</literal> (ordinary). Not available in plain &tex;. In &latex; you need to load the <filename>amssymb</filename> package. Also used:
+<literal>$S^\complement$</literal> (ordinary). Not available in plain &tex;. In &latex; you need to load the <literal>amssymb</literal> package. Also used:
<literal>$S^{\mathsf{c}}$</literal> or&#160;<literal>$\bar{S}$</literal>.
</para>
</listitem></varlistentry><varlistentry><term><indexterm role="fn"><primary>\cong</primary></indexterm><literal>\cong</literal>
@@ -10885,7 +11130,7 @@ turnstile&#160;<literal>\vdash</literal>.
</term><listitem><para>&#x03B4; Greek lowercase delta (ordinary).
</para>
</listitem></varlistentry><varlistentry><term><indexterm role="fn"><primary>\Diamond</primary></indexterm><literal>\Diamond</literal>
-</term><listitem><para>&#x25C7; Large diamond operator (ordinary). Not available in plain &tex;. In &latex; you need to load the <filename>amssymb</filename> package.
+</term><listitem><para>&#x25C7; Large diamond operator (ordinary). Not available in plain &tex;. In &latex; you need to load the <literal>amssymb</literal> package.
</para>
</listitem></varlistentry><varlistentry><term><indexterm role="fn"><primary>\diamond</primary></indexterm><literal>\diamond</literal>
</term><listitem><para>&#x22C4; Diamond operator (binary). Similar: large
@@ -11085,7 +11330,7 @@ for&#160;<literal>\le</literal>.
</listitem></varlistentry><varlistentry><term><indexterm role="fn"><primary>\lhd</primary></indexterm><literal>\lhd</literal>
</term><listitem><para>&#x25C1; Arrowhead, that is, triangle, pointing left (binary).
For the normal subgroup symbol you should load
-<filename>amssymb</filename> and use&#160;<literal>\vartriangleleft</literal> (which is a relation
+<literal>amssymb</literal> and use&#160;<literal>\vartriangleleft</literal> (which is a relation
and so gives better spacing).
</para>
</listitem></varlistentry><varlistentry><term><indexterm role="fn"><primary>\ll</primary></indexterm><literal>\ll</literal>
@@ -11174,7 +11419,7 @@ of&#160;<literal>\in</literal>.
following operator (relation).
</para>
<para>Many negated operators are available that don&#8217;t require <literal>\not</literal>,
-particularly with the <filename>amssymb</filename> package. For example, <literal>\notin</literal>
+particularly with the <literal>amssymb</literal> package. For example, <literal>\notin</literal>
is typographically preferable to <literal>\not\in</literal>.
</para>
</listitem></varlistentry><varlistentry><term><indexterm role="fn"><primary>\notin</primary></indexterm><literal>\notin</literal>
@@ -11295,11 +11540,11 @@ Similar: greater than&#160;<literal>&gt;</literal>. Matches:<literal>\langle</li
</listitem></varlistentry><varlistentry><term><indexterm role="fn"><primary>\Re</primary></indexterm><literal>\Re</literal>
</term><listitem><para>&#x211C; Real part, real numbers, cursive capital R (ordinary). Related:
double-line, or blackboard bold, R&#160;<literal>\mathbb{R}</literal>; to access
-this, load the <filename>amsfonts</filename> package.
+this, load the <literal>amsfonts</literal> package.
</para>
</listitem></varlistentry><varlistentry><term><indexterm role="fn"><primary>\restriction</primary></indexterm><literal>\restriction</literal>
</term><listitem><para>&#x21BE;, Restriction of a function (relation). Synonym:
-<literal>\upharpoonright</literal>. Not available in plain &tex;. In &latex; you need to load the <filename>amssymb</filename> package.
+<literal>\upharpoonright</literal>. Not available in plain &tex;. In &latex; you need to load the <literal>amssymb</literal> package.
</para>
</listitem></varlistentry><varlistentry><term><indexterm role="fn"><primary>\revemptyset</primary></indexterm><literal>\revemptyset</literal>
</term><listitem><para>&#x29B0;, Reversed empty set symbol (ordinary). Related:
@@ -11312,7 +11557,7 @@ off (closing). Matches&#160;<literal>\lfloor</literal>.
</listitem></varlistentry><varlistentry><term><indexterm role="fn"><primary>\rhd</primary></indexterm><literal>\rhd</literal>
</term><listitem><para>&#x25C1; Arrowhead, that is, triangle, pointing right (binary).
For the normal subgroup symbol you should instead
-load <filename>amssymb</filename> and use&#160;<literal>\vartriangleright</literal> (which is a
+load <literal>amssymb</literal> and use&#160;<literal>\vartriangleright</literal> (which is a
relation and so gives better spacing).
</para>
</listitem></varlistentry><varlistentry><term><indexterm role="fn"><primary>\rho</primary></indexterm><literal>\rho</literal>
@@ -11385,7 +11630,7 @@ operator&#160;<literal>\bigsqcup</literal>.
</para>
</listitem></varlistentry><varlistentry><term><indexterm role="fn"><primary>\sqsubset</primary></indexterm><literal>\sqsubset</literal>
</term><listitem><para>&#x228F;, Square subset symbol (relation). Similar:
-subset&#160;<literal>\subset</literal>. Not available in plain &tex;. In &latex; you need to load the <filename>amssymb</filename> package.
+subset&#160;<literal>\subset</literal>. Not available in plain &tex;. In &latex; you need to load the <literal>amssymb</literal> package.
</para>
</listitem></varlistentry><varlistentry><term><indexterm role="fn"><primary>\sqsubseteq</primary></indexterm><literal>\sqsubseteq</literal>
</term><listitem><para>&#x2291; Square subset or equal symbol (binary). Similar: subset or
@@ -11393,7 +11638,7 @@ equal to&#160;<literal>\subseteq</literal>.
</para>
</listitem></varlistentry><varlistentry><term><indexterm role="fn"><primary>\sqsupset</primary></indexterm><literal>\sqsupset</literal>
</term><listitem><para>&#x2290;, Square superset symbol (relation). Similar:
-superset&#160;<literal>\supset</literal>. Not available in plain &tex;. In &latex; you need to load the <filename>amssymb</filename> package.
+superset&#160;<literal>\supset</literal>. Not available in plain &tex;. In &latex; you need to load the <literal>amssymb</literal> package.
</para>
</listitem></varlistentry><varlistentry><term><indexterm role="fn"><primary>\sqsupseteq</primary></indexterm><literal>\sqsupseteq</literal>
</term><listitem><para>&#x2292; Square superset or equal symbol (binary).
@@ -11463,26 +11708,26 @@ Synonym:&#160;<literal>\rightarrow</literal>.
</listitem></varlistentry><varlistentry><term><indexterm role="fn"><primary>\triangleleft</primary></indexterm><literal>\triangleleft</literal>
</term><listitem><para>&#x25C1; Not-filled triangle pointing left
(binary). Similar:&#160;<literal>\lhd</literal>. For the normal subgroup symbol you
-should load <filename>amssymb</filename> and use&#160;<literal>\vartriangleleft</literal> (which
+should load <literal>amssymb</literal> and use&#160;<literal>\vartriangleleft</literal> (which
is a relation and so gives better spacing).
</para>
</listitem></varlistentry><varlistentry><term><indexterm role="fn"><primary>\triangleright</primary></indexterm><literal>\triangleright</literal>
</term><listitem><para>&#x25B7; Not-filled triangle pointing right
(binary). For the normal subgroup symbol you should instead load
-<filename>amssymb</filename> and use&#160;<literal>\vartriangleright</literal> (which is a
+<literal>amssymb</literal> and use&#160;<literal>\vartriangleright</literal> (which is a
relation and so gives better spacing).
</para>
</listitem></varlistentry><varlistentry><term><indexterm role="fn"><primary>\unlhd</primary></indexterm><literal>\unlhd</literal>
</term><listitem><para>&#x22B4; Left-pointing not-filled underlined arrowhead, that is,
triangle, with a line under (binary). For the
-normal subgroup symbol load <filename>amssymb</filename> and
+normal subgroup symbol load <literal>amssymb</literal> and
use&#160;<literal>\vartrianglelefteq</literal> (which is a relation and so gives
better spacing).
</para>
</listitem></varlistentry><varlistentry><term><indexterm role="fn"><primary>\unrhd</primary></indexterm><literal>\unrhd</literal>
</term><listitem><para>&#x22B5; Right-pointing not-filled underlined arrowhead, that is,
triangle, with a line under (binary). For the
-normal subgroup symbol load <filename>amssymb</filename> and
+normal subgroup symbol load <literal>amssymb</literal> and
use&#160;<literal>\vartrianglerighteq</literal> (which is a relation and so gives
better spacing).
</para>
@@ -11509,7 +11754,7 @@ arrow&#160;<literal>\Updownarrow</literal>.
</listitem></varlistentry><varlistentry><term><indexterm role="fn"><primary>\upharpoonright</primary></indexterm><literal>\upharpoonright</literal>
</term><listitem><para>&#x21BE;, Up harpoon, with barb on right side
(relation). Synonym:&#160;<literal>&#92;restriction</literal>.
-Not available in plain &tex;. In &latex; you need to load the <filename>amssymb</filename> package.
+Not available in plain &tex;. In &latex; you need to load the <literal>amssymb</literal> package.
</para>
</listitem></varlistentry><varlistentry><term><indexterm role="fn"><primary>\uplus</primary></indexterm><literal>\uplus</literal>
</term><listitem><para>&#x228E; Multiset union, a union symbol with a plus symbol in
@@ -11530,7 +11775,7 @@ membership&#160;<literal>\in</literal>.
</para>
</listitem></varlistentry><varlistentry><term><indexterm role="fn"><primary>\vanothing</primary></indexterm><literal>\vanothing</literal>
</term><listitem><para>&#x2205;, Empty set symbol. Similar: <literal>\emptyset</literal>. Related:
-<literal>\revemptyset</literal>. Not available in plain &tex;. In &latex; you need to load the <filename>amssymb</filename> package.
+<literal>\revemptyset</literal>. Not available in plain &tex;. In &latex; you need to load the <literal>amssymb</literal> package.
</para>
</listitem></varlistentry><varlistentry><term><indexterm role="fn"><primary>\varphi</primary></indexterm><literal>\varphi</literal>
</term><listitem><para>&#x03C6; Variant on the lowercase Greek letter (ordinary).
@@ -11566,13 +11811,13 @@ operator&#160;<literal>\bigvee</literal>.
</para>
</listitem></varlistentry><varlistentry><term><indexterm role="fn"><primary>\Vert</primary></indexterm><literal>\Vert</literal>
</term><listitem><para>&#x2016; Vertical double bar (ordinary). See <link linkend="Delimiters">Delimiters</link>,
-for how to use the <filename>mathtools</filename> package to create flexibly-sized
+for how to use the <literal>mathtools</literal> package to create flexibly-sized
norm symbols.
</para>
</listitem></varlistentry><varlistentry><term><indexterm role="fn"><primary>\vert</primary></indexterm><literal>\vert</literal>
</term><listitem><para>&#x007C; Single line vertical bar (ordinary). For &#8220;such
that&#8221;, as in the definition of a set, use&#160;<literal>\mid</literal> because it
-is a relation. See <link linkend="Delimiters">Delimiters</link>, for how to use the <filename>mathtools</filename>
+is a relation. See <link linkend="Delimiters">Delimiters</link>, for how to use the <literal>mathtools</literal>
package to create flexibly-sized absolute-value symbols.
</para>
</listitem></varlistentry><varlistentry><term><indexterm role="fn"><primary>\wedge</primary></indexterm><literal>\wedge</literal>
@@ -11631,7 +11876,7 @@ provides versions to use in mathematical text.
<indexterm role="cp"><primary><literal>latexsym</literal> package</primary></indexterm>
<para>These are the arrows that come with standard &latex;. The
-<filename>latexsym</filename> and <filename>amsfonts</filename> packages contain many more.
+<literal>latexsym</literal> and <literal>amsfonts</literal> packages contain many more.
</para>
<informaltable><tgroup cols="3"><colspec colwidth="10*"></colspec><colspec colwidth="40*"></colspec><colspec colwidth="50*"></colspec><thead><row><entry><para>Symbol</para></entry><entry><para>Command</para></entry><entry></entry></row></thead><tbody><row><entry><para>&#x021D3; </para></entry><entry><para><literal>\Downarrow</literal> </para></entry><entry></entry></row><row><entry><para>&#x02193; </para></entry><entry><para><literal>\downarrow</literal> </para></entry><entry></entry></row><row><entry><para>&#x021A9; </para></entry><entry><para><literal>\hookleftarrow</literal> </para></entry><entry></entry></row><row><entry><para>&#x021AA; </para></entry><entry><para><literal>\hookrightarrow</literal> </para></entry><entry></entry></row><row><entry><para>&#x2190; </para></entry><entry><para><literal>\leftarrow</literal> </para></entry><entry></entry></row><row><entry><para>&#x021D0; </para></entry><entry><para><literal>\Leftarrow</literal> </para></entry><entry></entry></row><row><entry><para>&#x021D4; </para></entry><entry><para><literal>\Leftrightarrow</literal> </para></entry><entry></entry></row><row><entry><para>&#x02194; </para></entry><entry><para><literal>\leftrightarrow</literal> </para></entry><entry></entry></row><row><entry><para>&#x027F5; </para></entry><entry><para><literal>\longleftarrow</literal> </para></entry><entry></entry></row><row><entry><para>&#x027F8; </para></entry><entry><para><literal>\Longleftarrow</literal> </para></entry><entry></entry></row><row><entry><para>&#x027F7; </para></entry><entry><para><literal>\longleftrightarrow</literal> </para></entry><entry></entry></row><row><entry><para>&#x027FA; </para></entry><entry><para><literal>\Longleftrightarrow</literal> </para></entry><entry></entry></row><row><entry><para>&#x027FC; </para></entry><entry><para><literal>\longmapsto</literal> </para></entry><entry></entry></row><row><entry><para>&#x027F9; </para></entry><entry><para><literal>\Longrightarrow</literal> </para></entry><entry></entry></row><row><entry><para>&#x027F6; </para></entry><entry><para><literal>\longrightarrow</literal> </para></entry><entry></entry></row><row><entry><para>&#x021A6; </para></entry><entry><para><literal>\mapsto</literal> </para></entry><entry></entry></row><row><entry><para>&#x02197; </para></entry><entry><para><literal>\nearrow</literal> </para></entry><entry></entry></row><row><entry><para>&#x02196; </para></entry><entry><para><literal>\nwarrow</literal> </para></entry><entry></entry></row><row><entry><para>&#x021D2; </para></entry><entry><para><literal>\Rightarrow</literal> </para></entry><entry></entry></row><row><entry><para>&#x02192; </para></entry><entry><para><literal>\rightarrow</literal>, or <literal>\to</literal> </para></entry><entry></entry></row><row><entry><para>&#x02198; </para></entry><entry><para><literal>\searrow</literal> </para></entry><entry></entry></row><row><entry><para>&#x02199; </para></entry><entry><para><literal>\swarrow</literal> </para></entry><entry></entry></row><row><entry><para>&#x02191; </para></entry><entry><para><literal>\uparrow</literal> </para></entry><entry></entry></row><row><entry><para>&#x021D1; </para></entry><entry><para><literal>\Uparrow</literal> </para></entry><entry></entry></row><row><entry><para>&#x02195; </para></entry><entry><para><literal>\updownarrow</literal> </para></entry><entry></entry></row><row><entry><para>&#x021D5; </para></entry><entry><para><literal>\Updownarrow</literal> </para></entry><entry></entry></row></tbody></tgroup></informaltable>
<para>An example of the difference between <literal>\to</literal> and <literal>\mapsto</literal>
@@ -11644,7 +11889,7 @@ is: <literal>\( f\colon D\to C \) given by \( n\mapsto n^2 \)</literal>.
<indexterm role="cp"><primary><literal>tikz-cd</literal> package</primary></indexterm>
<para>For commutative diagrams there are a number of packages, including
-<filename>tikz-cd</filename> and <filename>amscd</filename>.
+<literal>tikz-cd</literal> and <literal>amscd</literal>.
</para>
</sect2>
@@ -11691,7 +11936,7 @@ Font Warning: Command \mathversion invalid in math mode on input line
<indexterm role="cp"><primary><literal>bm</literal> package</primary></indexterm>
<para>There are many issues with <literal>\boldmath</literal>. New documents should use
-the <filename>bm</filename> package provided by the &latex; Project team. A complete
+the <literal>bm</literal> 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
</para>
@@ -11797,19 +12042,19 @@ parentheses delimiting the three subformulas.
<indexterm role="cp"><primary>package, <literal>mathtools</literal></primary></indexterm>
<indexterm role="cp"><primary><literal>mathtools</literal> package</primary></indexterm>
-<para>The <filename>mathtools</filename> package allows you to create commands for paired
+<para>The <literal>mathtools</literal> package allows you to create commands for paired
delimiters. For instance, if you put
<literal>\DeclarePairedDelimiter\abs{\lvert}{\rvert}</literal> in your preamble
then you get two commands for single-line vertical bars (they only work
-in math mode). The starred version, such as
+in math mode). The starred form, such as
<literal>\abs*{\frac{22}{7}}</literal>, has the height of the vertical bars
-match the height of the argument. The unstarred version, such as
+match the height of the argument. The unstarred form, such as
<literal>\abs{\frac{22}{7}}</literal>, has the bars fixed at a default height.
-This version accepts an optional argument, as in <literal>\abs[<replaceable>size
+This form accepts an optional argument, as in <literal>\abs[<replaceable>size
command</replaceable>]{\frac{22}{7}}</literal>, where the height of the bars is given in
-<replaceable>size command</replaceable>, such as <literal>\Bigg</literal>. Using <literal>\lVert</literal> and
-<literal>\rVert</literal> as the symbols will give you a norm symbol with the same
-behavior.
+<replaceable>size command</replaceable>, such as <literal>\Bigg</literal>. Using instead <literal>\lVert</literal>
+and <literal>\rVert</literal> as the symbols will give you a norm symbol with the
+same behavior.
</para>
@@ -11869,9 +12114,9 @@ case is that you want an unmatched brace, as below. Use a period,
\end{equation}
</screen>
<para>Note that to get a curly brace as a delimiter you must prefix it with a
-backslash, <literal>\{</literal>. (The packages <filename>amsmath</filename> and
-<filename>mathtools</filename> allow you to get the above construct through in a
-<literal>cases</literal> environment.)
+backslash, <literal>\{</literal> (see <link linkend="Reserved-characters">Reserved characters</link>). (The packages
+<literal>amsmath</literal> and <literal>mathtools</literal> allow you to get the above
+construct through in a <literal>cases</literal> environment.)
</para>
<para>The <literal>\left ... \right</literal> pair make a group. One consequence is that
the formula enclosed in the <literal>\left ... \right</literal> pair cannot have
@@ -11910,7 +12155,7 @@ form a group, the enclosed subformula will be typeset at its natural
width, with no stretching or shrinking to make the line fit better.
</para>
<para>&tex; scales the delimiters according to the height and depth of the
-contained formula. Here &latex; grows the brackets to extend the full
+enclosed formula. Here &latex; grows the brackets to extend the full
height of the integral.
</para>
<screen>\begin{equation}
@@ -11982,8 +12227,8 @@ causing &latex; to spread the lines apart. The larger sizes are meant
for displayed equations.
</para>
<para>See <link linkend="Delimiters">Delimiters</link>, for a list of the common delimiters. In the family of
-commands with &#8216;<literal>l</literal>&#8217; and &#8216;<literal>r</literal>&#8217;, <replaceable>delimiter1</replaceable> and
-<replaceable>delimiter2</replaceable> need not be the same.
+commands with &#8216;<literal>l</literal>&#8217; or&#160;&#8216;<literal>r</literal>&#8217;, <replaceable>delimiter1</replaceable> and
+<replaceable>delimiter2</replaceable> need not match together.
</para>
<para>The &#8216;<literal>l</literal>&#8217; and &#8216;<literal>r</literal>&#8217; commands produce open and close delimiters
that insert no horizontal space between a preceding atom and the
@@ -12012,14 +12257,14 @@ some circumstances, as with this large vertical line
<indexterm role="cp"><primary><literal>amsmath</literal> package</primary></indexterm>
<para>(many authors would replace <literal>\frac</literal> with the <literal>\tfrac</literal> command
-from the <filename>amsmath</filename> package), and as with this larger slash.
+from the <literal>amsmath</literal> package), and as with this larger slash.
</para>
<screen>\begin{equation}
\lim_{n\to\infty}\pi(n) \big/ (n/\log n) = 1
\end{equation}
</screen>
<para>Unlike the <literal>\left...\right</literal> pair (see <link linkend="_005cleft-_0026-_005cright">\left &amp; \right</link>), the
-commands here with &#8216;<literal>l</literal>&#8217; and&#160;&#8216;<literal>r</literal>&#8217; do not make a group.
+commands here with &#8216;<literal>l</literal>&#8217; or&#160;&#8216;<literal>r</literal>&#8217; do not make a group.
Strictly speaking they need not be matched so you can write something
like this.
</para>
@@ -12069,7 +12314,7 @@ usage.
<anchor id="ellipses-ldots"/></listitem></varlistentry><varlistentry><term><indexterm role="fn"><primary>\ldots</primary></indexterm><literal>\ldots</literal>
</term><listitem><para>Ellipsis on the baseline, &#x2026;. Used as: <literal>\(
x_0,\ldots x_{n-1} \)</literal>. Another example is the above array example. A
-synonym is <literal>\mathellipsis</literal>. A synonym from the <filename>amsmath</filename>
+synonym is <literal>\mathellipsis</literal>. A synonym from the <literal>amsmath</literal>
package is <literal>\hdots</literal>.
</para>
<para>You can also use this command outside of mathematical text, as in
@@ -12084,7 +12329,7 @@ usage.
<indexterm role="cp"><primary>package, <literal>amsmath</literal></primary></indexterm>
<indexterm role="cp"><primary><literal>amsmath</literal> package</primary></indexterm>
-<para>The <filename>amsmath</filename> package has the command <literal>\dots</literal> to semantically
+<para>The <literal>amsmath</literal> package has the command <literal>\dots</literal> to semantically
mark up ellipses. This example produces two different-looking outputs
for the first two uses of the <literal>\dots</literal> command.
</para>
@@ -12145,7 +12390,7 @@ differ from Roman upper case letters.
<para>For omicron, if you are using &latex;&#8217;s default Computer Modern font
then enter omicron just as &#8216;<literal>o</literal>&#8217; or &#8216;<literal>O</literal>&#8217;. If you like having the
name or if your font shows a difference then you can use something like
-<literal>\newcommand\omicron{o}</literal>. The package <filename>unicode-math</filename> has
+<literal>\newcommand\omicron{o}</literal>. The package <literal>unicode-math</literal> has
<literal>\upomicron</literal> for upright omicron and <literal>\mitomicron</literal> for math
italic.
</para>
@@ -12273,7 +12518,7 @@ spacing.
<indexterm role="cp"><primary>package, <literal>amsmath</literal></primary></indexterm>
<indexterm role="cp"><primary><literal>amsmath</literal> package</primary></indexterm>
-<para>The <filename>amsmath</filename> package adds improvements on some of these, and also
+<para>The <literal>amsmath</literal> 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
<literal>\DeclareMathOperator{\identity}{id}</literal> that is like the ones
@@ -12374,7 +12619,7 @@ descenders, so in <literal>\(\underline{y}\)</literal> the line is lower than in
<indexterm role="cp"><primary>package, <literal>ulem</literal></primary></indexterm>
<indexterm role="cp"><primary><literal>ulem</literal> package</primary></indexterm>
-<para>Note that the package <filename>ulem</filename> does text mode underlining and allows
+<para>Note that the package <literal>ulem</literal> does text mode underlining and allows
line breaking as well as a number of other features. See the
documentation on CTAN. See also&#160;<link linkend="_005chrulefill-_0026-_005cdotfill">\hrulefill &amp; \dotfill</link> for
producing a line, for such things as a signature.
@@ -12408,7 +12653,7 @@ unconnected to the underbrace.
<indexterm role="cp"><primary>package, <literal>mathtools</literal></primary></indexterm>
<indexterm role="cp"><primary><literal>mathtools</literal> package</primary></indexterm>
-<para>The package <filename>mathtools</filename> adds an over- and underbrace, as well as
+<para>The package <literal>mathtools</literal> adds an over- and underbrace, as well as
some improvements on the braces. See the documentation on CTAN.
</para>
@@ -12440,30 +12685,35 @@ a&#160;&#8216;<literal>M</literal>&#8217;.
<variablelist><varlistentry><term><literal>\;</literal>
</term><listitem><indexterm role="fn"><primary>\;</primary></indexterm>
<indexterm role="fn"><primary>\thickspace</primary></indexterm>
-<anchor id="spacing-in-math-mode-thickspace"/><para>Synonym: <literal>\thickspace</literal>. Normally <literal>5.0mu plus 5.0mu</literal>.
-With <literal>amsmath</literal>, 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.
+<anchor id="spacing-in-math-mode-thickspace"/><indexterm role="cp"><primary>package, <literal>amsmath</literal></primary></indexterm>
+<indexterm role="cp"><primary><literal>amsmath</literal> package</primary></indexterm>
+
+<para>Synonym: <literal>\thickspace</literal>. Normally <literal>5.0mu plus 5.0mu</literal>. With
+the <literal>amsmath</literal> 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.
</para>
</listitem></varlistentry><varlistentry><term><literal>\negthickspace</literal>
</term><listitem><indexterm role="fn"><primary>\negthickspace</primary></indexterm>
-<para>Normally <literal>-5.0mu plus 2.0mu minus 4.0mu</literal>.
-With <literal>amsmath</literal>, 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.
+<para>Normally <literal>-5.0mu plus 2.0mu minus 4.0mu</literal>. With the <literal>amsmath</literal>
+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.
</para>
</listitem></varlistentry><varlistentry><term><literal>\:</literal>
</term><term><literal>\&gt;</literal>
</term><listitem><indexterm role="fn"><primary>\:</primary></indexterm>
<indexterm role="fn"><primary>\&gt;</primary></indexterm>
<indexterm role="fn"><primary>\medspace</primary></indexterm>
-<anchor id="spacing-in-math-mode-medspace"/><para>Synonym: <literal>\medspace</literal>. Normally <literal>4.0mu plus 2.0mu minus 4.0mu</literal>.
-With <literal>amsmath</literal>, 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.
+<anchor id="spacing-in-math-mode-medspace"/><para>Synonym: <literal>\medspace</literal>. Normally <literal>4.0mu plus 2.0mu minus
+4.0mu</literal>. With the <literal>amsmath</literal> 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.
</para>
</listitem></varlistentry><varlistentry><term><literal>\negmedspace</literal>
</term><listitem><indexterm role="fn"><primary>\negmedspace</primary></indexterm>
-<para>Normally <literal>-4.0mu plus 2.0mu minus 4.0mu</literal>.
-With <literal>amsmath</literal>, 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.
+<para>Normally <literal>-4.0mu plus 2.0mu minus 4.0mu</literal>. With the <literal>amsmath</literal>
+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.
</para>
</listitem></varlistentry><varlistentry><term><literal>\,</literal>
</term><listitem><indexterm role="fn"><primary>\,</primary></indexterm>
@@ -12486,11 +12736,12 @@ this, before punctuation in a displayed equation.
</term><listitem><indexterm role="fn"><primary>\!</primary></indexterm>
<indexterm role="fn"><primary>\negthinspace</primary></indexterm>
<indexterm role="cp"><primary>thin space, negative</primary></indexterm>
-<anchor id="spacing-in-math-mode-negthinspace"/><para>A negative thin space. Normally <literal>-3mu</literal>.
-With <literal>amsmath</literal>, or as of the 2020-10-01 &latex; release, can be
-used in text mode as well as math mode; before that,
-The <literal>\!</literal> command is math mode only but the <literal>\negthinspace</literal>
-command has always worked in text mode (see <link linkend="_005cthinspace-_0026-_005cnegthinspace">\thinspace &amp; \negthinspace</link>).
+<anchor id="spacing-in-math-mode-negthinspace"/><para>Synonym: <literal>\negthinspace</literal>. A negative thin space. Normally
+<literal>-3mu</literal>. With the <literal>amsmath</literal> package, or as of the 2020-10-01
+&latex; release, can be used in text mode as well as math mode;
+otherwise, the <literal>\!</literal> command is math mode only but the
+<literal>\negthinspace</literal> command has always also worked in text mode
+(see <link linkend="_005cthinspace-_0026-_005cnegthinspace">\thinspace &amp; \negthinspace</link>).
</para>
</listitem></varlistentry><varlistentry><term><literal>\quad</literal>
</term><listitem><indexterm role="cp"><primary>quad</primary></indexterm>
@@ -12601,10 +12852,12 @@ control over smashing a subformula box.
<para>The <literal>\phantom</literal> command creates a box with the same height, depth,
and width as <replaceable>subformula</replaceable>, but empty. That is, this command causes
&latex; to typeset the space but not fill it with the material. Here
-&latex; will put a box of the right size for the quotation, but empty.
+&latex; will put a blank line that is the correct width for the answer,
+but will not show that answer.
</para>
-<screen>\fbox{\phantom{Conservatism is the fear-filled worship of dead radicals.
- --- Mark Twain}}
+<screen>\begin{displaymath}
+ \int x^2\,dx=\mbox{\underline{$\phantom{(1/3)x^3+C}$}}
+\end{displaymath}
</screen>
<para>The <literal>\vphantom</literal> variant produces an invisible box with the same
vertical size as <replaceable>subformula</replaceable>, the same height and depth, but having
@@ -12634,7 +12887,7 @@ a suite of other commands to work with box sizes that may be more
convenient, including <literal>\makebox</literal> (see <link linkend="_005cmbox-_0026-_005cmakebox">\mbox &amp; \makebox</link>) as well
as <literal>\settodepth</literal> (see <link linkend="_005csettodepth">\settodepth</link>), <literal>\settoheight</literal>
(see <link linkend="_005csettoheight">\settoheight</link>), and <literal>\settowidth</literal> (see <link linkend="_005csettowidth">\settowidth</link>).
-In addition, the <filename>mathtools</filename> package has many commands that offer
+In addition, the <literal>mathtools</literal> package has many commands that offer
fine-grained control over spacing.
</para>
<indexterm role="cp"><primary>package, <literal>amsmath</literal></primary></indexterm>
@@ -12643,7 +12896,7 @@ fine-grained control over spacing.
<para>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 <literal>\operatorname</literal>
-command from the package <filename>amsmath</filename>.
+command from the package <literal>amsmath</literal>.
</para>
<para>While most often used in mathematics, these three can appear in other
contexts. However, they don&#8217;t cause &latex; to change into horizontal
@@ -12661,6 +12914,7 @@ with <literal>\leavevmode</literal>.
<indexterm role="cp"><primary>math mode, spacing</primary></indexterm>
<indexterm role="cp"><primary>invisible character</primary></indexterm>
<indexterm role="cp"><primary>character, invisible</primary></indexterm>
+<indexterm role="cp"><primary>strut, math</primary></indexterm>
<para>Synopsis:
</para>
@@ -12684,7 +12938,88 @@ amount of space, use <literal>\rule</literal> with a width of zero. See <link l
</sect2>
</sect1>
-<sect1 label="16.7" id="Math-miscellany">
+<sect1 label="16.7" id="Math-styles">
+<title>Math styles</title>
+
+<indexterm role="cp"><primary>math styles</primary></indexterm>
+
+<para>&tex;&#8217;s rules for typesetting a formula depend on the context. For
+example, inside a displayed equation, the input <literal>\sum_{0\leq
+i&lt;n}k^m=\frac{n^{m+1}}{m+1}+\mbox{lower order terms}</literal> 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&#8217;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.
+</para>
+<para>&tex; uses four math styles.
+</para>
+<itemizedlist>
+<listitem><indexterm role="cp"><primary>display style</primary></indexterm>
+<para>Display style is for a formula displayed on a line by itself, such as
+with <literal>\begin{equation} ... \end{equation}</literal>.
+</para>
+</listitem><listitem><indexterm role="cp"><primary>text style</primary></indexterm>
+<para>Text style is for an inline formula, as with &#8216;<literal>so we have $ ... $</literal>&#8217;.
+</para>
+</listitem><listitem><indexterm role="cp"><primary>script style</primary></indexterm>
+<para>Script style is for parts of a formula in a subscript or superscript.
+</para>
+</listitem><listitem><indexterm role="cp"><primary>scriptscript style</primary></indexterm>
+<para>Scriptscript style is for parts of a formula at a second level (or more)
+of subscript or superscript.
+</para>
+</listitem></itemizedlist>
+<indexterm role="fn"><primary>\displaystyle</primary></indexterm>
+<indexterm role="fn"><primary>\textstyle</primary></indexterm>
+<indexterm role="fn"><primary>\scriptstyle</primary></indexterm>
+<indexterm role="fn"><primary>\scriptscriptstyle</primary></indexterm>
+<para>&tex; determines a default math style but you can override it with a
+declaration of <literal>\displaystyle</literal>, or <literal>\textstyle</literal>, or
+<literal>\scriptstyle</literal>, or <literal>\scriptscriptstyle</literal>.
+</para>
+<para>In this example, the &#8216;<literal>Arithmetic</literal>&#8217; line&#8217;s fraction will look
+scrunched.
+</para>
+<screen>\begin{tabular}{r|cc}
+ \textsc{Name} &amp;\textsc{Series} &amp;\textsc{Sum} \\ \hline
+ Arithmetic &amp;$a+(a+b)+(a+2b)+\cdots+(a+(n-1)b)$
+ &amp;$na+(n-1)n\cdot\frac{b}{2}$ \\
+ Geometric &amp;$a+ab+ab^2+\cdots+ab^{n-1}$
+ &amp;$\displaystyle a\cdot\frac{1-b^n}{1-b}$ \\
+\end{tabular}
+</screen>
+<para>But because of the <literal>\displaystyle</literal> declaration,
+the &#8216;<literal>Geometric</literal>&#8217; line&#8217;s fraction will be easy to read, with
+characters the same size as in the rest of the line.
+</para>
+<para>Another example is that, compared to the same input without the
+declaration, the result of
+</para>
+<screen>we get
+$\pi=2\cdot{\displaystyle\int_{x=0}^1 \sqrt{1-x^2}\,dx}$
+</screen>
+<para>will have an integral sign that is much taller. Note that here the
+<literal>\displaystyle</literal> applies to only part of the formula, and it is
+delimited by being inside curly braces, as &#8216;<literal>{\displaystyle ...}</literal>&#8217;.
+</para>
+<para>The last example is a continued fraction.
+</para>
+<screen>\begin{equation}
+a_0+\frac{1}{
+ \displaystyle a_1+\frac{\mathstrut 1}{
+ \displaystyle a_2+\frac{\mathstrut 1}{
+ \displaystyle a_3}}}
+\end{equation}
+</screen>
+<para>Without the <literal>\displaystyle</literal> declarations, the denominators would be
+set in script style and scriptscript style. (The <literal>\mathstrut</literal>
+improves the height of the denominators; see <link linkend="_005cmathstrut">\mathstrut</link>.)
+</para>
+
+</sect1>
+<sect1 label="16.8" id="Math-miscellany">
<title>Math miscellany</title>
<indexterm role="cp"><primary>math miscellany</primary></indexterm>
@@ -12694,7 +13029,7 @@ some that don&#8217;t fit into other categories.
</para>
-<sect2 label="16.7.1" id="Colon-character-_0026-_005ccolon">
+<sect2 label="16.8.1" id="Colon-character-_0026-_005ccolon">
<title>Colon character <literal>:</literal> &amp; <literal>\colon</literal></title>
<indexterm role="cp"><primary>colon character</primary></indexterm>
@@ -12720,13 +13055,13 @@ with the spacing appropriate for punctuation, as in set-builder notation
<indexterm role="cp"><primary>package, <literal>amsmath</literal></primary></indexterm>
<indexterm role="cp"><primary><literal>amsmath</literal> package</primary></indexterm>
-<para>But the widely-used <filename>amsmath</filename> package defines <literal>\colon</literal> for use
+<para>But the widely-used <literal>amsmath</literal> package defines <literal>\colon</literal> for use
in the definition of functions <literal>f\colon D\to C</literal>. So if you want
the colon character as a punctuation then use <literal>\mathpunct{:}</literal>.
</para>
</sect2>
-<sect2 label="16.7.2" id="_005c_002a">
+<sect2 label="16.8.2" id="_005c_002a">
<title><literal>\*</literal></title>
<indexterm role="cp"><primary>multiplication, discretionary</primary></indexterm>
@@ -12751,7 +13086,7 @@ break, followed by <literal>\( A_3 A_4 \)</literal>.
</para>
</sect2>
-<sect2 label="16.7.3" id="_005cfrac">
+<sect2 label="16.8.3" id="_005cfrac">
<title><literal>\frac</literal></title>
<indexterm role="cp"><primary>fraction</primary></indexterm>
@@ -12768,7 +13103,7 @@ mode it comes out small; see the discussion of <literal>\displaystyle</literal>
</para>
</sect2>
-<sect2 label="16.7.4" id="_005csqrt">
+<sect2 label="16.8.4" id="_005csqrt">
<title><literal>\sqrt</literal></title>
<indexterm role="cp"><primary>square root</primary></indexterm>
@@ -12792,7 +13127,7 @@ a large enough <literal>arg</literal>, it is vertical).
</para>
</sect2>
-<sect2 label="16.7.5" id="_005cstackrel">
+<sect2 label="16.8.5" id="_005cstackrel">
<title><literal>\stackrel</literal></title>
<indexterm role="cp"><primary>stack math</primary></indexterm>
@@ -12822,9 +13157,11 @@ in one mode or another (in particular, many commands only work in one of
the math modes), and error messages will refer to these.
</para>
<itemizedlist><listitem><anchor id="modes-paragraph-mode"/><indexterm role="cp"><primary>paragraph mode</primary></indexterm>
-<para><firstterm>Paragraph mode</firstterm> is what &latex; is in when processing ordinary
-text. It breaks the input text into lines and breaks the lines into
-pages. This is the mode &latex; is in most of the time.
+<para><firstterm>Paragraph mode</firstterm> (in plain &tex; this is called <firstterm>horizontal
+mode</firstterm>) 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.
</para>
<indexterm role="cp"><primary>left-to-right mode</primary></indexterm>
<indexterm role="cp"><primary>LR mode</primary></indexterm>
@@ -12849,13 +13186,15 @@ ones. One example is that the placement of the subscript on <literal>\int</lite
differs in the two situations.)
</para>
</listitem><listitem><indexterm role="cp"><primary>vertical mode</primary></indexterm>
-<anchor id="modes-vertical-mode"/><para><firstterm>Vertical mode</firstterm> is when &latex; is building the list of lines and
-other material making the output page. This is the mode &latex; is in
-when it starts a document.
+<anchor id="modes-vertical-mode"/><para><firstterm>Vertical mode</firstterm> 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.
</para>
<indexterm role="cp"><primary>internal vertical mode</primary></indexterm>
<anchor id="modes-internal-vertical-mode"/><para><firstterm>Internal vertical mode</firstterm> is in effect when &latex; starts making a
-<literal>\vbox</literal>. This is the vertical analogue of LR mode.
+<literal>\vbox</literal>. It has not such thing as page breaks, and as such is the
+vertical analogue of LR mode.
</para>
</listitem></itemizedlist>
<para>For instance, if you begin a &latex; article with &#8216;<literal>Let \( x \) be
@@ -12916,7 +13255,7 @@ the first page of an article.
<indexterm role="cp"><primary>package, <literal>fancyhdr</literal></primary></indexterm>
<indexterm role="cp"><primary><literal>fancyhdr</literal> package</primary></indexterm>
-<para>The package <filename>fancyhdr</filename> is very helpful for constructing page
+<para>The package <literal>fancyhdr</literal> is very helpful for constructing page
styles. See its documentation on CTAN.
</para>
@@ -13056,7 +13395,7 @@ get &#8216;<literal>LaTeX Error: Counter too large</literal>&#8217;.
<indexterm role="cp"><primary><literal>hyperref</literal> package</primary></indexterm>
<para>&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 <filename>hyperref</filename> so to have the page number
+work with the popular package <literal>hyperref</literal> so to have the page number
not appear you may want to instead use <literal>\pagestyle{empty}</literal> or
<literal>\thispagestyle{empty}</literal>.)
</para>
@@ -13066,10 +13405,9 @@ contents, etc.&#8212;then it is numbered with lowercase Roman numerals. The
main matter of a document uses arabic. See <link linkend="_005cfrontmatter-_0026-_005cmainmatter-_0026-_005cbackmatter">\frontmatter &amp; \mainmatter
&amp; \backmatter</link>.
</para>
-<para>If you want to address where the page number appears on the page,
-see&#160;<link linkend="_005cpagestyle">\pagestyle</link>. If you want to change the value of page
-number then you will manipulate the <literal>page</literal> counter
-(see <link linkend="Counters">Counters</link>).
+<para>If you want to change where the page number appears on the page,
+see&#160;<link linkend="_005cpagestyle">\pagestyle</link>. If you want to change the value of the page
+number, then you manipulate the <literal>page</literal> counter (see <link linkend="Counters">Counters</link>).
</para>
</sect1>
@@ -13092,7 +13430,7 @@ from the current page onwards.
<indexterm role="cp"><primary><literal>fancyhdr</literal> package</primary></indexterm>
<para>A discussion with an example is below. Note first that the package
-<filename>fancyhdr</filename> is now the standard way to manipulate headers and
+<literal>fancyhdr</literal> 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.
@@ -13103,7 +13441,7 @@ on CTAN.
</term><listitem><para>The header is empty. The footer contains only a page number, centered.
</para>
</listitem></varlistentry><varlistentry><term><literal>empty</literal>
-</term><listitem><para>The header and footer is empty.
+</term><listitem><para>The header and footer are both empty.
</para>
</listitem></varlistentry><varlistentry><term><literal>headings</literal>
</term><listitem><para>Put running headers and footers on each page. The document style
@@ -13213,11 +13551,9 @@ To make the page entirely empty, the command
<indexterm role="cp"><primary>spaces</primary></indexterm>
<indexterm role="cp"><primary>white space</primary></indexterm>
-<para>&latex; has many ways to produce white (or filled) space. Some of
-these are best suited to mathematical text; see&#160;<link linkend="Spacing-in-math-mode">Spacing in
-math mode</link>. Some spacing commands are suitable for both regular text
-and mathematical text; versions of some of these commands are in this
-chapter.
+<para>&latex; has many ways to produce white space, or filled space. Some of
+these are best suited to mathematical text; for these
+see&#160;<link linkend="Spacing-in-math-mode">Spacing in math mode</link>.
</para>
@@ -13264,20 +13600,21 @@ in many circumstances than arbitrary lengths, such as you get with
<screen>\hspace{<replaceable>length</replaceable>}
\hspace*{<replaceable>length</replaceable>}
</screen>
-<para>Insert the horizontal space <replaceable>length</replaceable>. The <replaceable>length</replaceable> can be
-positive, negative, or zero; adding negative space is like backspacing.
-It is a rubber length, that is, it may contain a <literal>plus</literal> or
-<literal>minus</literal> component, or both (see <link linkend="Lengths">Lengths</link>). Because the space is
-stretchable and shrinkable, it is sometimes called <firstterm>glue</firstterm>.
+<para>Insert the amount <replaceable>length</replaceable> of horizontal space. The <replaceable>length</replaceable> 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
+<literal>plus</literal> or <literal>minus</literal> component, or both (see <link linkend="Lengths">Lengths</link>).
+Because the space is stretchable and shrinkable, it is sometimes called
+<firstterm>glue</firstterm>.
</para>
<para>This makes a line with &#8216;<literal>Name:</literal>&#8217; an inch from the right margin.
</para>
<screen>\noindent\makebox[\linewidth][r]{Name:\hspace{1in}}
</screen>
-<para>The <literal>*</literal>-version inserts horizontal space that non-discardable.
-More precisely, when &tex; breaks a paragraph into lines any white
+<para>The <literal>*</literal>-form inserts horizontal space that is non-discardable. More
+precisely, when &tex; breaks a paragraph into lines any white
space&#8212;glues and kerns&#8212;that come at a line break are discarded. The
-<literal>*</literal>-version avoids that (technically, it adds a non-discardable
+<literal>*</literal>-form avoids that (technically, it adds a non-discardable
invisible item in front of the space).
</para>
<para>In this example
@@ -13498,8 +13835,9 @@ Examples are <literal>Nat.\ Acad.\ Science</literal>, and <literal>Mr.~Bean</lit
</para>
</sect2>
-<sect2 label="19.5.2" id="_005cfrenchspacing">
-<title><literal>\frenchspacing</literal></title>
+<anchor id="_005cfrenchspacing"/><!-- old node name -->
+<sect2 label="19.5.2" id="_005cfrenchspacing-_0026-_005cnonfrenchspacing">
+<title><literal>\frenchspacing</literal> &amp; <literal>\nonfrenchspacing</literal></title>
<indexterm role="fn"><primary>\frenchspacing</primary></indexterm>
<indexterm role="fn"><primary>\nonfrenchspacing</primary></indexterm>
@@ -13510,10 +13848,11 @@ Examples are <literal>Nat.\ Acad.\ Science</literal>, and <literal>Mr.~Bean</lit
<screen>\frenchspacing
\nonfrenchspacing
</screen>
-<para>The first declaration causes &latex; to treat spacing between sentences
-in the same way as spacing between words in the middle of a sentence.
-The second causes spacing between sentences to stretch or shrink more
-(see <link linkend="_005cspacefactor">\spacefactor</link>); this is the default.
+<para>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
+(see <link linkend="_005cspacefactor">\spacefactor</link>).
</para>
<para>Some typographic traditions, including English, prefer to adjust the
space between sentences (or spaces following a question mark,
@@ -13534,7 +13873,7 @@ spaces are treated equally.
</para>
<screen>\normalsfcodes
</screen>
-<para>Reset the &latex; space factor values to the default
+<para>Reset the &latex; space factors to the default values
(see <link linkend="_005cspacefactor">\spacefactor</link>).
</para>
@@ -13543,16 +13882,17 @@ spaces are treated equally.
<sect1 label="19.6" id="_005c_0028SPACE_0029">
<title>Backslash-space, <literal>\ </literal></title>
-<indexterm role="cp"><primary>\NEWLINE</primary></indexterm>
-<indexterm role="cp"><primary>\SPACE</primary></indexterm>
-<indexterm role="cp"><primary>\ (backslash-space)</primary></indexterm>
-<indexterm role="cp"><primary>\TAB</primary></indexterm>
-<indexterm role="fn"><primary>\SPACE</primary></indexterm>
+<indexterm role="cp"><primary>\<keycap>NEWLINE</keycap></primary></indexterm>
+<indexterm role="cp"><primary>\<keycap>SPACE</keycap></primary></indexterm>
+<indexterm role="cp"><primary>\<keycap>TAB</keycap></primary></indexterm>
+<indexterm role="fn"><primary>\ <!-- /@w --> (backslash-space)</primary></indexterm>
+<indexterm role="fn"><primary>\<keycap>SPACE</keycap></primary></indexterm>
<para>This section refers to the command consisting of two characters, a
-backslash followed by a space. Synopsis:
+backslash followed by a space.
+Synopsis:
</para>
-<screen>\
+<screen>\ <!-- /@w -->
</screen>
<para>Produce a space. By default it produces white space of length
3.33333pt plus 1.66666pt minus 1.11111pt.
@@ -13560,35 +13900,48 @@ backslash followed by a space. Synopsis:
<para>When you type one or more blanks between words, &latex; produces white
space. But that is different than an explicit space. This illustrates.
</para>
-<screen>\begin{tabular}{l}
-One blank: makes some space \\
-Three blanks: in a row \\
-Three spaces:\ \ \ in a row \\
+<screen>\begin{tabular}{rl}
+One blank:&amp; makes some space \\
+Three blanks:&amp; in a row \\
+Three spaces:&amp;\ \ \ in a row \\
\end{tabular}
</screen>
<para>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 a blank followed by a
-tab, or a blank and a newline and a blank. 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
-<literal>\hspace</literal>; see&#160;<link linkend="_005chspace">\hspace</link>.)
+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 <literal>\hspace</literal>;
+see&#160;<link linkend="_005chspace">\hspace</link>.)
</para>
<para>The backslash-space command has two main uses. It is often used after
-control sequences to keep them from gobbling the space that follows, as
-in <literal>\TeX\ is nice</literal>. (But using curly parentheses, as in
-<literal>\TeX{} is best</literal>, has the advantage of still working if the next
-character is a period.) The other common use is that it marks a period
-as ending an abbreviation instead of ending a sentence, as in <literal>So
-says Prof.\ Smith</literal> or <literal>Jones et al.\ (1993)</literal> (see <link linkend="_005c_0040">\@</link>).
-</para>
-<para>Under normal circumstances, <literal>\</literal><keycap>tab</keycap> and <literal>\</literal><keycap>newline</keycap>
+control sequences to keep them from gobbling the blank that follows, as
+after <literal>\TeX</literal> in <literal>\TeX\ (or \LaTeX)</literal>. (But using curly braces
+has the advantage of still working whether the next character is a blank
+or any other non-letter, as in <literal>\TeX{} (or \LaTeX{})</literal> in which
+<literal>{}</literal> can be added after <literal>\LaTeX</literal> as well as after
+<literal>\TeX</literal>.) The other common use is that it marks a period as ending
+an abbreviation instead of ending a sentence, as in <literal>Prof.\ Smith</literal>
+or <literal>Jones et al.\ (1993)</literal> (see <link linkend="_005c_0040">\@</link>).
+</para>
+<para>Under normal circumstances, <literal>\</literal><keycap>TAB</keycap> and <literal>\</literal><keycap>NEWLINE</keycap>
are equivalent to backslash-space, <literal>\ </literal>.
</para>
+<anchor id="Leading-blanks"/><para>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 &#8216;<literal>one word</literal>&#8217;:
+</para>
+<screen>one
+ word
+</screen>
+<para>where the white space between &#8216;<literal>one</literal>&#8217; and &#8216;<literal>word</literal>&#8217; is produced by
+the newline after &#8216;<literal>one</literal>&#8217;, not by the space before &#8216;<literal>word</literal>&#8217;.
+</para>
<!-- @PkgIndex{xspace} -->
-<!-- Some individual commands, notably those defined with the @code{xspace}, -->
+<!-- Some individual commands, notably those defined with the @package{xspace}, -->
<!-- package do not follow the standard behavior. -->
@@ -13607,12 +13960,19 @@ are equivalent to backslash-space, <literal>\ </literal>.
</para>
<screen><replaceable>before</replaceable>~<replaceable>after</replaceable>
</screen>
-<para>The tie character, <literal>~</literal>, produces a space between <replaceable>before</replaceable> and
+<para>The <firstterm>tie</firstterm> character, <literal>~</literal>, produces a space between <replaceable>before</replaceable> and
<replaceable>after</replaceable> at which the line will not be broken. By default the white
space has length 3.33333pt plus 1.66666pt minus
1.11111pt (see <link linkend="Lengths">Lengths</link>).
</para>
-<para>Here &latex; will not break the line between the final two words.
+<!-- This paragraph is not translated to French, as the French translation -->
+<!-- uses a term that means ``unbreakable''. -->
+<para>Note that the word &#8216;<literal>tie</literal>&#8217; has this meaning in the &tex;/Texinfo
+community; this differs from the typographic term &#8220;tie&#8221;, which
+is a diacritic in the shape of an arc, called a &#8220;tie-after&#8221; accent
+in <citetitle>The &tex;book</citetitle>.
+</para>
+<para>Here &latex; will not break the line between the final two words:
</para>
<screen>Thanks to Prof.~Lerman.
</screen>
@@ -13628,7 +13988,7 @@ words in an <literal>\mbox</literal> (see <link linkend="_005cmbox-_0026-_005cma
among readers. Nevertheless, here are some usage models, many of them
from <citetitle>The &tex;book</citetitle>.
</para>
-<itemizedlist><listitem><para>Between an enumerator and its item, such as in references:
+<itemizedlist><listitem><para>Between an enumerator label and number, such as in references:
<literal>Chapter~12</literal>, or <literal>Theorem~\ref{th:Wilsons}</literal>, or
<literal>Figure~\ref{fig:KGraph}</literal>.
</para>
@@ -13639,10 +13999,10 @@ from <citetitle>The &tex;book</citetitle>.
<indexterm role="cp"><primary><literal>siunitx</literal> package</primary></indexterm>
</listitem><listitem><para>Between a number and its unit: <literal>$745.7.8$~watts</literal> (the
-<filename>siunitx</filename> package has a special facility for this) or
-<literal>144~eggs</literal>. This includes between a month and a date:
-<literal>October~12</literal> or <literal>12~Oct</literal>. In general, in any expressions
-where numbers and abbreviations or symbols are separated by a space:
+<literal>siunitx</literal> package has a special facility for this) or
+<literal>144~eggs</literal>. This includes between a month and day number in a date:
+<literal>October~12</literal> or <literal>12~Oct</literal>. In general, in any expressions where
+numbers and abbreviations or symbols are separated by a space:
<literal>AD~565</literal>, or <literal>2:50~pm</literal>, or <literal>Boeing~747</literal>, or
<literal>268~Plains Road</literal>, or <literal>\$$1.4$~billion</literal>. Other common
choices here are a thin space (see <link linkend="_005cthinspace-_0026-_005cnegthinspace">\thinspace &amp; \negthinspace</link>) and
@@ -13701,11 +14061,14 @@ think the three dots and/or four dots are plenty). Another
style-specific use is between initials, as in <literal>D.\thinspace E.\
Knuth</literal>.
</para>
-<para>&latex; provides a variety of similar spacing commands
-(see <link linkend="Spacing-in-math-mode">Spacing in math mode</link>). With <literal>amsmath</literal>, or as of the
-2020-10-01 &latex; release, they can be used in text mode as well as
-math mode, including <literal>\!</literal> for <literal>\negthinspace</literal>; before that,
-they were available only in math mode.
+<indexterm role="cp"><primary>package, <literal>amsmath</literal></primary></indexterm>
+<indexterm role="cp"><primary><literal>amsmath</literal> package</primary></indexterm>
+
+<para>&latex; provides a variety of similar spacing commands for math mode
+(see <link linkend="Spacing-in-math-mode">Spacing in math mode</link>). With the <literal>amsmath</literal> package, or as
+of the 2020-10-01 &latex; release, they can be used in text mode as
+well as math mode, including <literal>\!</literal> for <literal>\negthinspace</literal>; but
+otherwise, they are available only in math mode.
</para>
</sect1>
<sect1 label="19.9" id="_005c_002f">
@@ -13752,8 +14115,8 @@ do not include italic correction values even for italic fonts.
<indexterm role="fn"><primary>\fontdimen1</primary></indexterm>
<indexterm role="cp"><primary>font dimension, slant</primary></indexterm>
<para>Technically, &latex; uses another font-specific value, the so-called
-slant parameter (namely <literal>\fontdimen1</literal>), to determine whether to
-possibly insert an italic correction, rather than tying the action to
+<firstterm>slant parameter</firstterm> (namely <literal>\fontdimen1</literal>), to determine whether
+to possibly insert an italic correction, rather than tying the action to
particular font commands.
</para>
<para>There is no concept of italic correction in math mode; math spacing is
@@ -13793,13 +14156,13 @@ start or end.
here
</para>
<screen>\renewcommand{\hrulefill}{%
- \leavevmode\leaders\hrule height 1pt\hfill\kern\z@}
+ \leavevmode\leaders\hrule height 1pt\hfill\kern0pt }
</screen>
<para>which changes the default thickness of 0.4pt to 1pt.
Similarly, adjust the dot spacing as with
</para>
<screen>\renewcommand{\dotfill}{%
- \leavevmode\cleaders\hb@xt@1.00em{\hss .\hss }\hfill\kern\z@}
+ \leavevmode\cleaders\hbox to 1.00em{\hss .\hss }\hfill\kern0pt }
</screen>
<para>which changes the default length of 0.33em to 1.00em.
</para>
@@ -13859,7 +14222,7 @@ quarter of a line space, with stretch and shrink. The default for the
<literal>book</literal> and <literal>article</literal> classes is <literal>3pt plus 1pt minus 1pt</literal>.
</para>
</listitem></varlistentry></variablelist>
-<para>Because each command is a <literal>\vspace</literal>, if you use on in mid-paragraph
+<para>Because each command is a <literal>\vspace</literal>, 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.
@@ -13913,7 +14276,7 @@ with &#8216;<literal>def</literal>&#8217;.
and depth at least <literal>0.3\baselineskip</literal>. Essentially, &latex;
inserts into the line a rectangle having zero width,
<literal>\rule[-0.3\baselineskip]{0pt}{\baselineskip}</literal> (see <link linkend="_005crule">\rule</link>).
-The <literal>\baselineskip</literal> changes with the current font and fontsize.
+The <literal>\baselineskip</literal> changes with the current font or fontsize.
</para>
<para>In this example the <literal>\strut</literal> keeps the box inside the frame from
having zero height.
@@ -13956,10 +14319,10 @@ item&#8217;s second line.
\end{minipage}%
</screen>
<para>The final two lists use <literal>\fbox</literal> to show what&#8217;s happening. The
-third list&#8217;s <literal>\parbox</literal> goes only to the bottom of its second
-&#8216;<literal>test</literal>&#8217;, 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.
+first item <literal>\parbox</literal> of the third list goes only to the bottom of
+its second &#8216;<literal>test</literal>&#8217;, 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.
</para>
<indexterm role="cp"><primary>package, <literal>TikZ</literal></primary></indexterm>
<indexterm role="cp"><primary><literal>TikZ</literal> package</primary></indexterm>
@@ -13967,7 +14330,7 @@ extra below-baseline space.
<indexterm role="cp"><primary><literal>Asymptote</literal> package</primary></indexterm>
<para>The <literal>\strut</literal> command is often useful in graphics, such as in
-<filename>TikZ</filename> or <filename>Asymptote</filename>. For instance, you may have a command
+<literal>TikZ</literal> or <literal>Asymptote</literal>. For instance, you may have a command
such as <literal>\graphnode{<replaceable>node-name</replaceable>}</literal> that fits a circle around
<replaceable>node-name</replaceable>. However, unless you are careful the <replaceable>node-name</replaceable>&#8217;s
&#8216;<literal>x</literal>&#8217; and &#8216;<literal>y</literal>&#8217; will produce different-diameter circles because
@@ -13987,10 +14350,10 @@ second rule keeps the second integral from hitting the first.
\end{tabular}
</screen>
<para>(Although the line-ending double backslash command has an available
-optional argument to put in more vertical room, that won&#8217;t work here.
-Changing the first double backslash to something like <literal>\\[2.5ex]</literal>
-will put the room between the header line and the <literal>\hline</literal>, and the
-integral would still hit the line.)
+optional argument to change the corresponding baseline skip, that won&#8217;t
+solve this issue. Changing the first double backslash to something like
+<literal>\\[2.5ex]</literal> will put more room between the header line and the
+<literal>\hline</literal> rule, and the integral would still hit the rule.)
</para>
</sect1>
@@ -14020,9 +14383,9 @@ The new day dawned cold.
<para>(See <link linkend="_005cbigskip-_0026-_005cmedskip-_0026-_005csmallskip">\bigskip &amp; \medskip &amp; \smallskip</link>, for common inter-paragraph
spaces.)
</para>
-<para>The <literal>*</literal>-version inserts vertical space that non-discardable. More
+<para>The <literal>*</literal>-form inserts vertical space that is non-discardable. More
precisely, &latex; discards vertical space at a page break and the
-<literal>*</literal>-version causes the space to stay. This example leaves space
+<literal>*</literal>-form causes the space to stay. This example leaves space
between the two questions.
</para>
<screen>Question: Find the integral of \( 5x^4+5 \).
@@ -14106,10 +14469,11 @@ space needed to make the natural length equal to the maximum of the
(see <link linkend="_005cprotect">\protect</link>). The <replaceable>vert-length</replaceable> is a rubber length
(see <link linkend="Lengths">Lengths</link>).
</para>
-<para>This example illustrates. The <literal>picture</literal> draws a scale. In a
-standard &latex; article the length <literal>\baselineskip</literal> is 12pt.
-The two rules here are 22pt apart: the sum of the
-<literal>\baselineskip</literal> and the 10pt from the first <literal>addvspace</literal>.
+<para>This example illustrates. The <literal>picture</literal> draws a scale over which
+to rules are placed. In a standard &latex; article the length
+<literal>\baselineskip</literal> is 12pt. As shown by the scale, the two
+rules are 22pt apart: the sum of the <literal>\baselineskip</literal> and the
+10pt from the first <literal>\addvspace</literal>.
</para>
<screen>\documentclass{article}
\usepackage{color}
@@ -14157,7 +14521,7 @@ page. So these commands are central.
<indexterm role="cp"><primary><literal>adjustbox</literal> package</primary></indexterm>
<para>There are many packages on CTAN that are useful for manipulating boxes.
-One useful adjunct to the commands here is <filename>adjustbox</filename>.
+One useful adjunct to the commands here is <literal>adjustbox</literal>.
</para>
@@ -14225,7 +14589,11 @@ values:
</term><listitem><para>Flush right.
</para>
</listitem></varlistentry><varlistentry><term><literal>s</literal>
-</term><listitem><para>Stretch the interword space in <replaceable>text</replaceable> across the entire <replaceable>width</replaceable>.
+</term><listitem><!-- xx TODO add a generic node to make clear that some statement may be -->
+<!-- not true for some internationalization or some script. Eg. in Arabic -->
+<!-- script or with microtype package I think that the strech also plays -->
+<!-- on word width -->
+<para>Stretch the interword space in <replaceable>text</replaceable> across the entire <replaceable>width</replaceable>.
The <replaceable>text</replaceable> must contain stretchable space for this to work. For
instance, this could head a press release:
<literal>\noindent\makebox[\textwidth][s]{\large\hfil IMMEDIATE\hfil
@@ -14247,8 +14615,8 @@ puts the value of the quiz questions to the left of those questions.
<para>The right edge of the output &#8216;<literal>10 points </literal>&#8217; (note the ending space
after &#8216;<literal>points</literal>&#8217;) will be just before the &#8216;<literal>What</literal>&#8217;. You can use
-<literal>\makebox</literal> similarly when making graphics, such as in <filename>TikZ</filename>
-or <filename>Asymptote</filename>, where you put the edge of the text at a known
+<literal>\makebox</literal> similarly when making graphics, such as in <literal>TikZ</literal>
+or <literal>Asymptote</literal>, where you put the edge of the text at a known
location, regardless of the length of that text.
</para>
<para>For boxes with frames see&#160;<link linkend="_005cfbox-_0026-_005cframebox">\fbox &amp; \framebox</link>. For colors
@@ -14280,15 +14648,15 @@ and&#160;<link linkend="minipage">minipage</link>.
\framebox[<replaceable>width</replaceable>]{<replaceable>text</replaceable>}
\framebox[<replaceable>width</replaceable>][<replaceable>position</replaceable>]{<replaceable>text</replaceable>}
</screen>
-<para>Create a box with an enclosing frame, four lines surrounding the space.
+<para>Create a box with an enclosing frame, four rules surrounding the <replaceable>text</replaceable>.
These commands are the same as <literal>\mbox</literal> and <literal>\makebox</literal> except
for the frame (see <link linkend="_005cmbox-_0026-_005cmakebox">\mbox &amp; \makebox</link>). The <literal>\fbox</literal> command is
robust, the <literal>\framebox</literal> command is fragile (see <link linkend="_005cprotect">\protect</link>).
</para>
<screen>\fbox{Warning! No work shown, no credit given.}
</screen>
-<para>&latex; puts the text into a box that cannot be split or hyphenated.
-Around that box, separated from it by a small gap, are four lines making
+<para>&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.
</para>
<para>The first two command invocations, <literal>\fbox{...}</literal> and
@@ -14300,7 +14668,7 @@ here is an example creating an empty box that is 1/4in wide.
</para>
<screen>\setlength{\fboxsep}{0pt}\framebox[0.25in]{\strut}}
</screen>
-<para>The <literal>\strut</literal> inserts a vertical height of <literal>\baselineskip</literal>
+<para>The <literal>\strut</literal> ensures a total height of <literal>\baselineskip</literal>
(see <link linkend="_005cstrut">\strut</link>).
</para>
<para>These parameters determine the frame layout.
@@ -14309,7 +14677,7 @@ here is an example creating an empty box that is 1/4in wide.
</term><listitem><indexterm role="fn"><primary>frame, line width</primary></indexterm>
<indexterm role="fn"><primary>frame rule width</primary></indexterm>
<indexterm role="cp"><primary>\fboxrule</primary></indexterm>
-<para>The thickness of the lines around the enclosed box. The default is
+<para>The thickness of the rules around the enclosed box. The default is
0.2pt. Change it with a command such as
<literal>\setlength{\fboxrule}{0.8pt}</literal> (see <link linkend="_005csetlength">\setlength</link>).
</para>
@@ -14321,7 +14689,7 @@ Change it with a command such as <literal>\setlength{\fboxsep}{0pt}</literal>
(see <link linkend="_005csetlength">\setlength</link>). Setting it to 0pt is useful sometimes:
this will put a frame around the picture with no white border.
</para>
-<screen>{\setlength{\fboxsep}{0pt}
+<screen>{\setlength{\fboxsep}{0pt}%
\framebox{%
\includegraphics[width=0.5\textwidth]{prudence.jpg}}}
</screen>
@@ -14340,9 +14708,9 @@ paragraph, and then frame the result.
</screen>
<para>See <link linkend="Colored-boxes">Colored boxes</link>, for colors other than black and white.
</para>
-<para>The <literal>picture</literal> environment has a version of this command where the
-units depend on <literal>picture</literal>&#8217;s <literal>\unitlength</literal> (see <link linkend="_005cframebox-_0028picture_0029">\framebox
-(picture)</link>).
+<para>The <literal>picture</literal> environment has a version of the <literal>\framebox</literal>
+command where the units depend on <literal>picture</literal>&#8217;s <literal>\unitlength</literal>
+(see <link linkend="_005cframebox-_0028picture_0029">\framebox (picture)</link>).
</para>
</sect1>
@@ -14513,7 +14881,8 @@ enter <literal>\sbox{\newreg}{test \par test}</literal> and
warning. To fix this use a <literal>\parbox</literal> or <literal>minipage</literal> as here.
</para>
<!-- credit: egreg https://tex.stackexchange.com/a/41668/121234 -->
-<screen>\savebox{\areg}{%
+<screen>\newsavebox{\areg}
+\savebox{\areg}{%
\begin{minipage}{\linewidth}
\begin{enumerate}
\item First item
@@ -14561,8 +14930,8 @@ header. &latex; only typesets it once.
\end{lrbox}
</screen>
<para>This is the environment form of the <literal>\sbox</literal> and <literal>\savebox</literal>
-commands, and is equivalent to them. for the full description,
-See <link linkend="_005csbox-_0026-_005csavebox">\sbox &amp; \savebox</link>.
+commands, and is equivalent to them. See <link linkend="_005csbox-_0026-_005csavebox">\sbox &amp; \savebox</link>, for the
+full description.
</para>
<para>The <replaceable>text</replaceable> inside the environment is saved in the box register
referred to by variable <literal><replaceable>box-cmd</replaceable></literal>. The variable name
@@ -14595,7 +14964,7 @@ for entering the <literal>tabular</literal>.
</screen>
<para>Produce the box most recently saved in the box register <replaceable>box-cmd</replaceable> by
the commands <literal>\sbox</literal> or <literal>\savebox</literal>, or the <literal>lrbox</literal>
-environment. For more information and examples, See <link linkend="_005csbox-_0026-_005csavebox">\sbox &amp;
+environment. For more information and examples, see <link linkend="_005csbox-_0026-_005csavebox">\sbox &amp;
\savebox</link>. (Note that the variable name <replaceable>box-cmd</replaceable> starts with a
backslash, <literal>\</literal>.) This command is robust (see <link linkend="_005cprotect">\protect</link>).
</para>
@@ -14928,12 +15297,12 @@ This example is the short how-to.
</screen>
<para>To use the commands described here your document preamble must contain
either <literal>\usepackage{graphicx}</literal> or
-<literal>\usepackage{graphics}</literal>. Most of the time, <filename>graphicx</filename> is the
+<literal>\usepackage{graphics}</literal>. Most of the time, <literal>graphicx</literal> is the
better choice.
</para>
<para>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 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 &#8216;<literal>draw a circle with this radius and that
center</literal>&#8217;. An example is a line drawing produced by the Asymptote
@@ -14972,7 +15341,7 @@ see their documentation on CTAN.
<para>The <literal>graphicx</literal> package has a format for optional arguments to the
<literal>\includegraphics</literal> command that is convenient (it is the key-value
format), so it is the better choice for new documents. When you load
-the <filename>graphics</filename> or <filename>graphicx</filename> package with <literal>\usepackage</literal>
+the <literal>graphics</literal> or <literal>graphicx</literal> package with <literal>\usepackage</literal>
there are two kinds of available options.
</para>
<para>The first is that &latex; does not contain information about different
@@ -15179,7 +15548,7 @@ than once. Show its value with
</screen>
<para>Declare how to handle graphic files whose names end in <replaceable>extension</replaceable>.
</para>
-<para>This example declares that all files with names have the form
+<para>This example declares that all files with names of the form
<filename>filename-without-dot.mps</filename> will be treated as output from MetaPost,
meaning that the printer driver will use its MetaPost-handling code to
input the file.
@@ -15251,8 +15620,8 @@ See the documentation for your &tex; distribution.
<indexterm role="cp"><primary>graphics package commands</primary></indexterm>
<indexterm role="cp"><primary>commands, graphics package</primary></indexterm>
-<para>These are the commands available with the <filename>graphics</filename> and
-<filename>graphicx</filename> packages.
+<para>These are the commands available with the <literal>graphics</literal> and
+<literal>graphicx</literal> packages.
</para>
@@ -15270,7 +15639,7 @@ See the documentation for your &tex; distribution.
<indexterm role="cp"><primary>PNG files</primary></indexterm>
<indexterm role="fn"><primary>\includegraphics</primary></indexterm>
-<para>Synopses for <filename>graphics</filename> package:
+<para>Synopses for <literal>graphics</literal> package:
</para>
<screen>\includegraphics{<replaceable>filename</replaceable>}
\includegraphics[<replaceable>urx</replaceable>,<replaceable>ury</replaceable>]{<replaceable>filename</replaceable>}
@@ -15279,7 +15648,7 @@ See the documentation for your &tex; distribution.
\includegraphics*[<replaceable>urx</replaceable>,<replaceable>ury</replaceable>]{<replaceable>filename</replaceable>}
\includegraphics*[<replaceable>llx</replaceable>,<replaceable>lly</replaceable>][<replaceable>urx</replaceable>,<replaceable>ury</replaceable>]{<replaceable>filename</replaceable>}
</screen>
-<para>Synopses for <filename>graphicx</filename> package:
+<para>Synopses for <literal>graphicx</literal> package:
</para>
<screen>\includegraphics{<replaceable>filename</replaceable>}
\includegraphics[<replaceable>key-value list</replaceable>]{<replaceable>filename</replaceable>}
@@ -15317,7 +15686,7 @@ with that extension (see <link linkend="_005cDeclareGraphicsExtensions">\Declare
<para>If your file name contains dots before the extension then you can hide
them with curly braces, as in
<literal>\includegraphics{{plot.2018.03.12.a}.pdf}</literal>. Or, if you use
-the <filename>graphicx</filename> package then you can use the options <literal>type</literal> and
+the <literal>graphicx</literal> package then you can use the options <literal>type</literal> and
<literal>ext</literal>; see below. This and other filename issues are also handled
with the package <filename>grffile</filename>.
</para>
@@ -15358,7 +15727,7 @@ text, with the two vertically centered.
\end{minipage}}
\end{center}
</screen>
-<para>If you use the <filename>graphics</filename> package then the only options involve the
+<para>If you use the <literal>graphics</literal> package then the only options involve the
size of the graphic (but see <link linkend="_005crotatebox">\rotatebox</link> and <link linkend="_005cscalebox">\scalebox</link>).
When one optional argument is present then it is
<literal>[<replaceable>urx</replaceable>,<replaceable>ury</replaceable>]</literal> and it gives the coordinates of the top
@@ -15371,7 +15740,7 @@ lower left. Thus, <literal>\includegraphics[1in,0.618in]{...}</literal> calls f
the graphic to be placed so it is 1&#160;inch wide and 0.618&#160;inches
tall and so its origin is at (0,0).
</para>
-<para>The <filename>graphicx</filename> package gives you many more options. Specify them
+<para>The <literal>graphicx</literal> package gives you many more options. Specify them
in a key-value form, as here.
</para>
<screen>\begin{center}
@@ -15600,11 +15969,11 @@ external commands.
<indexterm role="cp"><primary>rotating text</primary></indexterm>
<indexterm role="fn"><primary>\rotatebox</primary></indexterm>
-<para>Synopsis if you use the <filename>graphics</filename> package:
+<para>Synopsis if you use the <literal>graphics</literal> package:
</para>
<screen>\rotatebox{<replaceable>angle</replaceable>}{<replaceable>material</replaceable>}
</screen>
-<para>Synopses if you use the <filename>graphicx</filename> package:
+<para>Synopses if you use the <literal>graphicx</literal> package:
</para>
<screen>\rotatebox{<replaceable>angle</replaceable>}{<replaceable>material</replaceable>}
\rotatebox[<replaceable>key-value list</replaceable>]{<replaceable>angle</replaceable>}{<replaceable>material</replaceable>}
@@ -15634,8 +16003,8 @@ 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.
</para>
-<para>If you use the <filename>graphics</filename> package then the rotation is about the
-reference point of the box. If you use the <filename>graphicx</filename> package
+<para>If you use the <literal>graphics</literal> package then the rotation is about the
+reference point of the box. If you use the <literal>graphicx</literal> package
then these are the options that can go in the <replaceable>key-value list</replaceable>,
but note that you can get the same effect without needing this
package, except for the <literal>x</literal> and <literal>y</literal> options
@@ -15702,14 +16071,14 @@ defaults to the same value as the <replaceable>horizontal factor</replaceable>.
</para>
<screen>\scalebox{0.5}{\includegraphics{lion}}
</screen>
-<para>If you use the <filename>graphicx</filename> package then you can accomplish the same
+<para>If you use the <literal>graphicx</literal> package then you can accomplish the same
thing with optional arguments to <literal>\includegraphics</literal>
(see <link linkend="_005cincludegraphics">\includegraphics</link>).
</para>
<para>The <literal>\reflectbox</literal> command abbreviates
<literal>\scalebox{-1}[1]{<replaceable>material</replaceable>}</literal>. Thus, <literal>Able was
I\reflectbox{Able was I}</literal> will show the phrase &#8216;<literal>Able was I</literal>&#8217;
-immediately followed by its mirror reflection.
+immediately followed by its mirror reflection against a vertical axis.
</para>
</sect2>
@@ -15742,7 +16111,7 @@ vertically by the same factor to keep it from being distorted.
<para>The unstarred form <literal>\resizebox</literal> takes <replaceable>vertical length</replaceable> to be
the box&#8217;s height while the starred form <literal>\resizebox*</literal> takes it to
be height+depth. For instance, make the text have a height+depth of a
-quarter inch with <literal>\resizebox*{!}{0.25in}{\parbox{1in}{This
+quarter-inch with <literal>\resizebox*{!}{0.25in}{\parbox{3.5in}{This
box has both height and depth.}}</literal>.
</para>
<para>You can use <literal>\depth</literal>, <literal>\height</literal>, <literal>\totalheight</literal>, and
@@ -15859,7 +16228,7 @@ you need to do expansion. Here the <literal>\Schoolname</literal> produces
<indexterm role="cp"><primary>package, <literal>textcase</literal></primary></indexterm>
<indexterm role="cp"><primary><literal>textcase</literal> package</primary></indexterm>
-<para>The <filename>textcase</filename> package brings some of the missing feature of the
+<para>The <literal>textcase</literal> package brings some of the missing feature of the
standard &latex; commands <literal>\MakeUppercase</literal> and
<literal>\MakeLowerCase</literal>.
</para>
@@ -15867,7 +16236,7 @@ standard &latex; commands <literal>\MakeUppercase</literal> and
<indexterm role="cp"><primary><literal>mfirstuc</literal> package</primary></indexterm>
<para>To uppercase only the first letter of words, you can use the package
-<filename>mfirstuc</filename>.
+<literal>mfirstuc</literal>.
</para>
<indexterm role="cp"><primary>package, <literal>expl3</literal></primary></indexterm>
<indexterm role="cp"><primary><literal>expl3</literal> package</primary></indexterm>
@@ -16105,7 +16474,7 @@ for spacing around em-dashes vary widely.
<indexterm role="cp"><primary><literal>eurosym</literal> package</primary></indexterm>
</para>
<para>For an alternative glyph design, try the
-<filename>eurosym</filename> package; also, most fonts nowadays come with their own
+<literal>eurosym</literal> package; also, most fonts nowadays come with their own
Euro symbol (Unicode U+20AC).
</para>
</listitem></varlistentry><varlistentry><term><indexterm role="fn"><primary>\textexclamdown (or <literal>!`</literal>)</primary></indexterm><literal>\textexclamdown (or <literal>!`</literal>)</literal>
@@ -16251,7 +16620,7 @@ breaks disallowed after).
<para>&latex; has wide support for many of the world&#8217;s scripts and
languages, provided through the core <literal>babel</literal> package, which
supports pdf&latex;, Xe&latex; and Lua&latex;. The
-<filename>polyglossia</filename> package provides similar support with the latter
+<literal>polyglossia</literal> package provides similar support with the latter
two engines.
</para>
<para>This section does not cover that support. It only lists the core
@@ -16382,8 +16751,9 @@ thus crossing through descenders. See also <literal>\underline</literal> in
<indexterm role="fn"><primary>\newtie</primary></indexterm>
<indexterm role="fn"><primary>\capitalnewtie</primary></indexterm>
<indexterm role="cp"><primary>tie-after accent</primary></indexterm>
-<para>oo[ Tie-after accent. The <literal>\newtie</literal> form is centered in
-its box.
+<para>Tie-after accent (used for transliterating from Cyrillic, such as in the
+ALA-LC romanization). It expects that the argument has two characters.
+The <literal>\newtie</literal> form is centered in its box.
</para>
</listitem></varlistentry><varlistentry><term><literal>\u</literal>
</term><term><literal>\capitalbreve</literal>
@@ -16413,9 +16783,9 @@ its box.
<screen>\accent <replaceable>number</replaceable> <replaceable>character</replaceable>
</screen>
<para>A &tex; primitive command used to generate accented characters from
-accent marks and letters. The accent mark is selected by <replaceable>number</replaceable>,
-a numeric argument, followed by a space and then a <replaceable>character</replaceable> argument
-constructs the accented character in the current font.
+accent marks and letters. The accent mark is selected by <replaceable>number</replaceable>, a
+numeric argument, followed by a space and then a <replaceable>character</replaceable>
+argument to construct the accented character in the current font.
</para>
<para>These are accented &#8216;<literal>e</literal>&#8217; characters.
</para>
@@ -16425,7 +16795,8 @@ constructs the accented character in the current font.
\accent22 e
\accent23 e
</screen>
-<para>The first is a grave, the second is breve, etc.
+<para>The first is a grave, the second a caron, the third a breve, the fourth
+a macron, and the fifth a ring above.
</para>
<para>The position of the accent is determined by the font designer and so the
outcome of <literal>\accent</literal> use may differ between fonts. In &latex; it is
@@ -16574,7 +16945,7 @@ useful to omit it.
called the <firstterm>encoding</firstterm>. There are many different encodings. The
simplest is ASCII, which supports 95 printable characters, not enough
for most of the world&#8217;s languages. For instance, to typeset the
-a-umlaut character &#228; in an ASCII-encoded &latex; source file, the
+a-umlaut character &#8216;<literal>&#228;</literal>&#8217; in an ASCII-encoded &latex; source file, the
sequence <literal>\&quot;a</literal> 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.
@@ -16606,7 +16977,8 @@ is a left single quote from a web page using <literal>latin1</literal> inside a
replace the non-UTF-8 character with its UTF-8 equivalent, or use a
&latex; equivalent command or character.
</para>
-<para>In some documents, such as a collection of journal articles from a
+<indexterm role="fn"><primary>\inputencoding</primary></indexterm>
+<anchor id="_005cinputencoding"/><para>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
<literal>\inputencoding{<replaceable>encoding-name</replaceable>}</literal>. The most common values
@@ -16638,7 +17010,7 @@ or just &#8220;qed&#8221;, often used to mark the end of a proof:
<indexterm role="cp"><primary>package, <literal>amsthm</literal></primary></indexterm>
<indexterm role="cp"><primary><literal>amsthm</literal> package</primary></indexterm>
-<para>The <filename>amsthm</filename> package includes this command, with a somewhat
+<para>The <literal>amsthm</literal> package includes this command, with a somewhat
different-looking symbol.
</para>
<para>The mandatory arguments give the horizontal <replaceable>width</replaceable> and vertical
@@ -16681,7 +17053,7 @@ See <link linkend="_005cstrut">\strut</link>, for examples.
<indexterm role="cp"><primary>package, <literal>polyglossia</literal></primary></indexterm>
<indexterm role="cp"><primary><literal>polyglossia</literal> package</primary></indexterm>
-<para>Multilingual packages such as <filename>babel</filename> or <filename>polyglossia</filename>, or
+<para>Multilingual packages such as <literal>babel</literal> or <literal>polyglossia</literal>, or
classes such as <filename>lettre</filename>, will localize <literal>\today</literal>. For example,
the following will output &#8216;<literal>4 juillet 1976</literal>&#8217;:
</para>
@@ -16698,7 +17070,7 @@ the following will output &#8216;<literal>4 juillet 1976</literal>&#8217;:
<indexterm role="cp"><primary>package, <literal>datetime</literal></primary></indexterm>
<indexterm role="cp"><primary><literal>datetime</literal> package</primary></indexterm>
-<para>A number of package on CTAN work with dates. One is <filename>datetime</filename> package
+<para>A number of package on CTAN work with dates. One is <literal>datetime</literal> package
which can produce a wide variety of date formats, including ISO standards.
</para>
<para>The date is not updated as the &latex; process runs, so in principle the
@@ -16890,6 +17262,7 @@ should avoid spaces in the file names. The tradition is to instead use
dashes or underscores. Nevertheless, for the name &#8216;<literal>amo amas amat</literal>&#8217;,
this works under &tex; Live on GNU/Linux:
</para>
+<indexterm role="fn"><primary>\space</primary></indexterm>
<screen>\documentclass{book}
\includeonly{
&quot;amo\space amas\space amat&quot;
@@ -16960,6 +17333,7 @@ should avoid spaces in the file names. The tradition is to instead use
dashes or underscores. Nevertheless, for the name &#8216;<literal>amo amas amat</literal>&#8217;,
this works under &tex; Live on GNU/Linux:
</para>
+<indexterm role="fn"><primary>\space</primary></indexterm>
<screen>\input{&quot;amo\space amas\space amat&quot;}
</screen>
<para>and this works under MiK&tex; on Windows:
@@ -16973,9 +17347,9 @@ this works under &tex; Live on GNU/Linux:
<title>Front/back matter</title>
-
+<!-- no comma in the node name because Texinfo doesn't support that well. -->
<sect1 label="25.1" id="Table-of-contents-etc_002e">
-<title>Table of contents etc.</title>
+<title>Table of contents, list of figures, list of tables</title>
<indexterm role="cp"><primary>table of contents, creating</primary></indexterm>
@@ -17104,9 +17478,9 @@ inside a box of width <literal>\@pnumwidth</literal>. By default
<indexterm role="cp"><primary><literal>tocbibbind</literal> package</primary></indexterm>
<para>CTAN has many packages for the table of contents and lists of figures
-and tables (see <link linkend="CTAN">CTAN</link>). The package <filename>tocloft</filename> is convenient for
+and tables (see <link linkend="CTAN">CTAN</link>). The package <literal>tocloft</literal> is convenient for
adjusting some aspects of the default such as spacing. And,
-<filename>tocbibbind</filename> will automatically add the bibliography, index,
+<literal>tocbibbind</literal> will automatically add the bibliography, index,
etc. to the table of contents.
</para>
<para>To change the header for the table of contents page, do something like
@@ -17122,7 +17496,7 @@ these commands before you call <literal>\tableofcontents</literal>, etc.
<indexterm role="cp"><primary>package, <literal>polyglossia</literal></primary></indexterm>
<indexterm role="cp"><primary><literal>polyglossia</literal> package</primary></indexterm>
-<para>Internationalization packages such as <filename>babel</filename> or <filename>polyglossia</filename>
+<para>Internationalization packages such as <literal>babel</literal> or <literal>polyglossia</literal>
will change these headers depending on the chosen base language.
</para>
@@ -17152,19 +17526,19 @@ file contains these definitions:
<para>In this example, <literal>\@dottedcline</literal> appears to have been given only
three arguments. But tracing the internal code shows that it picks up
the final <replaceable>text</replaceable> and <replaceable>pagenumber</replaceable> arguments in the synopsis
-from a call to <literal>\contentsline</literal>.
+from a call to <literal>\contentsline</literal> (see <link linkend="_005ccontentsline">\contentsline</link>).
</para>
<indexterm role="cp"><primary>leaders, dots in table of contents</primary></indexterm>
<para>Between the box for the title text of a section and the right margin
box, these <literal>\@dottedtocline</literal> commands insert <firstterm>leaders</firstterm>, that
is, evenly-spaced dots. The dot-to-dot space is given by the command
-<literal>\@dotsep</literal>. By default it is 4.5 (it is in math units, which
-are <literal>1/18</literal>&#160;em. Change it using <literal>\renewcommand</literal>, as
-in <literal>\renewcommand{\@dotsep}{3.5}</literal>.
+<literal>\@dotsep</literal>. By default it is 4.5 (it is in math units, aka.
+<literal>mu</literal>, which are <literal>1/18</literal>&#160;em. Change it using
+<literal>\renewcommand</literal>, as in <literal>\renewcommand{\@dotsep}{3.5}</literal>.
</para>
-<para>In the default book class, &latex; does not use dotted leaders for
-the Part and Chapter table entries, and in the default article class
-it does not use dotted leaders for Section entries.
+<para>In the standard <filename>book</filename> class, &latex; does not use dotted leaders
+for the Part and Chapter table entries, and in the standard
+<filename>article</filename> class it does not use dotted leaders for Section entries.
</para>
</sect2>
@@ -17188,29 +17562,32 @@ contents.
</screen>
<para>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 it appears in the input file.
+where the command appears in the input file.
</para>
<para>The <literal>\addcontentsline</literal> command writes information to the file
-<filename><replaceable>root-name</replaceable>.<replaceable>ext</replaceable></filename>. It writes that information as the
-text of the command
+<filename><replaceable>root-name</replaceable>.<replaceable>ext</replaceable></filename>, where <replaceable>root-name</replaceable> is the file name
+of the root file (see <link linkend="Splitting-the-input">Splitting the input</link>). It writes that
+information as the text of the command
<literal>\contentsline{<replaceable>unit</replaceable>}{<replaceable>text</replaceable>}{<replaceable>num</replaceable>}</literal>, where
<literal><replaceable>num</replaceable></literal> is the current value of counter <literal><replaceable>unit</replaceable></literal>
(see <link linkend="_005ccontentsline">\contentsline</link>). The most common case is the table of contents
and there <replaceable>num</replaceable> is the page number of the first page of <replaceable>unit</replaceable>.
</para>
<para>This command is invoked by the sectioning commands <literal>\chapter</literal>,
-etc., and also by <literal>\caption</literal> inside a float environment. But it is
-also used by authors. For example, an author writing a book whose style
-is to have an unnumbered preface may use the starred <literal>\chapter*</literal>.
-But that command leaves out table of contents information, which can be
-entered manually, as here.
+etc. (see <link linkend="Sectioning">Sectioning</link>), and also by <literal>\caption</literal> inside a float
+environment (see <link linkend="Floats">Floats</link>). 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 <literal>\chapter*</literal>. But that
+command leaves out table of contents information, which can be entered
+manually, as here.
</para>
<screen>\chapter*{Preface}
\addcontentsline{toc}{chapter}{\protect\numberline{}Preface}
</screen>
-<para>In the <filename>.toc</filename> file &latex; will put the line <literal>\contentsline
-{chapter}{\numberline {}Preface}{3}</literal>; note that the page number
-&#8216;<literal>3</literal>&#8217; is automatically generated by the system, not entered manually.
+<para>In the <filename><replaceable>root-name</replaceable>.toc</filename> file &latex; will put the line
+<literal>\contentsline {chapter}{\numberline {}Preface}{3}</literal>; note
+that the page number &#8216;<literal>3</literal>&#8217; is automatically generated by the system,
+not entered manually.
</para>
<para>All of the arguments for <literal>\addcontentsline</literal> are required.
</para>
@@ -17220,7 +17597,8 @@ entered manually, as here.
tables. The filename extension of the information file.
</para>
</listitem></varlistentry><varlistentry><term><replaceable>unit</replaceable>
-</term><listitem><para>A string that depends on the value of the <replaceable>ext</replaceable> argument:
+</term><listitem><para>A string that depends on the value of the <replaceable>ext</replaceable> argument, typically
+one of:
</para>
<variablelist><varlistentry><term><literal>toc</literal>
</term><listitem><para>For the table of contents, this is the name of a sectional unit:
@@ -17233,8 +17611,8 @@ tables. The filename extension of the information file.
</term><listitem><para>For the list of tables: <literal>table</literal>.
</para></listitem></varlistentry></variablelist>
</listitem></varlistentry><varlistentry><term><replaceable>text</replaceable>
-</term><listitem><para>The text of the entry. You must <literal>\protect</literal> any commands that are
-fragile (see <link linkend="_005cprotect">\protect</link>).
+</term><listitem><para>The text of the entry. You must <literal>\protect</literal> any fragile commands
+(see <link linkend="_005cprotect">\protect</link>) used in it.
</para></listitem></varlistentry></variablelist>
<para>The <literal>\addcontentsline</literal> command has an interaction with
<literal>\include</literal> (see <link linkend="_005cinclude-_0026-_005cincludeonly">\include &amp; \includeonly</link>). If you use them at
@@ -17243,7 +17621,8 @@ the same level, as with
in the table of contents can come out in the wrong order. The solution
is to move <literal>\addcontentsline</literal> into the file being included.
</para>
-<para>If you use a <replaceable>unit</replaceable> that &latex; does not recognize, as here
+<para>If you use a <replaceable>unit</replaceable> that &latex; does not recognize, as with the
+typo here
</para>
<screen>\addcontentsline{toc}{setcion}{\protect\textbf{Appendices}}
</screen>
@@ -17343,7 +17722,7 @@ etc.</link>). Authors do not directly enter <literal>\contentsline</literal> com
commands <literal>\chapter</literal>, <literal>\section</literal>, etc. for the table of
contents, or by the <literal>\caption</literal> command inside of a <literal>\figure</literal>
or <literal>\table</literal> environment (see <link linkend="figure">figure</link> and see <link linkend="table">table</link>). Thus,
-where the base file is <filename>thesis.tex</filename>, and contains the declaration
+where the root file is <filename>thesis.tex</filename>, and contains the declaration
<literal>\tableofcontents</literal>, the command <literal>\chapter{Chapter One}</literal>
produces something like this in the file <filename>thesis.toc</filename>.
</para>
@@ -17360,15 +17739,22 @@ something like this in <filename>thesis.lof</filename>.
where <replaceable>filetype</replaceable> is <literal>toc</literal>, <literal>lof</literal>, or <literal>lot</literal>
(see <link linkend="_005caddcontentsline">\addcontentsline</link>).
</para>
+<indexterm role="cp"><primary>package, <literal>tocloft</literal></primary></indexterm>
+<indexterm role="cp"><primary><literal>tocloft</literal> package</primary></indexterm>
+
<para>For manipulating how the <literal>\contentline</literal> material is typeset, see
-the <filename>tocloft</filename> package.
+the <literal>tocloft</literal> package.
</para>
+<indexterm role="cp"><primary>package, <literal>hyperref</literal></primary></indexterm>
+<indexterm role="cp"><primary><literal>hyperref</literal> package</primary></indexterm>
+
<para>Note that the <literal>hyperref</literal> package changes the definition of
<literal>\contentsline</literal> (and <literal>\addcontentsline</literal>) to add more
arguments, to make hyperlinks. This is the source of the error
-<literal>Argument of \contentsline has an extra }</literal>. Fix this error by
-deleting the <filename>.toc</filename> or <filename>.lof</filename> or <filename>.lot</filename> file, and running
-&latex; again.
+<literal>Argument of \contentsline has an extra }</literal> when one adds/remove
+the use of package <literal>hyperref</literal> and a compilation was already run.
+Fix this error by deleting the <filename>.toc</filename> or <filename>.lof</filename> or <filename>.lot</filename>
+file, and running &latex; again.
</para>
</sect2>
@@ -17415,7 +17801,7 @@ the old information.
<literal>\contentsline</literal> command to typeset the section number
(see <link linkend="_005ccontentsline">\contentsline</link>).
</para>
-<para>For example, this line in a <filename>.toc</filename> file causes the <literal>1</literal> to be
+<para>For example, this line in a <filename>.toc</filename> file causes the <literal>1.1</literal> to be
typeset flush left.
</para>
<screen>\contentsline {subsection}{\numberline {1.1}Motivation}{2}
@@ -17424,16 +17810,19 @@ typeset flush left.
<literal>\@tempdima</literal>. That length is set by the commands
<literal>\l@section</literal>, <literal>\l@subsection</literal>, etc. Put section numbers
inside a natural-width box with
-<literal>\renewcommand{\numberline}[1]{#1~}</literal>.
+<literal>\renewcommand{\numberline}[1]{#1~}</literal> before
+<literal>\tableofcontents</literal>.
</para>
-<para>This command is fragile, so you may need to precede it with
+<para>This command is fragile so you may need to precede it with
<literal>\protect</literal> (see <link linkend="_005cprotect">\protect</link>). An example is the use of
-<literal>\protect</literal> in the command
-<literal>\addcontentsline{toc}{section}{\protect\numberline{}Summary}</literal>
-to get the <literal>\numberline</literal> into this command in the <filename>.toc</filename> file:
-<literal>\contentsline {section}{\numberline {}Summary}{6}</literal> (the
-page number &#8216;<literal>6</literal>&#8217; is automatically added by &latex;;
-see <link linkend="_005caddcontentsline">\addcontentsline</link>).
+<literal>\protect</literal> in this command,
+</para>
+<screen><literal>\addcontentsline{toc}{section}{\protect\numberline{}Summary}</literal>
+</screen>
+<para>to get the <literal>\numberline</literal> into the <literal>\contentsline</literal>
+command in the <filename>.toc</filename> file: <literal>\contentsline
+{section}{\numberline {}Summary}{6}</literal> (the page number &#8216;<literal>6</literal>&#8217;
+is automatically added by &latex;; see <link linkend="_005caddcontentsline">\addcontentsline</link>).
</para>
</sect2>
@@ -17447,32 +17836,50 @@ see <link linkend="_005caddcontentsline">\addcontentsline</link>).
<indexterm role="fn"><primary>\index</primary></indexterm>
<indexterm role="cp"><primary><filename>.idx</filename> file</primary></indexterm>
-<para>This document has an index.
+<para>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.
</para>
<screen>\documentclass{article}
-\usepackage{makeidx} \makeindex
+\usepackage{makeidx} % Provide indexing commands
+ \makeindex
+% \usepackage{showidx} % Show marginal notes of index entries
...
\begin{document}
...
-Recall Wilson's Theorem: \index{Wilson's Theorem}
-a number \( n&gt;1 \) is prime if and only if the factorial of \( n-1 \)
-is congruent to \( -1 \) modulo~\( n \).
+Wilson's Theorem\index{Wilson's Theorem}
+says that a number $n&gt;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}
</screen>
-<para>The <literal>\usepackage{makeidx}</literal> and <literal>\makeindex</literal> in the preamble
-bring in the relevant commands.
-</para>
-<para>Producing an index is a three stage process. First, in the document
-body you declare index entries with the <literal>\index</literal> command
+<para>As that shows, declare index entries with the <literal>\index</literal> command
(see <link linkend="_005cindex">\index</link>). When you run &latex;, the <literal>\index</literal> writes its
-information to an auxiliary file <filename><replaceable>root-name</replaceable>.idx</filename>. Next, to
-alphabetize and to do other manipulations you run an external command,
-typically <command>makeindex</command> or <command>xindy</command> (see <link linkend="makeindex">makeindex</link>).
-These output a file <filename><replaceable>root-name</replaceable>.ind</filename>. Finally, you bring the
-information back into your document and typeset it with the
-<literal>\printindex</literal> command (see <link linkend="_005cprintindex">\printindex</link>).
+information, such as &#8216;<literal>Wilson's Theorem</literal>&#8217; and the page number, to an
+auxiliary file whose name ends in <filename>.idx</filename>. Next, to alphabetize and
+do other manipulations, run an external command, typically
+<command>makeindex</command> (see <link linkend="makeindex">makeindex</link>), which writes a file whose name
+ends in <filename>.ind</filename>. Finally, <literal>\printindex</literal> brings this
+manipulated information into the output (see <link linkend="_005cprintindex">\printindex</link>).
+</para>
+<para>Thus, if the above example is in the file <filename>numth.tex</filename> then running
+&#8216;<literal>pdflatex numth</literal>&#8217; will save index entry and page number information
+to <filename>numth.idx</filename>. Then running &#8216;<literal>makeindex numth</literal>&#8217; will
+alphabetize and save the results to <filename>numth.ind</filename>. Finally, again
+running &#8216;<literal>pdflatex numth</literal>&#8217; will show the desired index, at the place
+where the <literal>\printindex</literal> command is in the source file.
+</para>
+<para>There are many options for the output. An example is that the
+exclamation point in <literal>\index{congruence!and Wilson's Theorem}</literal>
+produces a main entry of &#8216;<literal>congruence</literal>&#8217; with a subentry of &#8216;<literal>and
+Wilson's Theorem</literal>&#8217;. For more, see <link linkend="makeindex">makeindex</link>.
+</para>
+<para>The <literal>\makeindex</literal> and <literal>\printindex</literal> commands are independent.
+Leaving out the <literal>\makeindex</literal> will stop &latex; from saving the
+index entries to the auxiliary file. Leaving out the <literal>\printindex</literal>
+will cause &latex; to not show the index in the document output.
</para>
<indexterm role="cp"><primary>package, <literal>showidx</literal></primary></indexterm>
<indexterm role="cp"><primary><literal>showidx</literal> package</primary></indexterm>
@@ -17484,7 +17891,7 @@ information back into your document and typeset it with the
<indexterm role="cp"><primary>multiple indexes</primary></indexterm>
<para>There are many packages in the area of indexing. The <literal>showidx</literal>
package causes each index entries to be shown in the margin on the
-page where the entry appears. This can help in preparing the index.
+page where the <literal>\index</literal> appears. This can help in preparing the index.
The <literal>multind</literal> package, among others, supports multiple indexes.
See also the &tex; FAQ entry on this topic,
<ulink url="https://www.texfaq.org/FAQ-multind">https://www.texfaq.org/FAQ-multind</ulink>, and the CTAN topic,
@@ -17492,7 +17899,48 @@ See also the &tex; FAQ entry on this topic,
</para>
-<sect2 label="25.2.1" id="_005cindex">
+<sect2 label="25.2.1" id="Produce-the-index-manually">
+<title>Produce the index manually</title>
+
+<indexterm role="cp"><primary>index, producing manually</primary></indexterm>
+<indexterm role="fn"><primary>theindex</primary></indexterm>
+
+<para>Documents that are small and static can have a manually produced index.
+This will make a separate page labeled &#8216;<literal>Index</literal>&#8217;, in twocolumn
+format.
+</para>
+<indexterm role="fn"><primary>environment, <literal>theindex</literal></primary></indexterm>
+<indexterm role="fn"><primary><literal>theindex</literal> environment</primary></indexterm>
+
+<screen>\begin{theindex}
+\item acorn squash, 1
+\subitem maple baked, 2
+\indexspace
+\item bacon, 3
+\subitem maple baked, 4
+\end{theindex}
+</screen>
+<para>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 <command>makeindex</command> are best.
+See <link linkend="Indexes">Indexes</link>.
+</para>
+<indexterm role="fn"><primary>\item</primary></indexterm>
+<indexterm role="fn"><primary>\subitem</primary></indexterm>
+<indexterm role="fn"><primary>\subsubitem</primary></indexterm>
+<indexterm role="fn"><primary>\indexspace</primary></indexterm>
+<para>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 <literal>\item</literal>,
+subentries use <literal>\subitem</literal>, and the lowest level uses
+<literal>\subsubitem</literal>. Blank lines between entries have no effect. The
+example above includes <literal>\indexspace</literal> to produce vertical space in
+the output that some index styles use before the first entry starting
+with a new letter.
+</para>
+
+</sect2>
+<sect2 label="25.2.2" id="_005cindex">
<title><literal>\index</literal></title>
<indexterm role="cp"><primary>index entry</primary></indexterm>
@@ -17510,19 +17958,23 @@ what&#8217;s below is to compile the document with <literal>pdflatex test</liter
process the index entries with <literal>makeindex test</literal>, and then compile
again with <literal>pdflatex test</literal>.
</para>
-<screen>W~Ackermann (1896--1962).\index{Ackermann}
+<screen>% file test.tex
+ ...
+W~Ackermann (1896--1962).\index{Ackermann}
...
Ackermann function\index{Ackermann!function}
...
rate of growth\index{Ackermann!function!growth rate}
</screen>
+<indexterm role="cp"><primary>index entries, subentries</primary></indexterm>
<para>All three index entries will get a page number, such as &#8216;<literal>Ackermann,
22</literal>&#8217;. &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
<literal>\index{Ackermann!function!growth rate!comparison}</literal> then
<command>makeindex</command> says &#8216;<literal>Scanning input file test.idx....done (4
-entries accepted, 1 rejected)</literal>&#8217; and nothing appears in the index).
+entries accepted, 1 rejected)</literal>&#8217; and the fourth level is silently missing
+from the index.)
</para>
<para>If you enter a second <literal>\index</literal> with the same
<replaceable>index-entry-string</replaceable> then you will get a single index entry with two
@@ -17538,12 +17990,12 @@ instance <literal>\index{Ackermann!function}</literal> could come before
</para>
<screen>W~Ackermann (1896--1962).\index{Ackermann}
...
-D~Hilbert (1862--1943)\index{Ackermann!Hilbert\(}
+D~Hilbert (1862--1943)\index{Ackermann!Hilbert|(}
...
-disapproved of his marriage.\index{Ackermann!Hilbert\)}
+disapproved of his marriage.\index{Ackermann!Hilbert|)}
</screen>
<para>If the beginning and ending of the page range are equal then the system
-just gives a single page entry, not a range.
+just gives a single page number, not a range.
</para>
<para>If you index subentries but not a main entry, as with
<literal>\index{Jones!program}</literal> and <literal>\index{Jones!results}</literal>, then
@@ -17561,16 +18013,15 @@ followed by two subitems, like &#8216;<literal>program, 50</literal>&#8217; and
<indexterm role="cp"><primary><literal>polyglossia</literal> package</primary></indexterm>
-<para>Generate a index entry that says &#8216;<literal>See</literal>&#8217; by using a vertical bar
+<para>Generate a index entry that says &#8216;<literal>see</literal>&#8217; by using a vertical bar
character: <literal>\index{Ackermann!function|see{P\'eter's
-function}}</literal>. You can instead get &#8216;<literal>See also</literal>&#8217; with <literal>seealso</literal>.
-(The text &#8216;<literal>See</literal>&#8217; is defined by <literal>\seename</literal>, and &#8216;<literal>See also</literal>&#8217;
+function}}</literal>. You can instead get &#8216;<literal>see also</literal>&#8217; with <literal>seealso</literal>.
+(The text &#8216;<literal>see</literal>&#8217; is defined by <literal>\seename</literal>, and &#8216;<literal>see also</literal>&#8217;
by <literal>\alsoname</literal>. You can redefine these either by using an
-internationalization package such as <filename>babel</filename> or <filename>polyglossia</filename>,
-or directly as with <literal>\renewcommand{\alsoname}[1]{Also see
-#1}</literal>.)
+internationalization package such as <literal>babel</literal> or <literal>polyglossia</literal>,
+or directly as with <literal>\renewcommand{\alsoname}{Also see}</literal>.)
</para>
-<para>The &#8216;<literal>See</literal>&#8217; feature is part of a more general functionality. After
+<para>The &#8216;<literal>see</literal>&#8217; feature is part of a more general functionality. After
the vertical bar you can put the name of a one-input command, as in
<literal>\index{group|textit}</literal> (note the missing backslash on the
<literal>\textit</literal> command) and the system will apply that command to the
@@ -17606,15 +18057,15 @@ then <replaceable>pos</replaceable> gives the alphabetical position of the entry
&#8216;<literal>SMC</literal>&#8217; alphabetized into a different location than its spelling
would naturally give it.
</para>
-<para>To put a <literal>!</literal>, or <literal>@</literal>, or <literal>|</literal> character in an index
-entry, preceding it with a double quote, <literal>&quot;</literal>. (The double quote
-gets deleted before alphabetization.)
+<para>To put a <literal>!</literal>, or <literal>@</literal>, or <literal>|</literal>, or <literal>&quot;</literal> character in
+an index entry, escape it by preceding it with a double quote, <literal>&quot;</literal>.
+(The double quote gets deleted before alphabetization.)
</para>
<indexterm role="cp"><primary>package, <literal>index</literal></primary></indexterm>
<indexterm role="cp"><primary><literal>index</literal> package</primary></indexterm>
<para>A number of packages on CTAN have additional functionality beyond that
-provided by <filename>makeidx</filename>. One is <filename>index</filename>, which allows for
+provided by <literal>makeidx</literal>. One is <literal>index</literal>, which allows for
multiple indices and contains a command
<literal>\index*{<replaceable>index-entry-string</replaceable>}</literal> that prints the
<replaceable>index-entry-string</replaceable> as well as indexing it.
@@ -17637,11 +18088,11 @@ message like this.
</screen>
</sect2>
-<sect2 label="25.2.2" id="makeindex">
+<sect2 label="25.2.3" id="makeindex">
<title><command>makeindex</command></title>
<indexterm role="cp"><primary>index, processing</primary></indexterm>
-<indexterm role="fn"><primary>makeindex</primary></indexterm>
+<indexterm role="fn"><primary>makeindex, program</primary></indexterm>
<indexterm role="cp"><primary><command>makeindex</command> program</primary></indexterm>
<indexterm role="cp"><primary><filename>.ind</filename> file</primary></indexterm>
<indexterm role="cp"><primary><filename>.idx</filename> file</primary></indexterm>
@@ -17687,7 +18138,7 @@ on CTAN.
</para>
<para>A style file consists of a list of pairs: <replaceable>specifier</replaceable> and
<replaceable>attribute</replaceable>. These can appear in the file in any order. All of the
-<replaceable>attributes</replaceable> are strings, except where noted. Strings are
+<replaceable>attribute</replaceable>s are strings, except where noted. Strings are
surrounded with double quotes, <literal>&quot;</literal>, and the maximum length of a
string is 144 characters. The <literal>\n</literal> is for a newline and <literal>\t</literal>
is for a tab. Backslashes are escaped with another backslash,
@@ -17695,19 +18146,19 @@ is for a tab. Backslashes are escaped with another backslash,
comment.
</para>
<variablelist><anchor id="makeindex-preamble"/><varlistentry><term><indexterm role="fn"><primary>preamble</primary></indexterm><literal>preamble</literal>
-</term><listitem><para>Preamble of the output file. Defines the context in which the index is
+</term><listitem><para>Preamble of the output index file. Defines the context in which the index is
formatted. Default: <literal>&quot;\\begin{theindex}\n&quot;</literal>.
</para>
<anchor id="makeindex-postamble"/></listitem></varlistentry><varlistentry><term><indexterm role="fn"><primary>postamble</primary></indexterm><literal>postamble</literal>
-</term><listitem><para>Postamble of the output file. Default: <literal>&quot;\n\n\\end{theindex}\n&quot;</literal>.
+</term><listitem><para>Postamble of the output index file. Default: <literal>&quot;\n\n\\end{theindex}\n&quot;</literal>.
</para>
<anchor id="makeindex-group-skip"/></listitem></varlistentry><varlistentry><term><indexterm role="fn"><primary>group_skip</primary></indexterm><literal>group_skip</literal>
</term><listitem><indexterm role="fn"><primary>\indexspace</primary></indexterm>
<para>Traditionally index items are broken into groups, typically a group for
-entries starting with &#8216;<literal>a</literal>&#8217;, etc. This specifier gives what is
-inserted when a new group begins. Default: <literal>&quot;\n\n \\indexspace\n&quot;</literal>
-(<literal>\indexspace</literal> is a command inserting a rubber length, by default
-<literal>10pt plus5pt minus3pt</literal>).
+entries starting with letter &#8216;<literal>a</literal>&#8217;, etc. This specifier gives what
+is inserted when a new group begins. Default: <literal>&quot;\n\n
+\\indexspace\n&quot;</literal> (<literal>\indexspace</literal> is a command inserting a rubber
+length, by default <literal>10pt plus5pt minus3pt</literal>).
</para>
<anchor id="makeindex-letheadflag"/></listitem></varlistentry><varlistentry><term><indexterm role="fn"><primary>lethead_flag</primary></indexterm><literal>lethead_flag</literal>
</term><listitem><para>An integer. It governs what is inserted for a new group or letter. If
@@ -17801,7 +18252,7 @@ roman <literal>R</literal>, and uppercase alphabetic <literal>A</literal>. Defa
<indexterm role="fn"><primary>xindy program</primary></indexterm>
<para>There are a number of other programs that do the job
<command>makeindex</command> does. One is <command>xindy</command>
-(https://ctan.org/pkg/xindy), which does internationalization and can
+(<ulink url="https://ctan.org/pkg/xindy">https://ctan.org/pkg/xindy</ulink>), 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
@@ -17813,7 +18264,7 @@ written in Lua (<ulink url="https://ctan.org/pkg/xindex">https://ctan.org/pkg/xi
</para>
</sect2>
-<sect2 label="25.2.3" id="_005cprintindex">
+<sect2 label="25.2.4" id="_005cprintindex">
<title><command>\printindex</command></title>
<indexterm role="cp"><primary>index, printing</primary></indexterm>
@@ -17823,9 +18274,11 @@ written in Lua (<ulink url="https://ctan.org/pkg/xindex">https://ctan.org/pkg/xi
</para>
<screen>\printindex
</screen>
-<indexterm role="fn"><primary>\printindex</primary></indexterm>
<para>Place the index into the output.
</para>
+<indexterm role="cp"><primary>package, <literal>makeidx</literal></primary></indexterm>
+<indexterm role="cp"><primary><literal>makeidx</literal> package</primary></indexterm>
+
<para>To get an index you must first include
<literal>\usepackage{makeidx}\makeindex</literal> in the document preamble and
compile the document, then run the system command <command>makeindex</command>,
@@ -18389,9 +18842,9 @@ And, you can issue instructions for the operating system.
</para>
<screen>\openout <replaceable>number</replaceable>=<replaceable>filename</replaceable>
</screen>
-<para>Open a file for reading material, or for writing it. The <replaceable>number</replaceable>
-must be between 0 and 15, as in <literal>\openin3</literal> (in Lua&latex;
-<replaceable>number</replaceable> can be between 0 and 255).
+<para>Open a file for reading material, or for writing it. In most engines,
+the <replaceable>number</replaceable> must be between 0 and 15, as in <literal>\openin3</literal>; in
+Lua&latex;, <replaceable>number</replaceable> can be between 0 and 127.
</para>
<para>Here &tex; opens the file <filename>presidents.tex</filename> for reading.
</para>
@@ -18487,7 +18940,7 @@ is <literal>\typein</literal> (see <link linkend="_005ctypein">\typein</link>.)
<indexterm role="cp"><primary>mail merges</primary></indexterm>
<para>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 <filename>datatool</filename>.
+CTAN has a number of packages for that; one is <literal>datatool</literal>.
</para>
</sect1>
@@ -18561,11 +19014,12 @@ Recommendation for John Dee.
<literal>\renewcommand</literal> (among others) are replaced by their definitions
before being printed.
</para>
+<indexterm role="fn"><primary>\space</primary></indexterm>
<para>&latex;&#8217;s usual rules for treating multiple spaces as a single space
-and ignoring spaces after a command name apply to <literal>msg</literal>. As above,
-use the command <literal>\space</literal> to get a single space, independent of
-surrounding spaces. Use <literal>^^J</literal> to get a newline. Get a percent
-character with <literal>\csname @percentchar\endcsname</literal>.
+and ignoring spaces after a command name apply to <literal>msg</literal>. Use the
+command <literal>\space</literal> to get a single space, independent of surrounding
+spaces. Use <literal>^^J</literal> to get a newline. Get a percent character with
+<literal>\csname @percentchar\endcsname</literal>.
</para>
<para>This command can be useful for simple debugging, as here:
</para>
@@ -18709,7 +19163,7 @@ file:
<para>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 <filename>answers</filename>.
+packages for this; one is <literal>answers</literal>.
</para>
@@ -18860,7 +19314,7 @@ in which case this is the option argument.
</para>
<para>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 <filename>texosquery</filename> below):
+in the current directory (but see <literal>texosquery</literal> below):
</para>
<screen>\immediate\write18{ls *.pdf &gt; tmp.dat}
\input{tmp.dat}
@@ -18906,7 +19360,7 @@ the <literal>SHELL</literal> environment variable, is ignored.
<indexterm role="cp"><primary>directory listings, from system</primary></indexterm>
<para>If what you need is system information, such as the operating system
name, locale information, or directory contents, take a look at the
-<filename>texosquery</filename> package, which provides a convenient and secure
+<literal>texosquery</literal> package, which provides a convenient and secure
interface for this, unlike the above examples using the raw
<literal>\write18</literal>: <ulink url="https://ctan.org/pkg/texosquery">https://ctan.org/pkg/texosquery</ulink>.
</para>
@@ -19112,7 +19566,7 @@ allows you to do some special effects.
<indexterm role="cp"><primary>package, <literal>hyperref</literal></primary></indexterm>
<indexterm role="cp"><primary><literal>hyperref</literal> package</primary></indexterm>
<para>For example, this file (which uses the
-<filename>hyperref</filename> package for hyperlinks) can produce two kinds of
+<literal>hyperref</literal> package for hyperlinks) can produce two kinds of
output, one to be read on physical paper and one to be read online.
</para>
<screen>\ifdefined\paperversion % in preamble
@@ -19145,17 +19599,27 @@ two different versions.
pdflatex -jobname=teachers &quot;\def\teachers{}\input{main}&quot;
</screen>
<para>The <literal>jobname</literal> option is there because otherwise both files would be
-called <filename>main.pdf</filename> and the second would overwrite the first. (See
-the next section.)
+called <filename>main.pdf</filename> and the second would overwrite the
+first. (see <link linkend="Jobname">Jobname</link>.)
</para>
-<para>In this example, we pass the <literal>draft</literal> option to the
-<filename>graphicx</filename> package:
+<para>In this example we use the command line to select which parts of a
+document to include. For a book named <filename>mybook.tex</filename> and structured
+like this.
+</para>
+<screen>\documentclass{book}
+\begin{document}
+ ...
+\include{chap1}
+\include{chap2}
+ ...
+\end{document}
+</screen>
+<para>the command line
</para>
-<screen>pdflatex &quot;\PassOptionsToPackage{draft}{graphicx}\input{aa.tex}&quot;
+<screen>pdflatex &quot;\includeonly{chap1}\input{mybook}&quot;
</screen>
-<para>so the graphic files are read for their bounding box size information
-but replaced in the PDF by a box with same size and that contains only
-the file name, which speeds up compilation time and saves printer ink.
+<para>will give output that has the first chapter but no other
+chapter. See <link linkend="Splitting-the-input">Splitting the input</link>.
</para>
</sect1>
@@ -19166,6 +19630,8 @@ the file name, which speeds up compilation time and saves printer ink.
<indexterm role="cp"><primary>jobname</primary></indexterm>
<indexterm role="cp"><primary>document root name</primary></indexterm>
<indexterm role="cp"><primary>name of document root</primary></indexterm>
+<indexterm role="cp"><primary>root file</primary></indexterm>
+<indexterm role="cp"><primary>file, root</primary></indexterm>
<para>Running &latex; creates a number of files, including the main PDF (or
DVI) output but also including others. These files are named with the
@@ -19177,13 +19643,14 @@ Here the job name is <literal>thesis</literal>.
<para>In general, &latex; is invoked as <literal><replaceable>latex-engine</replaceable>
<replaceable>options</replaceable> <replaceable>argument</replaceable></literal>, where <replaceable>latex-engine</replaceable> is
<command>pdflatex</command>, <command>lualatex</command>, etc. (see <link linkend="TeX-engines">&tex; engines</link>).
-If <replaceable>argument</replaceable> does not start with a backslash, as is the case
-above with <literal>thesis</literal>, then &tex; considers it to be the name of
-the file to input as the main document. The name of that root file,
-without the <filename>.tex</filename> extension, is the jobname. If <replaceable>argument</replaceable>
-does start with a backslash, or if &tex; is in interactive mode, then
-it waits for the first <literal>\input</literal> command, and the jobname is the
-argument to <literal>\input</literal>.
+If <replaceable>argument</replaceable> does not start with a backslash, as is the case above
+with <literal>thesis</literal>, then &tex; considers it to be the name of the file
+to input as the main document. This file is referred to as the <firstterm>root
+file</firstterm> (see <link linkend="Splitting-the-input">Splitting the input</link>, and&#160;<link linkend="_005cinput">\input</link>). The name of
+that root file, without the <filename>.tex</filename> extension if any, is the
+jobname. If <replaceable>argument</replaceable> does start with a backslash, or if &tex; is
+in interactive mode, then it waits for the first <literal>\input</literal> command,
+and the jobname is the argument to <literal>\input</literal>.
</para>
<para>There are two more possibilities for the jobname. It can be directly
specified with the <literal>-jobname</literal> option, as in <literal>pdflatex
@@ -19192,10 +19659,10 @@ specified with the <literal>-jobname</literal> option, as in <literal>pdflatex
<indexterm role="fn"><primary>texput, jobname default</primary></indexterm>
<indexterm role="cp"><primary>fallback jobname</primary></indexterm>
<para>The final possibility is <filename>texput</filename>, which is the final fallback
-default if no other name is available to &tex;. For example, if no
+default if no other name is available to &tex;. That is, if no
<literal>-jobname</literal> option was specified, and the compilation stops before
-there is any output, then the log file will be named
-<filename>texput.log</filename>.
+any input file is met, then the log file will be named
+<filename>texput.log</filename>.
</para>
<indexterm role="fn"><primary>\documentclass, and <literal>texput</literal> jobname</primary></indexterm>
<indexterm role="fn"><primary>\RequirePackage, and <literal>texput</literal> jobname</primary></indexterm>