\input texinfo    @c -*-texinfo-*-
@comment %**start of header
@setfilename example.info
@set VERSION 1.58
@paragraphindent none
@comment %**end of header

@include simpledoc.texi

@document {@makeinfo{}, Brian J. Fox,
This file is an extract from the @cite{@texinfo{}} manual.@*
It documents @makeinfo{}\, a program that converts @texinfo{} files into
Info files.
}

@menu
* What is @makeinfo{}?::
* Controlling Paragraph Formats::
* Command Line Options::
* Pointer Validation::
@end menu

@section What is @makeinfo{}?

@iftex
This file documents the use of the @code{makeinfo} program, versions
@value{VERSION} and later.  It is an extract from the @cite{TeXinfo} manual.
@end iftex

@makeinfo{} is a program for converting @dfn{@texinfo{}} files into
@dfn{@Info{}} files.  @texinfo{} is a documentation system that uses a
single source file to produce both on-line information and printed output.

You can read the on-line information using @Info{}; type @code{info} to
learn about @Info{}.
@ifinfo
@xref{Top, Texinfo, Overview of Texinfo, texinfo, Texinfo},
@end ifinfo
@iftex
See the @cite{TeXinfo} manual,
@end iftex
to learn about the TeXinfo documentation system.

@section Controlling Paragraph Formats

In general, @makeinfo{} @dfn{fills} the paragraphs that it outputs
to an @Info{} file.  Filling is the process of breaking 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.  With
@makeinfo{}, you can control:

@itemize @bullet
@item
The width of each paragraph (the @dfn{fill-column}).
@item
The amount of indentation that the first line of 
each paragraph receives (the @dfn{paragraph-indentation}).
@end itemize

@section Command Line Options

The following command line options are available for @makeinfo{}.

@need 100
@table @code
@item -D @var{var}
Cause @var{var} to be defined.  This is equivalent to 
@code{@@set @var{var}} in the Texinfo file.

@need 150
@item --error-limit @var{limit}
Set the maximum number of errors that @makeinfo{} will report
before exiting (on the assumption that continuing would be useless).
The default number of errors that can be reported before
@makeinfo{} gives up is 100.@refill

@need 150
@item --fill-column @var{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.  The default value for @code{fill-column} is 72.

@item --footnote-style @var{style}
Set the footnote style to @var{style}, either @samp{end} for the end
node style or @samp{separate} for the separate node style.  The value
set by this option overrides the value set in a Texinfo file by an
@code{@@footnotestyle} command.  When the footnote style is
@samp{separate}, @makeinfo{} makes a new node containing the
footnotes found in the current node.  When the footnote style is
@samp{end}, @makeinfo{} places the footnote references at the end
of the current node.

@need 150
@item -I @var{dir}
Add @code{dir} to the directory search list for finding files that are
included using the @code{@@include} command.  By default,
@makeinfo{} searches only the current directory.

@need 150
@item --no-headers
Do not include menus or node lines in the output.  This results in an
@sc{ascii} file that you cannot read in Info since it does not contain
the requisite nodes or menus; but you can print such a file in a
single, typewriter-like font and produce acceptable output.

@need 150
@item --no-split
Suppress the splitting stage of @makeinfo{}.  Normally, large
output files (where the size is greater than 70k bytes) are split into
smaller subfiles, each one approximately 50k bytes.  If you specify
@samp{--no-split}, @makeinfo{} will not split up the output
file.

@need 100
@item --no-pointer-validate
@item --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.
@xref{Pointer Validation}.

@need 150
@item --no-warn
Suppress the output of warning messages.  This does @emph{not}
suppress the output of error messages, only warnings.  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.

@item --no-number-footnotes
Supress 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.

@need 150
@item --output @var{file}
@itemx -o @var{file}
Specify that the output should be directed to @var{file} and not to the
file name specified in the @code{@@setfilename} command found in the Texinfo
source.  @var{file} can be the special token @samp{-}, which specifies
standard output.

@need 150
@item --paragraph-indent @var{indent}
Set the paragraph indentation style to @var{indent}.  The value set by
this option overrides the value set in a Texinfo file by an
@code{@@paragraphindent} command.  The value of @var{indent} is
interpreted as follows:

@itemize @bullet
@item
If the value of @var{indent} is @samp{asis}, do not change the
existing indentation at the starts of paragraphs.

@item
If the value of @var{indent} is zero, delete any existing
indentation.

@item
If the value of @var{indent} is greater than zero, indent each
paragraph by that number of spaces.
@end itemize

@need 100
@item --reference-limit @var{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.

@need 150
@item -U @var{var}
Cause @var{var} to be undefined.  This is equivalent to 
@code{@@clear @var{var}} in the Texinfo file.

@need 100
@item --verbose
Cause @makeinfo{} to display messages saying what it is doing.
Normally, @makeinfo{} only outputs messages if there are errors or
warnings.

@need 100
@item --version
Report the version number of this copy of @makeinfo{}.
@end table

@section Pointer Validation
@cindex Pointer validation with @makeinfo{}
@cindex Validation of pointers

If you do not suppress pointer-validation (by using the
@samp{--no-pointer-validation} option), @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:

@enumerate
@item
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
@file{(dir)}, then the referenced node must exist.

@item
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.

@item
Every node except the `Top' node must have an `Up' pointer.

@item
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.

@item
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.
@end enumerate

@bye
