\input texinfo    @c -*-texinfo-*-
@comment %**start of header
@setfilename makeinfo.info
@set VERSION 1.61
@paragraphindent none
@comment %**start of header

@ifinfo
This file is an extract from the @cite{Texinfo} manual.@*
It documents @code{makeinfo}, a program that converts Texinfo
files into Info files.  

Copyright (C) 1992, 1993, 1994, 1995 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 copying permission
notice identical to this one except for the removal of this paragraph
(this paragraph not being relevant to the printed manual).

@end ignore
Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided that the entire
resulting derived work is distributed under the terms of a permission
notice identical to this one.

Permission is granted to copy and distribute translations of this manual
into another language, under the above conditions for modified versions,
except that this permission notice may be stated in a translation approved
by the Free Software Foundation.
@end ifinfo

@titlepage
@title GNU Makeinfo
@author Brian J. Fox and Robert J. Chassell

@page
@vskip 0pt plus 1filll
Copyright @copyright{} 1992, 1993, 1994, 1995 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.

Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided that the entire
resulting derived work is distributed under the terms of a permission
notice identical to this one.

Permission is granted to copy and distribute translations of this manual
into another language, under the above conditions for modified versions,
except that this permission notice may be stated in a translation approved
by the Free Software Foundation.
@end titlepage

@node Top, ,(dir), (dir)
@chapter What is @code{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

@code{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.

@menu
* Formatting Control::          Controlling the width of lines, paragraph
                                indentation, and other similar formatting.

* Options::                     Command line options which control the
                                behaviour of Makeinfo.

* Pointer Validation::          How Makeinfo can help you to track node
                                references through complex Texinfo files.

* The Macro Facility::          Makeinfo allows the use of @dfn{macros}.

* Index::                       Index of Concepts.
@end menu

@node Formatting Control
@section Controlling Paragraph Formats

Without any special options, @code{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
@code{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

@node Options
@section Command Line Options

The following command line options are available for @code{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 @code{makeinfo} will report
before exiting (on the assumption that continuing would be useless).
The default number of errors that can be reported before
@code{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.
@refill

@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}, @code{makeinfo} makes a new node containing the
footnotes found in the current node.  When the footnote style is
@samp{end}, @code{makeinfo} places the footnote references at the end
of the current node.@refill

@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,
@code{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 @code{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}, @code{makeinfo} will not split up the output
file.@refill

@need 100
@item --no-pointer-validate
@item --no-validate
Suppress the pointer-validation phase of @code{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}.@refill

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

@item --no-number-footnotes
Supress automatic footnote numbering.  By default, @code{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:@refill

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

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

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

@need 100
@item --reference-limit @var{limit}
Set the value of the number of references to a node that
@code{makeinfo} will make without reporting a warning.  If a node has more
than this number of references in it, @code{makeinfo} will make the
references but also report a warning.@refill

@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 @code{makeinfo} to display messages saying what it is doing.
Normally, @code{makeinfo} only outputs messages if there are errors or
warnings.@refill

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

@item --help
Show a summary of the commend line arguments to @code{makeinfo}.
@end table

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

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

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

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

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

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

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

@lowersections
@include macro.texi
@raisesections

@lowersections
@node Index
@appendix Index
@printindex cp
@raisesections

@contents
@bye
