XEmacs 21.4.15
[chise/xemacs-chise.git.1] / info / texinfo.info-2
index b309e1a..cf8eff3 100644 (file)
@@ -1,22 +1,22 @@
-This is ../info/texinfo.info, produced by makeinfo version 4.0 from
+This is ../info/texinfo.info, produced by makeinfo version 4.6 from
 texinfo.texi.
 
 INFO-DIR-SECTION Texinfo documentation system
 START-INFO-DIR-ENTRY
 * Texinfo: (texinfo).           The GNU documentation format.
-* install-info: (texinfo)Invoking install-info. Update info/dir entries.
-* texi2dvi: (texinfo)Format with texi2dvi.      Print Texinfo documents.
-* texindex: (texinfo)Format with tex/texindex.  Sort Texinfo index files.
+* install-info: (texinfo)Invoking install-info. Updating info/dir entries.
+* texi2dvi: (texinfo)Format with texi2dvi.      Printing Texinfo documentation.
+* texindex: (texinfo)Format with tex/texindex.  Sorting Texinfo index files.
 * makeinfo: (texinfo)makeinfo Preferred.        Translate Texinfo source.
 END-INFO-DIR-ENTRY
 
   This file documents Texinfo, a documentation system that can produce
-both online information and a printed manual from a single source file.
+both on-line information and a printed manual from a single source file.
 
-  Copyright (C) 1988, 90, 91, 92, 93, 95, 96, 97, 98, 99 Free Software
+  Copyright (C) 1988, 90, 91, 92, 93, 95, 96, 97, 98 Free Software
 Foundation, Inc.
 
-  This edition is for Texinfo version 4.0, 28 September 1999.
+  This edition is for Texinfo version 3.12.
 
   Permission is granted to make and distribute verbatim copies of this
 manual provided the copyright notice and this permission notice are
@@ -33,149 +33,3887 @@ versions, except that this permission notice may be stated in a
 translation approved by the Free Software Foundation.
 
 \1f
-File: texinfo.info,  Node: Minimum,  Next: Six Parts,  Prev: Comments,  Up: Overview
+File: texinfo.info,  Node: Optional Arguments,  Next: deffnx,  Prev: Def Cmd Template,  Up: Definition Commands
 
