Info files always contain a tag table, to be able to jump to nodes quickly. Info files can be nonsplit (also called unsplit) or split.
If the Info file contains less than about 300,000 characters the
file should be nonsplit. In that case, the tag table should
appear at the end of the Info file. If the Texinfo file contains
more than about 300,000 characters, Texinfo processors split the
large Info file into shorter indirect subfiles of about
300,000 characters each. With texi2any
, splitting
may be prevented by --no-split, and the default size
of 300,000 characters may be modified with --split-size
(see Invoking texi2any
from a Shell).
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 output file name, specified
by the @setfilename
command or the input file name. The shortened
version of the original file continues to have the name specified by
@setfilename
or the input file name.
At one stage in writing this document, for example, the Info file was saved as the file 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 any permissions text in the first 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 of the (unsplit) output.
If you are using texinfo-format-buffer
to create Info files,
you may want to run the Info-validate
command. (The
texi2any
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 with
texinfo-format-buffer
and how to validate the structure of the nodes,
see Using Info-validate
.