<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- This manual is for GNU Texinfo (version 6.7, 23 September 2019),
a documentation system that can produce both online information and a
printed manual from a single source using semantic markup.
Copyright (C) 1988, 1990, 1991, 1992, 1993, 1995, 1996, 1997,
1998, 1999, 2001, 2001, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Free Software
Foundation, Inc.
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 no Front-Cover Texts, and with no Back-Cover
Texts. A copy of the license is included in the section entitled
"GNU Free Documentation License". -->
<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Texinfo Document Structure (GNU Texinfo 6.7)</title>
<meta name="description" content="Texinfo Document Structure (GNU Texinfo 6.7)">
<meta name="keywords" content="Texinfo Document Structure (GNU Texinfo 6.7)">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="texi2any">
<link href="index.html" rel="start" title="Top">
<link href="Command-and-Variable-Index.html" rel="index" title="Command and Variable Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Nodes.html" rel="up" title="Nodes">
<link href="Node-Names.html" rel="next" title="Node Names">
<link href="Nodes.html" rel="prev" title="Nodes">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>
</head>
<body lang="en">
<span id="Texinfo-Document-Structure"></span><div class="header">
<p>
Next: <a href="Node-Names.html" accesskey="n" rel="next">Node Names</a>, Up: <a href="Nodes.html" accesskey="u" rel="up">Nodes</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Command-and-Variable-Index.html" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<span id="Texinfo-Document-Structure-1"></span><h3 class="section">4.1 Texinfo Document Structure</h3>
<span id="index-Texinfo-document-structure"></span>
<span id="index-Document-structure_002c-of-Texinfo"></span>
<span id="index-Structure_002c-of-Texinfo-documents"></span>
<span id="index-Double-structure_002c-of-Texinfo-documents"></span>
<span id="Two-Paths"></span>
<p>Nodes can contain <em>menus</em>, which contain the names of <em>child
nodes</em> within the parent node; for example, a node corresponding to a
chapter would have a menu of the sections in that chapter. The menus
allow the user to move to the child nodes in a natural way in the online
output.
</p>
<p>In addition, nodes contain <em>node pointers</em> that name other nodes.
The ‘Next’ and ‘Previous’ pointers form nodes at the same sectioning
level into a chain. As you might imagine, the ‘Next’ pointer links to
the next node, and the ‘Previous’ pointer links to the previous node.
Thus, for example, all the nodes that are at the level of sections
within a chapter are linked together, and the order in this chain
is the same as the order of the children in the menu of the parent
chapter. Each child node records the parent node name as its ‘Up’
pointer.
</p>
<span id="index-accesskey_002c-in-HTML-output-of-nodes"></span>
<p>The Info and HTML output from <code>makeinfo</code> for each node includes
links to the ‘Next’, ‘Previous’, and ‘Up’ nodes. The HTML also uses
the <code>accesskey</code> attribute with the values ‘<samp>n</samp>’, ‘<samp>p</samp>’, and
‘<samp>u</samp>’ respectively. This allows people using web browsers to
follow the navigation using (typically) <kbd>M-<var>letter</var></kbd>, e.g.,
<kbd>M-n</kbd> for the ‘Next’ node, from anywhere within the node.
Node pointers and menus provide structure for Info files just as
chapters, sections, subsections, and the like provide structure for
printed books. The two structures are theoretically distinct; in
practice, however, the tree structure of printed books is essentially
always used for the node and menu structure also, as this leads to a
document which is easiest to follow. See <a href="#Texinfo-Document-Structure">Texinfo Document Structure</a>.
</p>
<p>Typically, the sectioning structure and the node structure are
completely parallel, with one node for each chapter, section, etc.,
and with the nodes following the same hierarchical arrangement as the
sectioning. Thus, if a node is at the logical level of a chapter, its
child nodes are at the level of sections; similarly, the child nodes
of sections are at the level of subsections.
</p>
<p>Although it is technically possible to create Texinfo documents with
only one structure or the other, or for the two structures not to be
parallel, or for either the sectioning or node structure to be
abnormally formed, etc., this is <em>not at all recommended</em>. To
the best of our knowledge, all the Texinfo manuals currently in
general use do follow the conventional parallel structure.
</p>
<hr>
<div class="header">
<p>
Next: <a href="Node-Names.html" accesskey="n" rel="next">Node Names</a>, Up: <a href="Nodes.html" accesskey="u" rel="up">Nodes</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Command-and-Variable-Index.html" title="Index" rel="index">Index</a>]</p>
</div>
</body>
</html>