-What a Texinfo File Must Have
-=============================
+Optional and Repeated Arguments
+===============================
+
+Some entities take optional or repeated arguments, which may be
+specified by a distinctive glyph that uses square brackets and
+ellipses.  For example, a special form often breaks its argument list
+into separate arguments in more complicated ways than a straightforward
+function.
+
+  An argument enclosed within square brackets is optional.  Thus,
+[OPTIONAL-ARG] means that OPTIONAL-ARG is optional.  An argument
+followed by an ellipsis is optional and may be repeated more than once.
+Thus, REPEATED-ARGS... stands for zero or more arguments.  Parentheses
+are used when several arguments are grouped into additional levels of
+list structure in Lisp.
+
+  Here is the `@defspec' line of an example of an imaginary special
+form:
+
+      - Special Form: foobar (VAR [FROM TO [INC]]) BODY...
+
+In this example, the arguments FROM and TO are optional, but must both
+be present or both absent.  If they are present, INC may optionally be
+specified as well.  These arguments are grouped with the argument VAR
+into a list, to distinguish them from BODY, which includes all
+remaining elements of the form.
+
+  In a Texinfo source file, this `@defspec' line is written like this
+(except it would not be split over two lines, as it is in this example).
+
+     @defspec foobar (@var{var} [@var{from} @var{to}
+          [@var{inc}]]) @var{body}@dots{}
+
+The function is listed in the Command and Variable Index under `foobar'.
+
+\1f
+File: texinfo.info,  Node: deffnx,  Next: Def Cmds in Detail,  Prev: Optional Arguments,  Up: Definition Commands
+
+Two or More `First' Lines
+=========================
+
+To create two or more `first' or header lines for a definition, follow
+the first `@deffn' line by a line beginning with `@deffnx'.  The
+`@deffnx' command works exactly like `@deffn' except that it does not
+generate extra vertical white space between it and the preceding line.
+
+  For example,
+
+     @deffn {Interactive Command} isearch-forward
+     @deffnx {Interactive Command} isearch-backward
+     These two search commands are similar except ...
+     @end deffn
+
+produces
+
+ - Interactive Command: isearch-forward
+ - Interactive Command: isearch-backward
+     These two search commands are similar except ...
+
+  Each of the other definition commands has an `x' form: `@defunx',
+`@defvrx', `@deftypefunx', etc.
+
+  The `x' forms work just like `@itemx'; see *Note `@itemx': itemx.
+
+\1f
+File: texinfo.info,  Node: Def Cmds in Detail,  Next: Def Cmd Conventions,  Prev: deffnx,  Up: Definition Commands
+
+The Definition Commands
+=======================
+
+Texinfo provides more than a dozen definition commands, all of which
+are described in this section.
+
+  The definition commands automatically enter the name of the entity in
+the appropriate index: for example, `@deffn', `@defun', and `@defmac'
+enter function names in the index of functions; `@defvr' and `@defvar'
+enter variable names in the index of variables.
+
+  Although the examples that follow mostly illustrate Lisp, the commands
+can be used for other programming languages.
+
+* Menu:
+
+* Functions Commands::          Commands for functions and similar entities.
+* Variables Commands::          Commands for variables and similar entities.
+* Typed Functions::             Commands for functions in typed languages.
+* Typed Variables::             Commands for variables in typed languages.
+* Abstract Objects::            Commands for object-oriented programming.
+* Data Types::                  The definition command for data types.
+
+\1f
+File: texinfo.info,  Node: Functions Commands,  Next: Variables Commands,  Prev: Def Cmds in Detail,  Up: Def Cmds in Detail
+
+Functions and Similar Entities
+------------------------------
+
+This section describes the commands for describing functions and similar
+entities:
+
+`@deffn CATEGORY NAME ARGUMENTS...'
+     The `@deffn' command is the general definition command for
+     functions, interactive commands, and similar entities that may take
+     arguments.  You must choose a term to describe the category of
+     entity being defined; for example, "Function" could be used if the
+     entity is a function.  The `@deffn' command is written at the
+     beginning of a line and is followed on the same line by the
+     category of entity being described, the name of this particular
+     entity, and its arguments, if any.  Terminate the definition with
+     `@end deffn' on a line of its own.
+
+     For example, here is a definition:
+
+          @deffn Command forward-char nchars
+          Move point forward @var{nchars} characters.
+          @end deffn
+
+     This shows a rather terse definition for a "command" named
+     `forward-char' with one argument, NCHARS.
+
+     `@deffn' prints argument names such as NCHARS in italics or upper
+     case, as if `@var' had been used, because we think of these names
+     as metasyntactic variables--they stand for the actual argument
+     values.  Within the text of the description, write an argument name
+     explicitly with `@var' to refer to the value of the argument.  In
+     the example above, we used `@var{nchars}' in this way.
+
+     The template for `@deffn' is:
+
+          @deffn CATEGORY NAME ARGUMENTS...
+          BODY-OF-DEFINITION
+          @end deffn
+
+`@defun NAME ARGUMENTS...'
+     The `@defun' command is the definition command for functions.
+     `@defun' is equivalent to `@deffn Function ...'.
+
+     For example,
+
+          @defun set symbol new-value
+          Change the value of the symbol @var{symbol}
+          to @var{new-value}.
+          @end defun
+
+     shows a rather terse definition for a function `set' whose
+     arguments are SYMBOL and NEW-VALUE.  The argument names on the
+     `@defun' line automatically appear in italics or upper case as if
+     they were enclosed in `@var'.  Terminate the definition with `@end
+     defun' on a line of its own.
+
+     The template is:
+
+          @defun FUNCTION-NAME ARGUMENTS...
+          BODY-OF-DEFINITION
+          @end defun
+
+     `@defun' creates an entry in the index of functions.
+
+`@defmac NAME ARGUMENTS...'
+     The `@defmac' command is the definition command for macros.
+     `@defmac' is equivalent to `@deffn Macro ...' and works like
+     `@defun'.
+
+`@defspec NAME ARGUMENTS...'
+     The `@defspec' command is the definition command for special
+     forms.  (In Lisp, a special form is an entity much like a function,
+     *note Special Forms: (lispref)Special Forms..)  `@defspec' is
+     equivalent to `@deffn {Special Form} ...' and works like `@defun'.
+
+\1f
+File: texinfo.info,  Node: Variables Commands,  Next: Typed Functions,  Prev: Functions Commands,  Up: Def Cmds in Detail
+
+Variables and Similar Entities
+------------------------------
+
+Here are the commands for defining variables and similar entities:
+
+`@defvr CATEGORY NAME'
+     The `@defvr' command is a general definition command for something
+     like a variable--an entity that records a value.  You must choose
+     a term to describe the category of entity being defined; for
+     example, "Variable" could be used if the entity is a variable.
+     Write the `@defvr' command at the beginning of a line and followed
+     it on the same line by the category of the entity and the name of
+     the entity.
+
+     Capitalize the category name like a title.  If the name of the
+     category contains spaces, as in the name "User Option", enclose it
+     in braces.  Otherwise, the second word will be mistaken for the
+     name of the entity.  For example,
+
+          @defvr {User Option} fill-column
+          This buffer-local variable specifies
+          the maximum width of filled lines.
+          ...
+          @end defvr
+
+     Terminate the definition with `@end defvr' on a line of its own.
+
+     The template is:
+
+          @defvr CATEGORY NAME
+          BODY-OF-DEFINITION
+          @end defvr
+
+     `@defvr' creates an entry in the index of variables for NAME.
+
+`@defvar NAME'
+     The `@defvar' command is the definition command for variables.
+     `@defvar' is equivalent to `@defvr Variable ...'.
+
+     For example:
+
+          @defvar kill-ring
+          ...
+          @end defvar
+
+     The template is:
+
+          @defvar NAME
+          BODY-OF-DEFINITION
+          @end defvar
+
+     `@defvar' creates an entry in the index of variables for NAME.
+
+`@defopt NAME'
+     The `@defopt' command is the definition command for "user
+     options", i.e., variables intended for users to change according to
+     taste; Emacs has many such (*note Variables: (xemacs)Variables.).
+     `@defopt' is equivalent to `@defvr {User Option} ...' and works
+     like `@defvar'.
+
+\1f
+File: texinfo.info,  Node: Typed Functions,  Next: Typed Variables,  Prev: Variables Commands,  Up: Def Cmds in Detail
+
+Functions in Typed Languages
+----------------------------
+
+The `@deftypefn' command and its variations are for describing
+functions in languages in which you must declare types of variables and
+functions, such as C and C++.
+
+`@deftypefn CATEGORY DATA-TYPE NAME ARGUMENTS...'
+     The `@deftypefn' command is the general definition command for
+     functions and similar entities that may take arguments and that are
+     typed.  The `@deftypefn' command is written at the beginning of a
+     line and is followed on the same line by the category of entity
+     being described, the type of the returned value, the name of this
+     particular entity, and its arguments, if any.
+
+     For example,
+
+          @deftypefn {Library Function} int foobar
+             (int @var{foo}, float @var{bar})
+          ...
+          @end deftypefn
+
+     (where the text before the "...", shown above as two lines, would
+     actually be a single line in a real Texinfo file) produces the
+     following in Info:
+
+          -- Library Function: int foobar (int FOO, float BAR)
+          ...
+
+     This means that `foobar' is a "library function" that returns an
+     `int', and its arguments are FOO (an `int') and BAR (a `float').
+
+     The argument names that you write in `@deftypefn' are not subject
+     to an implicit `@var'--since the actual names of the arguments in
+     `@deftypefn' are typically scattered among data type names and
+     keywords, Texinfo cannot find them without help.  Instead, you
+     must write `@var' explicitly around the argument names.  In the
+     example above, the argument names are `foo' and `bar'.
+
+     The template for `@deftypefn' is:
+
+          @deftypefn CATEGORY DATA-TYPE NAME ARGUMENTS ...
+          BODY-OF-DESCRIPTION
+          @end deftypefn
+
+     Note that if the CATEGORY or DATA TYPE is more than one word then
+     it must be enclosed in braces to make it a single argument.
+
+     If you are describing a procedure in a language that has packages,
+     such as Ada, you might consider using `@deftypefn' in a manner
+     somewhat contrary to the convention described in the preceding
+     paragraphs.
+
+     For example:
+
+          @deftypefn stacks private push
+                  (@var{s}:in out stack;
+                  @var{n}:in integer)
+          ...
+          @end deftypefn
+
+     (The `@deftypefn' arguments are shown split into three lines, but
+     would be a single line in a real Texinfo file.)
+
+     In this instance, the procedure is classified as belonging to the
+     package `stacks' rather than classified as a `procedure' and its
+     data type is described as `private'.  (The name of the procedure
+     is `push', and its arguments are S and N.)
+
+     `@deftypefn' creates an entry in the index of functions for NAME.
+
+`@deftypefun DATA-TYPE NAME ARGUMENTS...'
+     The `@deftypefun' command is the specialized definition command
+     for functions in typed languages.  The command is equivalent to
+     `@deftypefn Function ...'.
+
+     Thus,
+
+          @deftypefun int foobar (int @var{foo}, float @var{bar})
+          ...
+          @end deftypefun
+
+     produces the following in Info:
+
+          -- Function: int foobar (int FOO, float BAR)
+          ...
+
+     The template is:
+
+          @deftypefun TYPE NAME ARGUMENTS...
+          BODY-OF-DESCRIPTION
+          @end deftypefun
+
+     `@deftypefun' creates an entry in the index of functions for NAME.
+
+
+\1f
+File: texinfo.info,  Node: Typed Variables,  Next: Abstract Objects,  Prev: Typed Functions,  Up: Def Cmds in Detail
+
+Variables in Typed Languages
+----------------------------
+
+Variables in typed languages are handled in a manner similar to
+functions in typed languages.  *Note Typed Functions::.  The general
+definition command `@deftypevr' corresponds to `@deftypefn' and the
+specialized definition command `@deftypevar' corresponds to
+`@deftypefun'.
+
+`@deftypevr CATEGORY DATA-TYPE NAME'
+     The `@deftypevr' command is the general definition command for
+     something like a variable in a typed language--an entity that
+     records a value.  You must choose a term to describe the category
+     of the entity being defined; for example, "Variable" could be used
+     if the entity is a variable.
+
+     The `@deftypevr' command is written at the beginning of a line and
+     is followed on the same line by the category of the entity being
+     described, the data type, and the name of this particular entity.
+
+     For example:
+
+          @deftypevr {Global Flag} int enable
+          ...
+          @end deftypevr
+
+     produces the following in Info:
+
+          -- Global Flag: int enable
+          ...
+
+     The template is:
+
+          @deftypevr CATEGORY DATA-TYPE NAME
+          BODY-OF-DESCRIPTION
+          @end deftypevr
+
+     `@deftypevr' creates an entry in the index of variables for NAME.
+
+`@deftypevar DATA-TYPE NAME'
+     The `@deftypevar' command is the specialized definition command
+     for variables in typed languages.  `@deftypevar' is equivalent to
+     `@deftypevr Variable ...'.
+
+     For example:
+
+          @deftypevar int fubar
+          ...
+          @end deftypevar
+
+     produces the following in Info:
+
+          -- Variable: int fubar
+          ...
+
+     The template is:
+
+          @deftypevar DATA-TYPE NAME
+          BODY-OF-DESCRIPTION
+          @end deftypevar
+
+     `@deftypevar' creates an entry in the index of variables for NAME.
+
+\1f
+File: texinfo.info,  Node: Abstract Objects,  Next: Data Types,  Prev: Typed Variables,  Up: Def Cmds in Detail
+
+Object-Oriented Programming
+---------------------------
+
+Here are the commands for formatting descriptions about abstract
+objects, such as are used in object-oriented programming.  A class is a
+defined type of abstract object.  An instance of a class is a
+particular object that has the type of the class.  An instance variable
+is a variable that belongs to the class but for which each instance has
+its own value.
+
+  In a definition, if the name of a class is truly a name defined in the
+programming system for a class, then you should write an `@code' around
+it.  Otherwise, it is printed in the usual text font.
+
+`@defcv CATEGORY CLASS NAME'
+     The `@defcv' command is the general definition command for
+     variables associated with classes in object-oriented programming.
+     The `@defcv' command is followed by three arguments: the category
+     of thing being defined, the class to which it belongs, and its
+     name.  Thus,
+
+          @defcv {Class Option} Window border-pattern
+          ...
+          @end defcv
+
+     illustrates how you would write the first line of a definition of
+     the `border-pattern' class option of the class `Window'.
+
+     The template is
+
+          @defcv CATEGORY CLASS NAME
+          ...
+          @end defcv
+
+     `@defcv' creates an entry in the index of variables.
+
+`@defivar CLASS NAME'
+     The `@defivar' command is the definition command for instance
+     variables in object-oriented programming.  `@defivar' is
+     equivalent to `@defcv {Instance Variable} ...'
+
+     The template is:
+
+          @defivar CLASS INSTANCE-VARIABLE-NAME
+          BODY-OF-DEFINITION
+          @end defivar
+
+     `@defivar' creates an entry in the index of variables.
+
+`@defop CATEGORY CLASS NAME ARGUMENTS...'
+     The `@defop' command is the general definition command for
+     entities that may resemble methods in object-oriented programming.
+     These entities take arguments, as functions do, but are associated
+     with particular classes of objects.
+
+     For example, some systems have constructs called "wrappers" that
+     are associated with classes as methods are, but that act more like
+     macros than like functions.  You could use `@defop Wrapper' to
+     describe one of these.
+
+     Sometimes it is useful to distinguish methods and "operations".
+     You can think of an operation as the specification for a method.
+     Thus, a window system might specify that all window classes have a
+     method named `expose'; we would say that this window system
+     defines an `expose' operation on windows in general.  Typically,
+     the operation has a name and also specifies the pattern of
+     arguments; all methods that implement the operation must accept
+     the same arguments, since applications that use the operation do
+     so without knowing which method will implement it.
+
+     Often it makes more sense to document operations than methods.  For
+     example, window application developers need to know about the
+     `expose' operation, but need not be concerned with whether a given
+     class of windows has its own method to implement this operation.
+     To describe this operation, you would write:
+
+          @defop Operation windows expose
+
+     The `@defop' command is written at the beginning of a line and is
+     followed on the same line by the overall name of the category of
+     operation, the name of the class of the operation, the name of the
+     operation, and its arguments, if any.
+
+     The template is:
+
+          @defop CATEGORY CLASS NAME ARGUMENTS...
+          BODY-OF-DEFINITION
+          @end defop
+
+     `@defop' creates an entry, such as ``expose' on `windows'', in the
+     index of functions.
+
+`@defmethod CLASS NAME ARGUMENTS...'
+     The `@defmethod' command is the definition command for methods in
+     object-oriented programming.  A method is a kind of function that
+     implements an operation for a particular class of objects and its
+     subclasses.  In the Lisp Machine, methods actually were functions,
+     but they were usually defined with `defmethod'.
+
+     `@defmethod' is equivalent to `@defop Method ...'.  The command is
+     written at the beginning of a line and is followed by the name of
+     the class of the method, the name of the method, and its
+     arguments, if any.
+
+     For example,
+
+          @defmethod `bar-class' bar-method argument
+          ...
+          @end defmethod
+
+     illustrates the definition for a method called `bar-method' of the
+     class `bar-class'.  The method takes an argument.
+
+     The template is:
+
+          @defmethod CLASS METHOD-NAME ARGUMENTS...
+          BODY-OF-DEFINITION
+          @end defmethod
+
+     `@defmethod' creates an entry, such as ``bar-method' on
+     `bar-class'', in the index of functions.
+
+`@deftypemethod CLASS DATA-TYPE NAME ARGUMENTS...'
+     The `@deftypemethod' command is the definition command for methods
+     in object-oriented typed languages, such as C++ and Java.  It is
+     similar to the `@defmethod' command with the addition of the
+     DATA-TYPE parameter to specify the return type of the method.
+
+
+\1f
+File: texinfo.info,  Node: Data Types,  Prev: Abstract Objects,  Up: Def Cmds in Detail
+
+Data Types
+----------
+
+Here is the command for data types:
+
+`@deftp CATEGORY NAME ATTRIBUTES...'
+     The `@deftp' command is the generic definition command for data
+     types.  The command is written at the beginning of a line and is
+     followed on the same line by the category, by the name of the type
+     (which is a word like `int' or `float'), and then by names of
+     attributes of objects of that type.  Thus, you could use this
+     command for describing `int' or `float', in which case you could
+     use `data type' as the category.  (A data type is a category of
+     certain objects for purposes of deciding which operations can be
+     performed on them.)
+
+     In Lisp, for example,  "pair" names a particular data type, and an
+     object of that type has two slots called the CAR and the CDR.
+     Here is how you would write the first line of a definition of
+     `pair'.
+
+          @deftp {Data type} pair car cdr
+          ...
+          @end deftp
+
+     The template is:
+
+          @deftp CATEGORY NAME-OF-TYPE ATTRIBUTES...
+          BODY-OF-DEFINITION
+          @end deftp
+
+     `@deftp' creates an entry in the index of data types.
+
+\1f
+File: texinfo.info,  Node: Def Cmd Conventions,  Next: Sample Function Definition,  Prev: Def Cmds in Detail,  Up: Definition Commands
+
+Conventions for Writing Definitions
+===================================
+
+When you write a definition using `@deffn', `@defun', or one of the
+other definition commands, please take care to use arguments that
+indicate the meaning, as with the COUNT argument to the `forward-word'
+function.  Also, if the name of an argument contains the name of a
+type, such as INTEGER, take care that the argument actually is of that
+type.
+
+\1f
+File: texinfo.info,  Node: Sample Function Definition,  Prev: Def Cmd Conventions,  Up: Definition Commands
+
+A Sample Function Definition
+============================
+
+A function definition uses the `@defun' and `@end defun' commands.  The
+name of the function follows immediately after the `@defun' command and
+it is followed, on the same line, by the parameter list.
+
+  Here is a definition from *Note Calling Functions: (lispref)Calling
+Functions.
+
+      - Function: apply function &rest arguments
+          `apply' calls FUNCTION with ARGUMENTS, just like `funcall'
+          but with one difference: the last of ARGUMENTS is a list of
+          arguments to give to FUNCTION, rather than a single argument.
+          We also say that this list is "appended" to the other
+          arguments.
+
+          `apply' returns the result of calling FUNCTION.  As with
+          `funcall', FUNCTION must either be a Lisp function or a
+          primitive function; special forms and macros do not make
+          sense in `apply'.
+
+               (setq f 'list)
+                    => list
+               (apply f 'x 'y 'z)
+               error--> Wrong type argument: listp, z
+               (apply '+ 1 2 '(3 4))
+                    => 10
+               (apply '+ '(1 2 3 4))
+                    => 10
+               
+               (apply 'append '((a b c) nil (x y z) nil))
+                    => (a b c x y z)
+
+          An interesting example of using `apply' is found in the
+          description of `mapcar'.
+
+  In the Texinfo source file, this example looks like this:
+
+     @defun apply function &rest arguments
+     
+     @code{apply} calls @var{function} with
+     @var{arguments}, just like @code{funcall} but with one
+     difference: the last of @var{arguments} is a list of
+     arguments to give to @var{function}, rather than a single
+     argument.  We also say that this list is @dfn{appended}
+     to the other arguments.
+     
+     @code{apply} returns the result of calling
+     @var{function}.  As with @code{funcall},
+     @var{function} must either be a Lisp function or a
+     primitive function; special forms and macros do not make
+     sense in @code{apply}.
+     
+     @example
+     (setq f 'list)
+          @result{} list
+     (apply f 'x 'y 'z)
+     @error{} Wrong type argument: listp, z
+     (apply '+ 1 2 '(3 4))
+          @result{} 10
+     (apply '+ '(1 2 3 4))
+          @result{} 10
+     
+     (apply 'append '((a b c) nil (x y z) nil))
+          @result{} (a b c x y z)
+     @end example
+     
+     An interesting example of using @code{apply} is found
+     in the description of @code{mapcar}.@refill
+     @end defun
+
+In this manual, this function is listed in the Command and Variable
+Index under `apply'.
+
+  Ordinary variables and user options are described using a format like
+that for functions except that variables do not take arguments.
+
+\1f
+File: texinfo.info,  Node: Footnotes,  Next: Conditionals,  Prev: Definition Commands,  Up: Top
+
+Footnotes
+*********
+
+A "footnote" is for a reference that documents or elucidates the
+primary text.(1) (*note Footnotes-Footnote-1::)
+
+* Menu:
+
+* Footnote Commands::           How to write a footnote in Texinfo.
+* Footnote Styles::             Controlling how footnotes appear in Info.
+
+\1f
+File: texinfo.info,  Node: Footnotes-Footnotes,  Up: Footnotes
+
+  (1) A footnote should complement or expand upon the primary text, but
+a reader should not need to read a footnote to understand the primary
+text.  For a thorough discussion of footnotes, see `The Chicago Manual
+of Style', which is published by the University of Chicago Press.
+
+\1f
+File: texinfo.info,  Node: Footnote Commands,  Next: Footnote Styles,  Prev: Footnotes,  Up: Footnotes
+
+Footnote Commands
+=================
+
+In Texinfo, footnotes are created with the `@footnote' command.  This
+command is followed immediately by a left brace, then by the text of
+the footnote, and then by a terminating right brace.  Footnotes may be
+of any length (they will be broken across pages if necessary), but are
+usually short.  The template is:
+
+     ordinary text@footnote{TEXT OF FOOTNOTE}
+
+  As shown here, the `@footnote' command should come right after the
+text being footnoted, with no intervening space; otherwise, the
+formatters the footnote mark might end up starting up a line.
+
+  For example, this clause is followed by a sample footnote(1) (*note
+Footnote Commands-Footnote-1::); in the Texinfo source, it looks like
+this:
+
+     ...a sample footnote@footnote{Here is the sample
+     footnote.}; in the Texinfo source...
+
+  *Warning:* Don't use footnotes in the argument of the `@item' command
+for a `@table' table.  This doesn't work, and because of limitations of
+TeX, there is no way to fix it.  You must put the footnote into the
+body text of the table.
+
+  In a printed manual or book, the reference mark for a footnote is a
+small, superscripted number; the text of the footnote appears at the
+bottom of the page, below a horizontal line.
+
+  In Info, the reference mark for a footnote is a pair of parentheses
+with the footnote number between them, like this: `(1)'.
+
+\1f
+File: texinfo.info,  Node: Footnote Commands-Footnotes,  Up: Footnote Commands
+
+  (1) Here is the sample footnote.
+
+\1f
+File: texinfo.info,  Node: Footnote Styles,  Prev: Footnote Commands,  Up: Footnotes
+
+Footnote Styles
+===============
+
+Info has two footnote styles, which determine where the text of the
+footnote is located:
+
+   * In the `End' node style, all the footnotes for a single node are
+     placed at the end of that node.  The footnotes are separated from
+     the rest of the node by a line of dashes with the word `Footnotes'
+     within it.  Each footnote begins with an `(N)' reference mark.
+
+     Here is an example of a single footnote in the end of node style:
+
+           --------- Footnotes ---------
+          
+          (1)  Here is a sample footnote.
+
+   * In the `Separate' node style, all the footnotes for a single node
+     are placed in an automatically constructed node of their own.  In
+     this style, a "footnote reference" follows each `(N)' reference
+     mark in the body of the node.  The footnote reference is actually
+     a cross reference which you use to reach the footnote node.
+
+     The name of the node containing the footnotes is constructed by
+     appending `-Footnotes' to the name of the node that contains the
+     footnotes. (Consequently, the footnotes' node for the `Footnotes'
+     node is `Footnotes-Footnotes'!)  The footnotes' node has an `Up'
+     node pointer that leads back to its parent node.
+
+     Here is how the first footnote in this manual looks after being
+     formatted for Info in the separate node style:
+
+          File: texinfo.info  Node: Overview-Footnotes, Up: Overview
+          
+          (1) Note that the first syllable of "Texinfo" is
+          pronounced like "speck", not "hex". ...
+
+  A Texinfo file may be formatted into an Info file with either footnote
+style.
+
+  Use the `@footnotestyle' command to specify an Info file's footnote
+style.  Write this command at the beginning of a line followed by an
+argument, either `end' for the end node style or `separate' for the
+separate node style.
+
+  For example,
+
+     @footnotestyle end
+
+or
+     @footnotestyle separate
+
+  Write an `@footnotestyle' command before or shortly after the
+end-of-header line at the beginning of a Texinfo file.  (If you include
+the `@footnotestyle' command between the start-of-header and
+end-of-header lines, the region formatting commands will format
+footnotes as specified.)
+
+  If you do not specify a footnote style, the formatting commands use
+their default style.  Currently, `texinfo-format-buffer' and
+`texinfo-format-region' use the `separate' style and `makeinfo' uses
+the `end' style.
+
+  This chapter contains two footnotes.
+
+\1f
+File: texinfo.info,  Node: Conditionals,  Next: Macros,  Prev: Footnotes,  Up: Top
+
+Conditionally Visible Text
+**************************
+
+Sometimes it is good to use different text for a printed manual and its
+corresponding Info file.  In this case, you can use the "conditional
+commands" to specify which text is for the printed manual and which is
+for the Info file.
+
+* Menu:
+
+* Conditional Commands::        Specifying text for HTML, Info, or TeX.
+* Conditional Not Commands::    Specifying text for not HTML, Info, or TeX.
+* Raw Formatter Commands::      Using raw TeX or HTML commands.
+* set clear value::             Designating which text to format (for
+                                  all output formats); and how to set a
+                                  flag to a string that you can insert.
+
+\1f
+File: texinfo.info,  Node: Conditional Commands,  Next: Conditional Not Commands,  Prev: Conditionals,  Up: Conditionals
+
+Conditional Commands
+====================
+
+  `@ifinfo' begins segments of text that should be ignored by TeX when
+it typesets the printed manual.  The segment of text appears only in
+the Info file.  The `@ifinfo' command should appear on a line by
+itself;  end the Info-only text with a line containing `@end ifinfo' by
+itself.  At the beginning of a Texinfo file, the Info permissions are
+contained within a region marked by `@ifinfo' and `@end ifinfo'. (*Note
+Info Summary and Permissions::.)
+
+  The `@iftex' and `@end iftex' commands are similar to the `@ifinfo'
+and `@end ifinfo' commands, except that they specify text that will
+appear in the printed manual but not in the Info file.  Likewise for
+`@ifhtml' and `@end ifhtml', which specify text to appear only in HTML
+output.
+
+  For example,
+
+     @iftex
+     This text will appear only in the printed manual.
+     @end iftex
+     @ifinfo
+     However, this text will appear only in Info.
+     @end ifinfo
+
+The preceding example produces the following line: However, this text
+will appear only in Info.
+
+Note how you only see one of the two lines, depending on whether you
+are reading the Info version or the printed version of this manual.
+
+  The `@titlepage' command is a special variant of `@iftex' that is
+used for making the title and copyright pages of the printed manual.
+(*Note `@titlepage': titlepage.)
+
+\1f
+File: texinfo.info,  Node: Conditional Not Commands,  Next: Raw Formatter Commands,  Prev: Conditional Commands,  Up: Conditionals
+
+Conditional Not Commands
+========================
+
+You can specify text to be included in any output format _other_ than
+some given one with the `@ifnot...' commands:
+     @ifnothtml ... @end ifnothtml
+     @ifnotinfo ... @end ifnotinfo
+     @ifnottex ... @end ifnottex
+
+(The `@ifnot...' command and the `@end' command must actually appear on
+lines by themselves.)
+
+  If the output file is not being made for the given format, the region
+is included.  Otherwise, it is ignored.
+
+  The regions delimited by these commands are ordinary Texinfo source as
+with `@iftex', not raw formatter source as with `@tex'.
+
+\1f
+File: texinfo.info,  Node: Raw Formatter Commands,  Next: set clear value,  Prev: Conditional Not Commands,  Up: Conditionals
+
+Raw Formatter Commands
+======================
+
+Inside a region delineated by `@iftex' and `@end iftex', you can embed
+some raw TeX commands.  Info will ignore these commands since they are
+only in that part of the file which is seen by TeX.  You can write the
+TeX commands as you would write them in a normal TeX file, except that
+you must replace the `\' used by TeX with an `@'.  For example, in the
+`@titlepage' section of a Texinfo file, you can use the TeX command
+`@vskip' to format the copyright page.  (The `@titlepage' command
+causes Info to ignore the region automatically, as it does with the
+`@iftex' command.)
+
+  However, many features of plain TeX will not work, as they are
+overridden by Texinfo features.
+
+  You can enter plain TeX completely, and use `\' in the TeX commands,
+by delineating a region with the `@tex' and `@end tex' commands.  (The
+`@tex' command also causes Info to ignore the region, like the `@iftex'
+command.)  The sole exception is that `@' chracter still introduces a
+command, so that `@end tex' can be recognized properly.
+
+  For example, here is a mathematical expression written in plain TeX:
+
+     @tex
+     $$ \chi^2 = \sum_{i=1}^N
+               \left (y_i - (a + b x_i)
+               \over \sigma_i\right)^2 $$
+     @end tex
+
+The output of this example will appear only in a printed manual.  If
+you are reading this in Info, you will not see the equation that appears
+in the printed manual.
+
+  Analogously, you can use `@ifhtml ... @end ifhtml' to delimit a
+region to be included in HTML output only, and `@html ...  @end ifhtml'
+for a region of raw HTML (again, except that `@' is still the escape
+character, so the `@end' command can be recognized.)
+
+\1f
+File: texinfo.info,  Node: set clear value,  Prev: Raw Formatter Commands,  Up: Conditionals
+
+`@set', `@clear', and `@value'
+==============================
+
+You can direct the Texinfo formatting commands to format or ignore parts
+of a Texinfo file with the `@set', `@clear', `@ifset', and `@ifclear'
+commands.
+
+  In addition, you can use the `@set FLAG' command to set the value of
+FLAG to a string of characters; and use `@value{FLAG}' to insert that
+string.  You can use `@set', for example, to set a date and use
+`@value' to insert the date in several places in the Texinfo file.
+
+* Menu:
+
+* ifset ifclear::               Format a region if a flag is set.
+* value::                       Replace a flag with a string.
+* value Example::               An easy way to update edition information.
+
+\1f
+File: texinfo.info,  Node: ifset ifclear,  Next: value,  Prev: set clear value,  Up: set clear value
+
+`@ifset' and `@ifclear'
+-----------------------
+
+When a FLAG is set, the Texinfo formatting commands format text between
+subsequent pairs of `@ifset FLAG' and `@end ifset' commands.  When the
+FLAG is cleared, the Texinfo formatting commands do _not_ format the
+text.
+
+  Use the `@set FLAG' command to turn on, or "set", a FLAG; a "flag"
+can be any single word.  The format for the command looks like this:
+
+     @set FLAG
+
+  Write the conditionally formatted text between `@ifset FLAG' and
+`@end ifset' commands, like this:
+
+     @ifset FLAG
+     CONDITIONAL-TEXT
+     @end ifset
+
+  For example, you can create one document that has two variants, such
+as a manual for a `large' and `small' model:
+
+     You can use this machine to dig up shrubs
+     without hurting them.
+     
+     @set large
+     
+     @ifset large
+     It can also dig up fully grown trees.
+     @end ifset
+     
+     Remember to replant promptly ...
+
+In the example, the formatting commands will format the text between
+`@ifset large' and `@end ifset' because the `large' flag is set.
+
+  Use the `@clear FLAG' command to turn off, or "clear", a flag.
+Clearing a flag is the opposite of setting a flag.  The command looks
+like this:
+
+     @clear FLAG
+
+Write the command on a line of its own.
+
+  When FLAG is cleared, the Texinfo formatting commands do _not_ format
+the text between `@ifset FLAG' and `@end ifset'; that text is ignored
+and does not appear in either printed or Info output.
+
+  For example, if you clear the flag of the preceding example by writing
+an `@clear large' command after the `@set large' command (but before
+the conditional text), then the Texinfo formatting commands ignore the
+text between the `@ifset large' and `@end ifset' commands.  In the
+formatted output, that text does not appear; in both printed and Info
+output, you see only the lines that say, "You can use this machine to
+dig up shrubs without hurting them.  Remember to replant promptly ...".
+
+  If a flag is cleared with an `@clear FLAG' command, then the
+formatting commands format text between subsequent pairs of `@ifclear'
+and `@end ifclear' commands.  But if the flag is set with `@set FLAG',
+then the formatting commands do _not_ format text between an `@ifclear'
+and an `@end ifclear' command; rather, they ignore that text.  An
+`@ifclear' command looks like this:
+
+     @ifclear FLAG
+
+  In brief, the commands are:
+
+`@set FLAG'
+     Tell the Texinfo formatting commands that FLAG is set.
+
+`@clear FLAG'
+     Tell the Texinfo formatting commands that FLAG is cleared.
+
+`@ifset FLAG'
+     If FLAG is set, tell the Texinfo formatting commands to format the
+     text up to the following `@end ifset' command.
+
+     If FLAG is cleared, tell the Texinfo formatting commands to ignore
+     text up to the following `@end ifset' command.
+
+`@ifclear FLAG'
+     If FLAG is set, tell the Texinfo formatting commands to ignore the
+     text up to the following `@end ifclear' command.
+
+     If FLAG is cleared, tell the Texinfo formatting commands to format
+     the text up to the following `@end ifclear' command.
+
+\1f
+File: texinfo.info,  Node: value,  Next: value Example,  Prev: ifset ifclear,  Up: set clear value
+
+`@value'
+--------
+
+You can use the `@set' command to specify a value for a flag, which is
+expanded by the `@value' command.  The value is a string a characters.
+
+  Write the `@set' command like this:
+
+     @set foo This is a string.
+
+This sets the value of `foo' to "This is a string."
+
+  The Texinfo formatters replace an `@value{FLAG}' command with the
+string to which FLAG is set.
+
+  Thus, when `foo' is set as shown above, the Texinfo formatters convert
+
+     @value{foo}
+to
+     This is a string.
+
+  You can write an `@value' command within a paragraph; but you must
+write an `@set' command on a line of its own.
+
+  If you write the `@set' command like this:
+
+     @set foo
+
+without specifying a string, the value of `foo' is an empty string.
+
+  If you clear a previously set flag with an `@clear FLAG' command, a
+subsequent `@value{flag}' command is invalid and the string is replaced
+with an error message that says `{No value for "FLAG"}'.
+
+  For example, if you set `foo' as follows:
+
+     @set how-much very, very, very
+
+then the formatters transform
+
+     It is a @value{how-much} wet day.
+into
+     It is a very, very, very wet day.
+
+  If you write
+
+     @clear how-much
+
+then the formatters transform
+
+     It is a @value{how-much} wet day.
+into
+     It is a {No value for "how-much"} wet day.
+
+\1f
+File: texinfo.info,  Node: value Example,  Prev: value,  Up: set clear value
+
+`@value' Example
+----------------
+
+You can use the `@value' command to limit the number of places you need
+to change when you record an update to a manual.  Here is how it is
+done in `The GNU Make Manual':
+
+Set the flags:
+
+     @set EDITION 0.35 Beta
+     @set VERSION 3.63 Beta
+     @set UPDATED 14 August 1992
+     @set UPDATE-MONTH August 1992
+
+Write text for the first `@ifinfo' section, for people reading the
+Texinfo file:
+
+     This is Edition @value{EDITION},
+     last updated @value{UPDATED},
+     of @cite{The GNU Make Manual},
+     for @code{make}, Version @value{VERSION}.
+
+Write text for the title page, for people reading the printed manual:
+
+     @title GNU Make
+     @subtitle A Program for Directing Recompilation
+     @subtitle Edition @value{EDITION}, ...
+     @subtitle @value{UPDATE-MONTH}
+
+(On a printed cover, a date listing the month and the year looks less
+fussy than a date listing the day as well as the month and year.)
+
+Write text for the Top node, for people reading the Info file:
+
+     This is Edition @value{EDITION}
+     of the @cite{GNU Make Manual},
+     last updated @value{UPDATED}
+     for @code{make} Version @value{VERSION}.
+
+  After you format the manual, the text in the first `@ifinfo' section
+looks like this:
+
+     This is Edition 0.35 Beta, last updated 14 August 1992,
+     of `The GNU Make Manual', for `make', Version 3.63 Beta.
+
+  When you update the manual, change only the values of the flags; you
+do not need to rewrite the three sections.
+
+\1f
+File: texinfo.info,  Node: Macros,  Next: Format/Print Hardcopy,  Prev: Conditionals,  Up: Top
+
+Macros: Defining New Texinfo Commands
+*************************************
+
+A Texinfo "macro" allows you to define a new Texinfo command as any
+sequence of text and/or existing commands (including other macros).  The
+macro can have any number of "parameters"--text you supply each time
+you use the macro.  (This has nothing to do with the `@defmac' command,
+which is for documenting macros in the subject of the manual; *note Def
+Cmd Template::.)
+
+* Menu:
+
+* Defining Macros::             Both defining and undefining new commands.
+* Invoking Macros::             Using a macro, once you've defined it.
+
+\1f
+File: texinfo.info,  Node: Defining Macros,  Next: Invoking Macros,  Prev: Macros,  Up: Macros
+
+Defining Macros
+===============
+
+You use the Texinfo `@macro' command to define a macro.  For example:
+
+     @macro MACRO-NAME{PARAM1, PARAM2, ...}
+     TEXT ... \PARAM1\ ...
+     @end macro
+
+  The "parameters" PARAM1, PARAM2, ... correspond to arguments supplied
+when the macro is subsequently used in the document (see the next
+section).
+
+  If a macro needs no parameters, you can define it either with an empty
+list (`@macro foo {}') or with no braces at all (`@macro foo').
+
+  The definition or "body" of the macro can contain any Texinfo
+commands, including previously-defined macros.  (It is not possible to
+have mutually recursive Texinfo macros.)  In the body, instances of a
+parameter name surrounded by backslashes, as in `\PARAM1\' in the
+example above, are replaced by the corresponding argument from the
+macro invocation.
+
+  You can undefine a macro FOO with `@unmacro FOO'.  It is not an error
+to undefine a macro that is already undefined.  For example:
+
+     @unmacro foo
+
+\1f
+File: texinfo.info,  Node: Invoking Macros,  Prev: Defining Macros,  Up: Macros
+
+Invoking Macros
+===============
+
+After a macro is defined (see the previous section), you can use
+("invoke") it in your document like this:
+
+     @MACRO-NAME {ARG1, ARG2, ...}
+
+and the result will be just as if you typed the body of MACRO-NAME at
+that spot.  For example:
+
+     @macro foo {p, q}
+     Together: \p\ & \q\.
+     @end macro
+     @foo{a, b}
+
+produces:
+
+     Together: a & b.
+
+  Thus, the arguments and parameters are separated by commas and
+delimited by braces; any whitespace after (but not before) a comma is
+ignored.  To insert a comma, brace, or backslash in an argument,
+prepend a backslash, as in
+
+     @MACRO-NAME {\\\{\}\,}
+
+which will pass the (almost certainly error-producing) argument `\{},'
+to MACRO-NAME.
+
+  If the macro is defined to take a single argument, and is invoked
+without any braces, the entire rest of the line after the macro name is
+supplied as the argument.  For example:
+
+     @macro bar {p}
+     Twice: \p\, \p\.
+     @end macro
+     @bar aah
+
+produces:
+
+     Twice: aah, aah.
+
+\1f
+File: texinfo.info,  Node: Format/Print Hardcopy,  Next: Create an Info File,  Prev: Macros,  Up: Top
+
+Format and Print Hardcopy
+*************************
+
+There are three major shell commands for making a printed manual from a
+Texinfo file: one for converting the Texinfo file into a file that will
+be printed, a second for sorting indices, and a third for printing the
+formatted document.  When you use the shell commands, you can either
+work directly in the operating system shell or work within a shell
+inside GNU Emacs.
+
+  If you are using GNU Emacs, you can use commands provided by Texinfo
+mode instead of shell commands.  In addition to the three commands to
+format a file, sort the indices, and print the result, Texinfo mode
+offers key bindings for commands to recenter the output buffer, show the
+print queue, and delete a job from the print queue.
+
+* Menu:
+
+* Use TeX::                     Use TeX to format for hardcopy.
+* Format with tex/texindex::    How to format in a shell.
+* Format with texi2dvi::        A simpler way to use the shell.
+* Print with lpr::              How to print.
+* Within Emacs::                How to format and print from an Emacs shell.
+* Texinfo Mode Printing::       How to format and print in Texinfo mode.
+* Compile-Command::             How to print using Emacs's compile command.
+* Requirements Summary::        TeX formatting requirements summary.
+* Preparing for TeX::           What you need to do to use TeX.
+* Overfull hboxes::             What are and what to do with overfull hboxes.
+* smallbook::                   How to print small format books and manuals.
+* A4 Paper::                    How to print on European A4 paper.
+* Cropmarks and Magnification::  How to print marks to indicate the size
+                                of pages and how to print scaled up output.
+
+\1f
+File: texinfo.info,  Node: Use TeX,  Next: Format with tex/texindex,  Prev: Format/Print Hardcopy,  Up: Format/Print Hardcopy
+
+Use TeX
+=======
+
+  The typesetting program called TeX is used for formatting a Texinfo
+file.  TeX is a very powerful typesetting program and, if used right,
+does an exceptionally good job.  (*Note How to Obtain TeX: Obtaining
+TeX, for information on how to obtain TeX.)
+
+  The `makeinfo', `texinfo-format-region', and `texinfo-format-buffer'
+commands read the very same @-commands in the Texinfo file as does TeX,
+but process them differently to make an Info file; see *Note Create an
+Info File::.
+
+\1f
+File: texinfo.info,  Node: Format with tex/texindex,  Next: Format with texi2dvi,  Prev: Use TeX,  Up: Format/Print Hardcopy
+
+Format using `tex' and `texindex'
+=================================
+
+Format the Texinfo file with the shell command `tex' followed by the
+name of the Texinfo file.  For example:
+
+     tex foo.texi
+
+TeX will produce a "DVI file" as well as several auxiliary files
+containing information for indices, cross references, etc.  The DVI
+file (for "DeVice Independent" file) can be printed on virtually any
+printe (see the following sections).
+
+  The `tex' formatting command itself does not sort the indices; it
+writes an output file of unsorted index data.  (The `texi2dvi' command
+automatically generates indices; see *Note Format using `texi2dvi':
+Format with texi2dvi.)  To generate a printed index after running the
+`tex' command, you first need a sorted index to work from.  The
+`texindex' command sorts indices.  (The source file `texindex.c' comes
+as part of the standard Texinfo distribution, among other places.)
+
+  The `tex' formatting command outputs unsorted index files under names
+that obey a standard convention: the name of your main input file with
+any `.tex' (or similar, *note tex invocation: (web2c)tex invocation.)
+extension removed, followed by the two letter names of indices.  For
+example, the raw index output files for the input file `foo.texinfo'
+would be `foo.cp', `foo.vr', `foo.fn', `foo.tp', `foo.pg' and `foo.ky'.
+Those are exactly the arguments to give to `texindex'.
+
+  Instead of specifying all the unsorted index file names explicitly,
+you can use `??' as shell wildcards and give the command in this form:
+
+     texindex foo.??
+
+This command will run `texindex' on all the unsorted index files,
+including any that you have defined yourself using `@defindex' or
+`@defcodeindex'.  (You may execute `texindex foo.??' even if there are
+similarly named files with two letter extensions that are not index
+files, such as `foo.el'.  The `texindex' command reports but otherwise
+ignores such files.)
+
+  For each file specified, `texindex' generates a sorted index file
+whose name is made by appending `s' to the input file name.  The
+`@printindex' command knows to look for a file of that name (*note
+Printing Indices & Menus::).  `texindex' does not alter the raw index
+output file.
+
+  After you have sorted the indices, you need to rerun the `tex'
+formatting command on the Texinfo file.  This regenerates the DVI file,
+this time with up-to-date index entries.
+
+  Finally, you may need to run `tex' one more time, to get the page
+numbers in the cross-references correct.
+
+  To summarize, this is a four step process:
+
+  1. Run `tex' on your Texinfo file.  This generates a DVI file (with
+     undefined cross-references and no indices), and the raw index files
+     (with two letter extensions).
+
+  2. Run `texindex' on the raw index files.  This creates the
+     corresponding sorted index files (with three letter extensions).
+
+  3. Run `tex' again on your Texinfo file.  This regenerates the DVI
+     file, this time with indices and defined cross-references, but
+     with page numbers for the cross-references from last time,
+     generally incorrect.
+
+  4. Run `tex' one last time.  This time the correct page numbers are
+     written for the cross-references.
+
+  Alternatively, it's a one-step process: run `texi2dvi'.
+
+  You need not run `texindex' each time after you run `tex'.  If you do
+not, on the next run, the `tex' formatting command will use whatever
+sorted index files happen to exist from the previous use of `texindex'.
+This is usually ok while you are debugging.
+
+\1f
+File: texinfo.info,  Node: Format with texi2dvi,  Next: Print with lpr,  Prev: Format with tex/texindex,  Up: Format/Print Hardcopy
+
+Format using `texi2dvi'
+=======================
+
+The `texi2dvi' command automatically runs both `tex' and `texindex' as
+many times as necessary to produce a DVI file with up-to-date, sorted
+indices.  It simplifies the `tex'--`texindex'--`tex' sequence described
+in the previous section.
+
+  The syntax for `texi2dvi' is like this (where `prompt$' is your shell
+prompt):
+
+     prompt$ texi2dvi FILENAME...
+
+  For a list of options, run `texi2dvi --help'.
+
+\1f
+File: texinfo.info,  Node: Print with lpr,  Next: Within Emacs,  Prev: Format with texi2dvi,  Up: Format/Print Hardcopy
+
+Shell Print Using `lpr -d'
+==========================
+
+The precise command to print a DVI file depends on your system
+installation, but `lpr -d' is common.  The command may require the DVI
+file name without any extension or with a `.dvi' extension.  (If it is
+`lpr', you must include the `.dvi'.)
+
+  The following commands, for example, will (probably) suffice to sort
+the indices, format, and print the `Bison Manual':
+
+     tex bison.texinfo
+     texindex bison.??
+     tex bison.texinfo
+     lpr -d bison.dvi
+
+(Remember that the shell commands may be different at your site; but
+these are commonly used versions.)
+
+  Using the `texi2dvi' shell script, you simply need type:
+
+     texi2dvi bison.texinfo
+     lpr -d bison.dvi
+
+\1f
+File: texinfo.info,  Node: Within Emacs,  Next: Texinfo Mode Printing,  Prev: Print with lpr,  Up: Format/Print Hardcopy
+
+From an Emacs Shell
+===================
+
+You can give formatting and printing commands from a shell within GNU
+Emacs.  To create a shell within Emacs, type `M-x shell'.  In this
+shell, you can format and print the document.  *Note Format and Print
+Hardcopy: Format/Print Hardcopy, for details.
+
+  You can switch to and from the shell buffer while `tex' is running
+and do other editing.  If you are formatting a long document on a slow
+machine, this can be very convenient.
+
+  You can also use `texi2dvi' from an Emacs shell.  For example, here
+is how to use `texi2dvi' to format and print `Using and Porting GNU CC'
+from a shell within Emacs:
+
+     texi2dvi gcc.texinfo
+     lpr -d gcc.dvi
+
+  *Note Texinfo Mode Printing::, for more information about formatting
+and printing in Texinfo mode.
+
+\1f
+File: texinfo.info,  Node: Texinfo Mode Printing,  Next: Compile-Command,  Prev: Within Emacs,  Up: Format/Print Hardcopy
+
+Formatting and Printing in Texinfo Mode
+=======================================
+
+Texinfo mode provides several predefined key commands for TeX
+formatting and printing.  These include commands for sorting indices,
+looking at the printer queue, killing the formatting job, and
+recentering the display of the buffer in which the operations occur.
+
+`C-c C-t C-b'
+`M-x texinfo-tex-buffer'
+     Run `texi2dvi' on the current buffer.
+
+`C-c C-t C-r'
+`M-x texinfo-tex-region'
+     Run TeX on the current region.
+
+`C-c C-t C-i'
+`M-x texinfo-texindex'
+     Sort the indices of a Texinfo file formatted with
+     `texinfo-tex-region'.
+
+`C-c C-t C-p'
+`M-x texinfo-tex-print'
+     Print a DVI file that was made with `texinfo-tex-region' or
+     `texinfo-tex-buffer'.
+
+`C-c C-t C-q'
+`M-x tex-show-print-queue'
+     Show the print queue.
+
+`C-c C-t C-d'
+`M-x texinfo-delete-from-print-queue'
+     Delete a job from the print queue; you will be prompted for the job
+     number shown by a preceding `C-c C-t C-q' command
+     (`texinfo-show-tex-print-queue').
+
+`C-c C-t C-k'
+`M-x tex-kill-job'
+     Kill the currently running TeX job started by `texinfo-tex-region'
+     or `texinfo-tex-buffer', or any other process running in the
+     Texinfo shell buffer.
+
+`C-c C-t C-x'
+`M-x texinfo-quit-job'
+     Quit a TeX formatting job that has stopped because of an error by
+     sending an <x> to it.  When you do this, TeX preserves a record of
+     what it did in a `.log' file.
+
+`C-c C-t C-l'
+`M-x tex-recenter-output-buffer'
+     Redisplay the shell buffer in which the TeX printing and formatting
+     commands are run to show its most recent output.
+
+  Thus, the usual sequence of commands for formatting a buffer is as
+follows (with comments to the right):
+
+     C-c C-t C-b             Run `texi2dvi' on the buffer.
+     C-c C-t C-p             Print the DVI file.
+     C-c C-t C-q             Display the printer queue.
+
+  The Texinfo mode TeX formatting commands start a subshell in Emacs
+called the `*tex-shell*'.  The `texinfo-tex-command',
+`texinfo-texindex-command', and `tex-dvi-print-command' commands are
+all run in this shell.
+
+  You can watch the commands operate in the `*tex-shell*' buffer, and
+you can switch to and from and use the `*tex-shell*' buffer as you
+would any other shell buffer.
+
+  The formatting and print commands depend on the values of several
+variables.  The default values are:
+
+          Variable                              Default value
+     
+     texinfo-texi2dvi-command                  "texi2dvi"
+     texinfo-tex-command                       "tex"
+     texinfo-texindex-command                  "texindex"
+     texinfo-delete-from-print-queue-command   "lprm"
+     texinfo-tex-trailer                       "@bye"
+     tex-start-of-header                       "%**start"
+     tex-end-of-header                         "%**end"
+     tex-dvi-print-command                     "lpr -d"
+     tex-show-queue-command                    "lpq"
+
+  You can change the values of these variables with the `M-x
+edit-options' command (*note Editing Variable Values: (xemacs)Edit
+Options.), with the `M-x set-variable' command (*note Examining and
+Setting Variables: (xemacs)Examining.), or with your `.emacs'
+initialization file (*note Init File: (xemacs)Init File.).
+
+\1f
+File: texinfo.info,  Node: Compile-Command,  Next: Requirements Summary,  Prev: Texinfo Mode Printing,  Up: Format/Print Hardcopy
+
+Using the Local Variables List
+==============================
+
+Yet another way to apply the TeX formatting command to a Texinfo file
+is to put that command in a "local variables list" at the end of the
+Texinfo file.  You can then specify the `tex' or `texi2dvi' commands as
+a `compile-command' and have Emacs run it by typing `M-x compile'.
+This creates a special shell called the `*compilation*' buffer in which
+Emacs runs the compile command.  For example, at the end of the
+`gdb.texinfo' file, after the `@bye', you could put the following:
+
+     Local Variables:
+     compile-command: "texi2dvi gdb.texinfo"
+     End:
+
+This technique is most often used by programmers who also compile
+programs this way; see *Note Compilation: (xemacs)Compilation.
+
+\1f
+File: texinfo.info,  Node: Requirements Summary,  Next: Preparing for TeX,  Prev: Compile-Command,  Up: Format/Print Hardcopy
+
+TeX Formatting Requirements Summary
+===================================
+
+Every Texinfo file that is to be input to TeX must begin with a
+`\input' command and must contain an `@setfilename' command:
+
+     \input texinfo
+     @setfilename ARG-NOT-USED-BY-@TEX{}
+
+The first command instructs TeX to load the macros it needs to process
+a Texinfo file and the second command opens auxiliary files.
+
+  Every Texinfo file must end with a line that terminates TeX's
+processing and forces out unfinished pages:
+
+     @bye
+
+  Strictly speaking, these lines are all a Texinfo file needs to be
+processed successfully by TeX.
+
+  Usually, however, the beginning includes an `@settitle' command to
+define the title of the printed manual, an `@setchapternewpage'
+command, a title page, a copyright page, and permissions.  Besides an
+`@bye', the end of a file usually includes indices and a table of
+contents.  (And of course most manuals contain a body of text as well.)
+
+For more information, see
+*Note `@settitle': settitle,
+*Note `@setchapternewpage': setchapternewpage,
+*Note Page Headings: Headings,
+*Note Titlepage & Copyright Page::,
+*Note Printing Indices & Menus::, and
+*Note Contents::.
+
+\1f
+File: texinfo.info,  Node: Preparing for TeX,  Next: Overfull hboxes,  Prev: Requirements Summary,  Up: Format/Print Hardcopy
+
+Preparing to Use TeX
+====================
+
+TeX needs to know where to find the `texinfo.tex' file that you have
+told it to input with the `\input texinfo' command at the beginning of
+the first line.  The `texinfo.tex' file tells TeX how to handle
+@-commands; it is included in all standard GNU distributions.
+
+  Usually, the `texinfo.tex' file is put under the default directory
+that contains TeX macros
+(`/usr/local/share/texmf/tex/texinfo/texinfo.tex' by default) when GNU
+Emacs or other GNU software is installed.  In this case, TeX will find
+the file and you do not need to do anything special.  Alternatively,
+you can put `texinfo.tex' in the current directory when you run TeX,
+and TeX will find it there.
+
+  Also, you should install `epsf.tex' in the same place as
+`texinfo.tex', if it is not already installed from another
+distribution.  This file is needed to support the `@image' command
+(*note Images::).
+
+  Optionally, you may create an additional `texinfo.cnf', and install
+it as well.  This file is read by TeX at the `@setfilename' command
+(*note `@setfilename': setfilename.).  You can put any commands you
+like there according to local site-wide conventions, and they will be
+read by TeX when processing any Texinfo document.  For example, if
+`texinfo.cnf' contains the a single line `@afourpaper' (*note A4
+Paper::), then all Texinfo documents will be processed with that page
+size in effect.  If you have nothing to put in `texinfo.cnf', you do
+not need to create it.
+
+  If neither of the above locations for these system files suffice for
+you, you can specify the directories explicitly.  For `texinfo.tex',
+you can do this by writing the complete path for the file after the
+`\input' command.  Another way, that works for both `texinfo.tex' and
+`texinfo.cnf' (and any other file TeX might read), is to set the
+`TEXINPUTS' environment variable in your `.cshrc' or `.profile' file.
+
+  Which you use of `.cshrc' or `.profile' depends on whether you use a
+Bourne shell-compatible (`sh', `bash', `ksh', ...) or C
+shell-compatible (`csh', `tcsh') command interpreter.  The latter read
+the `.cshrc' file for initialization information, and the former read
+`.profile'.
+
+  In a `.cshrc' file, you could use the following `csh' command
+sequence:
+
+     setenv TEXINPUTS .:/home/me/mylib:/usr/lib/tex/macros
+
+  In a `.profile' file, you could use the following `sh' command
+sequence:
+
+     TEXINPUTS=.:/home/me/mylib:/usr/lib/tex/macros
+     export TEXINPUTS
+
+This would cause TeX to look for `\input' file first in the current
+directory, indicated by the `.', then in a hypothetical user's
+`me/mylib' directory, and finally in a system directory.
+
+\1f
+File: texinfo.info,  Node: Overfull hboxes,  Next: smallbook,  Prev: Preparing for TeX,  Up: Format/Print Hardcopy
+
+Overfull "hboxes"
+=================
+
+TeX is sometimes unable to typeset a line without extending it into the
+right margin.  This can occur when TeX comes upon what it interprets as
+a long word that it cannot hyphenate, such as an electronic mail
+network address or a very long title.  When this happens, TeX prints an
+error message like this:
+
+     Overfull \hbox (20.76302pt too wide)
+
+(In TeX, lines are in "horizontal boxes", hence the term, "hbox".  The
+backslash, `\', is the TeX equivalent of `@'.)
+
+  TeX also provides the line number in the Texinfo source file and the
+text of the offending line, which is marked at all the places that TeX
+knows how to hyphenate words.  *Note Catching Errors with TeX
+Formatting: Debugging with TeX, for more information about typesetting
+errors.
+
+  If the Texinfo file has an overfull hbox, you can rewrite the sentence
+so the overfull hbox does not occur, or you can decide to leave it.  A
+small excursion into the right margin often does not matter and may not
+even be noticeable.
+
+  However, unless told otherwise, TeX will print a large, ugly, black
+rectangle beside the line that contains the overfull hbox.  This is so
+you will notice the location of the problem if you are correcting a
+draft.
+
+  To prevent such a monstrosity from marring your final printout, write
+the following in the beginning of the Texinfo file on a line of its own,
+before the `@titlepage' command:
+
+     @finalout
+
+\1f
+File: texinfo.info,  Node: smallbook,  Next: A4 Paper,  Prev: Overfull hboxes,  Up: Format/Print Hardcopy
+
+Printing "Small" Books
+======================
+
+By default, TeX typesets pages for printing in an 8.5 by 11 inch
+format.  However, you can direct TeX to typeset a document in a 7 by
+9.25 inch format that is suitable for bound books by inserting the
+following command on a line by itself at the beginning of the Texinfo
+file, before the title page:
+
+     @smallbook
+
+(Since regular sized books are often about 7 by 9.25 inches, this
+command might better have been called the `@regularbooksize' command,
+but it came to be called the `@smallbook' command by comparison to the
+8.5 by 11 inch format.)
+
+  If you write the `@smallbook' command between the start-of-header and
+end-of-header lines, the Texinfo mode TeX region formatting command,
+`texinfo-tex-region', will format the region in "small" book size
+(*note Start of Header::).
+
+  The Free Software Foundation distributes printed copies of `The GNU
+Emacs Manual' and other manuals in the "small" book size.  *Note
+`@smallexample' and `@smalllisp': smallexample & smalllisp, for
+information about commands that make it easier to produce examples for
+a smaller manual.
+
+  Alternatively, to avoid embedding this physical paper size in your
+document, use `texi2dvi' to format your document (*note Format with
+texi2dvi::), and supply `-t @smallbook' as an argument.  Then other
+people do not have to change the document source file to format it
+differently.
+
+\1f
+File: texinfo.info,  Node: A4 Paper,  Next: Cropmarks and Magnification,  Prev: smallbook,  Up: Format/Print Hardcopy
+
+Printing on A4 Paper
+====================
+
+You can tell TeX to typeset a document for printing on European size A4
+paper with the `@afourpaper' command.  Write the command on a line by
+itself between `@iftex' and `@end iftex' lines near the beginning of
+the Texinfo file, before the title page:
+
+  For example, this is how you would write the header for this manual:
+
+     \input texinfo    @c -*-texinfo-*-
+     @c %**start of header
+     @setfilename texinfo
+     @settitle Texinfo
+     @syncodeindex vr fn
+     @iftex
+     @afourpaper
+     @end iftex
+     @c %**end of header
+
+  Alternatively, to avoid embedding this physical paper size in your
+document, use `texi2dvi' to format your document (*note Format with
+texi2dvi::), and supply `-t @afourpaper' as an argument.  Then other
+people do not have to change the document source file to format it
+differently.
+
+  Another alternative: put the `@afourpaper' command in the file
+`texinfo.cnf' that TeX will read.  (No need for `@iftex' there.)  This
+will automatically typeset all the Texinfo documents at your site with
+that paper size in effect.
+
+\1f
+File: texinfo.info,  Node: Cropmarks and Magnification,  Prev: A4 Paper,  Up: Format/Print Hardcopy
+
+Cropmarks and Magnification
+===========================
+
+You can attempt to direct TeX to print cropmarks at the corners of
+pages with the `@cropmarks' command.  Write the `@cropmarks' command on
+a line by itself between `@iftex' and `@end iftex' lines near the
+beginning of the Texinfo file, before the title page, like this:
+
+     @iftex
+     @cropmarks
+     @end iftex
+
+  This command is mainly for printers that typeset several pages on one
+sheet of film; but you can attempt to use it to mark the corners of a
+book set to 7 by 9.25 inches with the `@smallbook' command.  (Printers
+will not produce cropmarks for regular sized output that is printed on
+regular sized paper.)  Since different printing machines work in
+different ways, you should explore the use of this command with a
+spirit of adventure.  You may have to redefine the command in the
+`texinfo.tex' definitions file.
+
+  You can attempt to direct TeX to typeset pages larger or smaller than
+usual with the `\mag' TeX command.  Everything that is typeset is
+scaled proportionally larger or smaller.  (`\mag' stands for
+"magnification".)  This is _not_ a Texinfo @-command, but is a plain
+TeX command that is prefixed with a backslash.  You have to write this
+command between `@tex' and `@end tex' (*note Raw Formatter Commands::).
+
+  Follow the `\mag' command with an `=' and then a number that is 1000
+times the magnification you desire.  For example, to print pages at 1.2
+normal size, write the following near the beginning of the Texinfo
+file, before the title page:
+
+     @tex
+     \mag=1200
+     @end tex
+
+  With some printing technologies, you can print normal-sized copies
+that look better than usual by using a larger-than-normal master.
+
+  Depending on your system, `\mag' may not work or may work only at
+certain magnifications.  Be prepared to experiment.
+
+\1f
+File: texinfo.info,  Node: Create an Info File,  Next: Install an Info File,  Prev: Format/Print Hardcopy,  Up: Top
+
+Creating an Info File
+*********************
+
+`makeinfo' is a utility that converts a Texinfo file into an Info file;
+`texinfo-format-region' and `texinfo-format-buffer' are GNU Emacs
+functions that do the same.
+
+  A Texinfo file must contain an `@setfilename' line near its
+beginning, otherwise the Info formatting commands will fail.
+
+  For information on installing the Info file in the Info system, see
+*Note Install an Info File::.
+
+* Menu:
+
+* makeinfo advantages::         `makeinfo' provides better error checking.
+* Invoking makeinfo::           How to run `makeinfo' from a shell.
+* makeinfo options::            Specify fill-column and other options.
+* Pointer Validation::          How to check that pointers point somewhere.
+* makeinfo in Emacs::           How to run `makeinfo' from Emacs.
+* texinfo-format commands::     Two Info formatting commands written
+                                  in Emacs Lisp are an alternative
+                                  to `makeinfo'.
+* Batch Formatting::            How to format for Info in Emacs Batch mode.
+* Tag and Split Files::         How tagged and split files help Info
+                                  to run better.
+
+\1f
+File: texinfo.info,  Node: makeinfo advantages,  Next: Invoking makeinfo,  Prev: Create an Info File,  Up: Create an Info File
+
+`makeinfo' Preferred
+====================
+
+  The `makeinfo' utility creates an Info file from a Texinfo source
+file more quickly than either of the Emacs formatting commands and
+provides better error messages.  We recommend it.  `makeinfo' is a C
+program that is independent of Emacs.  You do not need to run Emacs to
+use `makeinfo', which means you can use `makeinfo' on machines that are
+too small to run Emacs. You can run `makeinfo' in any one of three
+ways: from an operating system shell, from a shell inside Emacs, or by
+typing a key command in Texinfo mode in Emacs.
+
+  The `texinfo-format-region' and the `texinfo-format-buffer' commands
+are useful if you cannot run `makeinfo'.  Also, in some circumstances,
+they format short regions or buffers more quickly than `makeinfo'.
+
+\1f
+File: texinfo.info,  Node: Invoking makeinfo,  Next: makeinfo options,  Prev: makeinfo advantages,  Up: Create an Info File
+
+Running `makeinfo' from a Shell
+===============================
+
+To create an Info file from a Texinfo file, type `makeinfo' followed by
+the name of the Texinfo file.  Thus, to create the Info file for Bison,
+type the following to the shell: is the prompt):
+
+     makeinfo bison.texinfo
+
+  (You can run a shell inside Emacs by typing `M-x shell'.)
+
+  Sometimes you will want to specify options.  For example, if you wish
+to discover which version of `makeinfo' you are using, type:
+
+     makeinfo --version
+
+  *Note makeinfo options::, for more information.
+
+\1f
+File: texinfo.info,  Node: makeinfo options,  Next: Pointer Validation,  Prev: Invoking makeinfo,  Up: Create an Info File
+
+Options for `makeinfo'
+======================
+
+The `makeinfo' command takes a number of options.  Most often, options
+are used to set the value of the fill column and specify the footnote
+style.  Each command line option is a word preceded by `--' or a letter
+preceded by `-'.  You can use abbreviations for the long option names
+as long as they are unique.
+
+  For example, you could use the following shell command to create an
+Info file for `bison.texinfo' in which each line is filled to only 68
+columns:
+
+     makeinfo --fill-column=68 bison.texinfo
+
+  You can write two or more options in sequence, like this:
+
+     makeinfo --no-split --fill-column=70 ...
+
+This would keep the Info file together as one possibly very long file
+and would also set the fill column to 70.
+
+  The options are:
+
+`-D VAR'
+     Cause the variable VAR to be defined.  This is equivalent to `@set
+     VAR' in the Texinfo file (*note set clear value::).
+
+`--error-limit=LIMIT'
+     Set the maximum number of errors that `makeinfo' will report
+     before exiting (on the assumption that continuing would be
+     useless); default 100.
+
+`--fill-column=WIDTH'
+     Specify the maximum number of columns in a line; this is the
+     right-hand edge of a line.  Paragraphs that are filled will be
+     filled to this width.  (Filling is the process of breaking up and
+     connecting lines so that lines are the same length as or shorter
+     than the number specified as the fill column.  Lines are broken
+     between words.) The default value is 72.
+
+`--footnote-style=STYLE'
+     Set the footnote style to STYLE, either `end' for the end node
+     style (the default) or `separate' for the separate node style.
+     The value set by this option overrides the value set in a Texinfo
+     file by an `@footnotestyle' command (*note Footnotes::).  When the
+     footnote style is `separate', `makeinfo' makes a new node
+     containing the footnotes found in the current node.  When the
+     footnote style is `end', `makeinfo' places the footnote references
+     at the end of the current node.
+
+`--force'
+     Ordinarily, if the input file has errors, the output files are not
+     created.  With this option, they are preserved.
+
+`--help'
+     Print a usage message listing all available options, then exit
+     successfully.
+
+`-I DIR'
+     Add `dir' to the directory search list for finding files that are
+     included using the `@include' command.  By default, `makeinfo'
+     searches only the current directory.
+
+`--no-headers'
+     Do not include menus or node lines in the output.  This results in
+     an ASCII file that you cannot read in Info since it does not
+     contain the requisite nodes or menus. It is primarily useful to
+     extract certain pieces of a manual into separate files to be
+     included in a distribution, such as `INSTALL' files.
+
+`--no-split'
+     Suppress the splitting stage of `makeinfo'.  By default, large
+     output files (where the size is greater than 70k bytes) are split
+     into smaller subfiles, each one approximately 50k bytes.
+
+`--no-pointer-validate'
+`--no-validate'
+     Suppress the pointer-validation phase of `makeinfo'.  Normally,
+     after a Texinfo file is processed, some consistency checks are
+     made to ensure that cross references can be resolved, etc.  *Note
+     Pointer Validation::.
+
+`--no-warn'
+     Suppress warning messages (but _not_ error messages).  You might
+     want this if the file you are creating has examples of Texinfo
+     cross references within it, and the nodes that are referenced do
+     not actually exist.
+
+`--no-number-footnotes'
+     Suppress automatic footnote numbering.  By default, `makeinfo'
+     numbers each footnote sequentially in a single node, resetting the
+     current footnote number to 1 at the start of each node.
+
+`--output=FILE'
+`-o FILE'
+     Specify that the output should be directed to FILE and not to the
+     file name specified in the `@setfilename' command found in the
+     Texinfo source (*note setfilename::).  If FILE is `-', output goes
+     to standard output and `--no-split' is implied.
+
+`-P DIR'
+     Prepend `dir' to the directory search list for `@include'.  See
+     `-I' for more details.
+
+`--paragraph-indent=INDENT'
+     Set the paragraph indentation style to INDENT.  The value set by
+     this option overrides the value set in a Texinfo file by an
+     `@paragraphindent' command (*note paragraphindent::).  The value
+     of INDENT is interpreted as follows:
+
+    `asis'
+          Preserve any existing indentation at the starts of paragraphs.
+
+    `0' or `none'
+          Delete any existing indentation.
+
+    NUM
+          Indent each paragraph by that number of spaces.
+
+`--reference-limit=LIMIT'
+     Set the value of the number of references to a node that
+     `makeinfo' will make without reporting a warning.  If a node has
+     more than this number of references in it, `makeinfo' will make the
+     references but also report a warning.  The default is 1000.
+
+`-U VAR'
+     Cause VAR to be undefined.  This is equivalent to `@clear VAR' in
+     the Texinfo file (*note set clear value::).
+
+`--verbose'
+     Cause `makeinfo' to display messages saying what it is doing.
+     Normally, `makeinfo' only outputs messages if there are errors or
+     warnings.
+
+`--version'
+     Print the version number, then exit successfully.
+
+
+\1f
+File: texinfo.info,  Node: Pointer Validation,  Next: makeinfo in Emacs,  Prev: makeinfo options,  Up: Create an Info File
+
+Pointer Validation
+==================
+
+If you do not suppress pointer-validation, `makeinfo' will check the
+validity of the final Info file.  Mostly, this means ensuring that
+nodes you have referenced really exist.  Here is a complete list of what
+is checked:
+
+  1. If a `Next', `Previous', or `Up' node reference is a reference to a
+     node in the current file and is not an external reference such as
+     to `(dir)', then the referenced node must exist.
+
+  2. In every node, if the `Previous' node is different from the `Up'
+     node, then the `Previous' node must also be pointed to by a `Next'
+     node.
+
+  3. Every node except the `Top' node must have an `Up' pointer.
+
+  4. The node referenced by an `Up' pointer must contain a reference to
+     the current node in some manner other than through a `Next'
+     reference.  This includes menu entries and cross references.
+
+  5. If the `Next' reference of a node is not the same as the `Next'
+     reference of the `Up' reference, then the node referenced by the
+     `Next' pointer must have a `Previous' pointer that points back to
+     the current node.  This rule allows the last node in a section to
+     point to the first node of the next chapter.
+
+\1f
+File: texinfo.info,  Node: makeinfo in Emacs,  Next: texinfo-format commands,  Prev: Pointer Validation,  Up: Create an Info File
+
+Running `makeinfo' inside Emacs
+===============================
+
+You can run `makeinfo' in GNU Emacs Texinfo mode by using either the
+`makeinfo-region' or the `makeinfo-buffer' commands.  In Texinfo mode,
+the commands are bound to `C-c C-m C-r' and `C-c C-m C-b' by default.
+
+`C-c C-m C-r'
+`M-x makeinfo-region'
+     Format the current region for Info.
+
+`C-c C-m C-b'
+`M-x makeinfo-buffer'
+     Format the current buffer for Info.
+
+  When you invoke either `makeinfo-region' or `makeinfo-buffer', Emacs
+prompts for a file name, offering the name of the visited file as the
+default.  You can edit the default file name in the minibuffer if you
+wish, before pressing <RET> to start the `makeinfo' process.
+
+  The Emacs `makeinfo-region' and `makeinfo-buffer' commands run the
+`makeinfo' program in a temporary shell buffer.  If `makeinfo' finds
+any errors, Emacs displays the error messages in the temporary buffer.
+
+  You can parse the error messages by typing `C-x `' (`next-error').
+This causes Emacs to go to and position the cursor on the line in the
+Texinfo source that `makeinfo' thinks caused the error.  *Note Running
+`make' or Compilers Generally: (xemacs)Compilation, for more
+information about using the `next-error' command.
+
+  In addition, you can kill the shell in which the `makeinfo' command
+is running or make the shell buffer display its most recent output.
+
+`C-c C-m C-k'
+`M-x makeinfo-kill-job'
+     Kill the current running `makeinfo' job created by
+     `makeinfo-region' or `makeinfo-buffer'.
+
+`C-c C-m C-l'
+`M-x makeinfo-recenter-output-buffer'
+     Redisplay the `makeinfo' shell buffer to display its most recent
+     output.
+
+(Note that the parallel commands for killing and recentering a TeX job
+are `C-c C-t C-k' and `C-c C-t C-l'.  *Note Texinfo Mode Printing::.)
+
+  You can specify options for `makeinfo' by setting the
+`makeinfo-options' variable with either the `M-x edit-options' or the
+`M-x set-variable' command, or by setting the variable in your `.emacs'
+initialization file.
+
+  For example, you could write the following in your `.emacs' file:
+
+     (setq makeinfo-options
+           "--paragraph-indent=0 --no-split
+            --fill-column=70 --verbose")
+
+For more information, see
+*Note Editing Variable Values: (xemacs)Edit Options,
+*Note Examining and Setting Variables: (xemacs)Examining,
+*Note Init File: (xemacs)Init File, and
+*Note Options for `makeinfo': makeinfo options.
+
+\1f
+File: texinfo.info,  Node: texinfo-format commands,  Next: Batch Formatting,  Prev: makeinfo in Emacs,  Up: Create an Info File
+
+The `texinfo-format...' Commands
+================================
+
+In GNU Emacs in Texinfo mode, you can format part or all of a Texinfo
+file with the `texinfo-format-region' command.  This formats the
+current region and displays the formatted text in a temporary buffer
+called `*Info Region*'.
+
+  Similarly, you can format a buffer with the `texinfo-format-buffer'
+command.  This command creates a new buffer and generates the Info file
+in it.  Typing `C-x C-s' will save the Info file under the name
+specified by the `@setfilename' line which must be near the beginning
+of the Texinfo file.
+
+`C-c C-e C-r'
+``texinfo-format-region''
+     Format the current region for Info.
+
+`C-c C-e C-b'
+``texinfo-format-buffer''
+     Format the current buffer for Info.
+
+  The `texinfo-format-region' and `texinfo-format-buffer' commands
+provide you with some error checking, and other functions can provide
+you with further help in finding formatting errors.  These procedures
+are described in an appendix; see *Note Catching Mistakes::.  However,
+the `makeinfo' program is often faster and provides better error
+checking (*note makeinfo in Emacs::).
+
+\1f
+File: texinfo.info,  Node: Batch Formatting,  Next: Tag and Split Files,  Prev: texinfo-format commands,  Up: Create an Info File
+
+Batch Formatting
+================
+
+You can format Texinfo files for Info using `batch-texinfo-format' and
+Emacs Batch mode.  You can run Emacs in Batch mode from any shell,
+including a shell inside of Emacs.  (*Note Command Line Switches and
+Arguments: (xemacs)Command Switches.)
+
+  Here is a shell command to format all the files that end in
+`.texinfo' in the current directory:
+
+     emacs -batch -funcall batch-texinfo-format *.texinfo
+
+Emacs processes all the files listed on the command line, even if an
+error occurs while attempting to format some of them.
+
+  Run `batch-texinfo-format' only with Emacs in Batch mode as shown; it
+is not interactive.  It kills the Batch mode Emacs on completion.
+
+  `batch-texinfo-format' is convenient if you lack `makeinfo' and want
+to format several Texinfo files at once.  When you use Batch mode, you
+create a new Emacs process.  This frees your current Emacs, so you can
+continue working in it.  (When you run `texinfo-format-region' or
+`texinfo-format-buffer', you cannot use that Emacs for anything else
+until the command finishes.)
+
+\1f
+File: texinfo.info,  Node: Tag and Split Files,  Prev: Batch Formatting,  Up: Create an Info File
+
+Tag Files and Split Files
+=========================
+
+If a Texinfo file has more than 30,000 bytes, `texinfo-format-buffer'
+automatically creates a tag table for its Info file;  `makeinfo' always
+creates a tag table.  With a "tag table", Info can jump to new nodes
+more quickly than it can otherwise.
+
+  In addition, if the Texinfo file contains more than about 70,000
+bytes, `texinfo-format-buffer' and `makeinfo' split the large Info file
+into shorter "indirect" subfiles of about 50,000 bytes each.  Big files
+are split into smaller files so that Emacs does not need to make a
+large buffer to hold the whole of a large Info file; instead, Emacs
+allocates just enough memory for the small, split off file that is
+needed at the time.  This way, Emacs avoids wasting memory when you run
+Info.  (Before splitting was implemented, Info files were always kept
+short and "include files" were designed as a way to create a single,
+large printed manual out of the smaller Info files.  *Note Include
+Files::, for more information.  Include files are still used for very
+large documents, such as `The XEmacs Lisp Reference Manual', in which
+each chapter is a separate file.)
+
+  When a file is split, Info itself makes use of a shortened version of
+the original file that contains just the tag table and references to
+the files that were split off.  The split off files are called
+"indirect" files.
+
+  The split off files have names that are created by appending `-1',
+`-2', `-3' and so on to the file name specified by the `@setfilename'
+command.  The shortened version of the original file continues to have
+the name specified by `@setfilename'.
+
+  At one stage in writing this document, for example, the Info file was
+saved as `test-texinfo' and that file looked like this:
+
+     Info file: test-texinfo,    -*-Text-*-
+     produced by texinfo-format-buffer
+     from file: new-texinfo-manual.texinfo
+     
+     ^_
+     Indirect:
+     test-texinfo-1: 102
+     test-texinfo-2: 50422
+     test-texinfo-3: 101300
+     ^_^L
+     Tag table:
+     (Indirect)
+     Node: overview^?104
+     Node: info file^?1271
+     Node: printed manual^?4853
+     Node: conventions^?6855
+     ...
+
+(But `test-texinfo' had far more nodes than are shown here.)  Each of
+the split off, indirect files, `test-texinfo-1', `test-texinfo-2', and
+`test-texinfo-3', is listed in this file after the line that says
+`Indirect:'.  The tag table is listed after the line that says `Tag
+table:'.
+
+  In the list of indirect files, the number following the file name
+records the cumulative number of bytes in the preceding indirect files,
+not counting the file list itself, the tag table, or the permissions
+text in each file.  In the tag table, the number following the node name
+records the location of the beginning of the node, in bytes from the
+beginning.
+
+  If you are using `texinfo-format-buffer' to create Info files, you
+may want to run the `Info-validate' command.  (The `makeinfo' command
+does such a good job on its own, you do not need `Info-validate'.)
+However, you cannot run the `M-x Info-validate' node-checking command
+on indirect files.  For information on how to prevent files from being
+split and how to validate the structure of the nodes, see *Note Using
+Info-validate::.
+
+\1f
+File: texinfo.info,  Node: Install an Info File,  Next: Command List,  Prev: Create an Info File,  Up: Top
+
+Installing an Info File
+***********************
+
+Info files are usually kept in the `info' directory.  You can read Info
+files using the standalone Info program or the Info reader built into
+Emacs.  (*note info: (info)Top, for an introduction to Info.)
+
+* Menu:
+
+* Directory file::              The top level menu for all Info files.
+* New Info File::               Listing a new info file.
+* Other Info Directories::      How to specify Info files that are
+                                  located in other directories.
+* Installing Dir Entries::      How to specify what menu entry to add
+                                  to the Info directory.
+* Invoking install-info::       `install-info' options.
+
+\1f
+File: texinfo.info,  Node: Directory file,  Next: New Info File,  Prev: Install an Info File,  Up: Install an Info File
+
+The `dir' File
+==============
+
+  For Info to work, the `info' directory must contain a file that
+serves as a top level directory for the Info system.  By convention,
+this file is called `dir'.  (You can find the location of this file
+within Emacs by typing `C-h i' to enter Info and then typing `C-x C-f'
+to see the pathname to the `info' directory.)
+
+  The `dir' file is itself an Info file.  It contains the top level
+menu for all the Info files in the system.  The menu looks like this:
+
+     * Menu:
+     
+     * Info:    (info).     Documentation browsing system.
+     * Emacs:   (emacs).    The extensible, self-documenting
+                            text editor.
+     * Texinfo: (texinfo).  With one source file, make
+                            either a printed manual using
+                            TeX or an Info file.
+     ...
+
+  Each of these menu entries points to the `Top' node of the Info file
+that is named in parentheses.  (The menu entry does not need to specify
+the `Top' node, since Info goes to the `Top' node if no node name is
+mentioned.  *Note Nodes in Other Info Files: Other Info Files.)
+
+  Thus, the `Info' entry points to the `Top' node of the `info' file
+and the `Emacs' entry points to the `Top' node of the `emacs' file.
+
+  In each of the Info files, the `Up' pointer of the `Top' node refers
+back to the `dir' file.  For example, the line for the `Top' node of
+the Emacs manual looks like this in Info:
+
+     File: emacs  Node: Top, Up: (DIR), Next: Distrib
+
+(Note that in this case, the `dir' file name is written in upper case
+letters--it can be written in either upper or lower case.  Info has a
+feature that it will change the case of the file name to lower case if
+it cannot find the name as written.)
+
+\1f
+File: texinfo.info,  Node: New Info File,  Next: Other Info Directories,  Prev: Directory file,  Up: Install an Info File
+
+Listing a New Info File
+=======================
+
+To add a new Info file to your system, you must write a menu entry to
+add to the menu in the `dir' file in the `info' directory.  For
+example, if you were adding documentation for GDB, you would write the
+following new entry:
+
+     * GDB: (gdb).           The source-level C debugger.
+
+The first part of the menu entry is the menu entry name, followed by a
+colon.  The second part is the name of the Info file, in parentheses,
+followed by a period.  The third part is the description.
+
+  The name of an Info file often has a `.info' extension.  Thus, the
+Info file for GDB might be called either `gdb' or `gdb.info'.  The Info
+reader programs automatically try the file name both with and without
+`.info'; so it is better to avoid clutter and not to write `.info'
+explicitly in the menu entry.  For example, the GDB menu entry should
+use just `gdb' for the file name, not `gdb.info'.
+
+\1f
+File: texinfo.info,  Node: Other Info Directories,  Next: Installing Dir Entries,  Prev: New Info File,  Up: Install an Info File
+
+Info Files in Other Directories
+===============================
+
+If an Info file is not in the `info' directory, there are three ways to
+specify its location:
+
+   * Write the pathname in the `dir' file as the second part of the
+     menu.
+
+   * If you are using Emacs, list the name of the file in a second `dir'
+     file, in its directory; and then add the name of that directory to
+     the `Info-directory-list' variable in your personal or site
+     initialization file.
+
+     This tells Emacs where to look for `dir' files.  Emacs merges the
+     files named `dir' from each of the listed directories.  (In Emacs
+     version 18, you can set the `Info-directory' variable to the name
+     of only one directory.)
+
+   * Specify the Info directory name in the `INFOPATH' environment
+     variable in your `.profile' or `.cshrc' initialization file.
+     (Only you and others who set this environment variable will be
+     able to find Info files whose location is specified this way.)
+
+  For example, to reach a test file in the `/home/bob/manuals'
+directory, you could add an entry like this to the menu in the `dir'
+file:
+
+     * Test: (/home/bob/manuals/info-test).  Bob's own test file.
+
+In this case, the absolute file name of the `info-test' file is written
+as the second part of the menu entry.
+
+  Alternatively, you could write the following in your `.emacs' file:
+
+     (setq Info-directory-list
+           '("/home/bob/manuals"
+             "/usr/local/info"))
+
+  This tells Emacs to merge the `dir' file from the `/home/bob/manuals'
+directory with the `dir' file from the `/usr/local/info' directory.
+Info will list the `/home/bob/manuals/info-test' file as a menu entry
+in the `/home/bob/manuals/dir' file.
+
+  Finally, you can tell Info where to look by setting the `INFOPATH'
+environment variable in your `.cshrc' or `.profile' file.  If you use a
+Bourne-compatible shell such as `sh' or `bash' for your shell command
+interpreter, you set the `INFOPATH' environment variable in the
+`.profile' initialization file; but if you use `csh' or `tcsh', you
+must set the variable in the `.cshrc' initialization file.  The two
+types of shells use different syntax.
+
+   * In a `.cshrc' file, you could set the `INFOPATH' variable as
+     follows:
+
+          setenv INFOPATH .:~/manuals:/usr/local/emacs/info
+
+   * In a `.profile' file, you would achieve the same effect by writing:
+
+          INFOPATH=.:$HOME/manuals:/usr/local/emacs/info
+          export INFOPATH
+
+The `.' indicates the current directory as usual.  Emacs uses the
+`INFOPATH' environment variable to initialize the value of Emacs's own
+`Info-directory-list' variable.
+
+  However you set `INFOPATH', if its last character is a colon, this is
+replaced by the default (compiled-in) path.  This gives you a way to
+augment the default path with new directories without having to list all
+the standard places.  For example (using `sh' syntax:
+
+     INFOPATH=/local/info:
+     export INFOPATH
+
+will search `/local/info' first, then the standard directories.
+Leading or doubled colons are not treated specially.
+
+\1f
+File: texinfo.info,  Node: Installing Dir Entries,  Next: Invoking install-info,  Prev: Other Info Directories,  Up: Install an Info File
+
+Installing Info Directory Files
+===============================
+
+When you install an Info file onto your system, you can use the program
+`install-info' to update the Info directory file `dir'.  Normally the
+makefile for the package runs `install-info', just after copying the
+Info file into its proper installed location.
+
+  In order for the Info file to work with `install-info', you should
+use the commands `@dircategory' and `@direntry' in the Texinfo source
+file.  Use `@direntry' to specify the menu entry to add to the Info
+directory file, and use `@dircategory' to specify which part of the
+Info directory to put it in.  Here is how these commands are used in
+this manual:
+
+     @dircategory Texinfo documentation system
+     @direntry
+     * Texinfo: (texinfo).           The GNU documentation format.
+     * install-info: (texinfo)Invoking install-info. ...
+     ...
+     @end direntry
+
+  Here's what this produces in the Info file:
+
+     INFO-DIR-SECTION Texinfo documentation system
+     START-INFO-DIR-ENTRY
+     * Texinfo: (texinfo).           The GNU documentation format.
+     * install-info: (texinfo)Invoking install-info. ...
+     ...
+     END-INFO-DIR-ENTRY
+
+The `install-info' program sees these lines in the Info file, and that
+is how it knows what to do.
+
+  Always use the `@direntry' and `@dircategory' commands near the
+beginning of the Texinfo input, before the first `@node' command.  If
+you use them later on in the input, `install-info' will not notice them.
+
+  If you use `@dircategory' more than once in the Texinfo source, each
+usage specifies one category; the new menu entry is added to the Info
+directory file in each of the categories you specify.  If you use
+`@direntry' more than once, each usage specifies one menu entry; each
+of these menu entries is added to the directory in each of the
+specified categories.
+
+\1f
+File: texinfo.info,  Node: Invoking install-info,  Prev: Installing Dir Entries,  Up: Install an Info File
+
+Invoking install-info
+=====================
+
+`install-info' inserts menu entries from an Info file into the
+top-level `dir' file in the Info system (see the previous sections for
+an explanation of how the `dir' file works).  It's most often run as
+part of software installation, or when constructing a dir file for all
+manuals on a system.  Synopsis:
+
+     install-info [OPTION]... [INFO-FILE [DIR-FILE]]
+
+  If INFO-FILE or DIR-FILE are not specified, the various options
+(described below) that define them must be.  There are no compile-time
+defaults, and standard input is never used.  `install-info' can read
+only one info file and write only one dir file per invocation.
+
+  If DIR-FILE (however specified) does not exist, `install-info'
+creates it if possible (with no entries).
+
+  Options:
+
+`--delete'
+     Delete the entries in INFO-FILE from DIR-FILE.  The file name in
+     the entry in DIR-FILE must be INFO-FILE (except for an optional
+     `.info' in either one).  Don't insert any new entries.
+
+`--dir-file=NAME'
+     Specify file name of the Info directory file.  This is equivalent
+     to using the DIR-FILE argument.
+
+`--entry=TEXT'
+     Insert TEXT as an Info directory entry; TEXT should have the form
+     of an Info menu item line plus zero or more extra lines starting
+     with whitespace.  If you specify more than one entry, they are all
+     added.  If you don't specify any entries, they are determined from
+     information in the Info file itself.
+
+`--help'
+     Display a usage message listing basic usage and all available
+     options, then exit successfully.
+
+`--info-file=FILE'
+     Specify Info file to install in the directory.  This is equivalent
+     to using the INFO-FILE argument.
+
+`--info-dir=DIR'
+     Equivalent to `--dir-file=DIR/dir'.
+
+`--item=TEXT'
+     Same as `--entry=TEXT'.  An Info directory entry is actually a
+     menu item.
+
+`--quiet'
+     Suppress warnings.
+
+`--remove'
+     Same as `--delete'.
+
+`--section=SEC'
+     Put this file's entries in section SEC of the directory.  If you
+     specify more than one section, all the entries are added in each
+     of the sections.  If you don't specify any sections, they are
+     determined from information in the Info file itself.
+
+`--version'
+     Display version information and exit successfully.
+
+
+\1f
+File: texinfo.info,  Node: Command List,  Next: Tips,  Prev: Install an Info File,  Up: Top
+
+@-Command List
+**************
+
+Here is an alphabetical list of the @-commands in Texinfo.  Square
+brackets, [ ], indicate optional arguments; an ellipsis, `...',
+indicates repeated text.
+
+
+`@WHITESPACE'
+     An `@' followed by a space, tab, or newline produces a normal,
+     stretchable, interword space.  *Note Multiple Spaces::.
+
+`@!'
+     Generate an exclamation point that really does end a sentence
+     (usually after an end-of-sentence capital letter).  *Note Ending a
+     Sentence::.
+
+`@"'
+`@''
+     Generate an umlaut or acute accent, respectively, over the next
+     character, as in o" and o'.  *Note Inserting Accents::.
+
+`@*'
+     Force a line break. Do not end a paragraph that uses `@*' with an
+     `@refill' command.  *Note Line Breaks::.
+
+`@,{C}'
+     Generate a cedilla accent under C, as in c,.  *Note Inserting
+     Accents::.
+
+`@-'
+     Insert a discretionary hyphenation point.  *Note - and
+     hyphenation::.
+
+`@.'
+     Produce a period that really does end a sentence (usually after an
+     end-of-sentence capital letter).  *Note Ending a Sentence::.
+
+`@:'
+     Indicate to TeX that an immediately preceding period, question
+     mark, exclamation mark, or colon does not end a sentence.  Prevent
+     TeX from inserting extra whitespace as it does at the end of a
+     sentence.  The command has no effect on the Info file output.
+     *Note Not Ending a Sentence::.
+
+`@='
+     Generate a macro (bar) accent over the next character, as in o=.
+     *Note Inserting Accents::.
+
+`@?'
+     Generate a question mark that really does end a sentence (usually
+     after an end-of-sentence capital letter).  *Note Ending a
+     Sentence::.
+
+`@@'
+     Stands for an at sign, `@'.  *Note Inserting @ and braces: Braces
+     Atsigns.
+
+`@^'
+`@`'
+     Generate a circumflex (hat) or grave accent, respectively, over
+     the next character, as in o^.  *Note Inserting Accents::.
+
+`@{'
+     Stands for a left brace, `{'.  *Note Inserting @ and braces:
+     Braces Atsigns.
+
+`@}'
+     Stands for a right-hand brace, `}'.
+     *Note Inserting @ and braces: Braces Atsigns.
+
+`@='
+     Generate a tilde accent over the next character, as in N~.  *Note
+     Inserting Accents::.
+
+`@AA{}'
+`@aa{}'
+     Generate the uppercase and lowercase Scandinavian A-ring letters,
+     respectively: AA, aa.  *Note Inserting Accents::.
+
+`@AE{}'
+`@ae{}'
+     Generate the uppercase and lowercase AE ligatures, respectively:
+     AE, ae.  *Note Inserting Accents::.
+
+`@afourpaper'
+     Change page dimensions for the A4 paper size.  Only allowed inside
+     `@iftex' ... `@end iftex'.  *Note A4 Paper::.
+
+`@appendix TITLE'
+     Begin an appendix.  The title appears in the table of contents of
+     a printed manual.  In Info, the title is underlined with
+     asterisks.  *Note The `@unnumbered' and `@appendix' Commands:
+     unnumbered & appendix.
+
+`@appendixsec TITLE'
+`@appendixsection TITLE'
+     Begin an appendix section within an appendix.  The section title
+     appears in the table of contents of a printed manual.  In Info,
+     the title is underlined with equal signs.  `@appendixsection' is a
+     longer spelling of the `@appendixsec' command.  *Note Section
+     Commands: unnumberedsec appendixsec heading.
+
+`@appendixsubsec TITLE'
+     Begin an appendix subsection within an appendix.  The title appears
+     in the table of contents of a printed manual.  In Info, the title
+     is underlined with hyphens.  *Note Subsection Commands:
+     unnumberedsubsec appendixsubsec subheading.
+
+`@appendixsubsubsec TITLE'
+     Begin an appendix subsubsection within an appendix subsection.  The
+     title appears in the table of contents of a printed manual.  In
+     Info, the title is underlined with periods.  *Note The `subsub'
+     Commands: subsubsection.
+
+`@asis'
+     Used following `@table', `@ftable', and `@vtable' to print the
+     table's first column without highlighting ("as is").  *Note Making
+     a Two-column Table: Two-column Tables.
+
+`@author AUTHOR'
+     Typeset AUTHOR flushleft and underline it.  *Note The `@title' and
+     `@author' Commands: title subtitle author.
+
+`@b{TEXT}'
+     Print TEXT in bold font.  No effect in Info.  *Note Fonts::.
+
+`@bullet{}'
+     Generate a large round dot, or the closest possible thing to one.
+     *Note `@bullet': bullet.
+
+`@bye'
+     Stop formatting a file.  The formatters do not see the contents of
+     a file following an `@bye' command.  *Note Ending a File::.
+
+`@c COMMENT'
+     Begin a comment in Texinfo.  The rest of the line does not appear
+     in either the Info file or the printed manual.  A synonym for
+     `@comment'.  *Note Comments: Comments.
+
+`@cartouche'
+     Highlight an example or quotation by drawing a box with rounded
+     corners around it.  Pair with `@end cartouche'.  No effect in
+     Info.  *Note Drawing Cartouches Around Examples: cartouche.)
+
+`@center LINE-OF-TEXT'
+     Center the line of text following the command.  *Note `@center':
+     titlefont center sp.
+
+`@centerchap LINE-OF-TEXT'
+     Like `@chapter', but centers the chapter title.  *Note `@chapter':
+     chapter.
+
+`@chapheading TITLE'
+     Print a chapter-like heading in the text, but not in the table of
+     contents of a printed manual.  In Info, the title is underlined
+     with asterisks.  *Note `@majorheading' and `@chapheading':
+     majorheading & chapheading.
+
+`@chapter TITLE'
+     Begin a chapter.  The chapter title appears in the table of
+     contents of a printed manual.  In Info, the title is underlined
+     with asterisks.  *Note `@chapter': chapter.
+
+`@cindex ENTRY'
+     Add ENTRY to the index of concepts.  *Note Defining the Entries of
+     an Index: Index Entries.
+
+`@cite{REFERENCE}'
+     Highlight the name of a book or other reference that lacks a
+     companion Info file.  *Note `@cite': cite.
+
+`@clear FLAG'
+     Unset FLAG, preventing the Texinfo formatting commands from
+     formatting text between subsequent pairs of `@ifset FLAG' and
+     `@end ifset' commands, and preventing `@value{FLAG}' from
+     expanding to the value to which FLAG is set.  *Note `@set'
+     `@clear' `@value': set clear value.
+
+`@code{SAMPLE-CODE}'
+     Highlight text that is an expression, a syntactically complete
+     token of a program, or a program name.  *Note `@code': code.
+
+`@comment COMMENT'
+     Begin a comment in Texinfo.  The rest of the line does not appear
+     in either the Info file or the printed manual.  A synonym for `@c'.
+     *Note Comments: Comments.
+
+`@contents'
+     Print a complete table of contents.  Has no effect in Info, which
+     uses menus instead.  *Note Generating a Table of Contents:
+     Contents.
+
+`@copyright{}'
+     Generate a copyright symbol.  *Note `@copyright': copyright symbol.
+
+`@defcodeindex INDEX-NAME'
+     Define a new index and its indexing command.  Print entries in an
+     `@code' font.  *Note Defining New Indices: New Indices.
+
+`@defcv CATEGORY CLASS NAME'
+`@defcvx CATEGORY CLASS NAME'
+     Format a description for a variable associated with a class in
+     object-oriented programming.  Takes three arguments: the category
+     of thing being defined, the class to which it belongs, and its
+     name.  *Note Definition Commands::, and *Note Def Cmds in Detail:
+     deffnx.
+
+`@deffn CATEGORY NAME ARGUMENTS...'
+`@deffnx CATEGORY NAME ARGUMENTS...'
+     Format a description for a function, interactive command, or
+     similar entity that may take arguments.  `@deffn' takes as
+     arguments the category of entity being described, the name of this
+     particular entity, and its arguments, if any.  *Note Definition
+     Commands::.
+
+`@defindex INDEX-NAME'
+     Define a new index and its indexing command.  Print entries in a
+     roman font.  *Note Defining New Indices: New Indices.
+
+`@definfoenclose NEW-COMMAND, BEFORE, AFTER,'
+     Create new @-command for Info that marks text by enclosing it in
+     strings that precede and follow the text.  Write definition inside
+     of `@ifinfo' ... `@end ifinfo'. *Note Customized Highlighting::.
+
+`@defivar CLASS INSTANCE-VARIABLE-NAME'
+`@defivarx CLASS INSTANCE-VARIABLE-NAME'
+     This command formats a description for an instance variable in
+     object-oriented programming.  The command is equivalent to `@defcv
+     {Instance Variable} ...'.  *Note Definition Commands::, and *Note
+     Def Cmds in Detail: deffnx.
+
+`@defmac MACRO-NAME ARGUMENTS...'
+`@defmacx MACRO-NAME ARGUMENTS...'
+     Format a description for a macro.  The command is equivalent to
+     `@deffn Macro ...'.  *Note Definition Commands::, and *Note Def
+     Cmds in Detail: deffnx.
+
+`@defmethod CLASS METHOD-NAME ARGUMENTS...'
+`@defmethodx CLASS METHOD-NAME ARGUMENTS...'
+     Format a description for a method in object-oriented programming.
+     The command is equivalent to `@defop Method ...'.  Takes as
+     arguments the name of the class of the method, the name of the
+     method, and its arguments, if any.  *Note Definition Commands::,
+     and *Note Def Cmds in Detail: deffnx.
+
+`@defop CATEGORY CLASS NAME ARGUMENTS...'
+`@defopx CATEGORY CLASS NAME ARGUMENTS...'
+     Format a description for an operation in object-oriented
+     programming.  `@defop' takes as arguments the overall name of the
+     category of operation, the name of the class of the operation, the
+     name of the operation, and its arguments, if any.  *Note
+     Definition Commands::, and *Note Def Cmds in Detail: deffnx.
+
+`@defopt OPTION-NAME'
+`@defoptx OPTION-NAME'
+     Format a description for a user option.  The command is equivalent
+     to `@defvr {User Option} ...'.  *Note Definition Commands::, and
+     *Note Def Cmds in Detail: deffnx.
+
+`@defspec SPECIAL-FORM-NAME ARGUMENTS...'
+`@defspecx SPECIAL-FORM-NAME ARGUMENTS...'
+     Format a description for a special form.  The command is
+     equivalent to `@deffn {Special Form} ...'.  *Note Definition
+     Commands::, and *Note Def Cmds in Detail: deffnx.
+
+`@deftp CATEGORY NAME-OF-TYPE ATTRIBUTES...'
+`@deftpx CATEGORY NAME-OF-TYPE ATTRIBUTES...'
+     Format a description for a data type.  `@deftp' takes as arguments
+     the category, the name of the type (which is a word like `int' or
+     `float'), and then the names of attributes of objects of that type.
+     *Note Definition Commands::, and *Note Def Cmds in Detail: deffnx.
+
+`@deftypefn CLASSIFICATION DATA-TYPE NAME ARGUMENTS...'
+`@deftypefnx CLASSIFICATION DATA-TYPE NAME ARGUMENTS...'
+     Format a description for a function or similar entity that may take
+     arguments and that is typed.  `@deftypefn' takes as arguments the
+     classification of entity being described, the type, the name of the
+     entity, and its arguments, if any.  *Note Definition Commands::,
+     and *Note Def Cmds in Detail: deffnx.
+
+`@deftypefun DATA-TYPE FUNCTION-NAME ARGUMENTS...'
+`@deftypefunx DATA-TYPE FUNCTION-NAME ARGUMENTS...'
+     Format a description for a function in a typed language.  The
+     command is equivalent to `@deftypefn Function ...'.  *Note
+     Definition Commands::, and *Note Def Cmds in Detail: deffnx.
+
+`@deftypemethod CLASS DATA-TYPE METHOD-NAME ARGUMENTS...'
+`@deftypemethodx CLASS DATA-TYPE METHOD-NAME ARGUMENTS...'
+     Format a description for a typed method in object-oriented
+     programming.  Takes as arguments the name of the class of the
+     method, the return type of the method, the name of the method, and
+     its arguments, if any.  *Note Definition Commands::, and *Note Def
+     Cmds in Detail: deffnx.
+
+`@deftypevr CLASSIFICATION DATA-TYPE NAME'
+`@deftypevrx CLASSIFICATION DATA-TYPE NAME'
+     Format a description for something like a variable in a typed
+     language--an entity that records a value.  Takes as arguments the
+     classification of entity being described, the type, and the name
+     of the entity.  *Note Definition Commands::, and *Note Def Cmds in
+     Detail: deffnx.
+
+`@deftypevar DATA-TYPE VARIABLE-NAME'
+`@deftypevarx DATA-TYPE VARIABLE-NAME'
+     Format a description for a variable in a typed language.  The
+     command is equivalent to `@deftypevr Variable ...'.  *Note
+     Definition Commands::, and *Note Def Cmds in Detail: deffnx.
+
+`@defun FUNCTION-NAME ARGUMENTS...'
+`@defunx FUNCTION-NAME ARGUMENTS...'
+     Format a description for functions.  The command is equivalent to
+     `@deffn Function ...'.  *Note Definition Commands::, and *Note Def
+     Cmds in Detail: deffnx.
+
+`@defvar VARIABLE-NAME'
+`@defvarx VARIABLE-NAME'
+     Format a description for variables.  The command is equivalent to
+     `@defvr Variable ...'.  *Note Definition Commands::, and *Note Def
+     Cmds in Detail: deffnx.
+
+`@defvr CATEGORY NAME'
+`@defvrx CATEGORY NAME'
+     Format a description for any kind of variable.  `@defvr' takes as
+     arguments the category of the entity and the name of the entity.
+     *Note Definition Commands::, and *Note Def Cmds in Detail: deffnx.
+
+`@detailmenu{}'
+     Avoid `makeinfo' confusion stemming from the detailed node listing
+     in a master menu.  *Note Master Menu Parts::.
+
+`@dfn{TERM}'
+     Highlight the introductory or defining use of a term.  *Note
+     `@dfn': dfn.
+
+`@dircategory DIRPART'
+     Specify a part of the Info directory menu where this file's entry
+     should go.  *Note Installing Dir Entries::.
+
+`@direntry'
+     Begin the Info directory menu entry for this file.  *Note
+     Installing Dir Entries::.
+
+`@display'
+     Begin a kind of example.  Indent text, do not fill, do not select a
+     new font.  Pair with `@end display'.  *Note `@display': display.
+
+`@dmn{DIMENSION}'
+     Format a unit of measure, as in 12pt.  Causes TeX to insert a thin
+     space before DIMENSION.  No effect in Info.  *Note `@dmn': dmn.
+
+`@dotaccent{C}'
+     Generate a dot accent over the character C, as in oo..  *Note
+     Inserting Accents::.
+
+`@dots{}'
+     Insert an ellipsis: `...'.  *Note `@dots{}': dots.
+
+`@email{ADDRESS[, DISPLAYED-TEXT]}'
+     Indicate an electronic mail address.  *Note `@email': email.
+
+`@emph{TEXT}'
+     Highlight TEXT; text is displayed in _italics_ in printed output,
+     and surrounded by asterisks in Info.  *Note Emphasizing Text:
+     Emphasis.
+
+`@end ENVIRONMENT'
+     Ends ENVIRONMENT, as in `@end example'.  *Note @-commands:
+     Formatting Commands.
+
+`@enddots{}'
+     Generate an end-of-sentence of ellipsis, like this ....  *Note
+     `@dots{}': dots.
+
+`@enumerate [NUMBER-OR-LETTER]'
+     Begin a numbered list, using `@item' for each entry.  Optionally,
+     start list with NUMBER-OR-LETTER.  Pair with `@end enumerate'.
+     *Note `@enumerate': enumerate.
+
+`@equiv{}'
+     Indicate to the reader the exact equivalence of two forms with a
+     glyph: `=='.  *Note Equivalence::.
+
+`@error{}'
+     Indicate to the reader with a glyph that the following text is an
+     error message: `error-->'.  *Note Error Glyph::.
+
+`@evenfooting [LEFT] @| [CENTER] @| [RIGHT]'
+`@evenheading [LEFT] @| [CENTER] @| [RIGHT]'
+     Specify page footings resp. headings for even-numbered (left-hand)
+     pages.  Only allowed inside `@iftex'.  *Note How to Make Your Own
+     Headings: Custom Headings.
+
+`@everyfooting [LEFT] @| [CENTER] @| [RIGHT]'
+`@everyheading [LEFT] @| [CENTER] @| [RIGHT]'
+     Specify page footings resp. headings for every page.  Not relevant
+     to Info.  *Note How to Make Your Own Headings: Custom Headings.
+
+`@example'
+     Begin an example.  Indent text, do not fill, and select
+     fixed-width font.  Pair with `@end example'.  *Note `@example':
+     example.
+
+`@exclamdown{}'
+     Produce an upside-down exclamation point.  *Note Inserting
+     Accents::.
+
+`@exdent LINE-OF-TEXT'
+     Remove any indentation a line might have.  *Note Undoing the
+     Indentation of a Line: exdent.
+
+`@expansion{}'
+     Indicate the result of a macro expansion to the reader with a
+     special glyph: `==>'.  *Note ==> Indicating an Expansion:
+     expansion.
+
+`@file{FILENAME}'
+     Highlight the name of a file, buffer, node, or directory.  *Note
+     `@file': file.
+
+`@finalout'
+     Prevent TeX from printing large black warning rectangles beside
+     over-wide lines.  *Note Overfull hboxes::.
+
+`@findex ENTRY'
+     Add ENTRY to the index of functions.  *Note Defining the Entries
+     of an Index: Index Entries.
+
+`@flushleft'
+`@flushright'
+     Left justify every line but leave the right end ragged.  Leave
+     font as is.  Pair with `@end flushleft'.  `@flushright' analogous.
+     *Note `@flushleft' and `@flushright': flushleft & flushright.
+
+`@footnote{TEXT-OF-FOOTNOTE}'
+     Enter a footnote.  Footnote text is printed at the bottom of the
+     page by TeX; Info may format in either `End' node or `Separate'
+     node style.  *Note Footnotes::.
+
+`@footnotestyle STYLE'
+     Specify an Info file's footnote style, either `end' for the end
+     node style or `separate' for the separate node style.  *Note
+     Footnotes::.
+
+`@format'
+     Begin a kind of example.  Like `@example' or `@display', but do
+     not narrow the margins and do not select the fixed-width font.
+     Pair with `@end format'.  *Note `@example': example.
+
+`@ftable FORMATTING-COMMAND'
+     Begin a two-column table, using `@item' for each entry.
+     Automatically enter each of the items in the first column into the
+     index of functions.  Pair with `@end ftable'.  The same as
+     `@table', except for indexing.  *Note `@ftable' and `@vtable':
+     ftable vtable.
+
+`@group'
+     Hold text together that must appear on one printed page.  Pair with
+     `@end group'.  Not relevant to Info.  *Note `@group': group.
+
+`@H{C}'
+     Generate the long Hungarian umlaut accent over C, as in o''.
+
+`@heading TITLE'
+     Print an unnumbered section-like heading in the text, but not in
+     the table of contents of a printed manual.  In Info, the title is
+     underlined with equal signs.  *Note Section Commands:
+     unnumberedsec appendixsec heading.
+
+`@headings ON-OFF-SINGLE-DOUBLE'
+     Turn page headings on or off, and/or specify single-sided or
+     double-sided page headings for printing.  *Note The `@headings'
+     Command: headings on off.
+
+`@html'
+     Enter HTML completely.  Pair with `@end html'.  *Note Raw
+     Formatter Commands::.
+
+`@hyphenation{HY-PHEN-A-TED WORDS}'
+     Explicitly define hyphenation points.  *Note `@-' and
+     `@hyphenation': - and hyphenation.
+
+`@i{TEXT}'
+     Print TEXT in italic font.  No effect in Info.  *Note Fonts::.
+
+`@ifclear FLAG'
+     If FLAG is cleared, the Texinfo formatting commands format text
+     between `@ifclear FLAG' and the following `@end ifclear' command.
+     *Note `@set' `@clear' `@value': set clear value.
+
+`@ifhtml'
+`@ifinfo'
+     Begin a stretch of text that will be ignored by TeX when it
+     typesets the printed manual.  The text appears only in the HTML
+     resp. Info file.  Pair with `@end ifhtml' resp. `@end ifinfo'.
+     *Note Conditionals::.
+
+`@ifnothtml'
+`@ifnotinfo'
+`@ifnottex'
+     Begin a stretch of text that will be ignored in one output format
+     but not the others.  The text appears only in the format not
+     specified.  Pair with `@end ifnothtml' resp. `@end ifnotinfo' resp.
+     `@end ifnotinfo'.  *Note Conditionals::.
+
+`@ifset FLAG'
+     If FLAG is set, the Texinfo formatting commands format text
+     between `@ifset FLAG' and the following `@end ifset' command.
+     *Note `@set' `@clear' `@value': set clear value.
+
+`@iftex'
+     Begin a stretch of text that will not appear in the Info file, but
+     will be processed only by TeX.  Pair with `@end iftex'.  *Note
+     Conditionally Visible Text: Conditionals.
+
+`@ignore'
+     Begin a stretch of text that will not appear in either the Info
+     file or the printed output.  Pair with `@end ignore'.  *Note
+     Comments and Ignored Text: Comments.
+
+`@image{FILENAME, [WIDTH], [HEIGHT]}'
+     Include graphics image in external FILENAME scaled to the given
+     WIDTH and/or HEIGHT.  *Note Images::.
+
+`@include FILENAME'
+     Incorporate the contents of the file FILENAME into the Info file
+     or printed document.  *Note Include Files::.
+
+`@inforef{NODE-NAME, [ENTRY-NAME], INFO-FILE-NAME}'
+     Make a cross reference to an Info file for which there is no
+     printed manual.  *Note Cross references using `@inforef': inforef.
+
+`\input MACRO-DEFINITIONS-FILE'
+     Use the specified macro definitions file.  This command is used
+     only in the first line of a Texinfo file to cause TeX to make use
+     of the `texinfo' macro definitions file.  The backslash in `\input'
+     is used instead of an `@' because TeX does not recognize `@' until
+     after it has read the definitions file.  *Note The Texinfo File
+     Header: Header.
+
+`@item'
+     Indicate the beginning of a marked paragraph for `@itemize' and
+     `@enumerate'; indicate the beginning of the text of a first column
+     entry for `@table', `@ftable', and `@vtable'.  *Note Lists and
+     Tables::.
+
+`@itemize  MARK-GENERATING-CHARACTER-OR-COMMAND'
+     Produce a sequence of indented paragraphs, with a mark inside the
+     left margin at the beginning of each paragraph.  Pair with `@end
+     itemize'.  *Note `@itemize': itemize.
+
+`@itemx'
+     Like `@item' but do not generate extra vertical space above the
+     item text.  *Note `@itemx': itemx.
+
+`@kbd{KEYBOARD-CHARACTERS}'
+     Indicate text that is characters of input to be typed by users.
+     *Note `@kbd': kbd.
+
+`@kbdinputstyle STYLE'
+     Specify when `@kbd' should use a font distinct from `@code'.
+     *Note `@kbd': kbd.
+
+`@key{KEY-NAME}'
+     Indicate a name for a key on a keyboard.  *Note `@key': key.
+
+`@kindex ENTRY'
+     Add ENTRY to the index of keys.  *Note Defining the Entries of an
+     Index: Index Entries.
+
+`@L{}'
+`@l{}'
+     Generate the uppercase and lowercase Polish suppressed-L letters,
+     respectively: /L, /l.
+
+`@lisp'
+     Begin an example of Lisp code.  Indent text, do not fill, and
+     select fixed-width font.  Pair with `@end lisp'.  *Note `@lisp':
+     Lisp Example.
+
+`@lowersections'
+     Change subsequent chapters to sections, sections to subsections,
+     and so on. *Note `@raisesections' and `@lowersections':
+     Raise/lower sections.
+
+`@macro MACRO-NAME {PARAMS}'
+     Define a new Texinfo command `@MACRO-NAME{PARAMS}'.  Only
+     supported by `makeinfo' and `texi2dvi'.  *Note Defining Macros::.
+
+`@majorheading TITLE'
+     Print a chapter-like heading in the text, but not in the table of
+     contents of a printed manual.  Generate more vertical whitespace
+     before the heading than the `@chapheading' command.  In Info, the
+     chapter heading line is underlined with asterisks.  *Note
+     `@majorheading' and `@chapheading': majorheading & chapheading.
+
+`@math{MATHEMATICAL-EXPRESSION}'
+     Format a mathematical expression.  *Note `@math' - Inserting
+     Mathematical Expressions: math.
+
+`@menu'
+     Mark the beginning of a menu of nodes in Info.  No effect in a
+     printed manual.  Pair with `@end menu'.  *Note Menus::.
+
+`@minus{}'
+     Generate a minus sign, `-'.  *Note `@minus': minus.
+
+`@multitable COLUMN-WIDTH-SPEC'
+     Begin a multi-column table.  Pair with `@end multitable'.  *Note
+     Multitable Column Widths::.
+
+`@need N'
+     Start a new page in a printed manual if fewer than N mils
+     (thousandths of an inch) remain on the current page.  *Note
+     `@need': need.
+
+`@node NAME, NEXT, PREVIOUS, UP'
+     Define the beginning of a new node in Info, and serve as a locator
+     for references for TeX.  *Note `@node': node.
+
+`@noindent'
+     Prevent text from being indented as if it were a new paragraph.
+     *Note `@noindent': noindent.
+
+`@O{}'
+`@o{}'
+     Generate the uppercase and lowercase O-with-slash letters,
+     respectively: /O, /o.
+
+`@oddfooting [LEFT] @| [CENTER] @| [RIGHT]'
+`@oddheading [LEFT] @| [CENTER] @| [RIGHT]'
+     Specify page footings resp. headings for odd-numbered (right-hand)
+     pages.  Only allowed inside `@iftex'.  *Note How to Make Your Own
+     Headings: Custom Headings.
+
+`@OE{}'
+`@oe{}'
+     Generate the uppercase and lowercase OE ligatures, respectively:
+     OE, oe.  *Note Inserting Accents::.
+
+`@page'
+     Start a new page in a printed manual.  No effect in Info.  *Note
+     `@page': page.
+
+`@paragraphindent INDENT'
+     Indent paragraphs by INDENT number of spaces; delete indentation
+     if the value of INDENT is 0; and do not change indentation if
+     INDENT is `asis'. *Note Paragraph Indenting: paragraphindent.
+
+`@pindex ENTRY'
+     Add ENTRY to the index of programs.  *Note Defining the Entries of
+     an Index: Index Entries.
+
+`@point{}'
+     Indicate the position of point in a buffer to the reader with a
+     glyph: `-!-'.  *Note Indicating Point in a Buffer: Point Glyph.
+
+`@pounds{}'
+     Generate the pounds sterling currency sign.  *Note `@pounds{}':
+     pounds.
+
+`@print{}'
+     Indicate printed output to the reader with a glyph: `-|'.  *Note
+     Print Glyph::.
+
+`@printindex INDEX-NAME'
+     Print an alphabetized two-column index in a printed manual or
+     generate an alphabetized menu of index entries for Info.  *Note
+     Printing Indices & Menus::.
+
+`@pxref{NODE-NAME, [ENTRY], [TOPIC-OR-TITLE], [INFO-FILE], [MANUAL]}'
+     Make a reference that starts with a lower case `see' in a printed
+     manual.  Use within parentheses only.  Do not follow command with a
+     punctuation mark--the Info formatting commands automatically insert
+     terminating punctuation as needed.  Only the first argument is
+     mandatory.  *Note `@pxref': pxref.
+
+`@questiondown{}'
+     Generate an upside-down question mark.  *Note Inserting Accents::.
+
+`@quotation'
+     Narrow the margins to indicate text that is quoted from another
+     real or imaginary work.  Write command on a line of its own.  Pair
+     with `@end quotation'.  *Note `@quotation': quotation.
+
+`@r{TEXT}'
+     Print TEXT in roman font.  No effect in Info.  *Note Fonts::.
+
+`@raisesections'
+     Change subsequent sections to chapters, subsections to sections,
+     and so on.  *Note `@raisesections' and `@lowersections':
+     Raise/lower sections.
+
+`@ref{NODE-NAME, [ENTRY], [TOPIC-OR-TITLE], [INFO-FILE], [MANUAL]}'
+     Make a reference.  In a printed manual, the reference does not
+     start with a `See'.  Follow command with a punctuation mark.  Only
+     the first argument is mandatory.  *Note `@ref': ref.
+
+`@refill'
+     In Info, refill and indent the paragraph after all the other
+     processing has been done.  No effect on TeX, which always refills.
+     This command is no longer needed, since all formatters now
+     automatically refill.  *Note Refilling Paragraphs::.
+
+`@result{}'
+     Indicate the result of an expression to the reader with a special
+     glyph: `=>'.  *Note `@result': result.
+
+`@ringaccent{C}'
+     Generate a ring accent over the next character, as in o*.  *Note
+     Inserting Accents::.
+
+`@samp{TEXT}'
+     Highlight TEXT that is a literal example of a sequence of
+     characters.  Used for single characters, for statements, and often
+     for entire shell commands.  *Note `@samp': samp.
+
+`@sc{TEXT}'
+     Set TEXT in a printed output in THE SMALL CAPS FONT and set text
+     in the Info file in uppercase letters.  *Note Smallcaps::.
+
+`@section TITLE'
+     Begin a section within a chapter.  In a printed manual, the section
+     title is numbered and appears in the table of contents.  In Info,
+     the title is underlined with equal signs.  *Note `@section':
+     section.
+
+`@set FLAG [STRING]'
+     Make FLAG active, causing the Texinfo formatting commands to
+     format text between subsequent pairs of `@ifset FLAG' and `@end
+     ifset' commands.  Optionally, set value of FLAG to STRING.  *Note
+     `@set' `@clear' `@value': set clear value.
+
+`@setchapternewpage ON-OFF-ODD'
+     Specify whether chapters start on new pages, and if so, whether on
+     odd-numbered (right-hand) new pages.  *Note `@setchapternewpage':
+     setchapternewpage.
+
+`@setfilename INFO-FILE-NAME'
+     Provide a name to be used by the Info file.  This command is
+     essential for TeX formatting as well, even though it produces no
+     output.  *Note `@setfilename': setfilename.
+
+`@settitle TITLE'
+     Provide a title for page headers in a printed manual.  *Note
+     `@settitle': settitle.
+
+`@shortcontents'
+     Print a short table of contents.  Not relevant to Info, which uses
+     menus rather than tables of contents.  A synonym for
+     `@summarycontents'.  *Note Generating a Table of Contents:
+     Contents.
+
+`@shorttitlepage{TITLE}'
+     Generate a minimal title page.  *Note `@titlepage': titlepage.
+
+`@smallbook'
+     Cause TeX to produce a printed manual in a 7 by 9.25 inch format
+     rather than the regular 8.5 by 11 inch format.  *Note Printing
+     Small Books: smallbook.  Also, see *Note `@smallexample' and
+     `@smalllisp': smallexample & smalllisp.
+
+`@smallexample'
+     Indent text to indicate an example.  Do not fill, select
+     fixed-width font.  In `@smallbook' format, print text in a smaller
+     font than with `@example'.  Pair with `@end smallexample'.  *Note
+     `@smallexample' and `@smalllisp': smallexample & smalllisp.
+
+`@smalllisp'
+     Begin an example of Lisp code.  Indent text, do not fill, select
+     fixed-width font.  In `@smallbook' format, print text in a smaller
+     font.  Pair with `@end smalllisp'.  *Note `@smallexample' and
+     `@smalllisp': smallexample & smalllisp.
+
+`@sp N'
+     Skip N blank lines.  *Note `@sp': sp.
+
+`@ss{}'
+     Generate the German sharp-S es-zet letter, ss.  *Note Inserting
+     Accents::.
+
+`@strong TEXT'
+     Emphasize TEXT by typesetting it in a *bold* font for the printed
+     manual and by surrounding it with asterisks for Info.  *Note
+     Emphasizing Text: emph & strong.
+
+`@subheading TITLE'
+     Print an unnumbered subsection-like heading in the text, but not in
+     the table of contents of a printed manual.  In Info, the title is
+     underlined with hyphens.  *Note `@unnumberedsubsec'
+     `@appendixsubsec' `@subheading': unnumberedsubsec appendixsubsec
+     subheading.
+
+`@subsection TITLE'
+     Begin a subsection within a section.  In a printed manual, the
+     subsection title is numbered and appears in the table of contents.
+     In Info, the title is underlined with hyphens.  *Note
+     `@subsection': subsection.
+
+`@subsubheading TITLE'
+     Print an unnumbered subsubsection-like heading in the text, but
+     not in the table of contents of a printed manual.  In Info, the
+     title is underlined with periods.  *Note The `subsub' Commands:
+     subsubsection.
+
+`@subsubsection TITLE'
+     Begin a subsubsection within a subsection.  In a printed manual,
+     the subsubsection title is numbered and appears in the table of
+     contents.  In Info, the title is underlined with periods.  *Note
+     The `subsub' Commands: subsubsection.
+
+`@subtitle TITLE'
+     In a printed manual, set a subtitle in a normal sized font flush to
+     the right-hand side of the page.  Not relevant to Info, which does
+     not have title pages.  *Note `@title' `@subtitle' and `@author'
+     Commands: title subtitle author.
+
+`@summarycontents'
+     Print a short table of contents.  Not relevant to Info, which uses
+     menus rather than tables of contents.  A synonym for
+     `@shortcontents'.  *Note Generating a Table of Contents: Contents.
+
+`@syncodeindex FROM-INDEX INTO-INDEX'
+     Merge the index named in the first argument into the index named in
+     the second argument, printing the entries from the first index in
+     `@code' font.  *Note Combining Indices::.
+
+`@synindex FROM-INDEX INTO-INDEX'
+     Merge the index named in the first argument into the index named in
+     the second argument.  Do not change the font of FROM-INDEX
+     entries.  *Note Combining Indices::.
+
+`@t{TEXT}'
+     Print TEXT in a fixed-width, typewriter-like font.  No effect in
+     Info.  *Note Fonts::.
+
+`@tab'
+     Separate columns in a multitable.  *Note Multitable Rows::.
+
+`@table FORMATTING-COMMAND'
+     Begin a two-column table, using `@item' for each entry.  Write
+     each first column entry on the same line as `@item'.  First column
+     entries are printed in the font resulting from FORMATTING-COMMAND.
+     Pair with `@end table'.  *Note Making a Two-column Table:
+     Two-column Tables.  Also see *Note `@ftable' and `@vtable': ftable
+     vtable, and *Note `@itemx': itemx.
+
+`@TeX{}'
+     Insert the logo TeX.  *Note Inserting TeX and (C): TeX and
+     copyright.
+
+`@tex'
+     Enter TeX completely.  Pair with `@end tex'.  *Note Raw Formatter
+     Commands::.
+
+`@thischapter'
+`@thischaptername'
+`@thisfile'
+`@thispage'
+`@thistitle'
+     Only allowed in a heading or footing.  Stands for the number and
+     name of the current chapter (in the format `Chapter 1: Title'),
+     the chapter name only, the filename, the current page number, and
+     the title of the document, respectively.  *Note How to Make Your
+     Own Headings: Custom Headings.
+
+`@tieaccent{CC}'
+     Generate a tie-after accent over the next two characters CC, as in
+     `oo['.  *Note Inserting Accents::.
+
+`@tindex ENTRY'
+     Add ENTRY to the index of data types.  *Note Defining the Entries
+     of an Index: Index Entries.
+
+`@title TITLE'
+     In a printed manual, set a title flush to the left-hand side of the
+     page in a larger than normal font and underline it with a black
+     rule.  Not relevant to Info, which does not have title pages.
+     *Note The `@title' `@subtitle' and `@author' Commands: title
+     subtitle author.
+
+`@titlefont{TEXT}'
+     In a printed manual, print TEXT in a larger than normal font.  Not
+     relevant to Info, which does not have title pages.  *Note The
+     `@titlefont' `@center' and `@sp' Commands: titlefont center sp.
+
+`@titlepage'
+     Indicate to Texinfo the beginning of the title page.  Write
+     command on a line of its own.  Pair with `@end titlepage'.
+     Nothing between `@titlepage' and `@end titlepage' appears in Info.
+     *Note `@titlepage': titlepage.
+
+`@today{}'
+     Insert the current date, in `1 Jan 1900' style.  *Note How to Make
+     Your Own Headings: Custom Headings.
+
+`@top TITLE'
+     In a Texinfo file to be formatted with `makeinfo', identify the
+     topmost `@node' line in the file, which must be written on the line
+     immediately preceding the `@top' command.  Used for `makeinfo''s
+     node pointer insertion feature.  The title is underlined with
+     asterisks.  Both the `@node' line and the `@top' line normally
+     should be enclosed by `@ifinfo' and `@end ifinfo'.  In TeX and
+     `texinfo-format-buffer', the `@top' command is merely a synonym
+     for `@unnumbered'.  *Note Creating Pointers with `makeinfo':
+     makeinfo Pointer Creation.
+
+`@u{C}'
+`@ubaraccent{C}'
+`@udotaccent{C}'
+     Generate a breve, underbar, or underdot accent, respectively, over
+     or under the character C, as in o(, o_, .o.  *Note Inserting
+     Accents::.
+
+`@unnumbered TITLE'
+     In a printed manual, begin a chapter that appears without chapter
+     numbers of any kind.  The title appears in the table of contents
+     of a printed manual.  In Info, the title is underlined with
+     asterisks.  *Note `@unnumbered' and `@appendix': unnumbered &
+     appendix.
+
+`@unnumberedsec TITLE'
+     In a printed manual, begin a section that appears without section
+     numbers of any kind.  The title appears in the table of contents
+     of a printed manual.  In Info, the title is underlined with equal
+     signs.  *Note Section Commands: unnumberedsec appendixsec heading.
+
+`@unnumberedsubsec TITLE'
+     In a printed manual, begin an unnumbered subsection within a
+     chapter.  The title appears in the table of contents of a printed
+     manual.  In Info, the title is underlined with hyphens.  *Note
+     `@unnumberedsubsec' `@appendixsubsec' `@subheading':
+     unnumberedsubsec appendixsubsec subheading.
+
+`@unnumberedsubsubsec TITLE'
+     In a printed manual, begin an unnumbered subsubsection within a
+     chapter.  The title appears in the table of contents of a printed
+     manual.  In Info, the title is underlined with periods.  *Note The
+     `subsub' Commands: subsubsection.
+
+`@uref{URL[, DISPLAYED-TEXT}'
+     Define a cross reference to an external uniform resource locator
+     for the World Wide Web.  *Note `@url': url.
+
+`@url{URL}'
+     Indicate text that is a uniform resource locator for the World Wide
+     Web.  *Note `@url': url.
+
+`@v{C}'
+     Generate check accent over the character C, as in o<.  *Note
+     Inserting Accents::.
+
+`@value{FLAG}'
+     Replace FLAG with the value to which it is set by `@set FLAG'.
+     *Note `@set' `@clear' `@value': set clear value.
+
+`@var{METASYNTACTIC-VARIABLE}'
+     Highlight a metasyntactic variable, which is something that stands
+     for another piece of text.  *Note Indicating Metasyntactic
+     Variables: var.
+
+`@vindex ENTRY'
+     Add ENTRY to the index of variables.  *Note Defining the Entries
+     of an Index: Index Entries.
+
+`@vskip AMOUNT'
+     In a printed manual, insert whitespace so as to push text on the
+     remainder of the page towards the bottom of the page.  Used in
+     formatting the copyright page with the argument `0pt plus 1filll'.
+     (Note spelling of `filll'.)  `@vskip' may be used only in
+     contexts ignored for Info.  *Note The Copyright Page and Printed
+     Permissions: Copyright & Permissions.
+
+`@vtable FORMATTING-COMMAND'
+     Begin a two-column table, using `@item' for each entry.
+     Automatically enter each of the items in the first column into the
+     index of variables.  Pair with `@end vtable'.  The same as
+     `@table', except for indexing.  *Note `@ftable' and `@vtable':
+     ftable vtable.
+
+`@w{TEXT}'
+     Prevent TEXT from being split across two lines.  Do not end a
+     paragraph that uses `@w' with an `@refill' command.  *Note `@w': w.
+
+`@xref{NODE-NAME, [ENTRY], [TOPIC-OR-TITLE], [INFO-FILE], [MANUAL]}'
+     Make a reference that starts with `See' in a printed manual.
+     Follow command with a punctuation mark.  Only the first argument is
+     mandatory.  *Note `@xref': xref.
+
+\1f
+File: texinfo.info,  Node: Tips,  Next: Sample Texinfo File,  Prev: Command List,  Up: Top
+
+Tips and Hints
+**************
+
+Here are some tips for writing Texinfo documentation:
+
+   * Write in the present tense, not in the past or the future.
+
+   * Write actively!  For example, write "We recommend that ..." rather
+     than "It is recommended that ...".
+
+   * Use 70 or 72 as your fill column.  Longer lines are hard to read.
+
+   * Include a copyright notice and copying permissions.
+
+Index, Index, Index!
+....................
+
+Write many index entries, in different ways.  Readers like indices;
+they are helpful and convenient.
+
+  Although it is easiest to write index entries as you write the body of
+the text, some people prefer to write entries afterwards.  In either
+case, write an entry before the paragraph to which it applies.  This
+way, an index entry points to the first page of a paragraph that is
+split across pages.
+
+  Here are more hints we have found valuable:
+
+   * Write each index entry differently, so each entry refers to a
+     different place in the document.
+
+   * Write index entries only where a topic is discussed significantly.
+     For example, it is not useful to index "debugging information" in
+     a chapter on reporting bugs.  Someone who wants to know about
+     debugging information will certainly not find it in that chapter.
+
+   * Consistently capitalize the first word of every concept index
+     entry, or else consistently use lower case.  Terse entries often
+     call for lower case; longer entries for capitalization.  Whichever
+     case convention you use, please use one or the other consistently!
+     Mixing the two styles looks bad.
+
+   * Always capitalize or use upper case for those words in an index for
+     which this is proper, such as names of countries or acronyms.
+     Always use the appropriate case for case-sensitive names, such as
+     those in C or Lisp.
+
+   * Write the indexing commands that refer to a whole section
+     immediately after the section command, and write the indexing
+     commands that refer to the paragraph before the paragraph.
+
+     In the example that follows, a blank line comes after the index
+     entry for "Leaping":
+
+          @section The Dog and the Fox
+          @cindex Jumping, in general
+          @cindex Leaping
+          
+          @cindex Dog, lazy, jumped over
+          @cindex Lazy dog jumped over
+          @cindex Fox, jumps over dog
+          @cindex Quick fox jumps over dog
+          The quick brown fox jumps over the lazy dog.
+
+     (Note that the example shows entries for the same concept that are
+     written in different ways--`Lazy dog', and `Dog, lazy'--so readers
+     can look up the concept in different ways.)
+
+Blank Lines
+...........
+
+   * Insert a blank line between a sectioning command and the first
+     following sentence or paragraph, or between the indexing commands
+     associated with the sectioning command and the first following
+     sentence or paragraph, as shown in the tip on indexing.
+     Otherwise, a formatter may fold title and paragraph together.
+
+   * Always insert a blank line before an `@table' command and after an
+     `@end table' command; but never insert a blank line after an
+     `@table' command or before an `@end table' command.
+
+     For example,
+
+          Types of fox:
+          
+          @table @samp
+          @item Quick
+          Jump over lazy dogs.
+          
+          @item Brown
+          Also jump over lazy dogs.
+          @end table
+          @noindent
+          On the other hand, ...
+
+     Insert blank lines before and after `@itemize' ... `@end itemize'
+     and `@enumerate' ... `@end enumerate' in the same way.
+
+Complete Phrases
+................
+
+Complete phrases are easier to read than ...
+
+   * Write entries in an itemized list as complete sentences; or at
+     least, as complete phrases.  Incomplete expressions ... awkward
+     ... like this.
+
+   * Write the prefatory sentence or phrase for a multi-item list or
+     table as a complete expression.  Do not write "You can set:";
+     instead, write "You can set these variables:".  The former
+     expression sounds cut off.
+
+Editions, Dates and Versions
+............................
+
+Write the edition and version numbers and date in three places in every
+manual:
+
+  1. In the first `@ifinfo' section, for people reading the Texinfo
+     file.
+
+  2. In the `@titlepage' section, for people reading the printed manual.
+
+  3. In the `Top' node, for people reading the Info file.
+
+Also, it helps to write a note before the first `@ifinfo' section to
+explain what you are doing.
+
+For example:
+
+     @c ===> NOTE! <==
+     @c Specify the edition and version numbers and date
+     @c in *three* places:
+     @c   1. First ifinfo section  2. title page  3. top node
+     @c To find the locations, search for !!set
+     
+     @ifinfo
+     @c !!set edition, date, version
+     This is Edition 4.03, January 1992,
+     of the @cite{GDB Manual} for GDB Version 4.3.
+     ...
+
+--or use `@set' and `@value' (*note `@value' Example: value Example.).
+
+Definition Commands
+...................
+
+Definition commands are `@deffn', `@defun', `@defmac', and the like,
+and enable you to write descriptions in a uniform format.
+
+   * Write just one definition command for each entity you define with a
+     definition command.  The automatic indexing feature creates an
+     index entry that leads the reader to the definition.
+
+   * Use `@table' ... `@end table' in an appendix that contains a
+     summary of functions, not `@deffn' or other definition commands.
+
+Capitalization
+..............
+
+   * Capitalize "Texinfo"; it is a name.  Do not write the `x' or `i'
+     in upper case.
+
+   * Capitalize "Info"; it is a name.
+
+   * Write TeX using the `@TeX{}' command.  Note the uppercase `T' and
+     `X'.  This command causes the formatters to typeset the name
+     according to the wishes of Donald Knuth, who wrote TeX.
+
+Spaces
+......
+
+Do not use spaces to format a Texinfo file, except inside of `@example'
+... `@end example' and similar commands.
+
+  For example, TeX fills the following:
+
+         @kbd{C-x v}
+         @kbd{M-x vc-next-action}
+            Perform the next logical operation
+            on the version-controlled file
+            corresponding to the current buffer.
+
+so it looks like this:
+
+     `C-x v' `M-x vc-next-action' Perform the next logical operation on
+     the version-controlled file corresponding to the current buffer.
+
+In this case, the text should be formatted with `@table', `@item', and
+`@itemx', to create a table.
+
+@code, @samp, @var, and `---'
+.............................
+
+   * Use `@code' around Lisp symbols, including command names.  For
+     example,
+
+          The main function is @code{vc-next-action}, ...
+
+   * Avoid putting letters such as `s' immediately after an `@code'.
+     Such letters look bad.
+
+   * Use `@var' around meta-variables.  Do not write angle brackets
+     around them.
+
+   * Use three hyphens in a row, `---', to indicate a long dash.  TeX
+     typesets these as a long dash and the Info formatters reduce three
+     hyphens to two.
+
+Periods Outside of Quotes
+.........................
+
+Place periods and other punctuation marks _outside_ of quotations,
+unless the punctuation is part of the quotation.  This practice goes
+against publishing conventions in the United States, but enables the
+reader to distinguish between the contents of the quotation and the
+whole passage.
+
+  For example, you should write the following sentence with the period
+outside the end quotation marks:
+
+     Evidently, `au' is an abbreviation for ``author''.
+
+since `au' does _not_ serve as an abbreviation for `author.' (with a
+period following the word).
+
+Introducing New Terms
+.....................
+
+   * Introduce new terms so that a reader who does not know them can
+     understand them from context; or write a definition for the term.
+
+     For example, in the following, the terms "check in", "register" and
+     "delta" are all appearing for the first time; the example sentence
+     should be rewritten so they are understandable.
+
+          The major function assists you in checking in a file to your
+          version control system and registering successive sets of
+          changes to it as deltas.
+
+   * Use the `@dfn' command around a word being introduced, to indicate
+     that the reader should not expect to know the meaning already, and
+     should expect to learn the meaning from this passage.
+
+@pxref
+......
+
+Absolutely never use `@pxref' except in the special context for which
+it is designed: inside parentheses, with the closing parenthesis
+following immediately after the closing brace.  One formatter
+automatically inserts closing punctuation and the other does not.  This
+means that the output looks right both in printed output and in an Info
+file, but only when the command is used inside parentheses.
+
+Invoking from a Shell
+.....................
 
