[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
texinfo ChangeLog doc/texinfo.txi
From: |
Karl Berry |
Subject: |
texinfo ChangeLog doc/texinfo.txi |
Date: |
Wed, 17 Mar 2010 15:40:24 +0000 |
CVSROOT: /sources/texinfo
Module name: texinfo
Changes by: Karl Berry <karl> 10/03/17 15:40:24
Modified files:
. : ChangeLog
doc : texinfo.txi
Log message:
move Include Files appendix to a chapter of the main document
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/texinfo/ChangeLog?cvsroot=texinfo&r1=1.1031&r2=1.1032
http://cvs.savannah.gnu.org/viewcvs/texinfo/doc/texinfo.txi?cvsroot=texinfo&r1=1.248&r2=1.249
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/texinfo/texinfo/ChangeLog,v
retrieving revision 1.1031
retrieving revision 1.1032
diff -u -b -r1.1031 -r1.1032
--- ChangeLog 10 Mar 2010 00:56:40 -0000 1.1031
+++ ChangeLog 17 Mar 2010 15:40:23 -0000 1.1032
@@ -1,6 +1,14 @@
+2010-03-17 Karl Berry <address@hidden>
+
+ * doc/texinfo.txi (Include Files): move to near the end of the
+ main manual, instead of being an appendix. These days, include
+ files are an important feature. Remove @refill's.
+ (Catching Mistakes): rename chapter name to
+ match node name, since it is clearer.
+
2010-03-09 Karl Berry <address@hidden>
- * doc/texinfo.txi (Menu Location): Clarify that having the menu
+ * doc/texinfo.txi (Menu Location): clarify that having the menu
at the end is a convention, not a requirement.
2010-03-07 Karl Berry <address@hidden>
Index: doc/texinfo.txi
===================================================================
RCS file: /sources/texinfo/texinfo/doc/texinfo.txi,v
retrieving revision 1.248
retrieving revision 1.249
diff -u -b -r1.248 -r1.249
--- doc/texinfo.txi 10 Mar 2010 00:56:40 -0000 1.248
+++ doc/texinfo.txi 17 Mar 2010 15:40:23 -0000 1.249
@@ -1,5 +1,5 @@
\input texinfo.tex @c -*-texinfo-*-
address@hidden $Id: texinfo.txi,v 1.248 2010/03/10 00:56:40 karl Exp $
address@hidden $Id: texinfo.txi,v 1.249 2010/03/17 15:40:23 karl Exp $
@c Ordinarily, Texinfo files have the extension .texi. But texinfo.texi
@c clashes with texinfo.tex on 8.3 filesystems, so we use texinfo.txi.
@@ -158,6 +158,7 @@
* Conditionals:: Specifying text for only some output cases.
* Internationalization:: Supporting languages other than English.
* Defining New Texinfo Commands:: User-defined macros and aliases.
+* Include Files:: How to incorporate other Texinfo files.
* Hardcopy:: Output for paper, with @TeX{}.
* Creating and Installing Info Files:: Details on Info output.
* Generating HTML:: Details on HTML output.
@@ -165,9 +166,8 @@
* Command List:: All the Texinfo @@-commands.
* Tips:: Hints on how to write a Texinfo document.
* Sample Texinfo Files:: Complete examples, including full texts.
-* Include Files:: How to incorporate other Texinfo files.
* Headings:: How to write page headings and footings.
-* Catching Mistakes:: How to find formatting mistakes.
+* Catching Mistakes:: How to find mistakes in formatting.
* GNU Free Documentation License::Copying this manual.
* Command and Variable Index:: A menu containing commands and variables.
* General Index:: A menu covering many topics.
@@ -566,6 +566,17 @@
* alias:: Command aliases.
* definfoenclose:: Customized highlighting.
+Include Files
+
+* Using Include Files:: How to use the @code{@@include} command.
+* texinfo-multiple-files-update:: How to create and update nodes and
+ menus when using included files.
+* Include Files Requirements:: @code{texinfo-multiple-files-update} needs.
+* Sample Include File:: A sample outer file with included files
+ within it; and a sample included file.
+* Include Files Evolution:: How use of the @code{@@include} command
+ has changed over time.
+
Formatting and Printing Hardcopy
* Use TeX:: Use @TeX{} to format for hardcopy.
@@ -641,19 +652,6 @@
* Verbatim Copying License::
* All-permissive Copying License::
-GNU Free Documentation License
-
-Include Files
-
-* Using Include Files:: How to use the @code{@@include} command.
-* texinfo-multiple-files-update:: How to create and update nodes and
- menus when using included files.
-* Include Files Requirements:: @code{texinfo-multiple-files-update} needs.
-* Sample Include File:: A sample outer file with included files
- within it; and a sample included file.
-* Include Files Evolution:: How use of the @code{@@include} command
- has changed over time.
-
Page Headings
* Headings Introduced:: Conventions for using page headings.
@@ -661,7 +659,7 @@
* Heading Choice:: How to specify the type of page heading.
* Custom Headings:: How to create your own headings and footings.
-Formatting Mistakes
+Catching Mistakes
* makeinfo Preferred:: @code{makeinfo} finds errors.
* Debugging with Info:: How to catch errors with Info formatting.
@@ -4646,7 +4644,7 @@
@cindex Include files, and section levels
You can use @code{@@lowersections} to include text written as an outer
or standalone Texinfo file in another Texinfo file as an inner,
-included file. Typical usage looks like this:
+included file (@pxref{Include Files}). Typical usage looks like this:
@example
@@lowersections
@@ -14457,170 +14455,457 @@
indirectly.
address@hidden Hardcopy
address@hidden Formatting and Printing Hardcopy
address@hidden Format and print hardcopy
address@hidden Printing hardcopy
address@hidden Hardcopy, printing it
address@hidden Making a printed manual
address@hidden Sorting indices
address@hidden Indices, sorting
address@hidden @TeX{} index sorting
address@hidden texindex
address@hidden Include Files
address@hidden Include Files
address@hidden Include files
-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.
+When @TeX{} or an Info formatting command sees an @code{@@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.
-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.
+Include files let you keep a single large document as a collection of
+conveniently small parts.
@menu
-* Use TeX:: Use @TeX{} to format for hardcopy.
-* Format with tex/texindex:: How to format with explicit shell commands.
-* Format with texi2dvi:: A simpler way to format.
-* 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 to do before you 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 A4 or A5 paper.
-* pagesizes:: How to print with customized page sizes.
-* Cropmarks and Magnification:: How to print marks to indicate the size
- of pages and how to print scaled up output.
-* PDF Output:: Portable Document Format output.
-* Obtaining TeX:: How to Obtain @TeX{}.
+* Using Include Files:: How to use the @code{@@include} command.
+* texinfo-multiple-files-update:: How to create and update nodes and
+ menus when using included files.
+* Include Files Requirements:: @code{texinfo-multiple-files-update} needs.
+* Sample Include File:: A sample outer file with included files
+ within it; and a sample included file.
+* Include Files Evolution:: How use of the @code{@@include} command
+ has changed over time.
@end menu
address@hidden Use TeX
address@hidden Use @TeX{}
-
-The typesetting program called @TeX{} is used for formatting a Texinfo
-file. @TeX{} is a very powerful typesetting program and, if used correctly,
-does an exceptionally good job. (@xref{Obtaining TeX, , How to Obtain
address@hidden, for information on how to obtain @TeX{}.)
address@hidden Using Include Files
address@hidden How to Use Include Files
address@hidden include
-The standalone @code{makeinfo} program and Emacs functions
address@hidden and @code{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 (@pxref{Creating an Info
-File}).
+To include another file within a Texinfo file, write the
address@hidden@@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:
address@hidden
+@@include buffers.texi
address@hidden example
address@hidden Format with tex/texindex
address@hidden Format with @code{tex} and @code{texindex}
address@hidden Shell formatting with @code{tex} and @code{texindex}
address@hidden Formatting with @code{tex} and @code{texindex}
address@hidden DVI file
+The name of the file is taken literally, with a single exception:
address@hidden@@address@hidden@address@hidden references are expanded. This
makes it
+possible to reliably include files in other directories in a
+distribution. @xref{verbatiminclude,,@code{@@verbatiminclude}}, for
+an example.
-You can format the Texinfo file with the shell command @code{tex}
-followed by the name of the Texinfo file. For example:
+An included file should simply be a segment of text that you expect to
+be included as is into the overall or @dfn{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 @samp{\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 @code{@@bye} command; nothing after @code{@@bye} is
+formatted.
address@hidden
-tex foo.texi
address@hidden example
+In the past, you were required to write an @code{@@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 @code{@@setfilename} line exists
+in an included file, it is ignored.
address@hidden @TeX{} will produce a @dfn{DVI file} as well as several auxiliary
-files containing information for indices, cross references, etc. The
-DVI file (for @dfn{DeVice Independent} file) can be printed on virtually
-any device (see the following sections).
+Conventionally, an included file begins with an @code{@@node} line that
+is followed by an @code{@@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 @code{@@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, @code{texinfo-multiple-files-update}, that is
+designed for @code{@@include} files.
address@hidden texindex
-The @code{tex} formatting command itself does not sort the indices; it
-writes an output file of unsorted index data. To generate a printed
-index after running the @command{tex} command, you first need a sorted
-index to work from. The @command{texindex} command sorts indices.
-(The source file @file{texindex.c} comes as part of the standard
-Texinfo distribution, among other places.) (@command{texi2dvi} runs
address@hidden and @command{texindex} as necessary.)
+When an included file does not have any node lines in it, the
+multiple files update command does not try to create a menu entry
+for it. Consequently, you can include any file, such as a
+version or an update file without node lines, not just files that
+are chapters. Small includable files like this are created by
+Automake (@pxref{GNU Sample Texts}).
address@hidden Names of index files
address@hidden Index file names
-The @code{tex} formatting command outputs unsorted index files under
-names that obey a standard convention: the name of your main input file
-with any @samp{.tex} (or similar, @pxref{tex invocation,,, web2c,
-Web2c}) extension removed, followed by the two letter names of indices.
-For example, the raw index output files for the input file
address@hidden would be @file{foo.cp}, @file{foo.vr}, @file{foo.fn},
address@hidden, @file{foo.pg} and @file{foo.ky}. Those are exactly the
-arguments to give to @code{texindex}.
address@hidden 1000
address@hidden Wildcards
address@hidden Globbing
-Instead of specifying all the unsorted index file names explicitly, you
-can use @samp{??} as shell wildcards and give the command in this
-form:
address@hidden texinfo-multiple-files-update
address@hidden @code{texinfo-multiple-files-update}
address@hidden texinfo-multiple-files-update
address@hidden
-texindex foo.??
address@hidden example
+GNU Emacs Texinfo mode provides the @code{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 @code{@@node} line of the
+included files or all of them:
address@hidden
-This command will run @code{texindex} on all the unsorted index files,
-including any that you have defined yourself using @code{@@defindex}
-or @code{@@defcodeindex}. (You may execute @samp{texindex foo.??}
-even if there are similarly named files with two letter extensions
-that are not index files, such as @samp{foo.el}. The @code{texindex}
-command reports but otherwise ignores such files.)
address@hidden @kbd
address@hidden M-x texinfo-multiple-files-update
+Called without any arguments:
-For each file specified, @code{texindex} generates a sorted index file
-whose name is made by appending @samp{s} to the input file name. The
address@hidden@@printindex} command looks for a file with that name
-(@pxref{Printing Indices & Menus}). @code{texindex} does not alter the
-raw index output file.
address@hidden @minus
address@hidden
+Create or update the `Next', `Previous', and `Up' pointers of the
+first @code{@@node} line in each file included in an outer or overall
+Texinfo file.
-After you have sorted the indices, you need to rerun @code{tex} on the
-Texinfo file. This regenerates the DVI file, this time with
-up-to-date index entries.
address@hidden
+Create or update the `Top' level node pointers of the outer or
+overall file.
-Finally, you may need to run @code{tex} one more time, to get the page
-numbers in the cross-references correct.
address@hidden
+Create or update a main menu in the outer file.
address@hidden itemize
-To summarize, this is a five step process:
address@hidden C-u M-x texinfo-multiple-files-update
+Called with @kbd{C-u} as a prefix argument:
address@hidden
address@hidden @minus{}
@item
-Run @code{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).
+Create or update pointers in the first @code{@@node} line in each
+included file.
@item
-Run @code{texindex} on the raw index files. This creates the
-corresponding sorted index files (with three letter extensions).
+Create or update the `Top' level node pointers of the outer file.
@item
-Run @code{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.
+Create and insert a master menu in the outer file. The master menu
+is made from all the menus in all the included files.
address@hidden itemize
+
address@hidden C-u 8 M-x texinfo-multiple-files-update
+Called with a numeric prefix argument, such as @kbd{C-u 8}:
address@hidden @minus
@item
-Sort the indices again, with @code{texindex}.
+Create or update @strong{all} the `Next', `Previous', and `Up' pointers
+of all the included files.
@item
-Run @code{tex} one last time. This time the correct page numbers are
-written for the cross-references.
address@hidden enumerate
+Create or update @strong{all} the menus of all the included
+files.
address@hidden texi2dvi
-Alternatively, it's a one-step process: run @code{texi2dvi}
-(@pxref{Format with texi2dvi}).
address@hidden
+Create or update the `Top' level node pointers of the outer or
+overall file.
-You need not run @code{texindex} each time after you run @code{tex}. If
-you do not, on the next run, the @code{tex} formatting command will use
-whatever sorted index files happen to exist from the previous use of
address@hidden This is usually ok while you are debugging.
address@hidden
+And then create a master menu in the outer file. This is similar to
+invoking @code{texinfo-master-menu} with an argument when you are
+working with just one file.
address@hidden itemize
address@hidden table
address@hidden Auxiliary files, avoiding
+Note the use of the prefix argument in interactive use: with a regular
+prefix argument, just @address@hidden, the
address@hidden command inserts a master menu;
+with a numeric prefix argument, such as @kbd{C-u 8}, the command
+updates @strong{every} pointer and menu in @strong{all} the files and then
inserts a
+master menu.
+
+
address@hidden Include Files Requirements
address@hidden Include Files Requirements
address@hidden Include files requirements
address@hidden Requirements for include files
+
+If you plan to use the @code{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 @code{@@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, @code{@@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 @code{@@chapter}, an @code{@@appendix}, or an
address@hidden@@unnumbered} node. Thus, normally, each included file contains
+one, and only one, chapter or equivalent-level node.
+
+The outer file should contain only @emph{one} node, the `Top' node. It
+should @emph{not} contain any nodes besides the single `Top' node. The
address@hidden command will not process
+them.
+
+
address@hidden Sample Include File
address@hidden Sample File with @code{@@include}
address@hidden Sample @code{@@include} file
address@hidden Include file sample
address@hidden @code{@@include} file sample
+
+Here is an example of an outer Texinfo file with @code{@@include} files
+within it before running @code{texinfo-multiple-files-update}, which
+would insert a main or master menu:
+
address@hidden
address@hidden
+\input texinfo @@c -*-texinfo-*-
address@hidden %**start of header
+@@setfilename include-example.info
+@@settitle Include Example
address@hidden %**end of header
address@hidden group
+
+... @xref{Sample Texinfo Files}, for
+examples of the rest of the frontmatter ...
+
address@hidden
+@@ifnottex
+@@node Top
+@@top Include Example
+@@end ifnottex
address@hidden group
+
address@hidden
+@@include foo.texinfo
+@@include bar.texinfo
+@@include concept-index.texinfo
+@@bye
address@hidden group
address@hidden example
+
+An included file, such as @file{foo.texinfo}, might look like this:
+
address@hidden
address@hidden
+@@node First
+@@chapter First Chapter
+
+Contents of first chapter @dots{}
address@hidden group
address@hidden example
+
+The full contents of @file{concept-index.texinfo} might be as simple as this:
+
address@hidden
address@hidden
+@@node Concept Index
+@@unnumbered Concept Index
+
+@@printindex cp
address@hidden group
address@hidden example
+
+The outer Texinfo source file for @cite{The GNU Emacs Lisp Reference
+Manual} is named @file{elisp.texi}. This outer file contains a master
+menu with 417 entries and a list of 41 @code{@@include}
+files.
+
+
address@hidden Include Files Evolution
address@hidden 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. (@xref{Other Info Files, , Referring to
+Other Info Files}. Also, see @ref{Four and Five Arguments, ,
address@hidden@@xref} with 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
address@hidden@@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 @cite{The GNU Emacs 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 @code{@@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.
+
+
address@hidden Hardcopy
address@hidden Formatting and Printing Hardcopy
address@hidden Format and print hardcopy
address@hidden Printing hardcopy
address@hidden Hardcopy, printing it
address@hidden Making a printed manual
address@hidden Sorting indices
address@hidden Indices, sorting
address@hidden @TeX{} index sorting
address@hidden texindex
+
+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.
+
address@hidden
+* Use TeX:: Use @TeX{} to format for hardcopy.
+* Format with tex/texindex:: How to format with explicit shell commands.
+* Format with texi2dvi:: A simpler way to format.
+* 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 to do before you 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 A4 or A5 paper.
+* pagesizes:: How to print with customized page sizes.
+* Cropmarks and Magnification:: How to print marks to indicate the size
+ of pages and how to print scaled up output.
+* PDF Output:: Portable Document Format output.
+* Obtaining TeX:: How to Obtain @TeX{}.
address@hidden menu
+
address@hidden Use TeX
address@hidden Use @TeX{}
+
+The typesetting program called @TeX{} is used for formatting a Texinfo
+file. @TeX{} is a very powerful typesetting program and, if used correctly,
+does an exceptionally good job. (@xref{Obtaining TeX, , How to Obtain
address@hidden, for information on how to obtain @TeX{}.)
+
+The standalone @code{makeinfo} program and Emacs functions
address@hidden and @code{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 (@pxref{Creating an Info
+File}).
+
+
address@hidden Format with tex/texindex
address@hidden Format with @code{tex} and @code{texindex}
address@hidden Shell formatting with @code{tex} and @code{texindex}
address@hidden Formatting with @code{tex} and @code{texindex}
address@hidden DVI file
+
+You can format the Texinfo file with the shell command @code{tex}
+followed by the name of the Texinfo file. For example:
+
address@hidden
+tex foo.texi
address@hidden example
+
address@hidden @TeX{} will produce a @dfn{DVI file} as well as several auxiliary
+files containing information for indices, cross references, etc. The
+DVI file (for @dfn{DeVice Independent} file) can be printed on virtually
+any device (see the following sections).
+
address@hidden texindex
+The @code{tex} formatting command itself does not sort the indices; it
+writes an output file of unsorted index data. To generate a printed
+index after running the @command{tex} command, you first need a sorted
+index to work from. The @command{texindex} command sorts indices.
+(The source file @file{texindex.c} comes as part of the standard
+Texinfo distribution, among other places.) (@command{texi2dvi} runs
address@hidden and @command{texindex} as necessary.)
+
address@hidden Names of index files
address@hidden Index file names
+The @code{tex} formatting command outputs unsorted index files under
+names that obey a standard convention: the name of your main input file
+with any @samp{.tex} (or similar, @pxref{tex invocation,,, web2c,
+Web2c}) extension removed, followed by the two letter names of indices.
+For example, the raw index output files for the input file
address@hidden would be @file{foo.cp}, @file{foo.vr}, @file{foo.fn},
address@hidden, @file{foo.pg} and @file{foo.ky}. Those are exactly the
+arguments to give to @code{texindex}.
+
address@hidden 1000
address@hidden Wildcards
address@hidden Globbing
+Instead of specifying all the unsorted index file names explicitly, you
+can use @samp{??} as shell wildcards and give the command in this
+form:
+
address@hidden
+texindex foo.??
address@hidden example
+
address@hidden
+This command will run @code{texindex} on all the unsorted index files,
+including any that you have defined yourself using @code{@@defindex}
+or @code{@@defcodeindex}. (You may execute @samp{texindex foo.??}
+even if there are similarly named files with two letter extensions
+that are not index files, such as @samp{foo.el}. The @code{texindex}
+command reports but otherwise ignores such files.)
+
+For each file specified, @code{texindex} generates a sorted index file
+whose name is made by appending @samp{s} to the input file name. The
address@hidden@@printindex} command looks for a file with that name
+(@pxref{Printing Indices & Menus}). @code{texindex} does not alter the
+raw index output file.
+
+After you have sorted the indices, you need to rerun @code{tex} on the
+Texinfo file. This regenerates the DVI file, this time with
+up-to-date index entries.
+
+Finally, you may need to run @code{tex} one more time, to get the page
+numbers in the cross-references correct.
+
+To summarize, this is a five step process:
+
address@hidden
address@hidden
+Run @code{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).
+
address@hidden
+Run @code{texindex} on the raw index files. This creates the
+corresponding sorted index files (with three letter extensions).
+
address@hidden
+Run @code{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.
+
address@hidden
+Sort the indices again, with @code{texindex}.
+
address@hidden
+Run @code{tex} one last time. This time the correct page numbers are
+written for the cross-references.
address@hidden enumerate
+
address@hidden texi2dvi
+Alternatively, it's a one-step process: run @code{texi2dvi}
+(@pxref{Format with texi2dvi}).
+
+You need not run @code{texindex} each time after you run @code{tex}. If
+you do not, on the next run, the @code{tex} formatting command will use
+whatever sorted index files happen to exist from the previous use of
address@hidden This is usually ok while you are debugging.
+
address@hidden Auxiliary files, avoiding
@findex novalidate
@cindex Pointer validation, suppressing
@cindex Chapters, formatting one at a time
@@ -19041,792 +19326,505 @@
hyphens to two.
@end itemize
address@hidden Periods Outside of Quotes
-
-Place periods and other punctuation marks @emph{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:
-
address@hidden
-Evidently, @samp{au} is an abbreviation for ``author''.
address@hidden example
-
address@hidden
-since @samp{au} does @emph{not} serve as an abbreviation for
address@hidden (with a period following the word).
-
address@hidden Introducing New Terms
-
address@hidden @bullet
address@hidden
-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.
-
address@hidden
-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.
address@hidden quotation
-
address@hidden
-Use the @code{@@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.
address@hidden itemize
-
address@hidden @@pxref
-
address@hidden !!! maybe include this in the tips on pxref
address@hidden
-By the way, it is okay to use pxref with something else in front of
-it within the parens, as long as the pxref is followed by the close
-paren, and the material inside the parens is not part of a larger
-sentence. Also, you can use xref inside parens as part of a complete
-sentence so long as you terminate the cross reference with punctuation.
address@hidden ignore
-Absolutely never use @code{@@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.
-
address@hidden Invoking from a Shell
-
-You can invoke programs such as Emacs, GCC, and @code{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, they are difficult for users to find.
-
-So, there is a convention to name such sections with a phrase beginning
-with the word `Invoking', as in `Invoking Emacs'; this way, users can
-find the section easily.
-
-
address@hidden ANSI C Syntax
-
-When you use @code{@@example} to describe a C function's calling
-conventions, use the ANSI C syntax, like this:@refill
-
address@hidden
-void dld_init (char *@@address@hidden@});
address@hidden example
-
address@hidden
-And in the subsequent discussion, refer to the argument values by
-writing the same argument names, again highlighted with
address@hidden@@address@hidden
-
address@hidden 800
-Avoid the obsolete style that looks like this:@refill
-
address@hidden
-#include <dld.h>
-
-dld_init (path)
-char *path;
address@hidden example
-
-Also, it is best to avoid writing @code{#include} above the
-declaration just to indicate that the function is declared in a
-header file. The practice may give the misimpression that the
address@hidden 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 address@hidden
-
address@hidden Bad Examples
-
-Here are several examples of bad writing to avoid:
-
-In this example, say, `` @dots{} you must @code{@@address@hidden
address@hidden the new version.'' That flows better.
-
address@hidden
-When you are done editing the file, you must perform a
address@hidden@@address@hidden address@hidden
address@hidden quotation
-
-In the following example, say, address@hidden makes a unified interface such
as VC
-mode possible.''
-
address@hidden
-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).
address@hidden quotation
-
-And in this example, you should specify what `it' refers to:
-
address@hidden
-If you are working with other people, it assists in coordinating
-everyone's changes so they do not step on each other.
address@hidden quotation
-
address@hidden And Finally @dots{}
-
address@hidden @bullet
address@hidden
-Pronounce @TeX{} as if the @samp{X} were a Greek `chi', as the last
-sound in the name `Bach'. But pronounce Texinfo as in `speck':
-``teckinfo''.
-
address@hidden
-Write notes for yourself at the very end of a Texinfo file after the
address@hidden@@bye}. None of the formatters process text after the
address@hidden@@bye}; it is as if the text were within @code{@@ignore} @dots{}
address@hidden@@end ignore}.
address@hidden itemize
-
-
address@hidden Sample Texinfo Files
address@hidden Sample Texinfo Files
address@hidden Sample Texinfo files
-
-The first example is from the first chapter (@pxref{Short Sample}),
-given here in its entirety, without commentary. The second
-includes the full texts to be used in GNU manuals.
-
address@hidden
-* Short Sample Texinfo File::
-* GNU Sample Texts::
-* Verbatim Copying License::
-* All-permissive Copying License::
address@hidden menu
-
-
address@hidden Short Sample Texinfo File
address@hidden Short Sample
address@hidden Sample Texinfo file, no comments
-
-Here is a complete, short sample Texinfo file, without any commentary.
-You can see this file, with comments, in the first chapter. @xref{Short
-Sample}.
-
-In a nutshell: The @command{makeinfo} program transforms a Texinfo
-source file such as this into an Info file or HTML; and @TeX{} typesets
-it for a printed manual.
-
-
address@hidden 1
address@hidden
-\input texinfo @@c -*-texinfo-*-
-@@c %**start of header
-@@setfilename sample.info
-@@settitle Sample Manual 1.0
-@@c %**end of header
-
-@@copying
-This is a short example of a complete Texinfo file.
-
-Copyright @@address@hidden@} 2009 Free Software Foundation, Inc.
-@@end copying
-
-@@titlepage
-@@title Sample Title
-@@page
-@@vskip 0pt plus 1filll
-@@insertcopying
-@@end titlepage
-
-@@c Output the table of the contents at the beginning.
-@@contents
-
-@@ifnottex
-@@node Top
-@@top GNU Sample
-
-@@insertcopying
-@@end ifnottex
-
-@@menu
-* First Chapter:: The first chapter is the
- only chapter in this sample.
-* Index:: Complete index.
-@@end menu
-
-
-@@node First Chapter
-@@chapter First Chapter
-
-@@cindex chapter, first
-
-This is the first chapter.
-@@cindex index entry, another
-
-Here is a numbered list.
-
-@@enumerate
-@@item
-This is the first item.
-
-@@item
-This is the second item.
-@@end enumerate
-
-
-@@node Index
-@@unnumbered Index
-
-@@printindex cp
-
-@@bye
address@hidden example
-
-
address@hidden GNU Sample Texts
address@hidden GNU Sample Texts
address@hidden Periods Outside of Quotes
address@hidden GNU sample texts
address@hidden Sample texts, GNU
address@hidden Full texts, GNU
+Place periods and other punctuation marks @emph{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.
-Following is a sample Texinfo document with the full texts that should
-be used (adapted as necessary) in GNU manuals.
+For example, you should write the following sentence with the period
+outside the end quotation marks:
-As well as the legal texts, it also serves as a practical example of how
-many elements in a GNU system can affect the manual. If you're not
-familiar with all these different elements, don't worry. They're not
-required and a perfectly good manual can be written without them.
-They're included here nonetheless because many manuals do (or could)
-benefit from them.
address@hidden
+Evidently, @samp{au} is an abbreviation for ``author''.
address@hidden example
address@hidden Sample}, for a minimal example of a Texinfo file.
address@hidden a File}, for a full explanation of that minimal
-example.
address@hidden
+since @samp{au} does @emph{not} serve as an abbreviation for
address@hidden (with a period following the word).
-Here are some notes on the example:
address@hidden Introducing New Terms
@itemize @bullet
@item
address@hidden $Id
address@hidden CVS $Id
address@hidden RCS $Id
address@hidden Documentation identification
address@hidden Identification of documentation
-The @samp{$Id:} comment is for the CVS (@pxref{Top,, Overview, cvs,
-Concurrent Versions System}) or RCS
-(@url{http://www.gnu.org/software/rcs}) version control systems, which
-expand it into a string such as:
address@hidden
-$Id: texinfo.txi,v 1.248 2010/03/10 00:56:40 karl Exp $
address@hidden example
-(This is useful in all sources that use version control, not just manuals.)
-You may wish to include the @samp{$Id:} comment in the @code{@@copying}
-text, if you want a completely unambiguous reference to the
-documentation version.
+Introduce new terms so that a reader who does not know them can
+understand them from context; or write a definition for the term.
-If you want to literally write @address@hidden, use @code{@@w}:
address@hidden@@address@hidden@}Id$}. Unfortunately, this technique does not
work in
-plain text output, where it's not clear what should be done.
+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.
address@hidden
address@hidden address@hidden, and version info}
address@hidden UPDATED @r{Automake variable}
address@hidden VERSION @r{Automake variable}
address@hidden time-stamp.el
-The @file{version.texi} in the @code{@@include} command is maintained
-automatically by Automake (@pxref{Top,, Introduction, automake, GNU
-Automake}). It sets the @samp{VERSION} and @samp{UPDATED} values used
-elsewhere. If your distribution doesn't use Automake, but you do use
-Emacs, you may find the time-stamp.el package helpful (@pxref{Time
-Stamps,,,emacs,The GNU Emacs Manual}).
address@hidden
+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.
address@hidden quotation
@item
-The @code{@@syncodeindex} command reflects the recommendation to use
-only one index where possible, to make it easier for readers to look up
-index entries.
+Use the @code{@@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.
address@hidden itemize
address@hidden
-The @code{@@dircategory} is for constructing the Info directory.
address@hidden Dir Entries}, which includes a variety of recommended
-category names.
address@hidden @@pxref
address@hidden
-The `Invoking' node is a GNU standard to help users find the basic
-information about command-line usage of a given program. @xref{Manual
-Structure Details,,,standards, GNU Coding Standards}.
address@hidden !!! maybe include this in the tips on pxref
address@hidden
+By the way, it is okay to use pxref with something else in front of
+it within the parens, as long as the pxref is followed by the close
+paren, and the material inside the parens is not part of a larger
+sentence. Also, you can use xref inside parens as part of a complete
+sentence so long as you terminate the cross reference with punctuation.
address@hidden ignore
+Absolutely never use @code{@@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.
address@hidden
address@hidden GNU Free Documentation License, including entire
address@hidden Free Documentation License, including entire
-It is best to include the entire GNU Free Documentation License in a GNU
-manual, unless the manual is only a few pages long. Of course this
-sample is even shorter than that, but it includes the FDL anyway in
-order to show one conventional way to do so. The @file{fdl.texi} file
-is available on the GNU machines and in the Texinfo and other GNU
-source distributions.
address@hidden Invoking from a Shell
-The FDL provides for omitting itself under certain conditions, but in
-that case the sample texts given here have to be modified. @xref{GNU
-Free Documentation License}.
+You can invoke programs such as Emacs, GCC, and @code{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, they are difficult for users to find.
address@hidden
-If the FSF is not the copyright holder, then use the appropriate name.
+So, there is a convention to name such sections with a phrase beginning
+with the word `Invoking', as in `Invoking Emacs'; this way, users can
+find the section easily.
address@hidden
-If your manual is not published on paper by the FSF, then definitely
-omit the last sentence in the Back-Cover Text that talks about copies
-from GNU Press.
address@hidden
-GNU packages can entirely omit both cover texts if it is not published
-on paper by the FSF, at the package maintainer's discretion.
address@hidden ANSI C Syntax
address@hidden
-If your manual has Invariant Sections (again, see the license itself
-for details), then change the text here accordingly.
+When you use @code{@@example} to describe a C function's calling
+conventions, use the ANSI C syntax, like this:@refill
address@hidden
-For documents that express your personal views, feelings or experiences,
-it is more appropriate to use a license permitting only verbatim
-copying, rather than the FDL. @xref{Verbatim Copying License}.
address@hidden
+void dld_init (char *@@address@hidden@});
address@hidden example
address@hidden itemize
address@hidden
+And in the subsequent discussion, refer to the argument values by
+writing the same argument names, again highlighted with
address@hidden@@address@hidden
-Here is the sample document:
address@hidden 800
+Avoid the obsolete style that looks like this:@refill
address@hidden
-\input texinfo @c -*-texinfo-*-
address@hidden $Id: texinfo.txi,v 1.248 2010/03/10 00:56:40 karl Exp $
address@hidden %**start of header
address@hidden sample.info
address@hidden version.texi
address@hidden GNU Sample @value{VERSION}
address@hidden pg cp
address@hidden %**end of header
address@hidden
-This manual is for GNU Sample (version @value{VERSION}, @value{UPDATED}),
-which is an example in the Texinfo documentation.
address@hidden
+#include <dld.h>
-Copyright @copyright{} 2009 Free Software Foundation, Inc.
+dld_init (path)
+char *path;
address@hidden example
address@hidden
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.3 or
-any later version published by the Free Software Foundation; with no
-Invariant Sections, with the Front-Cover Texts being ``A GNU Manual,''
-and with the Back-Cover Texts as in (a) below. A copy of the
-license is included in the section entitled ``GNU Free Documentation
-License.''
+Also, it is best to avoid writing @code{#include} above the
+declaration just to indicate that the function is declared in a
+header file. The practice may give the misimpression that the
address@hidden 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 address@hidden
-(a) The FSF's Back-Cover Text is: ``You have the freedom to
-copy and modify this GNU manual. Buying copies from the FSF
-supports it in developing GNU and promoting software freedom.''
address@hidden Bad Examples
+
+Here are several examples of bad writing to avoid:
+
+In this example, say, `` @dots{} you must @code{@@address@hidden
address@hidden the new version.'' That flows better.
+
address@hidden
+When you are done editing the file, you must perform a
address@hidden@@address@hidden address@hidden
@end quotation
address@hidden copying
address@hidden Texinfo documentation system
address@hidden
-* sample: (sample)Invoking sample.
address@hidden direntry
+In the following example, say, address@hidden makes a unified interface such
as VC
+mode possible.''
address@hidden
address@hidden GNU Sample
address@hidden for version @value{VERSION}, @value{UPDATED}
address@hidden A.U. Thor (@email{bug-texinfo@@gnu.org})
address@hidden
address@hidden 0pt plus 1filll
address@hidden
address@hidden titlepage
address@hidden
+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).
address@hidden quotation
address@hidden
+And in this example, you should specify what `it' refers to:
address@hidden
address@hidden Top
address@hidden GNU Sample
address@hidden
+If you are working with other people, it assists in coordinating
+everyone's changes so they do not step on each other.
address@hidden quotation
-This manual is for GNU Sample (version @value{VERSION}, @value{UPDATED}).
address@hidden ifnottex
address@hidden And Finally @dots{}
address@hidden
-* Invoking sample::
-* Copying This Manual::
-* Index::
address@hidden menu
address@hidden @bullet
address@hidden
+Pronounce @TeX{} as if the @samp{X} were a Greek `chi', as the last
+sound in the name `Bach'. But pronounce Texinfo as in `speck':
+``teckinfo''.
address@hidden
+Write notes for yourself at the very end of a Texinfo file after the
address@hidden@@bye}. None of the formatters process text after the
address@hidden@@bye}; it is as if the text were within @code{@@ignore} @dots{}
address@hidden@@end ignore}.
address@hidden itemize
address@hidden Invoking sample
address@hidden Invoking sample
address@hidden sample
address@hidden invoking @command{sample}
address@hidden Sample Texinfo Files
address@hidden Sample Texinfo Files
address@hidden Sample Texinfo files
-This is a sample manual. There is no sample program to
-invoke, but if there was, you could see its basic usage
-and command line options here.
+The first example is from the first chapter (@pxref{Short Sample}),
+given here in its entirety, without commentary. The second
+includes the full texts to be used in GNU manuals.
address@hidden
+* Short Sample Texinfo File::
+* GNU Sample Texts::
+* Verbatim Copying License::
+* All-permissive Copying License::
address@hidden menu
address@hidden GNU Free Documentation License
address@hidden GNU Free Documentation License
address@hidden fdl.texi
address@hidden Short Sample Texinfo File
address@hidden Short Sample
address@hidden Sample Texinfo file, no comments
+Here is a complete, short sample Texinfo file, without any commentary.
+You can see this file, with comments, in the first chapter. @xref{Short
+Sample}.
address@hidden Index
address@hidden Index
+In a nutshell: The @command{makeinfo} program transforms a Texinfo
+source file such as this into an Info file or HTML; and @TeX{} typesets
+it for a printed manual.
address@hidden cp
address@hidden
address@hidden verbatim
address@hidden 1
address@hidden
+\input texinfo @@c -*-texinfo-*-
+@@c %**start of header
+@@setfilename sample.info
+@@settitle Sample Manual 1.0
+@@c %**end of header
+@@copying
+This is a short example of a complete Texinfo file.
address@hidden Verbatim Copying License
address@hidden Verbatim Copying License
+Copyright @@address@hidden@} 2009 Free Software Foundation, Inc.
+@@end copying
address@hidden Verbatim copying license
address@hidden License for verbatim copying
+@@titlepage
+@@title Sample Title
+@@page
+@@vskip 0pt plus 1filll
+@@insertcopying
+@@end titlepage
-For software manuals and other documentation, it is important to use a
-license permitting free redistribution and updating, so that when a free
-program is changed, the documentation can be updated as well.
+@@c Output the table of the contents at the beginning.
+@@contents
-On the other hand, for documents that express your personal views,
-feelings or experiences, it is more appropriate to use a license
-permitting only verbatim copying.
+@@ifnottex
+@@node Top
+@@top GNU Sample
-Here is sample text for such a license permitting verbatim copying only.
-This is just the license text itself. For a complete sample document,
-see the previous sections.
+@@insertcopying
+@@end ifnottex
address@hidden
address@hidden
-This document is a sample for allowing verbatim copying only.
+@@menu
+* First Chapter:: The first chapter is the
+ only chapter in this sample.
+* Index:: Complete index.
+@@end menu
-Copyright @copyright{} 2009 Free Software Foundation, Inc.
address@hidden
-Permission is granted to make and distribute verbatim copies
-of this entire document without royalty provided the
-copyright notice and this permission notice are preserved.
address@hidden quotation
address@hidden copying
address@hidden verbatim
+@@node First Chapter
+@@chapter First Chapter
+@@cindex chapter, first
address@hidden All-permissive Copying License
address@hidden All-permissive Copying License
+This is the first chapter.
+@@cindex index entry, another
address@hidden All-permissive copying license
address@hidden License for all-permissive copying
+Here is a numbered list.
-For software manuals and other documentation, it is important to use a
-license permitting free redistribution and updating, so that when a free
-program is changed, the documentation can be updated as well.
+@@enumerate
+@@item
+This is the first item.
-On the other hand, for small supporting files, short manuals (under 300
-lines long) and rough documentation (README files, INSTALL files, etc.),
-the full FDL would be overkill. They can use a simple all-permissive
-license.
+@@item
+This is the second item.
+@@end enumerate
-Here is sample text for such an all-permissive license. This is just
-the license text itself. For a complete sample document, see the
-previous sections.
address@hidden
-Copyright @@address@hidden@} 2009 Free Software Foundation, Inc.
+@@node Index
+@@unnumbered Index
-Copying and distribution of this file, with or without modification,
-are permitted in any medium without royalty provided the copyright
-notice and this notice are preserved.
+@@printindex cp
+
+@@bye
@end example
address@hidden Include Files
address@hidden Include Files
address@hidden Include files
address@hidden GNU Sample Texts
address@hidden GNU Sample Texts
-When @TeX{} or an Info formatting command sees an @code{@@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.
address@hidden GNU sample texts
address@hidden Sample texts, GNU
address@hidden Full texts, GNU
-Include files let you keep a single large document as a collection of
-conveniently small parts.
+Following is a sample Texinfo document with the full texts that should
+be used (adapted as necessary) in GNU manuals.
address@hidden
-* Using Include Files:: How to use the @code{@@include} command.
-* texinfo-multiple-files-update:: How to create and update nodes and
- menus when using included files.
-* Include Files Requirements:: @code{texinfo-multiple-files-update} needs.
-* Sample Include File:: A sample outer file with included files
- within it; and a sample included file.
-* Include Files Evolution:: How use of the @code{@@include} command
- has changed over time.
address@hidden menu
+As well as the legal texts, it also serves as a practical example of how
+many elements in a GNU system can affect the manual. If you're not
+familiar with all these different elements, don't worry. They're not
+required and a perfectly good manual can be written without them.
+They're included here nonetheless because many manuals do (or could)
+benefit from them.
address@hidden Using Include Files
address@hidden How to Use Include Files
address@hidden include
address@hidden Sample}, for a minimal example of a Texinfo file.
address@hidden a File}, for a full explanation of that minimal
+example.
-To include another file within a Texinfo file, write the
address@hidden@@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:
+Here are some notes on the example:
address@hidden @bullet
address@hidden
address@hidden $Id
address@hidden CVS $Id
address@hidden RCS $Id
address@hidden Documentation identification
address@hidden Identification of documentation
+The @samp{$Id:} comment is for the CVS (@pxref{Top,, Overview, cvs,
+Concurrent Versions System}) or RCS
+(@url{http://www.gnu.org/software/rcs}) version control systems, which
+expand it into a string such as:
@example
-@@include buffers.texi
+$Id: texinfo.txi,v 1.249 2010/03/17 15:40:23 karl Exp $
@end example
+(This is useful in all sources that use version control, not just manuals.)
+You may wish to include the @samp{$Id:} comment in the @code{@@copying}
+text, if you want a completely unambiguous reference to the
+documentation version.
-The name of the file is taken literally, with a single exception:
address@hidden@@address@hidden@address@hidden references are expanded. This
makes it
-possible to reliably include files in other directories in a
-distribution. @xref{verbatiminclude,,@code{@@verbatiminclude}}, for
-an example.
-
-An included file should simply be a segment of text that you expect to
-be included as is into the overall or @dfn{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 @samp{\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 @code{@@bye} command; nothing after @code{@@bye} is
-formatted.
-
-In the past, you were required to write an @code{@@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 @code{@@setfilename} line exists
-in an included file, it is address@hidden
+If you want to literally write @address@hidden, use @code{@@w}:
address@hidden@@address@hidden@}Id$}. Unfortunately, this technique does not
work in
+plain text output, where it's not clear what should be done.
-Conventionally, an included file begins with an @code{@@node} line that
-is followed by an @code{@@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 @code{@@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, @code{texinfo-multiple-files-update}, that is
-designed for @code{@@include} address@hidden
address@hidden
address@hidden address@hidden, and version info}
address@hidden UPDATED @r{Automake variable}
address@hidden VERSION @r{Automake variable}
address@hidden time-stamp.el
+The @file{version.texi} in the @code{@@include} command is maintained
+automatically by Automake (@pxref{Top,, Introduction, automake, GNU
+Automake}). It sets the @samp{VERSION} and @samp{UPDATED} values used
+elsewhere. If your distribution doesn't use Automake, but you do use
+Emacs, you may find the time-stamp.el package helpful (@pxref{Time
+Stamps,,,emacs,The GNU Emacs Manual}).
-When an included file does not have any node lines in it, the
-multiple files update command does not try to create a menu entry
-for it. Consequently, you can include any file, such as a
-version or an update file without node lines, not just files that
-are chapters. Small includable files like this are created by
-Automake (@pxref{GNU Sample Texts}).
address@hidden
+The @code{@@syncodeindex} command reflects the recommendation to use
+only one index where possible, to make it easier for readers to look up
+index entries.
address@hidden
+The @code{@@dircategory} is for constructing the Info directory.
address@hidden Dir Entries}, which includes a variety of recommended
+category names.
address@hidden texinfo-multiple-files-update
address@hidden @code{texinfo-multiple-files-update}
address@hidden texinfo-multiple-files-update
address@hidden
+The `Invoking' node is a GNU standard to help users find the basic
+information about command-line usage of a given program. @xref{Manual
+Structure Details,,,standards, GNU Coding Standards}.
-GNU Emacs Texinfo mode provides the @code{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 @code{@@node} line of the
-included files or all of them:@refill
address@hidden
address@hidden GNU Free Documentation License, including entire
address@hidden Free Documentation License, including entire
+It is best to include the entire GNU Free Documentation License in a GNU
+manual, unless the manual is only a few pages long. Of course this
+sample is even shorter than that, but it includes the FDL anyway in
+order to show one conventional way to do so. The @file{fdl.texi} file
+is available on the GNU machines and in the Texinfo and other GNU
+source distributions.
address@hidden @kbd
address@hidden M-x texinfo-multiple-files-update
-Called without any arguments:@refill
+The FDL provides for omitting itself under certain conditions, but in
+that case the sample texts given here have to be modified. @xref{GNU
+Free Documentation License}.
address@hidden @minus
@item
-Create or update the `Next', `Previous', and `Up' pointers of the
-first @code{@@node} line in each file included in an outer or overall
-Texinfo address@hidden
+If the FSF is not the copyright holder, then use the appropriate name.
@item
-Create or update the `Top' level node pointers of the outer or
-overall address@hidden
+If your manual is not published on paper by the FSF, then definitely
+omit the last sentence in the Back-Cover Text that talks about copies
+from GNU Press.
@item
-Create or update a main menu in the outer address@hidden
address@hidden itemize
-
address@hidden C-u M-x texinfo-multiple-files-update
-Called with @kbd{C-u} as a prefix argument:
+GNU packages can entirely omit both cover texts if it is not published
+on paper by the FSF, at the package maintainer's discretion.
address@hidden @minus{}
@item
-Create or update pointers in the first @code{@@node} line in each
-included file.
+If your manual has Invariant Sections (again, see the license itself
+for details), then change the text here accordingly.
@item
-Create or update the `Top' level node pointers of the outer file.
+For documents that express your personal views, feelings or experiences,
+it is more appropriate to use a license permitting only verbatim
+copying, rather than the FDL. @xref{Verbatim Copying License}.
address@hidden
-Create and insert a master menu in the outer file. The master menu
-is made from all the menus in all the included address@hidden
@end itemize
address@hidden C-u 8 M-x texinfo-multiple-files-update
-Called with a numeric prefix argument, such as @kbd{C-u 8}:
+Here is the sample document:
address@hidden @minus
address@hidden
-Create or update @strong{all} the `Next', `Previous', and `Up' pointers
-of all the included address@hidden
address@hidden
+\input texinfo @c -*-texinfo-*-
address@hidden $Id: texinfo.txi,v 1.249 2010/03/17 15:40:23 karl Exp $
address@hidden %**start of header
address@hidden sample.info
address@hidden version.texi
address@hidden GNU Sample @value{VERSION}
address@hidden pg cp
address@hidden %**end of header
address@hidden
+This manual is for GNU Sample (version @value{VERSION}, @value{UPDATED}),
+which is an example in the Texinfo documentation.
address@hidden
-Create or update @strong{all} the menus of all the included
address@hidden
+Copyright @copyright{} 2009 Free Software Foundation, Inc.
address@hidden
-Create or update the `Top' level node pointers of the outer or
-overall address@hidden
address@hidden
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.3 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being ``A GNU Manual,''
+and with the Back-Cover Texts as in (a) below. A copy of the
+license is included in the section entitled ``GNU Free Documentation
+License.''
address@hidden
-And then create a master menu in the outer file. This is similar to
-invoking @code{texinfo-master-menu} with an argument when you are
-working with just one address@hidden
address@hidden itemize
address@hidden table
+(a) The FSF's Back-Cover Text is: ``You have the freedom to
+copy and modify this GNU manual. Buying copies from the FSF
+supports it in developing GNU and promoting software freedom.''
address@hidden quotation
address@hidden copying
-Note the use of the prefix argument in interactive use: with a regular
-prefix argument, just @address@hidden, the
address@hidden command inserts a master menu;
-with a numeric prefix argument, such as @kbd{C-u 8}, the command
-updates @strong{every} pointer and menu in @strong{all} the files and then
inserts a
-master address@hidden
address@hidden Texinfo documentation system
address@hidden
+* sample: (sample)Invoking sample.
address@hidden direntry
address@hidden
address@hidden GNU Sample
address@hidden for version @value{VERSION}, @value{UPDATED}
address@hidden A.U. Thor (@email{bug-texinfo@@gnu.org})
address@hidden
address@hidden 0pt plus 1filll
address@hidden
address@hidden titlepage
address@hidden Include Files Requirements
address@hidden Include Files Requirements
address@hidden Include files requirements
address@hidden Requirements for include files
address@hidden
-If you plan to use the @code{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 @code{@@include} commands listing the included files. It
-should not even include indices, which should be listed in an included
-file of their address@hidden
address@hidden
address@hidden Top
address@hidden GNU Sample
-Moreover, each of the included files must contain exactly one highest
-level node (conventionally, @code{@@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 @code{@@chapter}, an @code{@@appendix}, or an
address@hidden@@unnumbered} node. Thus, normally, each included file contains
-one, and only one, chapter or equivalent-level address@hidden
+This manual is for GNU Sample (version @value{VERSION}, @value{UPDATED}).
address@hidden ifnottex
-The outer file should contain only @emph{one} node, the `Top' node. It
-should @emph{not} contain any nodes besides the single `Top' node. The
address@hidden command will not process
address@hidden
address@hidden
+* Invoking sample::
+* Copying This Manual::
+* Index::
address@hidden menu
address@hidden Sample Include File
address@hidden Sample File with @code{@@include}
address@hidden Sample @code{@@include} file
address@hidden Include file sample
address@hidden @code{@@include} file sample
address@hidden Invoking sample
address@hidden Invoking sample
-Here is an example of an outer Texinfo file with @code{@@include} files
-within it before running @code{texinfo-multiple-files-update}, which
-would insert a main or master menu:
address@hidden sample
address@hidden invoking @command{sample}
address@hidden
address@hidden
-\input texinfo @@c -*-texinfo-*-
address@hidden %**start of header
-@@setfilename include-example.info
-@@settitle Include Example
address@hidden %**end of header
address@hidden group
+This is a sample manual. There is no sample program to
+invoke, but if there was, you could see its basic usage
+and command line options here.
-... @xref{Sample Texinfo Files}, for
-examples of the rest of the frontmatter ...
address@hidden
-@@ifnottex
-@@node Top
-@@top Include Example
-@@end ifnottex
address@hidden group
address@hidden GNU Free Documentation License
address@hidden GNU Free Documentation License
address@hidden
-@@include foo.texinfo
-@@include bar.texinfo
-@@include concept-index.texinfo
-@@bye
address@hidden group
address@hidden example
address@hidden fdl.texi
-An included file, such as @file{foo.texinfo}, might look like this:
address@hidden
address@hidden
-@@node First
-@@chapter First Chapter
address@hidden Index
address@hidden Index
-Contents of first chapter @dots{}
address@hidden group
address@hidden example
address@hidden cp
-The full contents of @file{concept-index.texinfo} might be as simple as this:
address@hidden
address@hidden verbatim
address@hidden
address@hidden
-@@node Concept Index
-@@unnumbered Concept Index
-@@printindex cp
address@hidden group
address@hidden example
address@hidden Verbatim Copying License
address@hidden Verbatim Copying License
-The outer Texinfo source file for @cite{The GNU Emacs Lisp Reference
-Manual} is named @file{elisp.texi}. This outer file contains a master
-menu with 417 entries and a list of 41 @code{@@include}
-files.
address@hidden Verbatim copying license
address@hidden License for verbatim copying
+For software manuals and other documentation, it is important to use a
+license permitting free redistribution and updating, so that when a free
+program is changed, the documentation can be updated as well.
address@hidden Include Files Evolution
address@hidden Evolution of Include Files
+On the other hand, for documents that express your personal views,
+feelings or experiences, it is more appropriate to use a license
+permitting only verbatim copying.
-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 address@hidden
+Here is sample text for such a license permitting verbatim copying only.
+This is just the license text itself. For a complete sample document,
+see the previous sections.
-References from one file to another were made by referring to the file
-name as well as the node name. (@xref{Other Info Files, , Referring to
-Other Info Files}. Also, see @ref{Four and Five Arguments, ,
address@hidden@@xref} with Four and Five Arguments}.)@refill
address@hidden
address@hidden
+This document is a sample for allowing verbatim copying only.
-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
address@hidden@@setfilename} line.)@refill
+Copyright @copyright{} 2009 Free Software Foundation, Inc.
-However, because large Info files are now split automatically, it is
-no longer necessary to keep them address@hidden
address@hidden
+Permission is granted to make and distribute verbatim copies
+of this entire document without royalty provided the
+copyright notice and this permission notice are preserved.
address@hidden quotation
address@hidden copying
address@hidden verbatim
-Nowadays, multiple Texinfo files are used mostly for large documents,
-such as @cite{The GNU Emacs Lisp Reference Manual}, and for projects
-in which several different people write different sections of a
-document address@hidden
-In addition, the Info formatting commands have been extended to work
-with the @code{@@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 address@hidden
address@hidden All-permissive Copying License
address@hidden All-permissive Copying License
+
address@hidden All-permissive copying license
address@hidden License for all-permissive copying
+
+For software manuals and other documentation, it is important to use a
+license permitting free redistribution and updating, so that when a free
+program is changed, the documentation can be updated as well.
+
+On the other hand, for small supporting files, short manuals (under 300
+lines long) and rough documentation (README files, INSTALL files, etc.),
+the full FDL would be overkill. They can use a simple all-permissive
+license.
+
+Here is sample text for such an all-permissive license. This is just
+the license text itself. For a complete sample document, see the
+previous sections.
+
address@hidden
+Copyright @@address@hidden@} 2009 Free Software Foundation, Inc.
+
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
address@hidden example
@node Headings
@@ -20182,7 +20180,7 @@
@node Catching Mistakes
address@hidden Formatting Mistakes
address@hidden Catching Mistakes
@cindex Structure, catching mistakes in
@cindex Nodes, catching mistakes
@cindex Catching mistakes