The tag table specifies the starting byte position of each node and anchor in the file. It is written in the main output file only, not (in the case of split output) any subfiles.
<tag table> = ^_ Tag Table: <lparen>Indirect<rparen> # this line appears in split output only (Node|Ref): <nodeid>^?<bytepos> ^_ End Tag Table
The ‘(Indirect)’ line is the next line after ‘Tag Table:’ in the case of split output only.
Each following line defines an identifier as either an anchor or a node, as specific. It is an error to define the same identifier both ways. For example, ‘Node: Top^?1647’ says that the node named ‘Top’ starts at byte 1647 while ‘Ref: Overview-Footnote-1^?30045’ says that the anchor named ‘Overview-Footnote-1’ starts at byte 30045.
In the case of nonsplit output, the byte positions simply refer to the location in the output file. In the case of split output, the byte positions refer to an imaginary file created by concatenating all the split files (but not the top-level file). See the previous section.
Here is an example:
^_ Tag Table: Node: Top^_89 Node: Ch1^_292 ^_ End Tag Table
This specifies a manual with two nodes, ‘Top’ and ‘Ch1’, at byte positions 89 and 292 respectively. Because the ‘(Indirect)’ line is not present, the manual is not split.