-  By convention, the names of Texinfo files end with one of the
-extensions `.texinfo', `.texi', `.txi', or `.tex'.  The longer
-extension is preferred since it describes more clearly to a human
-reader the nature of the file.  The shorter extensions are for
-operating systems that cannot handle long file names.
+You can invoke programs such as Emacs, GCC, and `gawk' from a shell.
+The documentation for each program should contain a section that
+describes this.  Unfortunately, if the node names and titles for these
+sections are all different, readers find it hard to search for the
+section.
 
-  In order to be made into a printed manual and an Info file, a Texinfo
-file *must* begin with lines like this:
+  Name such sections with a phrase beginning with the word
+`Invoking ...', as in `Invoking Emacs'; this way users can find the
+section easily.
 
-     \input texinfo
-     @setfilename INFO-FILE-NAME
-     @settitle NAME-OF-MANUAL
+ANSI C Syntax
+.............
 
-The contents of the file follow this beginning, and then you *must* end
-a Texinfo file with a line like this:
+When you use `@example' to describe a C function's calling conventions,
+use the ANSI C syntax, like this:
 
-     @bye
+     void dld_init (char *@var{path});
 
-The `\input texinfo' line tells TeX to use the `texinfo.tex' file,
-which tells TeX how to translate the Texinfo @-commands into TeX
-typesetting commands.  (Note the use of the backslash, `\'; this is
-correct for TeX.)  The `@setfilename' line provides a name for the Info
-file and tells TeX to open auxiliary files.  The `@settitle' line
-specifies a title for the page headers (or footers) of the printed
-manual.
+And in the subsequent discussion, refer to the argument values by
+writing the same argument names, again highlighted with `@var'.
 
-  The `@bye' line at the end of the file on a line of its own tells the
-formatters that the file is ended and to stop formatting.
+  Avoid the obsolete style that looks like this:
 
-  Usually, you will not use quite such a spare format, but will include
-mode setting and start-of-header and end-of-header lines at the
-beginning of a Texinfo file, like this:
+     #include <dld.h>
+     
+     dld_init (path)
+     char *path;
 
-     \input texinfo   @c -*-texinfo-*-
-     @c %**start of header
-     @setfilename INFO-FILE-NAME
-     @settitle NAME-OF-MANUAL
-     @c %**end of header
+  Also, it is best to avoid writing `#include' above the declaration
+just to indicate that the function is declared in a header file.  The
+practice may give the misimpression that the `#include' belongs near
+the declaration of the function.  Either state explicitly which header
+file holds the declaration or, better yet, name the header file used
+for a group of functions at the beginning of the section that describes
+the functions.
 
-In the first line, `-*-texinfo-*-' causes Emacs to switch into Texinfo
-mode when you edit the file.
+Bad Examples
+............
 
-  The `@c' lines which surround the `@setfilename' and `@settitle'
-lines are optional, but you need them in order to run TeX or Info on
-just part of the file.  (*Note Start of Header::, for more information.)
+Here are several examples of bad writing to avoid:
 
-  Furthermore, you will usually provide a Texinfo file with a title
-page, indices, and the like.  But the minimum, which can be useful for
-short documents, is just the three lines at the beginning and the one
-line at the end.
+  In this example, say, " ... you must `@dfn'{check in} the new
+version."  That flows better.
 
-\1f
-File: texinfo.info,  Node: Six Parts,  Next: Short Sample,  Prev: Minimum,  Up: Overview
+     When you are done editing the file, you must perform a
+     `@dfn'{check in}.
 
-Six Parts of a Texinfo File
-===========================
+  In the following example, say, "... makes a unified interface such as
+VC mode possible."
 
-  Generally, a Texinfo file contains more than the minimal beginning
-and end--it usually contains six parts:
-
-1. Header
-     The "Header" names the file, tells TeX which definitions' file to
-     use, and performs other "housekeeping" tasks.
-
-2. Summary Description and Copyright
-     The "Summary Description and Copyright" segment describes the
-     document and contains the copyright notice and copying permissions
-     for the Info file.  The segment must be enclosed between `@ifinfo'
-     and `@end ifinfo' commands so that the formatters place it only in
-     the Info file.
-
-3. Title and Copyright
-     The "Title and Copyright" segment contains the title and copyright
-     pages and copying permissions for the printed manual.  The segment
-     must be enclosed between `@titlepage' and `@end titlepage'
-     commands.  The title and copyright page appear only in the printed
-     manual.
+     SCCS, RCS and other version-control systems all perform similar
+     functions in broadly similar ways (it is this resemblance which
+     makes a unified control mode like this possible).
 
-4. `Top' Node and Master Menu
-     The "Master Menu" contains a complete menu of all the nodes in the
-     whole Info file.  It appears only in the Info file, in the `Top'
-     node.
+  And in this example, you should specify what `it' refers to:
 
-5. Body
-     The "Body" of the document may be structured like a traditional
-     book or encyclopedia or it may be free form.
+     If you are working with other people, it assists in coordinating
+     everyone's changes so they do not step on each other.
 
-6. End
-     The "End" contains commands for printing indices and generating
-     the table of contents, and the `@bye' command on a line of its own.
+And Finally ...
+...............
 
-\1f
-File: texinfo.info,  Node: Short Sample,  Next: Acknowledgements and History,  Prev: Six Parts,  Up: Overview
+   * Pronounce TeX as if the `X' were a Greek `chi', as the last sound
+     in the name `Bach'.  But pronounce Texinfo as in `speck':
+     "teckinfo".
 
-A Short Sample Texinfo File
-===========================
+   * Write notes for yourself at the very end of a Texinfo file after
+     the `@bye'.  None of the formatters process text after the `@bye';
+     it is as if the text were within `@ignore' ...  `@end ignore'.
 
-  Here is a complete but very short Texinfo file, in six parts.  The
-first three parts of the file, from `\input texinfo' through to `@end
-titlepage', look more intimidating than they are.  Most of the material
-is standard boilerplate; when you write a manual, simply insert the
-names for your own manual in this segment. (*Note Beginning a File::.)
+\1f
+File: texinfo.info,  Node: Sample Texinfo File,  Next: Sample Permissions,  Prev: Tips,  Up: Top
 
-  In the following, the sample text is _indented_; comments on it are
-not.  The complete file, without any comments, is shown in *Note Sample
-Texinfo File::.
+A Sample Texinfo File
+*********************
 
-Part 1: Header
---------------
+Here is a complete, short sample Texinfo file, without any commentary.
+You can see this file, with comments, in the first chapter.  *Note A
+Short Sample Texinfo File: Short Sample.
 
-The header does not appear in either the Info file or the printed
-output.  It sets various parameters, including the name of the Info
-file and the title used in the header.
 
      \input texinfo   @c -*-texinfo-*-
      @c %**start of header
      @setfilename sample.info
      @settitle Sample Document
-     @setchapternewpage odd
      @c %**end of header
-
-Part 2: Summary Description and Copyright
------------------------------------------
-
-The summary description and copyright segment does not appear in the
-printed document.
-
+     
+     @setchapternewpage odd
+     
      @ifinfo
      This is a short example of a complete Texinfo file.
      
-     Copyright @copyright{} 1990 Free Software Foundation, Inc.
+     Copyright 1990 Free Software Foundation, Inc.
      @end ifinfo
-
-Part 3: Titlepage and Copyright
--------------------------------
-
-The titlepage segment does not appear in the Info file.
-
+     
      @titlepage
      @sp 10
      @comment The title is printed in a large font.
@@ -186,30 +3924,16 @@ The titlepage segment does not appear in the Info file.
      @vskip 0pt plus 1filll
      Copyright @copyright{} 1990 Free Software Foundation, Inc.
      @end titlepage
-
-Part 4: `Top' Node and Master Menu
-----------------------------------
-
-The `Top' node contains the master menu for the Info file.  Since a
-printed manual uses a table of contents rather than a menu, the master
-menu appears only in the Info file.
-
-     @node    Top,       First Chapter, ,         (dir)
+     
+     @node    Top,       First Chapter,         , (dir)
      @comment node-name, next,          previous, up
-
+     
      @menu
      * First Chapter::    The first chapter is the
                           only chapter in this sample.
      * Concept Index::    This index has two entries.
      @end menu
-
-Part 5:  The Body of the Document
----------------------------------
-
-The body segment contains all the text of the document, but not the
-indices or table of contents.  This example illustrates a node and a
-chapter containing an enumerated list.
-
+     
      @node    First Chapter, Concept Index, Top,      Top
      @comment node-name,     next,          previous, up
      @chapter First Chapter
@@ -232,15 +3956,9 @@ chapter containing an enumerated list.
      commands transform a Texinfo file such as this into
      an Info file; and @TeX{} typesets it for a printed
      manual.
-
-Part 6: The End of the Document
--------------------------------
-
-The end segment contains commands for generating an index in a node and
-unnumbered chapter of its own, (usually) for generating the table of
-contents, and the `@bye' command that marks the end of the document.
-
+     
      @node    Concept Index,    ,  First Chapter, Top
+     @comment node-name,    next,  previous,      up
      @unnumbered Concept Index
      
      @printindex cp
@@ -248,1058 +3966,2203 @@ contents, and the `@bye' command that marks the end of the document.
      @contents
      @bye
 
-The Results
------------
+\1f
+File: texinfo.info,  Node: Sample Permissions,  Next: Include Files,  Prev: Sample Texinfo File,  Up: Top
 
-  Here is what the contents of the first chapter of the sample look
-like:
+Sample Permissions
+******************
 
+Texinfo files should contain sections that tell the readers that they
+have the right to copy and distribute the Texinfo file, the Info file,
+and the printed manual.
 
-     This is the contents of the first chapter.
+  Also, if you are writing a manual about software, you should explain
+that the software is free and either include the GNU General Public
+License (GPL) or provide a reference to it.  *Note Distribution:
+(xemacs)Distrib, for an example of the text that could be used in the
+software "Distribution", "General Public License", and "NO WARRANTY"
+sections of a document.  *Note Texinfo Copying Conditions: Copying, for
+an example of a brief explanation of how the copying conditions provide
+you with rights.
 
-     Here is a numbered list.
+* Menu:
+
+* Inserting Permissions::       How to put permissions in your document.
+* ifinfo Permissions::          Sample `ifinfo' copying permissions.
+* Titlepage Permissions::       Sample Titlepage copying permissions.
 
-       1. This is the first item.
+\1f
+File: texinfo.info,  Node: Inserting Permissions,  Next: ifinfo Permissions,  Prev: Sample Permissions,  Up: Sample Permissions
 
-       2. This is the second item.
+Inserting Permissions
+=====================
 
-     The `makeinfo' and `texinfo-format-buffer' commands transform a
-     Texinfo file such as this into an Info file; and TeX typesets it
-     for a printed manual.
+  In a Texinfo file, the first `@ifinfo' section usually begins with a
+line that says what the file documents.  This is what a person reading
+the unprocessed Texinfo file or using the advanced Info command `g *'
+sees first.  *note Advanced Info commands: (info)Expert, for more
+information. (A reader using the regular Info commands usually starts
+reading at the first node and skips this first section, which is not in
+a node.)
+
+  In the `@ifinfo' section, the summary sentence is followed by a
+copyright notice and then by the copying permission notice.  One of the
+copying permission paragraphs is enclosed in `@ignore' and `@end
+ignore' commands.  This paragraph states that the Texinfo file can be
+processed through TeX and printed, provided the printed manual carries
+the proper copying permission notice.  This paragraph is not made part
+of the Info file since it is not relevant to the Info file; but it is a
+mandatory part of the Texinfo file since it permits people to process
+the Texinfo file in TeX and print the results.
+
+  In the printed manual, the Free Software Foundation copying permission
+notice follows the copyright notice and publishing information and is
+located within the region delineated by the `@titlepage' and `@end
+titlepage' commands.  The copying permission notice is exactly the same
+as the notice in the `@ifinfo' section except that the paragraph
+enclosed in `@ignore' and `@end ignore' commands is not part of the
+notice.
+
+  To make it simple to insert a permission notice into each section of
+the Texinfo file, sample permission notices for each section are
+reproduced in full below.
+
+  Note that you may need to specify the correct name of a section
+mentioned in the permission notice.  For example, in `The GDB Manual',
+the name of the section referring to the General Public License is
+called the "GDB General Public License", but in the sample shown below,
+that section is referred to generically as the "GNU General Public
+License".  If the Texinfo file does not carry a copy of the General
+Public License, leave out the reference to it, but be sure to include
+the rest of the sentence.
 
 \1f
-File: texinfo.info,  Node: Acknowledgements and History,  Prev: Short Sample,  Up: Overview
+File: texinfo.info,  Node: ifinfo Permissions,  Next: Titlepage Permissions,  Prev: Inserting Permissions,  Up: Sample Permissions
 
-Acknowledgements and History
+`ifinfo' Copying Permissions
 ============================
 
-  Richard M. Stallman invented the Texinfo format, wrote the initial
-processors, and created Edition 1.0 of this manual.  Robert J. Chassell
-greatly revised and extended the manual, starting with Edition 1.1.
-Brian Fox was responsible for the standalone Texinfo distribution until
-version 3.8, and wrote the standalone `makeinfo' and `info'.  Karl
-Berry has made the updates since Texinfo 3.8 and subsequent releases,
-starting with Edition 2.22 of the manual.
-
-  Our thanks go out to all who helped improve this work, particularly to
-Franc,ois Pinard and David D. Zuhn, who tirelessly recorded and
-reported mistakes and obscurities; our special thanks go to Melissa
-Weisshaus for her frequent and often tedious reviews of nearly similar
-editions.  The indefatigable Eli Zaretskii and Andreas Schwab have
-provided patches beyond counting.  Zack Weinberg did the impossible by
-implementing the macro syntax in `texinfo.tex'.  Dozens of others have
-contributed patches and suggestions, they are gratefully acknowledged
-in the `ChangeLog' file.  Our mistakes are our own.
-
-  A bit of history: in the 1970's at CMU, Brian Reid developed a program
-and format named Scribe to mark up documents for printing.  It used the
-`@' character to introduce commands as Texinfo does and strived to
-describe document contents rather than formatting.
-
-  Meanwhile, people at MIT developed another, not too dissimilar format
-called Bolio.  This then was converted to using TeX as its typesetting
-language: BoTeX.
-
-  BoTeX could only be used as a markup language for documents to be
-printed, not for online documents.  Richard Stallman (RMS) worked on
-both Bolio and BoTeX.  He also developed a nifty on-line help format
-called Info, and then combined BoTeX and Info to create Texinfo, a mark
-up language for text that is intended to be read both on line and as
-printed hard copy.
-
-\1f
-File: texinfo.info,  Node: Texinfo Mode,  Next: Beginning a File,  Prev: Overview,  Up: Top
-
-Using Texinfo Mode
-******************
+In the `@ifinfo' section of a Texinfo file, the standard Free Software
+Foundation permission notice reads as follows:
+
+     This file documents ...
+     
+     Copyright 1998 Free Software Foundation, Inc.
+     
+     Permission is granted to make and distribute verbatim
+     copies of this manual provided the copyright notice and
+     this permission notice are preserved on all copies.
+     
+     @ignore
+     Permission is granted to process this file through TeX
+     and print the results, provided the printed document
+     carries a copying permission notice identical to this
+     one except for the removal of this paragraph (this
+     paragraph not being relevant to the printed manual).
+     
+     @end ignore
+     Permission is granted to copy and distribute modified
+     versions of this manual under the conditions for
+     verbatim copying, provided also that the sections
+     entitled ``Copying'' and ``GNU General Public License''
+     are included exactly as in the original, and provided
+     that the entire resulting derived work is distributed
+     under the terms of a permission notice identical to this
+     one.
+     
+     Permission is granted to copy and distribute
+     translations of this manual into another language,
+     under the above conditions for modified versions,
+     except that this permission notice may be stated in a
+     translation approved by the Free Software Foundation.
+
+\1f
+File: texinfo.info,  Node: Titlepage Permissions,  Prev: ifinfo Permissions,  Up: Sample Permissions
+
+Titlepage Copying Permissions
+=============================
+
+In the `@titlepage' section of a Texinfo file, the standard Free
+Software Foundation copying permission notice follows the copyright
+notice and publishing information.  The standard phrasing is as follows:
+
+     Permission is granted to make and distribute verbatim
+     copies of this manual provided the copyright notice and
+     this permission notice are preserved on all copies.
+     
+     Permission is granted to copy and distribute modified
+     versions of this manual under the conditions for
+     verbatim copying, provided also that the sections
+     entitled ``Copying'' and ``GNU General Public License''
+     are included exactly as in the original, and provided
+     that the entire resulting derived work is distributed
+     under the terms of a permission notice identical to this
+     one.
+     
+     Permission is granted to copy and distribute
+     translations of this manual into another language,
+     under the above conditions for modified versions,
+     except that this permission notice may be stated in a
+     translation approved by the Free Software Foundation.
 
-  You may edit a Texinfo file with any text editor you choose.  A
-Texinfo file is no different from any other ASCII file.  However, GNU
-Emacs comes with a special mode, called Texinfo mode, that provides
-Emacs commands and tools to help ease your work.
+\1f
+File: texinfo.info,  Node: Include Files,  Next: Headings,  Prev: Sample Permissions,  Up: Top
+
+Include Files
+*************
 
-  This chapter describes features of GNU Emacs' Texinfo mode but not any
-features of the Texinfo formatting language.  If you are reading this
-manual straight through from the beginning, you may want to skim through
-this chapter briefly and come back to it after reading succeeding
-chapters which describe the Texinfo formatting language in detail.
+When TeX or an Info formatting command sees an `@include' command in a
+Texinfo file, it processes the contents of the file named by the
+command and incorporates them into the DVI or Info file being created.
+Index entries from the included file are incorporated into the indices
+of the output file.
+
+  Include files let you keep a single large document as a collection of
+conveniently small parts.
 
 * Menu:
 
-* Texinfo Mode Overview::       How Texinfo mode can help you.
-* Emacs Editing::               Texinfo mode adds to GNU Emacs' general
-                                  purpose editing features.
-* Inserting::                   How to insert frequently used @-commands.
-* Showing the Structure::       How to show the structure of a file.
-* Updating Nodes and Menus::    How to update or create new nodes and menus.
-* Info Formatting::             How to format for Info.
-* Printing::                    How to format and print part or all of a file.
-* Texinfo Mode Summary::        Summary of all the Texinfo mode commands.
+* Using Include Files::         How to use the `@include' command.
+* texinfo-multiple-files-update::  How to create and update nodes and
+                                  menus when using included files.
+* Include File Requirements::   What `texinfo-multiple-files-update' expects.
+* Sample Include File::         A sample outer file with included files
+                                  within it; and a sample included file.
+* Include Files Evolution::     How use of the `@include' command
+                                  has changed over time.
 
 \1f
-File: texinfo.info,  Node: Texinfo Mode Overview,  Next: Emacs Editing,  Prev: Texinfo Mode,  Up: Texinfo Mode
+File: texinfo.info,  Node: Using Include Files,  Next: texinfo-multiple-files-update,  Prev: Include Files,  Up: Include Files
 
-Texinfo Mode Overview
-=====================
+How to Use Include Files
+========================
+
+To include another file within a Texinfo file, write the `@include'
+command at the beginning of a line and follow it on the same line by
+the name of a file to be included.  For example:
+
+     @include buffers.texi
+
+  An included file should simply be a segment of text that you expect to
+be included as is into the overall or "outer" Texinfo file; it should
+not contain the standard beginning and end parts of a Texinfo file.  In
+particular, you should not start an included file with a line saying
+`\input texinfo'; if you do, that phrase is inserted into the output
+file as is.  Likewise, you should not end an included file with an
+`@bye' command; nothing after `@bye' is formatted.
+
+  In the past, you were required to write an `@setfilename' line at the
+beginning of an included file, but no longer.  Now, it does not matter
+whether you write such a line.  If an `@setfilename' line exists in an
+included file, it is ignored.
+
+  Conventionally, an included file begins with an `@node' line that is
+followed by an `@chapter' line.  Each included file is one chapter.
+This makes it easy to use the regular node and menu creating and
+updating commands to create the node pointers and menus within the
+included file.  However, the simple Emacs node and menu creating and
+updating commands do not work with multiple Texinfo files.  Thus you
+cannot use these commands to fill in the `Next', `Previous', and `Up'
+pointers of the `@node' line that begins the included file.  Also, you
+cannot use the regular commands to create a master menu for the whole
+file.  Either you must insert the menus and the `Next', `Previous', and
+`Up' pointers by hand, or you must use the GNU Emacs Texinfo mode
+command, `texinfo-multiple-files-update', that is designed for
+`@include' files.
+
+\1f
+File: texinfo.info,  Node: texinfo-multiple-files-update,  Next: Include File Requirements,  Prev: Using Include Files,  Up: Include Files
 
-  Texinfo mode provides special features for working with Texinfo files.
-You can:
+`texinfo-multiple-files-update'
+===============================
 
-   * Insert frequently used @-commands.
+GNU Emacs Texinfo mode provides the `texinfo-multiple-files-update'
+command.  This command creates or updates `Next', `Previous', and `Up'
+pointers of included files as well as those in the outer or overall
+Texinfo file, and it creates or updates a main menu in the outer file.
+Depending whether you call it with optional arguments, the command
+updates only the pointers in the first `@node' line of the included
+files or all of them:
 
-   * Automatically create `@node' lines.
+`M-x texinfo-multiple-files-update'
+     Called without any arguments:
+
+        - Create or update the `Next', `Previous', and `Up' pointers of
+          the first `@node' line in each file included in an outer or
+          overall Texinfo file.
+
+        - Create or update the `Top' level node pointers of the outer or
+          overall file.
+
+        - Create or update a main menu in the outer file.
 
-   * Show the structure of a Texinfo source file.
+`C-u M-x texinfo-multiple-files-update'
+     Called with `C-u' as a prefix argument:
 
-   * Automatically create or update the `Next', `Previous', and `Up'
-     pointers of a node.
+        - Create or update pointers in the first `@node' line in each
+          included file.
 
-   * Automatically create or update menus.
+        - Create or update the `Top' level node pointers of the outer
+          file.
 
-   * Automatically create a master menu.
+        - Create and insert a master menu in the outer file.  The
+          master menu is made from all the menus in all the included
+          files.
 
-   * Format a part or all of a file for Info.
+`C-u 8 M-x texinfo-multiple-files-update'
+     Called with a numeric prefix argument, such as `C-u 8':
 
-   * Typeset and print part or all of a file.
+        - Create or update *all* the `Next', `Previous', and `Up'
+          pointers of all the included files.
 
-  Perhaps the two most helpful features are those for inserting
-frequently used @-commands and for creating node pointers and menus.
+        - Create or update *all* the menus of all the included files.
+
+        - Create or update the `Top' level node pointers of the outer or
+          overall file.
+
+        - And then create a master menu in the outer file.  This is
+          similar to invoking `texinfo-master-menu' with an argument
+          when you are working with just one file.
+
+  Note the use of the prefix argument in interactive use: with a regular
+prefix argument, just `C-u', the `texinfo-multiple-files-update'
+command inserts a master menu; with a numeric prefix argument, such as
+`C-u 8', the command updates *every* pointer and menu in *all* the
+files and then inserts a master menu.
 
 \1f
-File: texinfo.info,  Node: Emacs Editing,  Next: Inserting,  Prev: Texinfo Mode Overview,  Up: Texinfo Mode
+File: texinfo.info,  Node: Include File Requirements,  Next: Sample Include File,  Prev: texinfo-multiple-files-update,  Up: Include Files
+
+Include File Requirements
+=========================
+
+If you plan to use the `texinfo-multiple-files-update' command, the
+outer Texinfo file that lists included files within it should contain
+nothing but the beginning and end parts of a Texinfo file, and a number
+of `@include' commands listing the included files.  It should not even
+include indices, which should be listed in an included file of their
+own.
+
+  Moreover, each of the included files must contain exactly one highest
+level node (conventionally, `@chapter' or equivalent), and this node
+must be the first node in the included file.  Furthermore, each of
+these highest level nodes in each included file must be at the same
+hierarchical level in the file structure.  Usually, each is an
+`@chapter', an `@appendix', or an `@unnumbered' node.  Thus, normally,
+each included file contains one, and only one, chapter or
+equivalent-level node.
+
+  The outer file should contain only _one_ node, the `Top' node.  It
+should _not_ contain any nodes besides the single `Top' node.  The
+`texinfo-multiple-files-update' command will not process them.
 
-The Usual GNU Emacs Editing Commands
-====================================
+\1f
+File: texinfo.info,  Node: Sample Include File,  Next: Include Files Evolution,  Prev: Include File Requirements,  Up: Include Files
 
-  In most cases, the usual Text mode commands work the same in Texinfo
-mode as they do in Text mode.  Texinfo mode adds new editing commands
-and tools to GNU Emacs' general purpose editing features.  The major
-difference concerns filling.  In Texinfo mode, the paragraph separation
-variable and syntax table are redefined so that Texinfo commands that
-should be on lines of their own are not inadvertently included in
-paragraphs.  Thus, the `M-q' (`fill-paragraph') command will refill a
-paragraph but not mix an indexing command on a line adjacent to it into
-the paragraph.
-
-  In addition, Texinfo mode sets the `page-delimiter' variable to the
-value of `texinfo-chapter-level-regexp'; by default, this is a regular
-expression matching the commands for chapters and their equivalents,
-such as appendices.  With this value for the page delimiter, you can
-jump from chapter title to chapter title with the `C-x ]'
-(`forward-page') and `C-x [' (`backward-page') commands and narrow to a
-chapter with the `C-x p' (`narrow-to-page') command.  (*Note Pages:
-(emacs)Pages, for details about the page commands.)
-
-  You may name a Texinfo file however you wish, but the convention is to
-end a Texinfo file name with one of the extensions `.texinfo', `.texi',
-`.txi', or `.tex'.  A longer extension is preferred, since it is
-explicit, but a shorter extension may be necessary for operating
-systems that limit the length of file names.  GNU Emacs automatically
-enters Texinfo mode when you visit a file with a `.texinfo', `.texi' or
-`.txi' extension.  Also, Emacs switches to Texinfo mode when you visit a
-file that has `-*-texinfo-*-' in its first line.  If ever you are in
-another mode and wish to switch to Texinfo mode, type `M-x
-texinfo-mode'.
-
-  Like all other Emacs features, you can customize or enhance Texinfo
-mode as you wish.  In particular, the keybindings are very easy to
-change.  The keybindings described here are the default or standard
-ones.
-
-\1f
-File: texinfo.info,  Node: Inserting,  Next: Showing the Structure,  Prev: Emacs Editing,  Up: Texinfo Mode
-
-Inserting Frequently Used Commands
-==================================
-
-  Texinfo mode provides commands to insert various frequently used
-@-commands into the buffer.  You can use these commands to save
-keystrokes.
-
-  The insert commands are invoked by typing `C-c' twice and then the
-first letter of the @-command:
-
-`C-c C-c c'
-`M-x texinfo-insert-@code'
-     Insert `@code{}' and put the cursor between the braces.
-
-`C-c C-c d'
-`M-x texinfo-insert-@dfn'
-     Insert `@dfn{}' and put the cursor between the braces.
-
-`C-c C-c e'
-`M-x texinfo-insert-@end'
-     Insert `@end' and attempt to insert the correct following word,
-     such as `example' or `table'.  (This command does not handle
-     nested lists correctly, but inserts the word appropriate to the
-     immediately preceding list.)
-
-`C-c C-c i'
-`M-x texinfo-insert-@item'
-     Insert `@item' and put the cursor at the beginning of the next
-     line.
-
-`C-c C-c k'
-`M-x texinfo-insert-@kbd'
-     Insert `@kbd{}' and put the cursor between the braces.
-
-`C-c C-c n'
-`M-x texinfo-insert-@node'
-     Insert `@node' and a comment line listing the sequence for the
-     `Next', `Previous', and `Up' nodes.  Leave point after the `@node'.
-
-`C-c C-c o'
-`M-x texinfo-insert-@noindent'
-     Insert `@noindent' and put the cursor at the beginning of the next
-     line.
-
-`C-c C-c s'
-`M-x texinfo-insert-@samp'
-     Insert `@samp{}' and put the cursor between the braces.
-
-`C-c C-c t'
-`M-x texinfo-insert-@table'
-     Insert `@table' followed by a <SPC> and leave the cursor after the
-     <SPC>.
-
-`C-c C-c v'
-`M-x texinfo-insert-@var'
-     Insert `@var{}' and put the cursor between the braces.
-
-`C-c C-c x'
-`M-x texinfo-insert-@example'
-     Insert `@example' and put the cursor at the beginning of the next
-     line.
-
-`C-c C-c {'
-`M-x texinfo-insert-braces'
-     Insert `{}' and put the cursor between the braces.
-
-`C-c C-c }'
-`C-c C-c ]'
-`M-x up-list'
-     Move from between a pair of braces forward past the closing brace.
-     Typing `C-c C-c ]' is easier than typing `C-c C-c }', which is,
-     however, more mnemonic; hence the two keybindings.  (Also, you can
-     move out from between braces by typing `C-f'.)
-
-  To put a command such as `@code{...}' around an _existing_ word,
-position the cursor in front of the word and type `C-u 1 C-c C-c c'.
-This makes it easy to edit existing plain text.  The value of the
-prefix argument tells Emacs how many words following point to include
-between braces--`1' for one word, `2' for two words, and so on.  Use a
-negative argument to enclose the previous word or words.  If you do not
-specify a prefix argument, Emacs inserts the @-command string and
-positions the cursor between the braces.  This feature works only for
-those @-commands that operate on a word or words within one line, such
-as `@kbd' and `@var'.
-
-  This set of insert commands was created after analyzing the frequency
-with which different @-commands are used in the `GNU Emacs Manual' and
-the `GDB Manual'.  If you wish to add your own insert commands, you can
-bind a keyboard macro to a key, use abbreviations, or extend the code
-in `texinfo.el'.
-
-  `C-c C-c C-d' (`texinfo-start-menu-description') is an insert command
-that works differently from the other insert commands.  It inserts a
-node's section or chapter title in the space for the description in a
-menu entry line.  (A menu entry has three parts, the entry name, the
-node name, and the description.  Only the node name is required, but a
-description helps explain what the node is about.  *Note The Parts of a
-Menu: Menu Parts.)
-
-  To use `texinfo-start-menu-description', position point in a menu
-entry line and type `C-c C-c C-d'.  The command looks for and copies
-the title that goes with the node name, and inserts the title as a
-description; it positions point at beginning of the inserted text so you
-can edit it.  The function does not insert the title if the menu entry
-line already contains a description.
-
-  This command is only an aid to writing descriptions; it does not do
-the whole job.  You must edit the inserted text since a title tends to
-use the same words as a node name but a useful description uses
-different words.
-
-\1f
-File: texinfo.info,  Node: Showing the Structure,  Next: Updating Nodes and Menus,  Prev: Inserting,  Up: Texinfo Mode
-
-Showing the Section Structure of a File
-=======================================
+Sample File with `@include'
+===========================
 
-  You can show the section structure of a Texinfo file by using the
-`C-c C-s' command (`texinfo-show-structure').  This command shows the
-section structure of a Texinfo file by listing the lines that begin
-with the @-commands for `@chapter', `@section', and the like.  It
-constructs what amounts to a table of contents.  These lines are
-displayed in another buffer called the `*Occur*' buffer.  In that
-buffer, you can position the cursor over one of the lines and use the
-`C-c C-c' command (`occur-mode-goto-occurrence'), to jump to the
-corresponding spot in the Texinfo file.
-
-`C-c C-s'
-`M-x texinfo-show-structure'
-     Show the `@chapter', `@section', and such lines of a Texinfo file.
-
-`C-c C-c'
-`M-x occur-mode-goto-occurrence'
-     Go to the line in the Texinfo file corresponding to the line under
-     the cursor in the `*Occur*' buffer.
+Here is an example of a complete outer Texinfo file with `@include'
+files within it before running `texinfo-multiple-files-update', which
+would insert a main or master menu:
 
-  If you call `texinfo-show-structure' with a prefix argument by typing
-`C-u C-c C-s', it will list not only those lines with the @-commands
-for `@chapter', `@section', and the like, but also the `@node' lines.
-You can use `texinfo-show-structure' with a prefix argument to check
-whether the `Next', `Previous', and `Up' pointers of an `@node' line
-are correct.
-
-  Often, when you are working on a manual, you will be interested only
-in the structure of the current chapter.  In this case, you can mark
-off the region of the buffer that you are interested in by using the
-`C-x n n' (`narrow-to-region') command and `texinfo-show-structure'
-will work on only that region.  To see the whole buffer again, use
-`C-x n w' (`widen').  (*Note Narrowing: (emacs)Narrowing, for more
-information about the narrowing commands.)
-
-  In addition to providing the `texinfo-show-structure' command,
-Texinfo mode sets the value of the page delimiter variable to match the
-chapter-level @-commands.  This enables you to use the `C-x ]'
-(`forward-page') and `C-x [' (`backward-page') commands to move forward
-and backward by chapter, and to use the `C-x p' (`narrow-to-page')
-command to narrow to a chapter.  *Note Pages: (emacs)Pages, for more
-information about the page commands.
-
-\1f
-File: texinfo.info,  Node: Updating Nodes and Menus,  Next: Info Formatting,  Prev: Showing the Structure,  Up: Texinfo Mode
-
-Updating Nodes and Menus
-========================
+     \input texinfo @c -*-texinfo-*-
+     @setfilename  include-example.info
+     @settitle Include Example
+     
+     @setchapternewpage odd
+     @titlepage
+     @sp 12
+     @center @titlefont{Include Example}
+     @sp 2
+     @center by Whom Ever
+     
+     @page
+     @vskip 0pt plus 1filll
+     Copyright @copyright{} 1998 Free Software Foundation, Inc.
+     @end titlepage
+     
+     @ifinfo
+     @node Top, First, , (dir)
+     @top Master Menu
+     @end ifinfo
+     
+     @include foo.texinfo
+     @include bar.texinfo
+     @include concept-index.texinfo
+     
+     @summarycontents
+     @contents
+     
+     @bye
 
-  Texinfo mode provides commands for automatically creating or updating
-menus and node pointers.  The commands are called "update" commands
-because their most frequent use is for updating a Texinfo file after
-you have worked on it; but you can use them to insert the `Next',
-`Previous', and `Up' pointers into an `@node' line that has none and to
-create menus in a file that has none.
+  An included file, such as `foo.texinfo', might look like this:
 
-  If you do not use the updating commands, you need to write menus and
-node pointers by hand, which is a tedious task.
+     @node First, Second, , Top
+     @chapter First Chapter
+     
+     Contents of first chapter ...
 
-* Menu:
+  The full contents of `concept-index.texinfo' might be as simple as
+this:
 
-* Updating Commands::           Five major updating commands.
-* Updating Requirements::       How to structure a Texinfo file for
-                                  using the updating command.
-* Other Updating Commands::     How to indent descriptions, insert
-                                  missing nodes lines, and update
-                                  nodes in sequence.
-
-\1f
-File: texinfo.info,  Node: Updating Commands,  Next: Updating Requirements,  Prev: Updating Nodes and Menus,  Up: Updating Nodes and Menus
-
-The Updating Commands
----------------------
-
-  You can use the updating commands to:
-
-   * insert or update the `Next', `Previous', and `Up' pointers of a
-     node,
-
-   * insert or update the menu for a section, and
-
-   * create a master menu for a Texinfo source file.
-
-  You can also use the commands to update all the nodes and menus in a
-region or in a whole Texinfo file.
-
-  The updating commands work only with conventional Texinfo files, which
-are structured hierarchically like books.  In such files, a structuring
-command line must follow closely after each `@node' line, except for
-the `Top' `@node' line.  (A "structuring command line" is a line
-beginning with `@chapter', `@section', or other similar command.)
-
-  You can write the structuring command line on the line that follows
-immediately after an `@node' line or else on the line that follows
-after a single `@comment' line or a single `@ifinfo' line.  You cannot
-interpose more than one line between the `@node' line and the
-structuring command line; and you may interpose only an `@comment' line
-or an `@ifinfo' line.
-
-  Commands which work on a whole buffer require that the `Top' node be
-followed by a node with an `@chapter' or equivalent-level command.  The
-menu updating commands will not create a main or master menu for a
-Texinfo file that has only `@chapter'-level nodes!  The menu updating
-commands only create menus _within_ nodes for lower level nodes.  To
-create a menu of chapters, you must provide a `Top' node.
-
-  The menu updating commands remove menu entries that refer to other
-Info files since they do not refer to nodes within the current buffer.
-This is a deficiency.  Rather than use menu entries, you can use cross
-references to refer to other Info files.  None of the updating commands
-affect cross references.
-
-  Texinfo mode has five updating commands that are used most often: two
-are for updating the node pointers or menu of a single node (or a
-region); two are for updating every node pointer and menu in a file;
-and one, the `texinfo-master-menu' command, is for creating a master
-menu for a complete file, and optionally, for updating every node and
-menu in the whole Texinfo file.
-
-  The `texinfo-master-menu' command is the primary command:
-
-`C-c C-u m'
-`M-x texinfo-master-menu'
-     Create or update a master menu that includes all the other menus
-     (incorporating the descriptions from pre-existing menus, if any).
-
-     With an argument (prefix argument, `C-u,' if interactive), first
-     create or update all the nodes and all the regular menus in the
-     buffer before constructing the master menu.  (*Note The Top Node
-     and Master Menu: The Top Node, for more about a master menu.)
-
-     For `texinfo-master-menu' to work, the Texinfo file must have a
-     `Top' node and at least one subsequent node.
-
-     After extensively editing a Texinfo file, you can type the
-     following:
-
-          C-u M-x texinfo-master-menu
-     or
-          C-u C-c C-u m
-
-     This updates all the nodes and menus completely and all at once.
-
-  The other major updating commands do smaller jobs and are designed for
-the person who updates nodes and menus as he or she writes a Texinfo
-file.
-
-  The commands are:
-
-`C-c C-u C-n'
-`M-x texinfo-update-node'
-     Insert the `Next', `Previous', and `Up' pointers for the node that
-     point is within (i.e., for the `@node' line preceding point).  If
-     the `@node' line has pre-existing `Next', `Previous', or `Up'
-     pointers in it, the old pointers are removed and new ones inserted.
-     With an argument (prefix argument, `C-u', if interactive), this
-     command updates all `@node' lines in the region (which is the text
-     between point and mark).
-
-`C-c C-u C-m'
-`M-x texinfo-make-menu'
-     Create or update the menu in the node that point is within.  With
-     an argument (`C-u' as prefix argument, if interactive), the
-     command makes or updates menus for the nodes which are either
-     within or a part of the region.
-
-     Whenever `texinfo-make-menu' updates an existing menu, the
-     descriptions from that menu are incorporated into the new menu.
-     This is done by copying descriptions from the existing menu to the
-     entries in the new menu that have the same node names.  If the
-     node names are different, the descriptions are not copied to the
-     new menu.
-
-`C-c C-u C-e'
-`M-x texinfo-every-node-update'
-     Insert or update the `Next', `Previous', and `Up' pointers for
-     every node in the buffer.
-
-`C-c C-u C-a'
-`M-x texinfo-all-menus-update'
-     Create or update all the menus in the buffer.  With an argument
-     (`C-u' as prefix argument, if interactive), first insert or update
-     all the node pointers before working on the menus.
-
-     If a master menu exists, the `texinfo-all-menus-update' command
-     updates it; but the command does not create a new master menu if
-     none already exists.  (Use the `texinfo-master-menu' command for
-     that.)
-
-     When working on a document that does not merit a master menu, you
-     can type the following:
-
-          C-u C-c C-u C-a
-     or
-          C-u M-x texinfo-all-menus-update
-
-     This updates all the nodes and menus.
-
-  The `texinfo-column-for-description' variable specifies the column to
-which menu descriptions are indented.  By default, the value is 32
-although it is often useful to reduce it to as low as 24.  You can set
-the variable with the `M-x edit-options' command (*note Editing
-Variable Values: (emacs)Edit Options.) or with the `M-x set-variable'
-command (*note Examining and Setting Variables: (emacs)Examining.).
-
-  Also, the `texinfo-indent-menu-description' command may be used to
-indent existing menu descriptions to a specified column.  Finally, if
-you wish, you can use the `texinfo-insert-node-lines' command to insert
-missing `@node' lines into a file.  (*Note Other Updating Commands::,
-for more information.)
-
-\1f
-File: texinfo.info,  Node: Updating Requirements,  Next: Other Updating Commands,  Prev: Updating Commands,  Up: Updating Nodes and Menus
-
-Updating Requirements
----------------------
-
-  To use the updating commands, you must organize the Texinfo file
-hierarchically with chapters, sections, subsections, and the like.
-When you construct the hierarchy of the manual, do not `jump down' more
-than one level at a time: you can follow the `Top' node with a chapter,
-but not with a section; you can follow a chapter with a section, but
-not with a subsection.  However, you may `jump up' any number of levels
-at one time--for example, from a subsection to a chapter.
-
-  Each `@node' line, with the exception of the line for the `Top' node,
-must be followed by a line with a structuring command such as
-`@chapter', `@section', or `@unnumberedsubsec'.
-
-  Each `@node' line/structuring-command line combination must look
-either like this:
-
-     @node     Comments,  Minimum, Conventions, Overview
-     @comment  node-name, next,    previous,    up
-     @section Comments
-
-  or like this (without the `@comment' line):
-
-     @node Comments, Minimum, Conventions, Overview
-     @section Comments
-
-In this example, `Comments' is the name of both the node and the
-section.  The next node is called `Minimum' and the previous node is
-called `Conventions'.  The `Comments' section is within the `Overview'
-node, which is specified by the `Up' pointer.  (Instead of an
-`@comment' line, you may also write an `@ifinfo' line.)
-
-  If a file has a `Top' node, it must be called `top' or `Top' and be
-the first node in the file.
-
-  The menu updating commands create a menu of sections within a chapter,
-a menu of subsections within a section, and so on.  This means that you
-must have a `Top' node if you want a menu of chapters.
-
-  Incidentally, the `makeinfo' command will create an Info file for a
-hierarchically organized Texinfo file that lacks `Next', `Previous' and
-`Up' pointers.  Thus, if you can be sure that your Texinfo file will be
-formatted with `makeinfo', you have no need for the update node
-commands.  (*Note Creating an Info File::, for more information about
-`makeinfo'.)  However, both `makeinfo' and the `texinfo-format-...'
-commands require that you insert menus in the file.
-
-\1f
-File: texinfo.info,  Node: Other Updating Commands,  Prev: Updating Requirements,  Up: Updating Nodes and Menus
+     @node Concept Index, , Second, Top
+     @unnumbered Concept Index
+     
+     @printindex cp
 
-Other Updating Commands
------------------------
+  The outer Texinfo source file for `The XEmacs Lisp Reference Manual'
+is named `elisp.texi'.  This outer file contains a master menu with 417
+entries and a list of 41 `@include' files.
 
-  In addition to the five major updating commands, Texinfo mode
-possesses several less frequently used updating commands:
+\1f
+File: texinfo.info,  Node: Include Files Evolution,  Prev: Sample Include File,  Up: Include Files
+
+Evolution of Include Files
+==========================
+
+When Info was first created, it was customary to create many small Info
+files on one subject.  Each Info file was formatted from its own
+Texinfo source file.  This custom meant that Emacs did not need to make
+a large buffer to hold the whole of a large Info file when someone
+wanted information; instead, Emacs allocated just enough memory for the
+small Info file that contained the particular information sought.  This
+way, Emacs could avoid wasting memory.
+
+  References from one file to another were made by referring to the file
+name as well as the node name. (*Note Referring to Other Info Files:
+Other Info Files.  Also, see *Note `@xref' with Four and Five
+Arguments: Four and Five Arguments.)
+
+  Include files were designed primarily as a way to create a single,
+large printed manual out of several smaller Info files.  In a printed
+manual, all the references were within the same document, so TeX could
+automatically determine the references' page numbers.  The Info
+formatting commands used include files only for creating joint indices;
+each of the individual Texinfo files had to be formatted for Info
+individually.  (Each, therefore, required its own `@setfilename' line.)
+
+  However, because large Info files are now split automatically, it is
+no longer necessary to keep them small.
+
+  Nowadays, multiple Texinfo files are used mostly for large documents,
+such as `The XEmacs Lisp Reference Manual', and for projects in which
+several different people write different sections of a document
+simultaneously.
+
+  In addition, the Info formatting commands have been extended to work
+with the `@include' command so as to create a single large Info file
+that is split into smaller files if necessary.  This means that you can
+write menus and cross references without naming the different Texinfo
+files.
 
-`M-x texinfo-insert-node-lines'
-     Insert `@node' lines before the `@chapter', `@section', and other
-     sectioning commands wherever they are missing throughout a region
-     in a Texinfo file.
+\1f
+File: texinfo.info,  Node: Headings,  Next: Catching Mistakes,  Prev: Include Files,  Up: Top
 
-     With an argument (`C-u' as prefix argument, if interactive), the
-     `texinfo-insert-node-lines' command not only inserts `@node' lines
-     but also inserts the chapter or section titles as the names of the
-     corresponding nodes.  In addition, it inserts the titles as node
-     names in pre-existing `@node' lines that lack names.  Since node
-     names should be more concise than section or chapter titles, you
-     must manually edit node names so inserted.
+Page Headings
+*************
 
-     For example, the following marks a whole buffer as a region and
-     inserts `@node' lines and titles throughout:
+Most printed manuals contain headings along the top of every page
+except the title and copyright pages.  Some manuals also contain
+footings.  (Headings and footings have no meaning to Info, which is not
+paginated.)
 
-          C-x h C-u M-x texinfo-insert-node-lines
+* Menu:
 
-     This command inserts titles as node names in `@node' lines; the
-     `texinfo-start-menu-description' command (*note Inserting
-     Frequently Used Commands: Inserting.) inserts titles as
-     descriptions in menu entries, a different action.  However, in
-     both cases, you need to edit the inserted text.
+* Headings Introduced::         Conventions for using page headings.
+* Heading Format::              Standard page heading formats.
+* Heading Choice::              How to specify the type of page heading.
+* Custom Headings::             How to create your own headings and footings.
 
-`M-x texinfo-multiple-files-update'
-     Update nodes and menus in a document built from several separate
-     files.  With `C-u' as a prefix argument, create and insert a
-     master menu in the outer file.  With a numeric prefix argument,
-     such as `C-u 2', first update all the menus and all the `Next',
-     `Previous', and `Up' pointers of all the included files before
-     creating and inserting a master menu in the outer file.  The
-     `texinfo-multiple-files-update' command is described in the
-     appendix on `@include' files.  *Note
-     texinfo-multiple-files-update::.
-
-`M-x texinfo-indent-menu-description'
-     Indent every description in the menu following point to the
-     specified column.  You can use this command to give yourself more
-     space for descriptions.  With an argument (`C-u' as prefix
-     argument, if interactive), the `texinfo-indent-menu-description'
-     command indents every description in every menu in the region.
-     However, this command does not indent the second and subsequent
-     lines of a multi-line description.
-
-`M-x texinfo-sequential-node-update'
-     Insert the names of the nodes immediately following and preceding
-     the current node as the `Next' or `Previous' pointers regardless
-     of those nodes' hierarchical level.  This means that the `Next'
-     node of a subsection may well be the next chapter.  Sequentially
-     ordered nodes are useful for novels and other documents that you
-     read through sequentially.  (However, in Info, the `g *' command
-     lets you look through the file sequentially, so sequentially
-     ordered nodes are not strictly necessary.)  With an argument
-     (prefix argument, if interactive), the
-     `texinfo-sequential-node-update' command sequentially updates all
-     the nodes in the region.
-
-\1f
-File: texinfo.info,  Node: Info Formatting,  Next: Printing,  Prev: Updating Nodes and Menus,  Up: Texinfo Mode
-
-Formatting for Info
+\1f
+File: texinfo.info,  Node: Headings Introduced,  Next: Heading Format,  Prev: Headings,  Up: Headings
+
+Headings Introduced
 ===================
 
-  Texinfo mode provides several commands for formatting part or all of a
-Texinfo file for Info.  Often, when you are writing a document, you
-want to format only part of a file--that is, a region.
+  Texinfo provides standard page heading formats for manuals that are
+printed on one side of each sheet of paper and for manuals that are
+printed on both sides of the paper.  Typically, you will use these
+formats, but you can specify your own format if you wish.
+
+  In addition, you can specify whether chapters should begin on a new
+page, or merely continue the same page as the previous chapter; and if
+chapters begin on new pages, you can specify whether they must be
+odd-numbered pages.
+
+  By convention, a book is printed on both sides of each sheet of paper.
+When you open a book, the right-hand page is odd-numbered, and chapters
+begin on right-hand pages--a preceding left-hand page is left blank if
+necessary.  Reports, however, are often printed on just one side of
+paper, and chapters begin on a fresh page immediately following the end
+of the preceding chapter.  In short or informal reports, chapters often
+do not begin on a new page at all, but are separated from the preceding
+text by a small amount of whitespace.
+
+  The `@setchapternewpage' command controls whether chapters begin on
+new pages, and whether one of the standard heading formats is used.  In
+addition, Texinfo has several heading and footing commands that you can
+use to generate your own heading and footing formats.
+
+  In Texinfo, headings and footings are single lines at the tops and
+bottoms of pages; you cannot create multiline headings or footings.
+Each header or footer line is divided into three parts: a left part, a
+middle part, and a right part.  Any part, or a whole line, may be left
+blank.  Text for the left part of a header or footer line is set
+flushleft; text for the middle part is centered; and, text for the
+right part is set flushright.
 
-  You can use either the `texinfo-format-region' or the
-`makeinfo-region' command to format a region:
+\1f
+File: texinfo.info,  Node: Heading Format,  Next: Heading Choice,  Prev: Headings Introduced,  Up: Headings
 
-`C-c C-e C-r'
-`M-x texinfo-format-region'
-`C-c C-m C-r'
-`M-x makeinfo-region'
-     Format the current region for Info.
+Standard Heading Formats
+========================
+
+Texinfo provides two standard heading formats, one for manuals printed
+on one side of each sheet of paper, and the other for manuals printed
+on both sides of the paper.
+
+  By default, nothing is specified for the footing of a Texinfo file,
+so the footing remains blank.
+
+  The standard format for single-sided printing consists of a header
+line in which the left-hand part contains the name of the chapter, the
+central part is blank, and the right-hand part contains the page number.
+
+  A single-sided page looks like this:
+
+        _______________________
+       |                       |
+       | chapter   page number |
+       |                       |
+       | Start of text ...     |
+       | ...                   |
+       |                       |
+
+  The standard format for two-sided printing depends on whether the page
+number is even or odd.  By convention, even-numbered pages are on the
+left- and odd-numbered pages are on the right.  (TeX will adjust the
+widths of the left- and right-hand margins.  Usually, widths are
+correct, but during double-sided printing, it is wise to check that
+pages will bind properly--sometimes a printer will produce output in
+which the even-numbered pages have a larger right-hand margin than the
+odd-numbered pages.)
+
+  In the standard double-sided format, the left part of the left-hand
+(even-numbered) page contains the page number, the central part is
+blank, and the right part contains the title (specified by the
+`@settitle' command).  The left part of the right-hand (odd-numbered)
+page contains the name of the chapter, the central part is blank, and
+the right part contains the page number.
+
+  Two pages, side by side as in an open book, look like this:
+
+        _______________________     _______________________
+       |                       |   |                       |
+       | page number     title |   | chapter   page number |
+       |                       |   |                       |
+       | Start of text ...     |   | More  text ...        |
+       | ...                   |   | ...                   |
+       |                       |   |                       |
+
+The chapter name is preceded by the word "Chapter", the chapter number
+and a colon.  This makes it easier to keep track of where you are in the
+manual.
 
-  You can use either the `texinfo-format-buffer' or the
-`makeinfo-buffer' command to format a whole buffer:
+\1f
+File: texinfo.info,  Node: Heading Choice,  Next: Custom Headings,  Prev: Heading Format,  Up: Headings
 
-`C-c C-e C-b'
-`M-x texinfo-format-buffer'
-`C-c C-m C-b'
-`M-x makeinfo-buffer'
-     Format the current buffer for Info.
+Specifying the Type of Heading
+==============================
 
-  For example, after writing a Texinfo file, you can type the following:
+TeX does not begin to generate page headings for a standard Texinfo
+file until it reaches the `@end titlepage' command.  Thus, the title
+and copyright pages are not numbered.  The `@end titlepage' command
+causes TeX to begin to generate page headings according to a standard
+format specified by the `@setchapternewpage' command that precedes the
+`@titlepage' section.
 
-     C-u C-c C-u m
-or
-     C-u M-x texinfo-master-menu
+  There are four possibilities:
 
-This updates all the nodes and menus.  Then type the following to create
-an Info file:
+No `@setchapternewpage' command
+     Cause TeX to specify the single-sided heading format, with chapters
+     on new pages. This is the same as `@setchapternewpage on'.
 
-     C-c C-m C-b
-or
-     M-x makeinfo-buffer
+`@setchapternewpage on'
+     Specify the single-sided heading format, with chapters on new
+     pages.
 
-  For TeX or the Info formatting commands to work, the file _must_
-include a line that has `@setfilename' in its header.
+`@setchapternewpage off'
+     Cause TeX to start a new chapter on the same page as the last page
+     of the preceding chapter, after skipping some vertical whitespace.
+     Also cause TeX to typeset for single-sided printing.  (You can
+     override the headers format with the `@headings double' command;
+     see *Note The `@headings' Command: headings on off.)
 
-  *Note Creating an Info File::, for details about Info formatting.
+`@setchapternewpage odd'
+     Specify the double-sided heading format, with chapters on new
+     pages.
+
+Texinfo lacks an `@setchapternewpage even' command.
 
 \1f
-File: texinfo.info,  Node: Printing,  Next: Texinfo Mode Summary,  Prev: Info Formatting,  Up: Texinfo Mode
+File: texinfo.info,  Node: Custom Headings,  Prev: Heading Choice,  Up: Headings
 
-Formatting and Printing
-=======================
+How to Make Your Own Headings
+=============================
 
-  Typesetting and printing a Texinfo file is a multi-step process in
-which you first create a file for printing (called a DVI file), and then
-print the file.  Optionally, you may also create indices.  To do this,
-you must run the `texindex' command after first running the `tex'
-typesetting command; and then you must run the `tex' command again.  Or
-else run the `texi2dvi' command which automatically creates indices as
-needed (*note Format with texi2dvi::).
+You can use the standard headings provided with Texinfo or specify your
+own.  By default, Texinfo has no footers, so if you specify them, the
+available page size for the main text will be slightly reduced.
+
+  Texinfo provides six commands for specifying headings and footings.
+The `@everyheading' command and `@everyfooting' command generate page
+headers and footers that are the same for both even- and odd-numbered
+pages.  The `@evenheading' command and `@evenfooting' command generate
+headers and footers for even-numbered (left-hand) pages; and the
+`@oddheading' command and `@oddfooting' command generate headers and
+footers for odd-numbered (right-hand) pages.
+
+  Write custom heading specifications in the Texinfo file immediately
+after the `@end titlepage' command.  Enclose your specifications
+between `@iftex' and `@end iftex' commands since the
+`texinfo-format-buffer' command may not recognize them.  Also, you must
+cancel the predefined heading commands with the `@headings off' command
+before defining your own specifications.
+
+  Here is how to tell TeX to place the chapter name at the left, the
+page number in the center, and the date at the right of every header
+for both even- and odd-numbered pages:
+
+     @iftex
+     @headings off
+     @everyheading @thischapter @| @thispage @| @today{}
+     @end iftex
+
+You need to divide the left part from the central part and the central
+part from the right part by inserting `@|' between parts.  Otherwise,
+the specification command will not be able to tell where the text for
+one part ends and the next part begins.
+
+  Each part can contain text or @-commands.  The text is printed as if
+the part were within an ordinary paragraph in the body of the page.
+The @-commands replace themselves with the page number, date, chapter
+name, or whatever.
+
+  Here are the six heading and footing commands:
+
+`@everyheading LEFT @| CENTER @| RIGHT'
+`@everyfooting LEFT @| CENTER @| RIGHT'
+     The `every' commands specify the format for both even- and
+     odd-numbered pages.  These commands are for documents that are
+     printed on one side of each sheet of paper, or for documents in
+     which you want symmetrical headers or footers.
+
+`@evenheading LEFT @| CENTER @| RIGHT'
+`@oddheading  LEFT @| CENTER @| RIGHT'
+`@evenfooting LEFT @| CENTER @| RIGHT'
+`@oddfooting  LEFT @| CENTER @| RIGHT'
+     The `even' and `odd' commands specify the format for even-numbered
+     pages and odd-numbered pages.  These commands are for books and
+     manuals that are printed on both sides of each sheet of paper.
+
+  Use the `@this...' series of @-commands to provide the names of
+chapters and sections and the page number.  You can use the `@this...'
+commands in the left, center, or right portions of headers and footers,
+or anywhere else in a Texinfo file so long as they are between `@iftex'
+and `@end iftex' commands.
+
+  Here are the `@this...' commands:
+
+`@thispage'
+     Expands to the current page number.
+
+`@thischaptername'
+     Expands to the name of the current chapter.
+
+`@thischapter'
+     Expands to the number and name of the current chapter, in the
+     format `Chapter 1: Title'.
+
+`@thistitle'
+     Expands to the name of the document, as specified by the
+     `@settitle' command.
+
+`@thisfile'
+     For `@include' files only: expands to the name of the current
+     `@include' file.  If the current Texinfo source file is not an
+     `@include' file, this command has no effect.  This command does
+     _not_ provide the name of the current Texinfo source file unless
+     it is an `@include' file.  (*Note Include Files::, for more
+     information about `@include' files.)
+
+You can also use the `@today{}' command, which expands to the current
+date, in `1 Jan 1900' format.
+
+  Other @-commands and text are printed in a header or footer just as
+if they were in the body of a page.  It is useful to incorporate text,
+particularly when you are writing drafts:
+
+     @iftex
+     @headings off
+     @everyheading @emph{Draft!} @| @thispage @| @thischapter
+     @everyfooting @| @| Version: 0.27: @today{}
+     @end iftex
+
+  Beware of overlong titles: they may overlap another part of the
+header or footer and blot it out.
 
-  Often, when you are writing a document, you want to typeset and print
-only part of a file to see what it will look like.  You can use the
-`texinfo-tex-region' and related commands for this purpose.  Use the
-`texinfo-tex-buffer' command to format all of a buffer.
+\1f
+File: texinfo.info,  Node: Catching Mistakes,  Next: Refilling Paragraphs,  Prev: Headings,  Up: Top
 
-`C-c C-t C-b'
-`M-x texinfo-tex-buffer'
-     Run `texi2dvi' on the buffer.  In addition to running TeX on the
-     buffer, this command automatically creates or updates indices as
-     needed.
+Formatting Mistakes
+*******************
 
-`C-c C-t C-r'
-`M-x texinfo-tex-region'
-     Run TeX on the region.
+Besides mistakes in the content of your documentation, there are two
+kinds of mistake you can make with Texinfo:  you can make mistakes with
+@-commands, and you can make mistakes with the structure of the nodes
+and chapters.
 
-`C-c C-t C-i'
-`M-x texinfo-texindex'
-     Run `texindex' to sort the indices of a Texinfo file formatted with
-     `texinfo-tex-region'.  The `texinfo-tex-region' command does not
-     run `texindex' automatically; it only runs the `tex' typesetting
-     command.  You must run the `texinfo-tex-region' command a second
-     time after sorting the raw index files with the `texindex'
-     command.  (Usually, you do not format an index when you format a
-     region, only when you format a buffer.  Now that the `texi2dvi'
-     command exists, there is little or no need for this command.)
+  Emacs has two tools for catching the @-command mistakes and two for
+catching structuring mistakes.
 
-`C-c C-t C-p'
-`M-x texinfo-tex-print'
-     Print the file (or the part of the file) previously formatted with
-     `texinfo-tex-buffer' or `texinfo-tex-region'.
+  For finding problems with @-commands, you can run TeX or a region
+formatting command on the region that has a problem; indeed, you can
+run these commands on each region as you write it.
 
-  For `texinfo-tex-region' or `texinfo-tex-buffer' to work, the file
-_must_ start with a `\input texinfo' line and must include an
-`@settitle' line.  The file must end with `@bye' on a line by itself.
-(When you use `texinfo-tex-region', you must surround the `@settitle'
-line with start-of-header and end-of-header lines.)
+  For finding problems with the structure of nodes and chapters, you
+can use `C-c C-s' (`texinfo-show-structure') and the related `occur'
+command and you can use the `M-x Info-validate' command.
 
-  *Note Hardcopy::, for a description of the other TeX related
-commands, such as `tex-show-print-queue'.
+* Menu:
+
+* makeinfo Preferred::          `makeinfo' finds errors.
+* Debugging with Info::         How to catch errors with Info formatting.
+* Debugging with TeX::          How to catch errors with TeX formatting.
+* Using texinfo-show-structure::  How to use `texinfo-show-structure'.
+* Using occur::                 How to list all lines containing a pattern.
+* Running Info-Validate::       How to find badly referenced nodes.
 
 \1f
-File: texinfo.info,  Node: Texinfo Mode Summary,  Prev: Printing,  Up: Texinfo Mode
+File: texinfo.info,  Node: makeinfo Preferred,  Next: Debugging with Info,  Prev: Catching Mistakes,  Up: Catching Mistakes
 
-Texinfo Mode Summary
-====================
+`makeinfo' Find Errors
+======================
 
-  In Texinfo mode, each set of commands has default keybindings that
-begin with the same keys.  All the commands that are custom-created for
-Texinfo mode begin with `C-c'.  The keys are somewhat mnemonic.
-
-Insert Commands
----------------
-
-  The insert commands are invoked by typing `C-c' twice and then the
-first letter of the @-command to be inserted.  (It might make more
-sense mnemonically to use `C-c C-i', for `custom insert', but `C-c C-c'
-is quick to type.)
-
-     C-c C-c c       Insert `@code'.
-     C-c C-c d       Insert `@dfn'.
-     C-c C-c e       Insert `@end'.
-     C-c C-c i       Insert `@item'.
-     C-c C-c n       Insert `@node'.
-     C-c C-c s       Insert `@samp'.
-     C-c C-c v       Insert `@var'.
-     C-c C-c {       Insert braces.
-     C-c C-c ]
-     C-c C-c }       Move out of enclosing braces.
-     
-     C-c C-c C-d     Insert a node's section title
-                     in the space for the description
-                     in a menu entry line.
+  The `makeinfo' program does an excellent job of catching errors and
+reporting them--far better than `texinfo-format-region' or
+`texinfo-format-buffer'.  In addition, the various functions for
+automatically creating and updating node pointers and menus remove many
+opportunities for human error.
 
-Show Structure
---------------
+  If you can, use the updating commands to create and insert pointers
+and menus.  These prevent many errors.  Then use `makeinfo' (or its
+Texinfo mode manifestations, `makeinfo-region' and `makeinfo-buffer')
+to format your file and check for other errors.  This is the best way
+to work with Texinfo.  But if you cannot use `makeinfo', or your
+problem is very puzzling, then you may want to use the tools described
+in this appendix.
 
-  The `texinfo-show-structure' command is often used within a narrowed
-region.
+\1f
+File: texinfo.info,  Node: Debugging with Info,  Next: Debugging with TeX,  Prev: makeinfo Preferred,  Up: Catching Mistakes
+
+Catching Errors with Info Formatting
+====================================
 
-     C-c C-s         List all the headings.
+After you have written part of a Texinfo file, you can use the
+`texinfo-format-region' or the `makeinfo-region' command to see whether
+the region formats properly.
 
-The Master Update Command
--------------------------
+  Most likely, however, you are reading this section because for some
+reason you cannot use the `makeinfo-region' command; therefore, the
+rest of this section presumes that you are using
+`texinfo-format-region'.
 
-  The `texinfo-master-menu' command creates a master menu; and can be
-used to update every node and menu in a file as well.
+  If you have made a mistake with an @-command, `texinfo-format-region'
+will stop processing at or after the error and display an error
+message.  To see where in the buffer the error occurred, switch to the
+`*Info Region*' buffer; the cursor will be in a position that is after
+the location of the error.  Also, the text will not be formatted after
+the place where the error occurred (or more precisely, where it was
+detected).
 
-     C-c C-u m
-     M-x texinfo-master-menu
-                     Create or update a master menu.
+  For example, if you accidentally end a menu with the command `@end
+menus' with an `s' on the end, instead of with `@end menu', you will
+see an error message that says:
+
+     @end menus is not handled by texinfo
+
+The cursor will stop at the point in the buffer where the error occurs,
+or not long after it.  The buffer will look like this:
+
+     ---------- Buffer: *Info Region* ----------
+     * Menu:
      
-     C-u C-c C-u m   With `C-u' as a prefix argument, first
-                     create or update all nodes and regular
-                     menus, and then create a master menu.
+     * Using texinfo-show-structure::  How to use
+                                       `texinfo-show-structure'
+                                       to catch mistakes.
+     * Running Info-Validate::         How to check for
+                                       unreferenced nodes.
+     @end menus
+     -!-
+     ---------- Buffer: *Info Region* ----------
 
-Update Pointers
----------------
+  The `texinfo-format-region' command sometimes provides slightly odd
+error messages.  For example, the following cross reference fails to
+format:
 
-  The update pointer commands are invoked by typing `C-c C-u' and then
-either `C-n' for `texinfo-update-node' or `C-e' for
-`texinfo-every-node-update'.
+     (@xref{Catching Mistakes, for more info.)
 
-     C-c C-u C-n     Update a node.
-     C-c C-u C-e     Update every node in the buffer.
+In this case, `texinfo-format-region' detects the missing closing brace
+but displays a message that says `Unbalanced parentheses' rather than
+`Unbalanced braces'.  This is because the formatting command looks for
+mismatches between braces as if they were parentheses.
 
-Update Menus
-------------
+  Sometimes `texinfo-format-region' fails to detect mistakes.  For
+example, in the following, the closing brace is swapped with the
+closing parenthesis:
 
-  Invoke the  update menu commands by typing `C-c C-u' and then either
-`C-m' for `texinfo-make-menu' or `C-a' for `texinfo-all-menus-update'.
-To update both nodes and menus at the same time, precede `C-c C-u C-a'
-with `C-u'.
+     (@xref{Catching Mistakes), for more info.}
 
-     C-c C-u C-m     Make or update a menu.
-     
-     C-c C-u C-a     Make or update all
-                     menus in a buffer.
+Formatting produces:
+     (*Note for more info.: Catching Mistakes)
+
+  The only way for you to detect this error is to realize that the
+reference should have looked like this:
+
+     (*Note Catching Mistakes::, for more info.)
+
+  Incidentally, if you are reading this node in Info and type `f <RET>'
+(`Info-follow-reference'), you will generate an error message that says:
+
+     No such node: "Catching Mistakes) The only way ...
+
+This is because Info perceives the example of the error as the first
+cross reference in this node and if you type a <RET> immediately after
+typing the Info `f' command, Info will attempt to go to the referenced
+node.  If you type `f catch <TAB> <RET>', Info will complete the node
+name of the correctly written example and take you to the `Catching
+Mistakes' node.  (If you try this, you can return from the `Catching
+Mistakes' node by typing `l' (`Info-last').)
+
+\1f
+File: texinfo.info,  Node: Debugging with TeX,  Next: Using texinfo-show-structure,  Prev: Debugging with Info,  Up: Catching Mistakes
+
+Catching Errors with TeX Formatting
+===================================
+
+You can also catch mistakes when you format a file with TeX.
+
+  Usually, you will want to do this after you have run
+`texinfo-format-buffer' (or, better, `makeinfo-buffer') on the same
+file, because `texinfo-format-buffer' sometimes displays error messages
+that make more sense than TeX.  (*Note Debugging with Info::, for more
+information.)
+
+  For example, TeX was run on a Texinfo file, part of which is shown
+here:
+
+     ---------- Buffer: texinfo.texi ----------
+     name of the Texinfo file as an extension.  The
+     @samp{??} are `wildcards' that cause the shell to
+     substitute all the raw index files.  (@xref{sorting
+     indices, for more information about sorting
+     indices.)@refill
+     ---------- Buffer: texinfo.texi ----------
+
+(The cross reference lacks a closing brace.)  TeX produced the
+following output, after which it stopped:
+
+     ---------- Buffer: *tex-shell* ----------
+     Runaway argument?
+     {sorting indices, for more information about sorting
+     indices.) @refill @ETC.
+     ! Paragraph ended before @xref was complete.
+     <to be read again>
+                        @par
+     l.27
      
-     C-u C-c C-u C-a With `C-u' as a prefix argument,
-                     first create or update all nodes and
-                     then create or update all menus.
+     ?
+     ---------- Buffer: *tex-shell* ----------
 
-Format for Info
----------------
+  In this case, TeX produced an accurate and understandable error
+message:
 
-  The Info formatting commands that are written in Emacs Lisp are
-invoked by typing `C-c C-e' and then either `C-r' for a region or `C-b'
-for the whole buffer.
+     Paragraph ended before @xref was complete.
 
-  The Info formatting commands that are written in C and based on the
-`makeinfo' program are invoked by typing `C-c C-m' and then either
-`C-r' for a region or `C-b' for the whole buffer.
+`@par' is an internal TeX command of no relevance to Texinfo.  `l.27'
+means that TeX detected the problem on line 27 of the Texinfo file.
+The `?' is the prompt TeX uses in this circumstance.
 
-Use the `texinfo-format...' commands:
+  Unfortunately, TeX is not always so helpful, and sometimes you must
+truly be a Sherlock Holmes to discover what went wrong.
 
-     C-c C-e C-r     Format the region.
-     C-c C-e C-b     Format the buffer.
+  In any case, if you run into a problem like this, you can do one of
+three things.
 
-Use `makeinfo':
+  1. You can tell TeX to continue running and ignore just this error by
+     typing <RET> at the `?' prompt.
 
-     C-c C-m C-r     Format the region.
-     C-c C-m C-b     Format the buffer.
-     C-c C-m C-l     Recenter the `makeinfo' output buffer.
-     C-c C-m C-k     Kill the `makeinfo' formatting job.
+  2. You can tell TeX to continue running and to ignore all errors as
+     best it can by typing `r <RET>' at the `?' prompt.
 
-Typeset and Print
------------------
+     This is often the best thing to do.  However, beware: the one error
+     may produce a cascade of additional error messages as its
+     consequences are felt through the rest of the file.  To stop TeX
+     when it is producing such an avalanche of error messages, type
+     `C-c' (or `C-c C-c', if you are running a shell inside Emacs).
 
-  The TeX typesetting and printing commands are invoked by typing `C-c
-C-t' and then another control command: `C-r' for `texinfo-tex-region',
-`C-b' for `texinfo-tex-buffer', and so on.
+  3. You can tell TeX to stop this run by typing `x <RET>' at the `?'
+     prompt.
 
-     C-c C-t C-r     Run TeX on the region.
-     C-c C-t C-b     Run `texi2dvi' on the buffer.
-     C-c C-t C-i     Run `texindex'.
-     C-c C-t C-p     Print the DVI file.
-     C-c C-t C-q     Show the print queue.
-     C-c C-t C-d     Delete a job from the print queue.
-     C-c C-t C-k     Kill the current TeX formatting job.
-     C-c C-t C-x     Quit a currently stopped TeX formatting job.
-     C-c C-t C-l     Recenter the output buffer.
+  Please note that if you are running TeX inside Emacs, you need to
+switch to the shell buffer and line at which TeX offers the `?' prompt.
 
-Other Updating Commands
------------------------
+  Sometimes TeX will format a file without producing error messages even
+though there is a problem.  This usually occurs if a command is not
+ended but TeX is able to continue processing anyhow.  For example, if
+you fail to end an itemized list with the `@end itemize' command, TeX
+will write a DVI file that you can print out.  The only error message
+that TeX will give you is the somewhat mysterious comment that
 
-  The remaining updating commands do not have standard keybindings
-because they are rarely used.
+     (@end occurred inside a group at level 1)
 
-     M-x texinfo-insert-node-lines
-                     Insert missing `@node' lines in region.
-                     With `C-u' as a prefix argument,
-                     use section titles as node names.
-     
-     M-x texinfo-multiple-files-update
-                     Update a multi-file document.
-                     With `C-u 2' as a prefix argument,
-                     create or update all nodes and menus
-                     in all included files first.
-     
-     M-x texinfo-indent-menu-description
-                     Indent descriptions.
-     
-     M-x texinfo-sequential-node-update
-                     Insert node pointers in strict sequence.
+However, if you print the DVI file, you will find that the text of the
+file that follows the itemized list is entirely indented as if it were
+part of the last item in the itemized list.  The error message is the
+way TeX says that it expected to find an `@end' command somewhere in
+the file; but that it could not determine where it was needed.
+
+  Another source of notoriously hard-to-find errors is a missing `@end
+group' command.  If you ever are stumped by incomprehensible errors,
+look for a missing `@end group' command first.
+
+  If the Texinfo file lacks header lines, TeX may stop in the beginning
+of its run and display output that looks like the following.  The `*'
+indicates that TeX is waiting for input.
+
+     This is TeX, Version 3.14159 (Web2c 7.0)
+     (test.texinfo [1])
+     *
+
+In this case, simply type `\end <RET>' after the asterisk.  Then write
+the header lines in the Texinfo file and run the TeX command again.
+(Note the use of the backslash, `\'.  TeX uses `\' instead of `@'; and
+in this circumstance, you are working directly with TeX, not with
+Texinfo.)
+
+\1f
+File: texinfo.info,  Node: Using texinfo-show-structure,  Next: Using occur,  Prev: Debugging with TeX,  Up: Catching Mistakes
+
+Using `texinfo-show-structure'
+==============================
+
+It is not always easy to keep track of the nodes, chapters, sections,
+and subsections of a Texinfo file.  This is especially true if you are
+revising or adding to a Texinfo file that someone else has written.
+
+  In GNU Emacs, in Texinfo mode, the `texinfo-show-structure' command
+lists all the lines that begin with the @-commands that specify the
+structure: `@chapter', `@section', `@appendix', and so on.  With an
+argument (`C-u' as prefix argument, if interactive), the command also
+shows the `@node' lines.  The `texinfo-show-structure' command is bound
+to `C-c C-s' in Texinfo mode, by default.
+
+  The lines are displayed in a buffer called the `*Occur*' buffer,
+indented by hierarchical level.  For example, here is a part of what was
+produced by running `texinfo-show-structure' on this manual:
+
+      Lines matching "^@\\(chapter \\|sect\\|subs\\|subh\\|
+      unnum\\|major\\|chapheading \\|heading \\|appendix\\)"
+      in buffer texinfo.texi.
+      ...
+      4177:@chapter Nodes
+      4198:    @heading Two Paths
+      4231:    @section Node and Menu Illustration
+      4337:    @section The @code{@@node} Command
+      4393:        @subheading Choosing Node and Pointer Names
+      4417:        @subsection How to Write an @code{@@node} Line
+      4469:        @subsection @code{@@node} Line Tips
+      ...
+
+  This says that lines 4337, 4393, and 4417 of `texinfo.texi' begin
+with the `@section', `@subheading', and `@subsection' commands
+respectively.  If you move your cursor into the `*Occur*' window, you
+can position the cursor over one of the lines and use the `C-c C-c'
+command (`occur-mode-goto-occurrence'), to jump to the corresponding
+spot in the Texinfo file.  *Note Using Occur: (xemacs)Other Repeating
+Search, for more information about `occur-mode-goto-occurrence'.
+
+  The first line in the `*Occur*' window describes the "regular
+expression" specified by TEXINFO-HEADING-PATTERN.  This regular
+expression is the pattern that `texinfo-show-structure' looks for.
+*Note Using Regular Expressions: (xemacs)Regexps, for more information.
+
+  When you invoke the `texinfo-show-structure' command, Emacs will
+display the structure of the whole buffer.  If you want to see the
+structure of just a part of the buffer, of one chapter, for example,
+use the `C-x n n' (`narrow-to-region') command to mark the region.
+(*Note Narrowing: (xemacs)Narrowing.)  This is how the example used
+above was generated.  (To see the whole buffer again, use `C-x n w'
+(`widen').)
+
+  If you call `texinfo-show-structure' with a prefix argument by typing
+`C-u C-c C-s', it will list lines beginning with `@node' as well as the
+lines beginning with the @-sign commands for `@chapter', `@section',
+and the like.
+
+  You can remind yourself of the structure of a Texinfo file by looking
+at the list in the `*Occur*' window; and if you have mis-named a node
+or left out a section, you can correct the mistake.
+
+\1f
+File: texinfo.info,  Node: Using occur,  Next: Running Info-Validate,  Prev: Using texinfo-show-structure,  Up: Catching Mistakes
+
+Using `occur'
+=============
+
+Sometimes the `texinfo-show-structure' command produces too much
+information.  Perhaps you want to remind yourself of the overall
+structure of a Texinfo file, and are overwhelmed by the detailed list
+produced by `texinfo-show-structure'.  In this case, you can use the
+`occur' command directly.  To do this, type
+
+     M-x occur
+
+and then, when prompted, type a "regexp", a regular expression for the
+pattern you want to match.  (*Note Regular Expressions:
+(xemacs)Regexps.)  The `occur' command works from the current location
+of the cursor in the buffer to the end of the buffer.  If you want to
+run `occur' on the whole buffer, place the cursor at the beginning of
+the buffer.
+
+  For example, to see all the lines that contain the word `@chapter' in
+them, just type `@chapter'.  This will produce a list of the chapters.
+It will also list all the sentences with `@chapter' in the middle of
+the line.
+
+  If you want to see only those lines that start with the word
+`@chapter', type `^@chapter' when prompted by `occur'.  If you want to
+see all the lines that end with a word or phrase, end the last word
+with a `$'; for example, `catching mistakes$'.  This can be helpful
+when you want to see all the nodes that are part of the same chapter or
+section and therefore have the same `Up' pointer.
+
+  *Note Using Occur: (xemacs)Other Repeating Search, for more
+information.
 
 \1f
-File: texinfo.info,  Node: Beginning a File,  Next: Ending a File,  Prev: Texinfo Mode,  Up: Top
+File: texinfo.info,  Node: Running Info-Validate,  Prev: Using occur,  Up: Catching Mistakes
+
+Finding Badly Referenced Nodes
+==============================
 
-Beginning a Texinfo File
-************************
+You can use the `Info-validate' command to check whether any of the
+`Next', `Previous', `Up' or other node pointers fail to point to a
+node.  This command checks that every node pointer points to an
+existing node.  The `Info-validate' command works only on Info files,
+not on Texinfo files.
 
-  Certain pieces of information must be provided at the beginning of a
-Texinfo file, such as the name of the file and the title of the
-document.
+  The `makeinfo' program validates pointers automatically, so you do
+not need to use the `Info-validate' command if you are using
+`makeinfo'.  You only may need to use `Info-validate' if you are unable
+to run `makeinfo' and instead must create an Info file using
+`texinfo-format-region' or `texinfo-format-buffer', or if you write an
+Info file from scratch.
 
 * Menu:
 
-* Four Parts::                  Four parts begin a Texinfo file.
-* Sample Beginning::            Here is a sample beginning for a Texinfo file.
-* Header::                      The very beginning of a Texinfo file.
-* Info Summary and Permissions::  Summary and copying permissions for Info.
-* Titlepage & Copyright Page::  Creating the title and copyright pages.
-* The Top Node::                Creating the `Top' node and master menu.
-* Software Copying Permissions::  Ensure that you and others continue to
-                                  have the right to use and share software.
+* Using Info-validate::         How to run `Info-validate'.
+* Unsplit::                     How to create an unsplit file.
+* Tagifying::                   How to tagify a file.
+* Splitting::                   How to split a file manually.
 
 \1f
-File: texinfo.info,  Node: Four Parts,  Next: Sample Beginning,  Prev: Beginning a File,  Up: Beginning a File
+File: texinfo.info,  Node: Using Info-validate,  Next: Unsplit,  Prev: Running Info-Validate,  Up: Running Info-Validate
 
-Four Parts Begin a File
-=======================
+Running `Info-validate'
+-----------------------
 
-  Generally, the beginning of a Texinfo file has four parts:
+To use `Info-validate', visit the Info file you wish to check and type:
 
-  1. The header, delimited by special comment lines, that includes the
-     commands for naming the Texinfo file and telling TeX what
-     definitions file to use when processing the Texinfo file.
+     M-x Info-validate
 
-  2. A short statement of what the file is about, with a copyright
-     notice and copying permissions.  This is enclosed in `@ifinfo' and
-     `@end ifinfo' commands so that the formatters place it only in the
-     Info file.
+(Note that the `Info-validate' command requires an upper case `I'.  You
+may also need to create a tag table before running `Info-validate'.
+*Note Tagifying::.)
 
-  3. A title page and copyright page, with a copyright notice and
-     copying permissions.  This is enclosed between `@titlepage' and
-     `@end titlepage' commands.  The title and copyright page appear
-     only in the printed manual.
+  If your file is valid, you will receive a message that says "File
+appears valid".  However, if you have a pointer that does not point to
+a node, error messages will be displayed in a buffer called `*problems
+in info file*'.
 
-  4. The `Top' node that contains a menu for the whole Info file.  The
-     contents of this node appear only in the Info file.
+  For example, `Info-validate' was run on a test file that contained
+only the first node of this manual.  One of the messages said:
 
-  Also, optionally, you may include the copying conditions for a program
-and a warranty disclaimer.  The copying section will be followed by an
-introduction or else by the first chapter of the manual.
+     In node "Overview", invalid Next: Texinfo Mode
 
-  Since the copyright notice and copying permissions for the Texinfo
-document (in contrast to the copying permissions for a program) are in
-parts that appear only in the Info file or only in the printed manual,
-this information must be given twice.
+This meant that the node called `Overview' had a `Next' pointer that
+did not point to anything (which was true in this case, since the test
+file had only one node in it).
+
+  Now suppose we add a node named `Texinfo Mode' to our test case but
+we do not specify a `Previous' for this node.  Then we will get the
+following error message:
+
+     In node "Texinfo Mode", should have Previous: Overview
+
+This is because every `Next' pointer should be matched by a `Previous'
+(in the node where the `Next' points) which points back.
+
+  `Info-validate' also checks that all menu entries and cross references
+point to actual nodes.
+
+  Note that `Info-validate' requires a tag table and does not work with
+files that have been split.  (The `texinfo-format-buffer' command
+automatically splits large files.)  In order to use `Info-validate' on
+a large file, you must run `texinfo-format-buffer' with an argument so
+that it does not split the Info file; and you must create a tag table
+for the unsplit file.
 
 \1f
-File: texinfo.info,  Node: Sample Beginning,  Next: Header,  Prev: Four Parts,  Up: Beginning a File
+File: texinfo.info,  Node: Unsplit,  Next: Tagifying,  Prev: Using Info-validate,  Up: Running Info-Validate
 
-Sample Texinfo File Beginning
-=============================
+Creating an Unsplit File
+------------------------
 
-  The following sample shows what is needed.
+You can run `Info-validate' only on a single Info file that has a tag
+table.  The command will not work on the indirect subfiles that are
+generated when a master file is split.  If you have a large file
+(longer than 70,000 bytes or so), you need to run the
+`texinfo-format-buffer' or `makeinfo-buffer' command in such a way that
+it does not create indirect subfiles.  You will also need to create a
+tag table for the Info file.  After you have done this, you can run
+`Info-validate' and look for badly referenced nodes.
 
-     \input texinfo   @c -*-texinfo-*-
-     @c %**start of header
-     @setfilename NAME-OF-INFO-FILE
-     @settitle NAME-OF-MANUAL
-     @setchapternewpage odd
-     @c %**end of header
-     
-     @ifinfo
-     This file documents ...
-     
-     Copyright YEAR COPYRIGHT-OWNER
-     
-     Permission is granted to ...
-     @end ifinfo
-     
-     @c  This title page illustrates only one of the
-     @c  two methods of forming a title page.
-     
-     @titlepage
-     @title NAME-OF-MANUAL-WHEN-PRINTED
-     @subtitle SUBTITLE-IF-ANY
-     @subtitle SECOND-SUBTITLE
-     @author AUTHOR
-     
-     @c  The following two commands
-     @c  start the copyright page.
-     @page
-     @vskip 0pt plus 1filll
-     Copyright @copyright{} YEAR COPYRIGHT-OWNER
-     
-     Published by ...
-     
-     Permission is granted to ...
-     @end titlepage
-     
-     @node Top, Overview, , (dir)
-     
-     @ifinfo
-     This document describes ...
-     
-     This document applies to version ...
-     of the program named ...
-     @end ifinfo
-     
-     @menu
-     * Copying::          Your rights and freedoms.
-     * First Chapter::    Getting started ...
-     * Second Chapter::              ...
-       ...
-       ...
-     @end menu
-     
-     @node    First Chapter, Second Chapter, top,      top
-     @comment node-name,     next,           previous, up
-     @chapter First Chapter
-     @cindex Index entry for First Chapter
+  The first step is to create an unsplit Info file.  To prevent
+`texinfo-format-buffer' from splitting a Texinfo file into smaller Info
+files, give a prefix to the `M-x texinfo-format-buffer' command:
+
+     C-u M-x texinfo-format-buffer
+
+or else
+
+     C-u C-c C-e C-b
+
+When you do this, Texinfo will not split the file and will not create a
+tag table for it.
 
 \1f
-File: texinfo.info,  Node: Header,  Next: Info Summary and Permissions,  Prev: Sample Beginning,  Up: Beginning a File
+File: texinfo.info,  Node: Tagifying,  Next: Splitting,  Prev: Unsplit,  Up: Running Info-Validate
 
-The Texinfo File Header
-=======================
+Tagifying a File
+----------------
 
-  Texinfo files start with at least three lines that provide Info and
-TeX with necessary information.  These are the `\input texinfo' line,
-the `@settitle' line, and the `@setfilename' line.  If you want to run
-TeX on just a part of the Texinfo File, you must write the `@settitle'
-and `@setfilename' lines between start-of-header and end-of-header
-lines.
+After creating an unsplit Info file, you must create a tag table for
+it.  Visit the Info file you wish to tagify and type:
 
-  Thus, the beginning of a Texinfo file looks like this:
+     M-x Info-tagify
 
-     \input texinfo   @c -*-texinfo-*-
-     @setfilename sample.info
-     @settitle Sample Document
+(Note the upper case `I' in `Info-tagify'.)  This creates an Info file
+with a tag table that you can validate.
 
-or else like this:
+  The third step is to validate the Info file:
 
-     \input texinfo   @c -*-texinfo-*-
-     @c %**start of header
-     @setfilename sample.info
-     @settitle Sample Document
-     @c %**end of header
+     M-x Info-validate
 
-* Menu:
+(Note the upper case `I' in `Info-validate'.)  In brief, the steps are:
+
+     C-u M-x texinfo-format-buffer
+     M-x Info-tagify
+     M-x Info-validate
 
-* First Line::                  The first line of a Texinfo file.
-* Start of Header::             Formatting a region requires this.
-* setfilename::                 Tell Info the name of the Info file.
-* settitle::                    Create a title for the printed work.
-* setchapternewpage::           Start chapters on right-hand pages.
-* paragraphindent::             Specify paragraph indentation.
-* exampleindent::               Specify environment indentation.
-* End of Header::               Formatting a region requires this.
+  After you have validated the node structure, you can rerun
+`texinfo-format-buffer' in the normal way so it will construct a tag
+table and split the file automatically, or you can make the tag table
+and split the file manually.
 
 \1f
-File: texinfo.info,  Node: First Line,  Next: Start of Header,  Up: Header
+File: texinfo.info,  Node: Splitting,  Prev: Tagifying,  Up: Running Info-Validate
 
-The First Line of a Texinfo File
---------------------------------
+Splitting a File Manually
+-------------------------
 
-  Every Texinfo file that is to be the top-level input to TeX must begin
-with a line that looks like this:
+You should split a large file or else let the `texinfo-format-buffer'
+or `makeinfo-buffer' command do it for you automatically.  (Generally
+you will let one of the formatting commands do this job for you.  *Note
+Create an Info File::.)
 
-     \input texinfo   @c -*-texinfo-*-
+  The split-off files are called the indirect subfiles.
+
+  Info files are split to save memory.  With smaller files, Emacs does
+not have make such a large buffer to hold the information.
+
+  If an Info file has more than 30 nodes, you should also make a tag
+table for it. *Note Using Info-validate::, for information about
+creating a tag table.  (Again, tag tables are usually created
+automatically by the formatting command; you only need to create a tag
+table yourself if you are doing the job manually.  Most likely, you
+will do this for a large, unsplit file on which you have run
+`Info-validate'.)
+
+  Visit the Info file you wish to tagify and split and type the two
+commands:
+
+     M-x Info-tagify
+     M-x Info-split
 
-This line serves two functions:
+(Note that the `I' in `Info' is upper case.)
 
-  1. When the file is processed by TeX, the `\input texinfo' command
-     tells TeX to load the macros needed for processing a Texinfo file.
-     These are in a file called `texinfo.tex', which is usually located
-     in the `/usr/lib/tex/macros' directory.  TeX uses the backslash,
-     `\', to mark the beginning of a command, just as Texinfo uses `@'.
-     The `texinfo.tex' file causes the switch from `\' to `@'; before
-     the switch occurs, TeX requires `\', which is why it appears at
-     the beginning of the file.
+  When you use the `Info-split' command, the buffer is modified into a
+(small) Info file which lists the indirect subfiles.  This file should
+be saved in place of the original visited file.  The indirect subfiles
+are written in the same directory the original file is in, with names
+generated by appending `-' and a number to the original file name.
 
-  2. When the file is edited in GNU Emacs, the `-*-texinfo-*-' mode
-     specification tells Emacs to use Texinfo mode.
+  The primary file still functions as an Info file, but it contains just
+the tag table and a directory of subfiles.
 
 \1f
-File: texinfo.info,  Node: Start of Header,  Next: setfilename,  Prev: First Line,  Up: Header
+File: texinfo.info,  Node: Refilling Paragraphs,  Next: Command Syntax,  Prev: Catching Mistakes,  Up: Top
+
+Refilling Paragraphs
+********************
+
+The `@refill' command refills and, optionally, indents the first line
+of a paragraph.(1) (*note Refilling Paragraphs-Footnote-1::) The
+`@refill' command is no longer important, but we describe it here
+because you once needed it.  You will see it in many old Texinfo files.
+
+  Without refilling, paragraphs containing long @-constructs may look
+bad after formatting because the formatter removes @-commands and
+shortens some lines more than others.  In the past, neither the
+`texinfo-format-region' command nor the `texinfo-format-buffer' command
+refilled paragraphs automatically.  The `@refill' command had to be
+written at the end of every paragraph to cause these formatters to fill
+them.  (Both TeX and `makeinfo' have always refilled paragraphs
+automatically.)  Now, all the Info formatters automatically fill and
+indent those paragraphs that need to be filled and indented.
+
+  The `@refill' command causes `texinfo-format-region' and
+`texinfo-format-buffer' to refill a paragraph in the Info file _after_
+all the other processing has been done.  For this reason, you can not
+use `@refill' with a paragraph containing either `@*' or `@w{ ... }'
+since the refilling action will override those two commands.
+
+  The `texinfo-format-region' and `texinfo-format-buffer' commands now
+automatically append `@refill' to the end of each paragraph that should
+be filled.  They do not append `@refill' to the ends of paragraphs that
+contain `@*' or `@w{ ...}' and therefore do not refill or indent them.
 
-Start of Header
----------------
+\1f
+File: texinfo.info,  Node: Refilling Paragraphs-Footnotes,  Up: Refilling Paragraphs
 
-  Write a start-of-header line on the second line of a Texinfo file.
-Follow the start-of-header line with `@setfilename' and `@settitle'
-lines and, optionally, with other command lines, such as `@smallbook'
-or `@footnotestyle'; and then by an end-of-header line (*note End of
-Header::).
+  (1) Perhaps the command should have been called the
+`@refillandindent' command, but `@refill' is shorter and the name was
+chosen before indenting was possible.
 
-  With these lines, you can format part of a Texinfo file for Info or
-typeset part for printing.
+\1f
+File: texinfo.info,  Node: Command Syntax,  Next: Obtaining TeX,  Prev: Refilling Paragraphs,  Up: Top
+
+@-Command Syntax
+****************
+
+The character `@' is used to start special Texinfo commands.  (It has
+the same meaning that `\' has in plain TeX.)  Texinfo has four types of
+@-command:
+
+1. Non-alphabetic commands.
+     These commands consist of an @ followed by a punctuation mark or
+     other character that is not part of the alphabet.  Non-alphabetic
+     commands are almost always part of the text within a paragraph,
+     and never take any argument.  The two characters (@ and the other
+     one) are complete in themselves; none is followed by braces.  The
+     non-alphabetic commands are: `@.', `@:', `@*', `@SPACE', `@TAB',
+     `@NL', `@@', `@{', and `@}'.
+
+2. Alphabetic commands that do not require arguments.
+     These commands start with @ followed by a word followed by left-
+     and right-hand braces.  These commands insert special symbols in
+     the document; they do not require arguments.  For example,
+     `@dots{}' => `...', `@equiv{}' => `==', `@TeX{}' => `TeX', and
+     `@bullet{}' => `*'.
+
+3. Alphabetic commands that require arguments within braces.
+     These commands start with @ followed by a letter or a word,
+     followed by an argument within braces.  For example, the command
+     `@dfn' indicates the introductory or defining use of a term; it is
+     used as follows: `In Texinfo, @@-commands are @dfn{mark-up}
+     commands.'
+
+4. Alphabetic commands that occupy an entire line.
+     These commands occupy an entire line.  The line starts with @,
+     followed by the name of the command (a word); for example,
+     `@center' or `@cindex'.  If no argument is needed, the word is
+     followed by the end of the line.  If there is an argument, it is
+     separated from the command name by a space.  Braces are not used.
+
+  Thus, the alphabetic commands fall into classes that have different
+argument syntaxes.  You cannot tell to which class a command belongs by
+the appearance of its name, but you can tell by the command's meaning:
+if the command stands for a glyph, it is in class 2 and does not
+require an argument; if it makes sense to use the command together with
+other text as part of a paragraph, the command is in class 3 and must
+be followed by an argument in braces; otherwise, it is in class 4 and
+uses the rest of the line as its argument.
+
+  The purpose of having a different syntax for commands of classes 3 and
+4 is to make Texinfo files easier to read, and also to help the GNU
+Emacs paragraph and filling commands work properly.  There is only one
+exception to this rule: the command `@refill', which is always used at
+the end of a paragraph immediately following the final period or other
+punctuation character.  `@refill' takes no argument and does _not_
+require braces.  `@refill' never confuses the Emacs paragraph commands
+because it cannot appear at the beginning of a line.
 
-  A start-of-header line looks like this:
+\1f
+File: texinfo.info,  Node: Obtaining TeX,  Next: Command and Variable Index,  Prev: Command Syntax,  Up: Top
+
+How to Obtain TeX
+*****************
+
+TeX is freely redistributable.  You can obtain TeX for Unix systems via
+anonymous ftp or on physical media.  The core material consists of the
+Web2c TeX distribution (`http://tug.org/web2c').
+
+  Instructions for retrieval by anonymous ftp and information on other
+available distributions:
+     `ftp://tug.org/tex/unixtex.ftp'
+     `http://tug.org/unixtex.ftp'
+
+  The Free Software Foundation provides a core distribution on its
+Source Code CD-ROM suitable for printing Texinfo manuals; the
+University of Washington maintains and supports a tape distribution;
+the TeX Users Group co-sponsors a complete CD-ROM TeX distribution.
+
+   * For the FSF Source Code CD-ROM, please contact:
+
+          Free Software Foundation, Inc.
+          59 Temple Place Suite 330
+          Boston, MA   02111-1307
+          USA
+          
+          Telephone: +1-617-542-5942
+          Fax: (including Japan) +1-617-542-2652
+          Free Dial Fax (in Japan):
+                0031-13-2473 (KDD)
+                0066-3382-0158 (IDC)
+          Electronic mail: `gnu@gnu.org'
+
+   * To order a complete distribution on CD-ROM, please see
+     `http://tug.org/tex-live.html'.  (This distribution is also
+     available by FTP; see the URL's above.)
+
+   * To order a full distribution from the University of Washington on
+     either a 1/4in 4-track QIC-24 cartridge or a 4mm DAT cartridge,
+     send $210 to:
+
+          Pierre A. MacKay
+          Denny Hall, Mail Stop DH-10
+          University of Washington
+          Seattle, WA   98195
+          USA
+          Telephone: +1-206-543-2268
+          Electronic mail: `mackay@cs.washington.edu'
+
+     Please make checks payable to the University of Washington.
+     Checks must be in U.S. dollars, drawn on a U.S. bank.  Overseas
+     sites: please add to the base cost, if desired, $20.00 for
+     shipment via air parcel post, or $30.00 for shipment via courier.
+
+
+  Many other TeX distributions are available; see `http://tug.org/'.
 
-     @c %**start of header
+\1f
+File: texinfo.info,  Node: Command and Variable Index,  Next: Concept Index,  Prev: Obtaining TeX,  Up: Top
+
+Command and Variable Index
+**************************
+
+This is an alphabetical list of all the @-commands, assorted Emacs Lisp
+functions, and several variables.  To make the list easier to use, the
+commands are listed without their preceding `@'.
+
+* Menu:
+
+* ! (end of sentence):                   Ending a Sentence.
+* ":                                     Inserting Accents.
+* ':                                     Inserting Accents.
+* (newline):                             Multiple Spaces.
+* (space):                               Multiple Spaces.
+* (tab):                                 Multiple Spaces.
+* * (force line break):                  Line Breaks.
+* ,:                                     Inserting Accents.
+* -:                                     - and hyphenation.
+* .  (end of sentence):                  Ending a Sentence.
+* : (suppress widening):                 Not Ending a Sentence.
+* =:                                     Inserting Accents.
+* ? (end of sentence):                   Ending a Sentence.
+* @ (single @):                          Inserting An Atsign.
+* ^:                                     Inserting Accents.
+* `:                                     Inserting Accents.
+* AA:                                    Inserting Accents.
+* aa:                                    Inserting Accents.
+* AE:                                    Inserting Accents.
+* ae:                                    Inserting Accents.
+* afourpaper:                            A4 Paper.
+* appendix:                              unnumbered & appendix.
+* appendixsec:                           unnumberedsec appendixsec heading.
+* appendixsection:                       unnumberedsec appendixsec heading.
+* appendixsubsec:                        unnumberedsubsec appendixsubsec subheading.
+* appendixsubsubsec:                     subsubsection.
+* apply:                                 Sample Function Definition.
+* asis:                                  table.
+* author:                                title subtitle author.
+* b (bold font):                         Fonts.
+* buffer-end:                            Def Cmd Template.
+* bullet:                                bullet.
+* bye <1>:                               File End.
+* bye:                                   Ending a File.
+* c (comment):                           Comments.
+* cartouche:                             cartouche.
+* center:                                titlefont center sp.
+* centerchap:                            chapter.
+* chapheading:                           majorheading & chapheading.
+* chapter:                               chapter.
+* cindex:                                Indexing Commands.
+* cite:                                  cite.
+* clear:                                 ifset ifclear.
+* code:                                  code.
+* columnfractions:                       Multitable Column Widths.
+* comment:                               Comments.
+* contents:                              Contents.
+* copyright <1>:                         copyright symbol.
+* copyright:                             Copyright & Permissions.
+* cropmarks:                             Cropmarks and Magnification.
+* defcodeindex:                          New Indices.
+* defcv:                                 Abstract Objects.
+* deffn:                                 Functions Commands.
+* deffnx:                                deffnx.
+* defindex:                              New Indices.
+* definfoenclose:                        Customized Highlighting.
+* defivar:                               Abstract Objects.
+* defmac:                                Functions Commands.
+* defmethod:                             Abstract Objects.
+* defop:                                 Abstract Objects.
+* defopt:                                Variables Commands.
+* defspec:                               Functions Commands.
+* deftp:                                 Data Types.
+* deftypefn:                             Typed Functions.
+* deftypefun:                            Typed Functions.
+* deftypevar:                            Typed Variables.
+* deftypevr:                             Typed Variables.
+* defun:                                 Functions Commands.
+* defvar:                                Variables Commands.
+* defvr:                                 Variables Commands.
+* dfn:                                   dfn.
+* dircategory:                           Installing Dir Entries.
+* direntry:                              Installing Dir Entries.
+* display:                               display.
+* dmn:                                   dmn.
+* dotaccent:                             Inserting Accents.
+* dotless:                               Inserting Accents.
+* dots:                                  dots.
+* email:                                 email.
+* emph:                                  emph & strong.
+* end <1>:                               Introducing Lists.
+* end:                                   Quotations and Examples.
+* end titlepage:                         end titlepage.
+* enumerate:                             enumerate.
+* evenfooting:                           Custom Headings.
+* evenheading:                           Custom Headings.
+* everyfooting:                          Custom Headings.
+* everyheading:                          Custom Headings.
+* example:                               example.
+* exclamdown:                            Inserting Accents.
+* exdent:                                exdent.
+* file:                                  file.
+* filll:                                 Copyright & Permissions.
+* finalout:                              Overfull hboxes.
+* findex:                                Indexing Commands.
+* flushleft:                             flushleft & flushright.
+* flushright:                            flushleft & flushright.
+* foobar:                                Optional Arguments.
+* footnote:                              Footnotes.
+* footnotestyle:                         Footnote Styles.
+* format:                                format.
+* forward-word:                          Def Cmd Template.
+* ftable:                                ftable vtable.
+* group:                                 group.
+* H:                                     Inserting Accents.
+* heading:                               unnumberedsec appendixsec heading.
+* headings:                              headings on off.
+* html:                                  Raw Formatter Commands.
+* hyphenation:                           - and hyphenation.
+* i (italic font):                       Fonts.
+* ifclear:                               ifset ifclear.
+* ifhtml <1>:                            Raw Formatter Commands.
+* ifhtml:                                Conditional Commands.
+* ifinfo:                                Conditional Commands.
+* ifnothtml:                             Conditional Not Commands.
+* ifnotinfo:                             Conditional Not Commands.
+* ifnottex:                              Conditional Not Commands.
+* ifset:                                 ifset ifclear.
+* iftex:                                 Conditional Commands.
+* ignore:                                Comments.
+* image:                                 Images.
+* include:                               Using Include Files.
+* Info-validate:                         Running Info-Validate.
+* inforef:                               inforef.
+* input (TeX command):                   Minimum.
+* isearch-backward:                      deffnx.
+* isearch-forward:                       deffnx.
+* item <1>:                              Multitable Rows.
+* item <2>:                              table.
+* item:                                  itemize.
+* itemize:                               itemize.
+* itemx:                                 itemx.
+* kbd:                                   kbd.
+* kbdinputstyle:                         kbd.
+* key:                                   key.
+* kindex:                                Indexing Commands.
+* L:                                     Inserting Accents.
+* l:                                     Inserting Accents.
+* lisp:                                  Lisp Example.
+* lowersections:                         Raise/lower sections.
+* macro:                                 Defining Macros.
+* mag (TeX command):                     Cropmarks and Magnification.
+* majorheading:                          majorheading & chapheading.
+* makeinfo-buffer:                       makeinfo in Emacs.
+* makeinfo-kill-job:                     makeinfo in Emacs.
+* makeinfo-recenter-output-buffer:       makeinfo in Emacs.
+* makeinfo-region:                       makeinfo in Emacs.
+* math:                                  math.
+* menu:                                  Menus.
+* minus:                                 minus.
+* multitable:                            Multi-column Tables.
+* need:                                  need.
+* next-error:                            makeinfo in Emacs.
+* noindent:                              noindent.
+* O:                                     Inserting Accents.
+* o:                                     Inserting Accents.
+* occur:                                 Using occur.
+* occur-mode-goto-occurrence:            Showing the Structure.
+* oddfooting:                            Custom Headings.
+* oddheading:                            Custom Headings.
+* OE:                                    Inserting Accents.
+* oe:                                    Inserting Accents.
+* page:                                  page.
+* paragraphindent:                       paragraphindent.
+* pindex:                                Indexing Commands.
+* pounds:                                pounds.
+* printindex:                            Printing Indices & Menus.
+* pxref:                                 pxref.
+* questiondown:                          Inserting Accents.
+* quotation:                             quotation.
+* r (Roman font):                        Fonts.
+* raisesections:                         Raise/lower sections.
+* ref:                                   ref.
+* refill:                                Refilling Paragraphs.
+* ringaccent:                            Inserting Accents.
+* samp:                                  samp.
+* sc (small caps font):                  Smallcaps.
+* section:                               section.
+* set:                                   ifset ifclear.
+* setchapternewpage:                     setchapternewpage.
+* setfilename:                           setfilename.
+* settitle:                              settitle.
+* shortcontents:                         Contents.
+* shorttitlepage:                        titlepage.
+* smallbook:                             smallbook.
+* smallexample:                          smallexample & smalllisp.
+* smalllisp:                             smallexample & smalllisp.
+* sp (line spacing):                     sp.
+* sp (titlepage line spacing):           titlefont center sp.
+* ss:                                    Inserting Accents.
+* strong:                                emph & strong.
+* subheading:                            unnumberedsubsec appendixsubsec subheading.
+* subsection:                            subsection.
+* subsubheading:                         subsubsection.
+* subsubsection:                         subsubsection.
+* subtitle:                              title subtitle author.
+* summarycontents:                       Contents.
+* syncodeindex:                          syncodeindex.
+* synindex:                              synindex.
+* t (typewriter font):                   Fonts.
+* table:                                 Two-column Tables.
+* tex:                                   Raw Formatter Commands.
+* tex (command):                         tex.
+* texinfo-all-menus-update:              Updating Commands.
+* texinfo-every-node-update:             Updating Commands.
+* texinfo-format-buffer <1>:             texinfo-format commands.
+* texinfo-format-buffer:                 Info Formatting.
+* texinfo-format-region <1>:             texinfo-format commands.
+* texinfo-format-region:                 Info Formatting.
+* texinfo-indent-menu-description:       Other Updating Commands.
+* texinfo-insert-@code:                  Inserting.
+* texinfo-insert-@dfn:                   Inserting.
+* texinfo-insert-@end:                   Inserting.
+* texinfo-insert-@example:               Inserting.
+* texinfo-insert-@item:                  Inserting.
+* texinfo-insert-@kbd:                   Inserting.
+* texinfo-insert-@node:                  Inserting.
+* texinfo-insert-@noindent:              Inserting.
+* texinfo-insert-@samp:                  Inserting.
+* texinfo-insert-@table:                 Inserting.
+* texinfo-insert-@var:                   Inserting.
+* texinfo-insert-braces:                 Inserting.
+* texinfo-insert-node-lines:             Other Updating Commands.
+* texinfo-make-menu:                     Updating Commands.
+* texinfo-master-menu:                   Updating Commands.
+* texinfo-multiple-files-update:         texinfo-multiple-files-update.
+* texinfo-multiple-files-update (in brief): Other Updating Commands.
+* texinfo-sequential-node-update:        Other Updating Commands.
+* texinfo-show-structure <1>:            Using texinfo-show-structure.
+* texinfo-show-structure:                Showing the Structure.
+* texinfo-start-menu-description:        Inserting.
+* texinfo-tex-buffer:                    Printing.
+* texinfo-tex-print:                     Printing.
+* texinfo-tex-region:                    Printing.
+* texinfo-update-node:                   Updating Commands.
+* thischapter:                           Custom Headings.
+* thischaptername:                       Custom Headings.
+* thisfile:                              Custom Headings.
+* thispage:                              Custom Headings.
+* thistitle:                             Custom Headings.
+* tieaccent:                             Inserting Accents.
+* tindex:                                Indexing Commands.
+* title:                                 title subtitle author.
+* titlefont:                             titlefont center sp.
+* titlepage:                             titlepage.
+* today:                                 Custom Headings.
+* top (@-command):                       makeinfo top command.
+* u:                                     Inserting Accents.
+* ubaraccent:                            Inserting Accents.
+* udotaccent:                            Inserting Accents.
+* unmacro:                               Defining Macros.
+* unnumbered:                            unnumbered & appendix.
+* unnumberedsec:                         unnumberedsec appendixsec heading.
+* unnumberedsubsec:                      unnumberedsubsec appendixsubsec subheading.
+* unnumberedsubsubsec:                   subsubsection.
+* up-list:                               Inserting.
+* uref:                                  uref.
+* url:                                   url.
+* v:                                     Inserting Accents.
+* value:                                 value.
+* var:                                   var.
+* vindex:                                Indexing Commands.
+* vskip:                                 Copyright & Permissions.
+* vtable:                                ftable vtable.
+* w (prevent line break):                w.
+* xref:                                  xref.
+* { (single {):                          Inserting Braces.
+* } (single }):                          Inserting Braces.
+* ~:                                     Inserting Accents.
+
+\1f
+File: texinfo.info,  Node: Concept Index,  Prev: Command and Variable Index,  Up: Top
+
+Concept Index
+*************
+
+* Menu:
+
+* !:                                     Inserting Accents.
+* (dir) as Up node of Top node:          First Node.
+* --delete:                              Invoking install-info.
+* --dir-file=NAME:                       Invoking install-info.
+* --entry=TEXT:                          Invoking install-info.
+* --error-limit=LIMIT:                   makeinfo options.
+* --fill-column=WIDTH:                   makeinfo options.
+* --footnote-style=STYLE:                makeinfo options.
+* --force:                               makeinfo options.
+* --help <1>:                            Invoking install-info.
+* --help:                                makeinfo options.
+* --info-dir=DIR:                        Invoking install-info.
+* --info-file=FILE:                      Invoking install-info.
+* --item=TEXT:                           Invoking install-info.
+* --no-headers:                          makeinfo options.
+* --no-number-footnotes:                 makeinfo options.
+* --no-pointer-validate:                 makeinfo options.
+* --no-split:                            makeinfo options.
+* --no-validate:                         makeinfo options.
+* --no-warn:                             makeinfo options.
+* --output=FILE:                         makeinfo options.
+* --paragraph-indent=INDENT:             makeinfo options.
+* --quiet:                               Invoking install-info.
+* --reference-limit=LIMIT:               makeinfo options.
+* --remove:                              Invoking install-info.
+* --section=SEC:                         Invoking install-info.
+* --verbose:                             makeinfo options.
+* --version <1>:                         Invoking install-info.
+* --version:                             makeinfo options.
+* -D VAR:                                makeinfo options.
+* -I DIR:                                makeinfo options.
+* -o FILE:                               makeinfo options.
+* -P DIR:                                makeinfo options.
+* .cshrc initialization file:            Preparing for TeX.
+* .profile initialization file:          Preparing for TeX.
+* /L:                                    Inserting Accents.
+* /l:                                    Inserting Accents.
+* /O:                                    Inserting Accents.
+* /o:                                    Inserting Accents.
+* ?:                                     Inserting Accents.
+* @-command in nodename:                 Node Line Requirements.
+* @-command list:                        Command List.
+* @-command syntax:                      Command Syntax.
+* @-commands:                            Formatting Commands.
+* @include file sample:                  Sample Include File.
+* @menu parts:                           Menu Parts.
+* @node line writing:                    Writing a Node.
+* A4 paper, printing on:                 A4 Paper.
+* AA:                                    Inserting Accents.
+* aa:                                    Inserting Accents.
+* Abbreviations for keys:                key.
+* Accents, inserting:                    Inserting Accents.
+* Acute accent:                          Inserting Accents.
+* Adding a new info file:                New Info File.
+* AE:                                    Inserting Accents.
+* ae:                                    Inserting Accents.
+* Alphabetical @-command list:           Command List.
+* Another Info directory:                Other Info Directories.
+* Apostrophe in nodename:                Node Line Requirements.
+* Arguments, repeated and optional:      Optional Arguments.
+* Aspect ratio of images:                Images.
+* Automatic pointer creation with makeinfo: makeinfo Pointer Creation.
+* Automatically insert nodes, menus:     Updating Nodes and Menus.
+* Backslash, and macros:                 Invoking Macros.
+* Badly referenced nodes:                Running Info-Validate.
+* Batch formatting for Info:             Batch Formatting.
+* Beginning a Texinfo file:              Beginning a File.
+* Beginning line of a Texinfo file:      First Line.
+* Berry, Karl:                           Acknowledgements.
+* Big points:                            Images.
+* Black rectangle in hardcopy:           Overfull hboxes.
+* Blank lines:                           sp.
+* Body of a macro:                       Defining Macros.
+* Book characteristics, printed:         Printed Books.
+* Book, printing small:                  smallbook.
+* Box with rounded corners:              cartouche.
+* Braces and argument syntax:            Command Syntax.
+* Braces, inserting:                     Braces Atsigns.
+* Braces, when to use:                   Formatting Commands.
+* Breaks in a line:                      Line Breaks.
+* Breve accent:                          Inserting Accents.
+* Buffer formatting and printing:        Printing.
+* Bullets, inserting:                    Dots Bullets.
+* Case in nodename:                      Node Line Requirements.
+* Catching errors with Info formatting:  Debugging with Info.
+* Catching errors with TeX formatting:   Debugging with TeX.
+* Catching mistakes:                     Catching Mistakes.
+* Cedilla accent:                        Inserting Accents.
+* Centimeters:                           Images.
+* Chapter structuring:                   Structuring.
+* Characteristics, printed books or manuals: Printed Books.
+* Chassell, Robert J.:                   Acknowledgements.
+* Check accent:                          Inserting Accents.
+* Checking for badly referenced nodes:   Running Info-Validate.
+* Ciceros:                               Images.
+* Circumflex accent:                     Inserting Accents.
+* code, arg to @kbdinputstyle:           kbd.
+* colon last in INFOPATH:                Other Info Directories.
+* Column widths, defining for multitables: Multitable Column Widths.
+* Combining indices:                     Combining Indices.
+* Comma in nodename:                     Node Line Requirements.
+* Command definitions:                   Sample Function Definition.
+* Commands to insert special characters: Braces Atsigns.
+* Commands using raw HTML:               Raw Formatter Commands.
+* Commands using raw TeX:                Raw Formatter Commands.
+* Commands, inserting them:              Inserting.
+* Comments:                              Comments.
+* Compile command for formatting:        Compile-Command.
+* Conditionally visible text:            Conditionals.
+* Conditions for copying Texinfo:        Copying.
+* Contents, Table of:                    Contents.
+* Contents-like outline of file structure: Showing the Structure.
+* Conventions for writing definitions:   Def Cmd Conventions.
+* Conventions, syntactic:                Conventions.
+* Copying conditions:                    Copying.
+* Copying permissions:                   Sample Permissions.
+* Copying software:                      Software Copying Permissions.
+* Copyright page:                        Copyright & Permissions.
+* Correcting mistakes:                   Catching Mistakes.
+* Create nodes, menus automatically:     Updating Nodes and Menus.
+* Creating an Info file:                 Create an Info File.
+* Creating an unsplit file:              Unsplit.
+* Creating index entries:                Indexing Commands.
+* Creating indices:                      Indices.
+* Creating pointers with makeinfo:       makeinfo Pointer Creation.
+* Cropmarks for printing:                Cropmarks and Magnification.
+* Cross reference parts:                 Cross Reference Parts.
+* Cross references:                      Cross References.
+* Cross references using @inforef:       inforef.
+* Cross references using @pxref:         pxref.
+* Cross references using @ref:           ref.
+* Cross references using @xref:          xref.
+* Customized highlighting:               Customized Highlighting.
+* Customizing of TeX for Texinfo:        Preparing for TeX.
+* Debugging the Texinfo structure:       Catching Mistakes.
+* Debugging with Info formatting:        Debugging with Info.
+* Debugging with TeX formatting:         Debugging with TeX.
+* Defining indexing entries:             Indexing Commands.
+* Defining macros:                       Defining Macros.
+* Defining new indices:                  New Indices.
+* Defining new Texinfo commands:         Macros.
+* Definition commands:                   Definition Commands.
+* Definition conventions:                Def Cmd Conventions.
+* Definition template:                   Def Cmd Template.
+* Definitions grouped together:          deffnx.
+* Description for menu, start:           Inserting.
+* Dido^t points:                         Images.
+* Different cross reference commands:    Cross Reference Commands.
+* Dimension formatting:                  dmn.
+* Dimensions and image sizes:            Images.
+* dir directory for Info installation:   Install an Info File.
+* dir file listing:                      New Info File.
+* dir, created by install-info:          Invoking install-info.
+* Display formatting:                    display.
+* distinct, arg to @kbdinputstyle:       kbd.
+* Distorting images:                     Images.
+* Distribution:                          Software Copying Permissions.
+* Dot accent:                            Inserting Accents.
+* Dotless i, j:                          Inserting Accents.
+* Dots, inserting <1>:                   dots.
+* Dots, inserting:                       Dots Bullets.
+* Double-colon menu entries:             Less Cluttered Menu Entry.
+* DVI file:                              Format with tex/texindex.
+* Ellipsis, inserting:                   Dots Bullets.
+* Emacs:                                 Texinfo Mode.
+* Emacs shell, format, print from:       Within Emacs.
+* Emphasizing text:                      Emphasis.
+* Emphasizing text, font for:            emph & strong.
+* Enclosure command for Info:            Customized Highlighting.
+* End node footnote style:               Footnote Styles.
+* End of header line:                    End of Header.
+* End titlepage starts headings:         end titlepage.
+* Ending a Sentence:                     Ending a Sentence.
+* Ending a Texinfo file:                 Ending a File.
+* Entries for an index:                  Indexing Commands.
+* Entries, making index:                 Index Entries.
+* Enumeration:                           enumerate.
+* epsf.tex:                              Images.
+* epsf.tex, installing:                  Preparing for TeX.
+* Equivalence, indicating it:            Equivalence.
+* Error message, indicating it:          Error Glyph.
+* Errors, parsing:                       makeinfo in Emacs.
+* Es-zet:                                Inserting Accents.
+* European A4 paper:                     A4 Paper.
+* Evaluation glyph:                      result.
+* Example for a small book:              smallexample & smalllisp.
+* Example menu:                          Menu Example.
+* example, arg to @kbdinputstyle:        kbd.
+* Examples, formatting them:             example.
+* Expansion, indicating it:              expansion.
+* File beginning:                        Beginning a File.
+* File ending:                           Ending a File.
+* File section structure, showing it:    Showing the Structure.
+* Filling paragraphs:                    Refilling Paragraphs.
+* Final output:                          Overfull hboxes.
+* Finding badly referenced nodes:        Running Info-Validate.
+* Fine-tuning, and hyphenation:          - and hyphenation.
+* First line of a Texinfo file:          First Line.
+* First node:                            First Node.
+* Floating accents, inserting:           Inserting Accents.
+* Fonts for indices:                     syncodeindex.
+* Fonts for printing, not for Info:      Fonts.
+* Footings:                              Headings.
+* Footnotes:                             Footnotes.
+* Format a dimension:                    dmn.
+* Format and print hardcopy:             Format/Print Hardcopy.
+* Format and print in Texinfo mode:      Texinfo Mode Printing.
+* Format with the compile command:       Compile-Command.
+* Format, print from Emacs shell:        Within Emacs.
+* Formats for images:                    Images.
+* Formatting a file for Info:            Create an Info File.
+* Formatting commands:                   Formatting Commands.
+* Formatting examples:                   example.
+* Formatting for Info:                   Info Formatting.
+* Formatting for printing:               Printing.
+* Formatting headings and footings:      Headings.
+* Formatting requirements:               Requirements Summary.
+* Formatting with tex and texindex:      Format with tex/texindex.
+* Frequently used commands, inserting:   Inserting.
+* Function definitions:                  Sample Function Definition.
+* General syntactic conventions:         Conventions.
+* Generating menus with indices:         Printing Indices & Menus.
+* German S:                              Inserting Accents.
+* Globbing:                              Format with tex/texindex.
+* Glyphs:                                Glyphs.
+* GNU Emacs:                             Texinfo Mode.
+* GNU Emacs shell, format, print from:   Within Emacs.
+* Going to other Info files' nodes:      Other Info Files.
+* Grave accent:                          Inserting Accents.
+* Group (hold text together vertically): group.
+* Grouping two definitions together:     deffnx.
+* Hardcopy, printing it:                 Format/Print Hardcopy.
+* hboxes, overfull:                      Overfull hboxes.
+* Header for Texinfo files:              Header.
+* Header of a Texinfo file:              First Line.
+* Headings:                              Headings.
+* Headings, page, begin to appear:       end titlepage.
+* Height of images:                      Images.
+* Highlighting text:                     Indicating.
+* Highlighting, customized:              Customized Highlighting.
+* Hints:                                 Tips.
+* Holding text together vertically:      group.
+* HTML commands, using ordinary:         Raw Formatter Commands.
+* Hungariam umlaut accent:               Inserting Accents.
+* Hyphenation, helping TeX do:           - and hyphenation.
+* Hyphenation, preventing:               w.
+* i:                                     Inserting Accents.
+* If text conditionally visible:         Conditionals.
+* ifinfo permissions:                    ifinfo Permissions.
+* Ignored before @setfilename:           setfilename.
+* Ignored text:                          Comments.
+* Image formats:                         Images.
+* Images, inserting:                     Images.
+* Inches:                                Images.
+* Include file requirements:             Include File Requirements.
+* Include file sample:                   Sample Include File.
+* Include files:                         Include Files.
+* Include files, and section levels:     Raise/lower sections.
+* Indentation undoing:                   exdent.
+* Indenting paragraphs:                  paragraphindent.
+* Index entries:                         Indexing Commands.
+* Index entries, making:                 Index Entries.
+* Index entry writing:                   Indexing Commands.
+* Index font types:                      Indexing Commands.
+* Indexing commands, predefined:         Indexing Commands.
+* Indexing table entries automatically:  ftable vtable.
+* Indicating commands, definitions, etc.: Indicating.
+* Indicating evaluation:                 result.
+* Indices:                               Indices.
+* Indices, combining them:               Combining Indices.
+* Indices, defining new:                 New Indices.
+* Indices, printing and menus:           Printing Indices & Menus.
+* Indices, sorting:                      Format/Print Hardcopy.
+* Indices, two letter names:             syncodeindex.
+* Indirect subfiles:                     Tag and Split Files.
+* Info batch formatting:                 Batch Formatting.
+* Info file installation:                Install an Info File.
+* Info file requires @setfilename:       setfilename.
+* Info file, listing new one:            New Info File.
+* Info file, splitting manually:         Splitting.
+* Info files:                            Info Files.
+* Info formatting:                       Info Formatting.
+* Info installed in another directory:   Other Info Directories.
+* Info validating a large file:          Using Info-validate.
+* Info, creating an on-line file:        Create an Info File.
+* Info-directory-list:                   Other Info Directories.
+* Info; other files' nodes:              Other Info Files.
+* INFOPATH:                              Other Info Directories.
+* Initialization file for TeX input:     Preparing for TeX.
+* Insert nodes, menus automatically:     Updating Nodes and Menus.
+* Inserting @, braces:                   Braces Atsigns.
+* Inserting accents:                     Inserting Accents.
+* Inserting dots <1>:                    dots.
+* Inserting dots:                        Dots Bullets.
+* Inserting ellipsis:                    Dots Bullets.
+* Inserting frequently used commands:    Inserting.
+* Inserting space:                       Inserting Space.
+* Inserting special characters and symbols: Insertions.
+* install-info:                          Invoking install-info.
+* Installing an Info file:               Install an Info File.
+* Installing Info in another directory:  Other Info Directories.
+* Introduction, as part of file:         Software Copying Permissions.
+* Invoking macros:                       Invoking Macros.
+* Itemization:                           itemize.
+* j:                                     Inserting Accents.
+* keyboard input:                        kbd.
+* Keys, recommended names:               key.
+* Knuth, Donald:                         Printed Books.
+* Larger or smaller pages:               Cropmarks and Magnification.
+* Less cluttered menu entry:             Less Cluttered Menu Entry.
+* License agreement:                     Software Copying Permissions.
+* Line breaks:                           Line Breaks.
+* Line breaks, preventing:               w.
+* Line length, column widths as fraction of: Multitable Column Widths.
+* Line spacing:                          sp.
+* Lisp example:                          Lisp Example.
+* Lisp example for a small book:         smallexample & smalllisp.
+* List of  @-commands:                   Command List.
+* Listing a new info file:               New Info File.
+* Lists and tables, making:              Lists and Tables.
+* Local variables:                       Compile-Command.
+* Location of menus:                     Menu Location.
+* Looking for badly referenced nodes:    Running Info-Validate.
+* lpr (DVI print command):               Print with lpr.
+* Macro definitions <1>:                 Defining Macros.
+* Macro definitions:                     Sample Function Definition.
+* Macro invocation:                      Invoking Macros.
+* Macron accent:                         Inserting Accents.
+* Macros:                                Macros.
+* Macros, undefining:                    Defining Macros.
+* Magnified printing:                    Cropmarks and Magnification.
+* mailto link:                           email.
+* makeinfo inside Emacs:                 makeinfo in Emacs.
+* makeinfo options:                      makeinfo options.
+* Making a printed manual:               Format/Print Hardcopy.
+* Making a tag table automatically:      Tag and Split Files.
+* Making a tag table manually:           Unsplit.
+* Making cross references:               Cross References.
+* Making line and page breaks:           Breaks.
+* Making lists and tables:               Lists and Tables.
+* Manual characteristics, printed:       Printed Books.
+* Marking text within a paragraph:       Marking Text.
+* Marking words and phrases:             Marking Text.
+* Master menu:                           The Top Node.
+* Master menu parts:                     Master Menu Parts.
+* Mathematical expressions <1>:          Raw Formatter Commands.
+* Mathematical expressions:              math.
+* Menu description, start:               Inserting.
+* Menu entries with two colons:          Less Cluttered Menu Entry.
+* Menu example:                          Menu Example.
+* Menu location:                         Menu Location.
+* Menu parts:                            Menu Parts.
+* Menu writing:                          Writing a Menu.
+* Menus:                                 Menus.
+* Menus generated with indices:          Printing Indices & Menus.
+* META key:                              key.
+* Meta-syntactic chars for arguments:    Optional Arguments.
+* Millimeters:                           Images.
+* Minimal requirements for formatting:   Requirements Summary.
+* Minimal Texinfo file (requirements):   Minimum.
+* Mistakes, catching:                    Catching Mistakes.
+* Mode, using Texinfo:                   Texinfo Mode.
+* Multiple spaces:                       Multiple Spaces.
+* Multitable column widths:              Multitable Column Widths.
+* Multitable rows:                       Multitable Rows.
+* Must have in Texinfo file:             Minimum.
+* Mutually recursive macros:             Defining Macros.
+* Names for indices:                     syncodeindex.
+* Names of index files:                  Format with tex/texindex.
+* Names recommended for keys:            key.
+* Naming a `Top' Node in references:     Top Node Naming.
+* Need space at page bottom:             need.
+* New index defining:                    New Indices.
+* New info file, listing it in dir file: New Info File.
+* New Texinfo commands, defining:        Macros.
+* Node line requirements:                Node Line Requirements.
+* Node line writing:                     Writing a Node.
+* Node, `Top':                           The Top Node.
+* Node, defined:                         node.
+* Nodename must be unique:               Node Line Requirements.
+* Nodename, cannot contain:              Node Line Requirements.
+* Nodes for menus are short:             Menu Location.
+* Nodes in other Info files:             Other Info Files.
+* Nodes, catching mistakes:              Catching Mistakes.
+* Nodes, checking for badly referenced:  Running Info-Validate.
+* Not ending a sentence:                 Not Ending a Sentence.
+* Obtaining TeX:                         Obtaining TeX.
+* Occurrences, listing with @occur:      Using occur.
+* OE:                                    Inserting Accents.
+* oe:                                    Inserting Accents.
+* Optional and repeated arguments:       Optional Arguments.
+* Options for makeinfo:                  makeinfo options.
+* Ordinary HTML commands, using:         Raw Formatter Commands.
+* Ordinary TeX commands, using:          Raw Formatter Commands.
+* Other Info files' nodes:               Other Info Files.
+* Outline of file structure, showing it: Showing the Structure.
+* Overfull hboxes:                       Overfull hboxes.
+* Overview of Texinfo:                   Overview.
+* Page breaks:                           page.
+* Page delimiter in Texinfo mode:        Showing the Structure.
+* Page headings:                         Headings.
+* Page numbering:                        Headings.
+* Page sizes for books:                  smallbook.
+* page-delimiter:                        Showing the Structure.
+* Pages, starting odd:                   setchapternewpage.
+* Paper size, European A4:               A4 Paper.
+* Paragraph indentation:                 paragraphindent.
+* Paragraph, marking text within:        Marking Text.
+* Parsing errors:                        makeinfo in Emacs.
+* Part of file formatting and printing:  Printing.
+* Parts of a cross reference:            Cross Reference Parts.
+* Parts of a master menu:                Master Menu Parts.
+* Parts of a menu:                       Menu Parts.
+* Periods, inserting:                    Not Ending a Sentence.
+* Permissions:                           Sample Permissions.
+* Permissions, printed:                  Copyright & Permissions.
+* Picas:                                 Images.
+* Pictures, inserting:                   Images.
+* Pinard, Franc,ois:                     Acknowledgements.
+* plain TeX:                             Raw Formatter Commands.
+* Point, indicating it in a buffer:      Point Glyph.
+* Pointer creation with makeinfo:        makeinfo Pointer Creation.
+* Pointer validation with makeinfo:      Pointer Validation.
+* Points (dimension):                    Images.
+* Predefined indexing commands:          Indexing Commands.
+* Predefined names for indices:          syncodeindex.
+* Preparing to use TeX:                  Preparing for TeX.
+* Preventing line and page breaks:       Breaks.
+* Previous node of Top node:             First Node.
+* Print and format in Texinfo mode:      Texinfo Mode Printing.
+* Print, format from Emacs shell:        Within Emacs.
+* Printed book and manual characteristics: Printed Books.
+* Printed output, indicating it:         Print Glyph.
+* Printed permissions:                   Copyright & Permissions.
+* Printing a region or buffer:           Printing.
+* Printing an index:                     Printing Indices & Menus.
+* Printing cropmarks:                    Cropmarks and Magnification.
+* Problems, catching:                    Catching Mistakes.
+* Prototype row, column widths defined by: Multitable Column Widths.
+* Quotations:                            quotation.
+* Raising and lowering sections:         Raise/lower sections.
+* Raw formatter commands:                Raw Formatter Commands.
+* Recommended names for keys:            key.
+* Rectangle, ugly, black in hardcopy:    Overfull hboxes.
+* Recursion, mutual:                     Defining Macros.
+* References:                            Cross References.
+* References using @inforef:             inforef.
+* References using @pxref:               pxref.
+* References using @ref:                 ref.
+* References using @xref:                xref.
+* Referring to other Info files:         Other Info Files.
+* Refilling paragraphs:                  Refilling Paragraphs.
+* Region formatting and printing:        Printing.
+* Region printing in Texinfo mode:       Texinfo Mode Printing.
+* Repeated and optional arguments:       Optional Arguments.
+* Required in Texinfo file:              Minimum.
+* Requirements for formatting:           Requirements Summary.
+* Requirements for include files:        Include File Requirements.
+* Requirements for updating commands:    Updating Requirements.
+* Result of an expression:               result.
+* ridt.eps:                              Images.
+* Ring accent:                           Inserting Accents.
+* Rows, of a multitable:                 Multitable Rows.
+* Running an Info formatter:             Info Formatting.
+* Running Info-validate:                 Using Info-validate.
+* Running makeinfo in Emacs:             makeinfo in Emacs.
+* Sample @include file:                  Sample Include File.
+* Sample function definition:            Sample Function Definition.
+* Sample Texinfo file:                   Short Sample.
+* Sample Texinfo file, no comments:      Sample Texinfo File.
+* Scaled points:                         Images.
+* Section structure of a file, showing it: Showing the Structure.
+* Sections, raising and lowering:        Raise/lower sections.
+* Sentence ending punctuation:           Ending a Sentence.
+* Sentence non-ending punctuation:       Not Ending a Sentence.
+* Separate footnote style:               Footnote Styles.
+* Sharp S:                               Inserting Accents.
+* Shell formatting with tex and texindex: Format with tex/texindex.
+* Shell, format, print from:             Within Emacs.
+* Shell, running makeinfo in:            makeinfo in Emacs.
+* Short nodes for menus:                 Menu Location.
+* Showing the section structure of a file: Showing the Structure.
+* Showing the structure of a file:       Using texinfo-show-structure.
+* Site-wide Texinfo configuration file:  Preparing for TeX.
+* Size of printed book:                  smallbook.
+* slanted typewriter font, for @kbd:     kbd.
+* Small book example:                    smallexample & smalllisp.
+* Small book size:                       smallbook.
+* Small caps font:                       Smallcaps.
+* Software copying permissions:          Software Copying Permissions.
+* Sorting indices:                       Format/Print Hardcopy.
+* Spaces (blank lines):                  sp.
+* Spacing, inserting:                    Inserting Space.
+* Special characters, commands to insert: Braces Atsigns.
+* Special insertions:                    Insertions.
+* Special typesetting commands:          Dots Bullets.
+* Specifying index entries:              Indexing Commands.
+* Splitting an Info file manually:       Splitting.
+* ss:                                    Inserting Accents.
+* Stallman, Richard M.:                  Acknowledgements.
+* Start of header line:                  Start of Header.
+* Starting chapters:                     setchapternewpage.
+* Structure of a file, showing it:       Showing the Structure.
+* Structure, catching mistakes in:       Catching Mistakes.
+* Structuring of chapters:               Structuring.
+* Subsection-like commands:              unnumberedsubsec appendixsubsec subheading.
+* Subsub commands:                       subsubsection.
+* Syntactic conventions:                 Conventions.
+* Syntax, optional & repeated arguments: Optional Arguments.
+* tab:                                   Multitable Rows.
+* Table of contents:                     Contents.
+* Tables and lists, making:              Lists and Tables.
+* Tables with indexes:                   ftable vtable.
+* Tables, making multi-column:           Multi-column Tables.
+* Tables, making two-column:             Two-column Tables.
+* Tabs; don't use!:                      Conventions.
+* Tag table, making automatically:       Tag and Split Files.
+* Tag table, making manually:            Unsplit.
+* Template for a definition:             Def Cmd Template.
+* TeX commands, using ordinary:          Raw Formatter Commands.
+* TeX index sorting:                     Format/Print Hardcopy.
+* TeX input initialization:              Preparing for TeX.
+* TeX, how to obtain:                    Obtaining TeX.
+* texi2dvi:                              Format with tex/texindex.
+* texi2dvi (shell script):               Format with texi2dvi.
+* texindex <1>:                          Format with tex/texindex.
+* texindex:                              Format/Print Hardcopy.
+* Texinfo commands, defining new:        Macros.
+* Texinfo file beginning:                Beginning a File.
+* Texinfo file ending:                   Ending a File.
+* Texinfo file header:                   Header.
+* Texinfo file minimum:                  Minimum.
+* Texinfo file section structure, showing it: Showing the Structure.
+* Texinfo mode:                          Texinfo Mode.
+* Texinfo overview:                      Overview.
+* Texinfo printed book characteristics:  Printed Books.
+* texinfo.cnf <1>:                       A4 Paper.
+* texinfo.cnf:                           setfilename.
+* texinfo.cnf installation:              Preparing for TeX.
+* texinfo.tex, installing:               Preparing for TeX.
+* TEXINPUTS:                             Preparing for TeX.
+* TEXINPUTS environment variable:        Preparing for TeX.
+* Text, conditionally visible:           Conditionals.
+* Thin space between number, dimension:  dmn.
+* Tie-after accent:                      Inserting Accents.
+* Tilde accent:                          Inserting Accents.
+* Tips:                                  Tips.
+* Title page:                            titlepage.
+* Titlepage end starts headings:         end titlepage.
+* Titlepage permissions:                 Titlepage Permissions.
+* Top node:                              The Top Node.
+* Top node is first:                     First Node.
+* Top node naming for references:        Top Node Naming.
+* Top node summary:                      Top Node Summary.
+* Tree structuring:                      Tree Structuring.
+* Two `First' Lines for @deffn:          deffnx.
+* Two letter names for indices:          syncodeindex.
+* Two named items for @table:            itemx.
+* Two part menu entry:                   Less Cluttered Menu Entry.
+* Typesetting commands for dots, etc.:   Dots Bullets.
+* Umlaut accent:                         Inserting Accents.
+* Uncluttered menu entry:                Less Cluttered Menu Entry.
+* Undefining macros:                     Defining Macros.
+* Underbar accent:                       Inserting Accents.
+* Underdot accent:                       Inserting Accents.
+* Uniform resource locator, indicating:  url.
+* Uniform resource locator, referring to: uref.
+* Unique nodename requirement:           Node Line Requirements.
+* Unprocessed text:                      Comments.
+* Unsplit file creation:                 Unsplit.
+* Up node of Top node:                   First Node.
+* Updating nodes and menus:              Updating Nodes and Menus.
+* Updating requirements:                 Updating Requirements.
+* URL, indicating:                       url.
+* URL, referring to:                     uref.
+* Usage tips:                            Tips.
+* user input:                            kbd.
+* User options, marking:                 Variables Commands.
+* User-defined Texinfo commands:         Macros.
+* Validating a large file:               Using Info-validate.
+* Validation of pointers:                Pointer Validation.
+* Value of an expression, indicating:    result.
+* version number, finding:               Invoking install-info.
+* Vertical whitespace (vskip):           Copyright & Permissions.
+* Vertically holding text together:      group.
+* Visibility of conditional text:        Conditionals.
+* Weisshaus, Melissa:                    Acknowledgements.
+* Whitespace, inserting <1>:             Multiple Spaces.
+* Whitespace, inserting:                 Inserting Space.
+* Width of images:                       Images.
+* Widths, defining multitable column:    Multitable Column Widths.
+* Wildcards:                             Format with tex/texindex.
+* Words and phrases, marking them:       Marking Text.
+* Writing a menu:                        Writing a Menu.
+* Writing an @node line:                 Writing a Node.
+* Writing index entries:                 Indexing Commands.
+* Zuhn, David D.:                        Acknowledgements.
 
-  The odd string of characters, `%**', is to ensure that no other
-comment is accidentally taken for a start-of-header line.