texinfo-show-structure
Next: Using occur Prev: Catching Errors with TEX Formatting
It is not always easy to keep track of the nodes, chapters, sections, and subsections of a Texinfo file. This is especially true if you are revising or adding to a Texinfo file that someone else has written.
In GNU Emacs, in Texinfo mode, the texinfo-show-structure
command lists all the lines that begin with the @-commands that specify the structure: @chapter
, @section
, @appendix
, and so on. With an argument (@node
lines. The texinfo-show-structure
command is bound to C-c C-s in Texinfo mode, by default.
The lines are displayed in a buffer called the `*Occur*' buffer, indented by hierarchical level. For example, here is a part of what was produced by running texinfo-show-structure
on this manual:
Lines matching "^@\\(chapter \\|sect\\|subs\\|subh\\| unnum\\|major\\|chapheading \\|heading \\|appendix\\)" in buffer texinfo.texi. ... 4177:@chapter Nodes 4198: @heading Two Paths 4231: @section Node and Menu Illustration 4337: @section The @code{@@node} Command 4393: @subheading Choosing Node and Pointer Names 4417: @subsection How to Write an @code{@@node} Line 4469: @subsection @code{@@node} Line Tips ...This says that lines 4337, 4393, and 4417 of `texinfo.texi' begin with the
@section
, @subheading
, and @subsection
commands respectively. If you move your cursor into the `*Occur*' window, you can position the cursor over one of the lines and use the C-c C-c command (occur-mode-goto-occurrence
), to jump to the corresponding spot in the Texinfo file. See emacs:Other Repeating Search, Using Occur, for more information about occur-mode-goto-occurrence
.
The first line in the `*Occur*' window describes the regular expression specified by texinfo-heading-pattern. This regular expression is the pattern that texinfo-show-structure
looks for. See emacs:Regexps, Using Regular Expressions, for more information.
When you invoke the texinfo-show-structure
command, Emacs will display the structure of the whole buffer. If you want to see the structure of just a part of the buffer, of one chapter, for example, use the C-x n n (narrow-to-region
) command to mark the region. (See emacs:Narrowing.) This is how the example used above was generated. (To see the whole buffer again, use C-x n w (widen
).)
If you call texinfo-show-structure
with a prefix argument by typing @node
as well as the lines beginning with the @-sign commands for @chapter
, @section
, and the like.
You can remind yourself of the structure of a Texinfo file by looking at the list in the `*Occur*' window; and if you have mis-named a node or left out a section, you can correct the mistake.