Add arch taglines
[bpt/emacs.git] / man / info.texi
CommitLineData
26901792 1\input texinfo @c -*-texinfo-*-
b457dbd9
EZ
2@comment %**start of header
3@setfilename info.info
4@settitle Info
5@syncodeindex fn cp
6@syncodeindex vr cp
7@syncodeindex ky cp
8@comment %**end of header
ab5796a9 9@comment $Id: info.texi,v 1.34 2003/08/03 18:29:52 karl Exp $
b457dbd9 10
18f952d5 11@copying
b457dbd9
EZ
12This file describes how to use Info, the on-line, menu-driven GNU
13documentation system.
26901792 14
d023326a 15Copyright (C) 1989, 1992, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
b457dbd9 16Free Software Foundation, Inc.
26901792 17
18f952d5 18@quotation
308374ca
DL
19Permission is granted to copy, distribute and/or modify this document
20under the terms of the GNU Free Documentation License, Version 1.1 or
21any later version published by the Free Software Foundation; with no
22Invariant Sections, with the Front-Cover texts being ``A GNU
23Manual'', and with the Back-Cover Texts as in (a) below. A copy of the
24license is included in the section entitled ``GNU Free Documentation
25License'' in the Emacs manual.
26
27(a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify
28this GNU Manual, like GNU software. Copies published by the Free
29Software Foundation raise funds for GNU development.''
30
31This document is part of a collection distributed under the GNU Free
32Documentation License. If you want to distribute this document
33separately from the collection, you can do so by adding a copy of the
34license to the document, as described in section 6 of the license.
18f952d5
KB
35@end quotation
36@end copying
37
38@dircategory Texinfo documentation system
39@direntry
40* Info: (info). How to use the documentation browsing system.
41@end direntry
26901792 42
26901792 43@titlepage
b457dbd9
EZ
44@title Info
45@subtitle The online, hyper-text GNU documentation system
46@author Brian Fox
47@author and the GNU Texinfo community
26901792
DL
48@page
49@vskip 0pt plus 1filll
18f952d5 50@insertcopying
26901792
DL
51@end titlepage
52
0270117b
KB
53@contents
54
b457dbd9 55@ifnottex
919f29b6 56@node Top
26901792
DL
57@top Info: An Introduction
58
b1d75c43
RS
59The GNU Project distributes most of its on-line manuals in the
60@dfn{Info format}, which you read using an @dfn{Info reader}. You are
61probably using an Info reader to read this now.
26901792 62
b457dbd9 63@ifinfo
b1d75c43
RS
64If you are new to the Info reader and want to learn how to use it,
65type the command @kbd{h} now. It brings you to a programmed
66instruction sequence.
26901792 67
b1d75c43
RS
68To read about expert-level Info commands, type @kbd{n} twice. This
69brings you to @cite{Info for Experts}, skipping over the `Getting
70Started' chapter.
26901792 71@end ifinfo
b457dbd9 72@end ifnottex
26901792
DL
73
74@menu
75* Getting Started:: Getting started using an Info reader.
9170767d 76* Expert Info:: Info commands for experts.
b457dbd9 77* Creating an Info File:: How to make your own Info file.
768e4b74 78* Index:: An index of topics, commands, and variables.
26901792
DL
79@end menu
80
9170767d 81@node Getting Started, Expert Info, Top, Top
26901792
DL
82@comment node-name, next, previous, up
83@chapter Getting Started
84
85This first part of the Info manual describes how to get around inside
86of Info. The second part of the manual describes various advanced
87Info commands, and how to write an Info as distinct from a Texinfo
b457dbd9 88file. The third part briefly explains how to generate Info files from
26901792
DL
89Texinfo files.
90
b457dbd9
EZ
91@ifnotinfo
92This manual is primarily designed for browsing with an Info reader
93program on a computer, so that you can try Info commands while reading
94about them. Reading it on paper or with an HTML browser is less
26901792 95effective, since you must take it on faith that the commands described
b457dbd9
EZ
96really do what the manual says. By all means go through this manual
97now that you have it; but please try going through the on-line version
98as well.
26901792 99
b457dbd9
EZ
100@cindex Info reader, how to invoke
101@cindex entering Info
26901792
DL
102There are two ways of looking at the online version of this manual:
103
104@enumerate
105@item
106Type @code{info} at your shell's command line. This approach uses a
3c7625c9 107stand-alone program designed just to read Info files.
26901792
DL
108
109@item
3c7625c9
EZ
110Type @code{emacs} at the command line; then type @kbd{C-h i}
111(@kbd{Control-h}, followed by @kbd{i}). This approach uses the Info
112mode of the Emacs program, an editor with many other capabilities.
26901792
DL
113@end enumerate
114
115In either case, then type @kbd{mInfo} (just the letters), followed by
116@key{RET}---the ``Return'' or ``Enter'' key. At this point, you should
117be ready to follow the instructions in this manual as you read them on
118the screen.
119@c FIXME! (pesch@cygnus.com, 14 dec 1992)
120@c Is it worth worrying about what-if the beginner goes to somebody
121@c else's Emacs session, which already has an Info running in the middle
122@c of something---in which case these simple instructions won't work?
b457dbd9 123@end ifnotinfo
26901792
DL
124
125@menu
126* Help-Small-Screen:: Starting Info on a Small Screen
127* Help:: How to use Info
128* Help-P:: Returning to the Previous node
e4a9d9e3 129* Help-^L:: The Space, DEL, B and ^L commands.
bac598bb 130* Help-Inv:: Invisible text in Emacs Info.
26901792 131* Help-M:: Menus
e4a9d9e3 132* Help-Xref:: Following cross-references
2fc7d480 133* Help-Int:: Some intermediate Info commands
26901792 134* Help-Q:: Quitting Info
26901792
DL
135@end menu
136
919f29b6 137@node Help-Small-Screen
26901792
DL
138@section Starting Info on a Small Screen
139
b457dbd9 140@ifnotinfo
26901792
DL
141(In Info, you only see this section if your terminal has a small
142number of lines; most readers pass by it without seeing it.)
b457dbd9 143@end ifnotinfo
26901792 144
b457dbd9
EZ
145@cindex small screen, moving around
146Since your terminal has a relatively small number of lines on its
26901792
DL
147screen, it is necessary to give you special advice at the beginning.
148
b457dbd9 149If you see the text @samp{--All----} near the bottom right corner
26901792
DL
150of the screen, it means the entire text you are looking at fits on the
151screen. If you see @samp{--Top----} instead, it means that there is
152more text below that does not fit. To move forward through the text
b457dbd9
EZ
153and see another screen full, press @key{SPC}, the Space bar. To move
154back up, press the key labeled @samp{Backspace} or @samp{DEL} (on some
155keyboards, this key might be labeled @samp{Delete}).
26901792
DL
156
157@ifinfo
3c7625c9 158Here are 40 lines of junk, so you can try @key{SPC} and @key{DEL} and
26901792
DL
159see what they do. At the end are instructions of what you should do
160next.
b457dbd9 161
26901792 162@format
26901792
DL
163This is line 20
164This is line 21
165This is line 22
166This is line 23
167This is line 24
168This is line 25
169This is line 26
170This is line 27
171This is line 28
172This is line 29
173This is line 30
174This is line 31
175This is line 32
176This is line 33
177This is line 34
178This is line 35
179This is line 36
180This is line 37
181This is line 38
182This is line 39
183This is line 40
184This is line 41
185This is line 42
186This is line 43
187This is line 44
188This is line 45
189This is line 46
190This is line 47
191This is line 48
192This is line 49
193This is line 50
194This is line 51
195This is line 52
196This is line 53
197This is line 54
198This is line 55
199This is line 56
b457dbd9
EZ
200This is line 57
201This is line 58
202This is line 59
26901792 203@end format
b457dbd9 204
26901792 205If you have managed to get here, go back to the beginning with
3c7625c9
EZ
206@kbd{DEL} (or @key{BACKSPACE}), and come back here again, then you
207understand the about the @samp{Space} and @samp{Backspace} keys. So
208now type an @kbd{n} ---just one character; don't type the quotes and
209don't type the Return key afterward--- to get to the normal start of
210the course.
26901792
DL
211@end ifinfo
212
213@node Help, Help-P, Help-Small-Screen, Getting Started
214@comment node-name, next, previous, up
215@section How to use Info
216
217You are talking to the program Info, for reading documentation.
218
bac598bb
LT
219 There are two ways to use Info: from within Emacs or as a
220stand-alone reader that you can invoke from a shell using the command
221@command{info}.
222
b457dbd9 223@cindex node, in Info documents
26901792
DL
224 Right now you are looking at one @dfn{Node} of Information.
225A node contains text describing a specific topic at a specific
b457dbd9
EZ
226level of detail. This node's topic is ``how to use Info''. The mode
227line says that this is node @samp{Help} in the file @file{info}.
26901792 228
b457dbd9 229@cindex header of Info node
b1d75c43
RS
230 The top line of a node is its @dfn{header}. This node's header
231(look at it now) says that the @samp{Next} node after this one is the
232node called @samp{Help-P}. An advanced Info command lets you go to
233any node whose name you know. In the stand-alone Info reader program,
234the header line shows the names of this node and the info file as
235well. In Emacs, the header line is duplicated in a special typeface,
236and the duplicate remains at the top of the window all the time even
237if you scroll through the node.
26901792
DL
238
239 Besides a @samp{Next}, a node can have a @samp{Previous} or an
b457dbd9
EZ
240@samp{Up} links, or both. As you can see, this node has all of these
241links.
26901792 242
b457dbd9 243@kindex n @r{(Info mode)}
26901792
DL
244 Now it is time to move on to the @samp{Next} node, named @samp{Help-P}.
245
246@format
b457dbd9 247>> Type @kbd{n} to move there. Type just one character;
26901792
DL
248 do not type the quotes and do not type a @key{RET} afterward.
249@end format
250
b457dbd9 251@noindent
26901792
DL
252@samp{>>} in the margin means it is really time to try a command.
253
b457dbd9 254@format
1649f3e5
KB
255>> If you are in Emacs and have a mouse, and if you already practiced
256 typing @kbd{n} to get to the next node, click now with the middle
257 mouse button on the @samp{Next} link to do the same ``the mouse way''.
b457dbd9
EZ
258@end format
259
26901792
DL
260@node Help-P, Help-^L, Help, Getting Started
261@comment node-name, next, previous, up
262@section Returning to the Previous node
263
b457dbd9 264@kindex p @r{(Info mode)}
26901792
DL
265This node is called @samp{Help-P}. The @samp{Previous} node, as you see,
266is @samp{Help}, which is the one you just came from using the @kbd{n}
267command. Another @kbd{n} command now would take you to the next
b1d75c43 268node, @samp{Help-^L}.
26901792
DL
269
270@format
3c7625c9 271>> But do not type @kbd{n} yet. First, try the @kbd{p} command,
b1d75c43
RS
272 or click the middle mouse button on the @samp{Prev} link. That
273 takes you to the @samp{Previous} node. Then use @kbd{n} to return here.
26901792
DL
274@end format
275
3c7625c9 276 If you read this in Emacs, you will see an @samp{Info} item in the
b1d75c43 277menu bar, close to its right edge. Clicking the mouse on the
3c7625c9
EZ
278@samp{Info} menu-bar item opens a menu of commands which include
279@samp{Next} and @samp{Prev} (and also some others which you didn't yet
280learn about).
281
b1d75c43
RS
282 This all probably seems insultingly simple so far, but @emph{please
283don't} start skimming. Things will get complicated soon enough!
284Also, please do not try a new command until you are told it is time
285to. You could make Info skip past an important warning that was
286coming up.
26901792
DL
287
288@format
b1d75c43
RS
289>> Now do an @kbd{n}, or click the middle mouse button on the @samp{Next}
290 link, to get to the node @samp{Help-^L} and learn more.
26901792
DL
291@end format
292
bac598bb 293@node Help-^L, Help-Inv, Help-P, Getting Started
26901792 294@comment node-name, next, previous, up
bac598bb 295@section The Space, DEL, B and ^L commands
26901792 296
9170767d
RS
297 This node's mode line tells you that you are now at node
298@samp{Help-^L}, and the header line tells you that @kbd{p} would get
299you back to @samp{Help-P}. The node's title is highlighted and may be
300underlined as well; it says what the node is about.
26901792
DL
301
302 This is a big node and it does not all fit on your display screen.
303You can tell that there is more that is not visible because you
304can see the string @samp{--Top-----} rather than @samp{--All----} near
305the bottom right corner of the screen.
306
b457dbd9
EZ
307@kindex SPC @r{(Info mode)}
308@kindex DEL @r{(Info mode)}
309@kindex BACKSPACE @r{(Info mode)}
310@findex Info-scroll-up
311@findex Info-scroll-down
3c7625c9
EZ
312 The @key{SPC}, @key{BACKSPACE} (or @key{DEL})@footnote{The key which
313we call ``Backspace or DEL'' in this manual is labeled differently on
f7118ec3
EZ
314different keyboards. Look for a key which is a little ways above the
315@key{ENTER} or @key{RET} key and which you normally use outside Emacs
316to erase the character before the cursor, i.e.@: the character you
317typed last. It might be labeled @samp{Backspace} or @samp{<-} or
318@samp{DEL}, or sometimes @samp{Delete}.} and @kbd{b} commands exist to
319allow you to ``move around'' in a node that does not all fit on the
3c7625c9
EZ
320screen at once. @key{SPC} moves forward, to show what was below the
321bottom of the screen. @key{DEL} or @key{BACKSPACE} moves backward, to
322show what was above the top of the screen (there is not anything above
b1d75c43 323the top until you have typed some spaces).
26901792
DL
324
325@format
3c7625c9
EZ
326>> Now try typing a @key{SPC} (afterward, type a @key{BACKSPACE} to
327 return here).
26901792
DL
328@end format
329
3c7625c9
EZ
330 When you type the @key{SPC}, the two lines that were at the bottom of
331the screen appear at the top, followed by more lines. @key{DEL} or
332@key{BACKSPACE} takes the two lines from the top and moves them to the
b457dbd9
EZ
333bottom, @emph{usually}, but if there are not a full screen's worth of
334lines above them they may not make it all the way to the bottom.
335
336 If you are reading this in Emacs, note that the header line is
337always visible, never scrolling off the display. That way, you can
338always see the @samp{Next}, @samp{Prev}, and @samp{Up} links, and you
b1d75c43
RS
339can conveniently go to one of these links at any time by
340clicking the middle mouse button on the link.
b457dbd9
EZ
341
342@cindex reading Info documents top to bottom
343@cindex Info documents as tutorials
3c7625c9 344 @key{SPC} and @key{DEL} not only move forward and backward through
b1d75c43
RS
345the current node. They also move between nodes. @key{SPC} at the end
346of a node moves to the next node; @key{DEL} (or @key{BACKSPACE}) at
347the beginning of a node moves to the previous node. In effect, these
348commands scroll through all the nodes in an Info file as a single
349logical sequence. You can read an entire manual top to bottom by just
350typing @key{SPC}, and move backward through the entire manual from
351bottom to top by typing @key{DEL} (or @key{BACKSPACE}).
352
353 In this sequence, a node's subnodes appear following their parent.
354If a node has a menu, @key{SPC} takes you into the subnodes listed in
355the menu, one by one. Once you reach the end of a node, and have seen
356all of its subnodes, @key{SPC} takes you to the next node or to the
357parent's next node.
b457dbd9
EZ
358
359@kindex PAGEUP @r{(Info mode)}
360@kindex PAGEDOWN @r{(Info mode)}
361 Many keyboards nowadays have two scroll keys labeled @samp{PageUp}
362and @samp{PageDown} (or maybe @samp{Prior} and @samp{Next}). If your
363keyboard has these keys, you can use them to move forward and backward
b1d75c43
RS
364through the text of one node, like @key{SPC} and @key{BACKSPACE} (or
365@key{DEL}). However, @key{PAGEUP} and @key{PAGEDOWN} keys never
366scroll beyond the beginning or the end of the current node.
b457dbd9
EZ
367
368@kindex C-l @r{(Info mode)}
1fdd9f43 369 If your screen is ever garbaged, you can tell Info to display it
b457dbd9 370again by typing @kbd{C-l} (@kbd{Control-L}, that is---hold down
3c7625c9 371@key{CTRL} and type @kbd{L} or @kbd{l}).
26901792
DL
372
373@format
374>> Type @kbd{C-l} now.
375@end format
376
b457dbd9 377@kindex b @r{(Info mode)}
26901792 378 To move back to the beginning of the node you are on, you can type
b1d75c43
RS
379the @key{BACKSPACE} key (or @key{DEL}) many times. You can also type
380@kbd{b} just once. @kbd{b} stands for ``beginning.''
b457dbd9 381
26901792
DL
382@format
383>> Try that now. (We have put in enough verbiage to push this past
b457dbd9
EZ
384 the first screenful, but screens are so big nowadays that perhaps it
385 isn't enough. You may need to shrink your Emacs or Info window.)
9170767d 386 Then come back, by typing @key{SPC} one or more times.
26901792
DL
387@end format
388
b1d75c43
RS
389 If your screen is very tall, all of this node might fit at once. In
390that case, @kbd{b} won't do anything. But you could observe the
391effect of the @kbd{b} key if you use a smaller window.
26901792 392
b457dbd9
EZ
393@kindex ? @r{(Info mode)}
394@findex Info-summary
26901792
DL
395 You have just learned a considerable number of commands. If you
396want to use one but have trouble remembering which, you should type
79c43dcd 397a @kbd{?} (in Emacs it runs the @code{Info-summary} command) which
1fdd9f43 398displays a brief list of commands. When you are finished looking at
3c7625c9 399the list, make it go away by typing a @key{SPC} repeatedly.
26901792
DL
400
401@format
b457dbd9 402>> Type a @key{?} now. Press @key{SPC} to see consecutive screenfuls of
1649f3e5
KB
403 the list until finished. Then type @key{SPC} several times. If
404 you are using Emacs, the help will then go away automatically.
26901792
DL
405@end format
406
b457dbd9 407 (If you are using the stand-alone Info reader, type @kbd{C-x 0} to
3c7625c9
EZ
408return here, that is---press and hold @key{CTRL}, type an @kbd{x},
409then release @key{CTRL} and @kbd{x}, and press @kbd{0}---a zero, not
b457dbd9 410the letter ``o''.)
26901792
DL
411
412 From now on, you will encounter large nodes without warning, and
3c7625c9
EZ
413will be expected to know how to use @key{SPC} and @key{BACKSPACE} to
414move around in them without being told. Since not all terminals have
26901792
DL
415the same size screen, it would be impossible to warn you anyway.
416
417@format
b1d75c43 418>> Now type @kbd{n}, or click the middle mouse button on the @samp{Next} link,
bac598bb 419 to visit the next node.
26901792
DL
420@end format
421
a57743b9 422@node Help-Inv, Help-M, Help-^L, Getting Started
bac598bb
LT
423@comment node-name, next, previous, up
424@section Invisible text in Emacs Info
425
426 Before discussing menus, we need to make some remarks that are only
427relevant to users reading Info using Emacs. Users of the stand-alone
428version can skip this node by typing @kbd{]} now.
429
430@cindex invisible text in Emacs
431 In Emacs, certain text that appears in the stand-alone version is
432normally hidden, technically because it has the @samp{invisibility}
433property. Invisible text is really a part of the text. It becomes
434visible (by default) after killing and yanking, it appears in printed
435output, it gets saved to file just like any other text, and so on.
436Thus it is useful to know it is there.
437
a57743b9 438@findex visible-mode
bac598bb 439You can make invisible text visible by using the command @kbd{M-x
51983fce
LT
440visible-mode}. Visible mode is a minor mode, so using the command a
441second time will make the text invisible again. Watch the effects of
442the command on the ``menu'' below and the top line of this node.
bac598bb
LT
443
444If you prefer to @emph{always} see the invisible text, you can set
22065ab9
LT
445@code{Info-hide-note-references} to @code{nil}. Enabling Visible mode
446permanently is not a real alternative, because Emacs Info also uses
447(although less extensively) another text property that can change the
448text being displayed, the @samp{display} property. Only the
449invisibility property is affected by Visible mode. When, in this
450tutorial, we refer to the @samp{Emacs} behavior, we mean the
451@emph{default} Emacs behavior.
bac598bb
LT
452
453Now type @kbd{]}, to learn about the @kbd{]} and @kbd{[} commands.
454
455@menu
456* ]: Help-]. Node telling about ].
457* stuff: Help-]. Same node.
458* Help-]:: Yet again, same node.
459@end menu
460
461@node Help-], , , Help-Inv
462@subsection The @kbd{]} and @kbd{[} commands.
463
464If you type @kbd{n} now, you get an error message saying that this
465node has no next node. Similarly, if you type @kbd{p}, the error
466message tells you that there is no previous node. (The exact message
467depends on the Info reader you use.) This is because @kbd{n} and
468@kbd{p} carry you to the next and previous node @emph{at the same
469level}. The present node is contained in a menu (see next) of the
470node you came from, and hence is considered to be at a lower level.
471It is the only node in the previous node's menu (even though it was
472listed three times). Hence it has no next or previous node that
473@kbd{n} or @kbd{p} could move to.
474
475If you systematically move through a manual by typing @kbd{n}, you run
476the risk of skipping many nodes. You do not run this risk if you
477systematically use @kbd{@key{SPC}}, because, when you scroll to the
478bottom of a node and type another @kbd{@key{SPC}}, then this carries
479you to the following node in the manual @emph{regardless of level}.
480If you immediately want to go to that node, without having to scroll
481to the bottom of the screen first, you can type @kbd{]}.
482
483Similarly, @kbd{@key{BACKSPACE}} carries you to the preceding node
484regardless of level, after you scrolled to the beginning of the
485present node. If you want to go to the preceding node immediately,
486you can type @kbd{[}.
487
488For instance, typing this sequence will come back here in three steps:
489@kbd{[ n [}. To do the same backward, type @kbd{] p ]}.
490
491Now type @kbd{]} to go to the next node and learn about menus.
492
493@node Help-M, Help-Xref, Help-Inv, Getting Started
26901792 494@comment node-name, next, previous, up
b457dbd9
EZ
495@section Menus and the @kbd{m} command
496
497@cindex menus in an Info document
498@cindex Info menus
bac598bb
LT
499 With only the @kbd{n} (next), @kbd{p} (previous), @kbd{@key{SPC}},
500@kbd{@key{BACKSPACE}}, @kbd{]} and @kbd{[} commands for moving between
501nodes, nodes are restricted to a linear sequence. Menus allow a
502branching structure. A menu is a list of other nodes you can move to.
503It is actually just part of the text of the node formatted specially
504so that Info can interpret it. The beginning of a menu is always
505identified by a line which starts with @w{@samp{* Menu:}}. A node
506contains a menu if and only if it has a line in it which starts that
507way. The only menu you can use at any moment is the one in the node
508you are in. To use a menu in any other node, you must move to that
509node first.
26901792
DL
510
511 After the start of the menu, each line that starts with a @samp{*}
bac598bb
LT
512identifies one subtopic. The line usually contains a brief name for
513the subtopic (followed by a @samp{:}, normally hidden in Emacs), the
514name of the node that talks about that subtopic (again, normally
515hidden in Emacs), and optionally some further description of the
26901792
DL
516subtopic. Lines in the menu that do not start with a @samp{*} have no
517special meaning---they are only for the human reader's benefit and do
518not define additional subtopics. Here is an example:
519
520@example
9170767d 521* Foo: Node about FOO. This tells about FOO.
26901792
DL
522@end example
523
b457dbd9
EZ
524The subtopic name is Foo, and the node describing it is @samp{Node
525about FOO}. The rest of the line is just for the reader's
526Information. [[ But this line is not a real menu item, simply because
bac598bb
LT
527there is no line above it which starts with @w{@samp{* Menu:}}. Also,
528in a real menu item, the @samp{*} would appear at the very start of
529the line. This is why the ``normally hidden'' text in Emacs, namely
530@samp{: Node about FOO.}, is actually visible in this example, even
22065ab9 531when Visible mode is off.]]
26901792
DL
532
533 When you use a menu to go to another node (in a way that will be
534described soon), what you specify is the subtopic name, the first
535thing in the menu line. Info uses it to find the menu line, extracts
536the node name from it, and goes to that node. The reason that there
537is both a subtopic name and a node name is that the node name must be
538meaningful to the computer and may therefore have to be ugly looking.
539The subtopic name can be chosen just to be convenient for the user to
540specify. Often the node name is convenient for the user to specify
541and so both it and the subtopic name are the same. There is an
542abbreviation for this:
543
544@example
9170767d 545* Foo:: This tells about FOO.
26901792
DL
546@end example
547
548@noindent
549This means that the subtopic name and node name are the same; they are
bac598bb 550both @samp{Foo}. (The @samp{::} is normally hidden in Emacs.)
26901792
DL
551
552@format
3c7625c9
EZ
553>> Now use @key{SPC} to find the menu in this node, then come back to
554 the front with a @kbd{b} and some @key{SPC}s. As you see, a menu is
26901792
DL
555 actually visible in its node. If you cannot find a menu in a node
556 by looking at it, then the node does not have a menu and the
557 @kbd{m} command is not available.
558@end format
559
b1d75c43
RS
560If you keep typing @key{SPC} once the menu appears on the screen, it
561will move to another node (the first one in the menu). If that
562happens, type @key{BACKSPACE} to come back.
563
b457dbd9 564@kindex m @r{(Info mode)}
b1d75c43
RS
565 The command to go to one of the subnodes is @kbd{m}. This is very
566different from the commands you have used: it is a command that
567prompts you for more input.
568
569 The Info commands you know do not need additional input; when you
570type one of them, Info processes it instantly and then is ready for
571another command. The @kbd{m} command is different: it needs to know
572the @dfn{name of the subtopic}. Once you have typed @kbd{m}, Info
573tries to read the subtopic name.
26901792 574
bac598bb
LT
575 Now, in the stand-alone Info, look for the line containing many
576dashes near the bottom of the screen. (This is the stand-alone
577equivalent for the mode line in Emacs.) There is one more line
578beneath that one, but usually it is blank. (In Emacs, this is the
579echo area.) When it is blank, Info is ready for a command, such as
580@kbd{n} or @kbd{b} or @key{SPC} or @kbd{m}. If that line contains
581text ending in a colon, it means Info is reading more input for the
582last command. You can't type an Info command then, because Info is
583trying to read input, not commands. You must either give the input
584and finish the command you started, or type @kbd{Control-g} to cancel
585the command. When you have done one of those things, the input entry
586line becomes blank again. Then you can type Info commands again.
26901792 587
b457dbd9 588@findex Info-menu
26901792
DL
589 The command to go to a subnode via a menu is @kbd{m}. After you type
590the @kbd{m}, the line at the bottom of the screen says @samp{Menu item: }.
591You must then type the name of the subtopic you want, and end it with
b457dbd9 592a @key{RET}. In Emacs, @kbd{m} runs the command @code{Info-menu}.
26901792 593
b457dbd9 594@cindex abbreviating Info subnodes
26901792 595 You can abbreviate the subtopic name. If the abbreviation is not
b457dbd9
EZ
596unique, the first matching subtopic is chosen. Some menus put
597the shortest possible abbreviation for each subtopic name in capital
598letters, so you can see how much you need to type. It does not
599matter whether you use upper case or lower case when you type the
600subtopic. You should not put any spaces at the end, or inside of the
601item name, except for one space where a space appears in the item in
602the menu.
603
604@cindex completion of Info node names
b1d75c43
RS
605 You can also use the @dfn{completion} feature to help enter the
606subtopic name. If you type the @key{TAB} key after entering part of a
607name, it will fill in more of the name---as much as Info can deduce
608from the part you have entered.
26901792
DL
609
610 If you move the cursor to one of the menu subtopic lines, then you do
b457dbd9 611not need to type the argument: you just type a @key{RET}, and it
b1d75c43
RS
612stands for the subtopic of the line you are on. You can also click
613the middle mouse button directly on the subtopic line to go there.
26901792 614
b457dbd9
EZ
615Here is a menu to give you a chance to practice. This menu gives you
616three ways of going to one place, Help-FOO:
26901792
DL
617
618@menu
26901792 619* Foo: Help-FOO. A node you can visit for fun.
b1d75c43 620* Bar: Help-FOO. We have made two ways to get to the same place.
26901792
DL
621* Help-FOO:: And yet another!
622@end menu
623
22065ab9 624(Turn Visible mode on if you are using Emacs.)
bac598bb 625
26901792
DL
626@format
627>> Now type just an @kbd{m} and see what happens:
628@end format
629
630 Now you are ``inside'' an @kbd{m} command. Commands cannot be used
631now; the next thing you will type must be the name of a subtopic.
632
b457dbd9
EZ
633 You can change your mind about doing the @kbd{m} by typing
634@kbd{Control-g}.
26901792
DL
635
636@format
637>> Try that now; notice the bottom line clear.
b457dbd9 638@end format
26901792 639
b457dbd9 640@format
26901792 641>> Then type another @kbd{m}.
b457dbd9 642@end format
26901792 643
b457dbd9
EZ
644@format
645>> Now type @kbd{BAR}, the item name. Do not type @key{RET} yet.
26901792
DL
646@end format
647
b457dbd9 648 While you are typing the item name, you can use the @key{DEL} (or
3c7625c9 649@key{BACKSPACE}) key to cancel one character at a time if you make a
b457dbd9 650mistake.
26901792
DL
651
652@format
b457dbd9
EZ
653>> Press @key{DEL} to cancel the @samp{R}. You could type another @kbd{R}
654 to replace it. But you do not have to, since @samp{BA} is a valid
655 abbreviation.
656@end format
26901792 657
b457dbd9 658@format
26901792
DL
659>> Now you are ready to go. Type a @key{RET}.
660@end format
661
b457dbd9
EZ
662 After visiting @samp{Help-FOO}, you should return here.
663
664 Another way to move to the menu subtopic lines and between them is
665to type @key{TAB}. Each time you type a @key{TAB}, you move to the
666next subtopic line. To move to a previous subtopic line, type
3c7625c9
EZ
667@kbd{M-@key{TAB}}---that is, press and hold the @key{META} key and then
668press @key{TAB}. (On some keyboards, the @key{META} key might be labeled
669@samp{Alt}.)
b457dbd9
EZ
670
671 Once you move cursor to a subtopic line, press @key{RET} to go to
672that subtopic's node.
673
674@cindex mouse support in Info mode
675@kindex Mouse-2 @r{(Info mode)}
676 If your terminal supports a mouse, you have yet another way of going
677to a subtopic. Move your mouse pointer to the subtopic line,
678somewhere between the beginning @samp{*} and the colon @samp{:} which
679ends the subtopic's brief name. You will see the subtopic's name
680change its appearance (usually, its background color will change), and
681the shape of the mouse pointer will change if your platform supports
b1d75c43
RS
682that. After a while, if you leave the mouse on that spot, a small
683window will pop up, saying ``Mouse-2: go to that node'', or the same
684message may appear at the bottom of the screen.
685
686 @kbd{Mouse-2} is the second button of your mouse counting from the
687left---the middle button on a 3-button mouse. (On a 2-button mouse,
688you may have to press both buttons together to ``press the middle
689button''.) The message tells you pressing @kbd{Mouse-2} with the
690current position of the mouse pointer (on subtopic in the menu) will
691go to that subtopic.
b457dbd9
EZ
692
693@findex Info-mouse-follow-nearest-node
b1d75c43 694 More generally, @kbd{Mouse-2} in an Info buffer finds the nearest
b457dbd9
EZ
695link to another node and goes there. For example, near a cross
696reference it acts like @kbd{f}, in a menu it acts like @kbd{m}, on the
697node's header line it acts like @kbd{n}, @kbd{p}, or @kbd{u}, etc. At
698end of the node's text @kbd{Mouse-2} moves to the next node, or up if
699there's no next node.
700
26901792
DL
701@format
702>> Type @kbd{n} to see more commands.
703@end format
704
26901792 705@node Help-FOO, , , Help-M
26901792
DL
706@subsection The @kbd{u} command
707
b457dbd9
EZ
708 Congratulations! This is the node @samp{Help-FOO}. It has an @samp{Up}
709pointer @samp{Help-M}, the node you just came from via the @kbd{m}
710command. This is the usual convention---the nodes you reach from a menu
711have @samp{Up} nodes that lead back to the menu. Menus move Down in the
712tree, and @samp{Up} moves Up. @samp{Previous}, on the other hand, is
713usually used to ``stay on the same level but go backwards''.
26901792 714
b457dbd9
EZ
715@kindex u @r{(Info mode)}
716@findex Info-up
26901792 717 You can go back to the node @samp{Help-M} by typing the command
3c7625c9 718@kbd{u} for ``Up'' (the Emacs command run by @kbd{u} is
b457dbd9
EZ
719@code{Info-up}). That puts you at the @emph{front} of the node---to
720get back to where you were reading you have to type some @key{SPC}s.
721(Some Info readers, such as the one built into Emacs, put you at the
722same place where you were reading in @samp{Help-M}.)
723
b1d75c43
RS
724 Another way to go Up is to click @kbd{Mouse-2} on the @samp{Up}
725pointer shown in the header line (provided that you have a mouse).
26901792
DL
726
727@format
728>> Now type @kbd{u} to move back up to @samp{Help-M}.
729@end format
730
e4a9d9e3
RS
731@node Help-Xref, Help-Int, Help-M, Getting Started
732@comment node-name, next, previous, up
733@section Following Cross-References
734
1fdd9f43
RS
735@cindex cross references in Info documents
736 In Info documentation, you will see many @dfn{cross references}.
737Cross references look like this: @xref{Help-Cross, Cross}. That text
738is a real, live cross reference, whose name is @samp{Cross} and which
bac598bb 739points to the node named @samp{Help-Cross}. (The node name is hidden
a57743b9 740in Emacs. Do @kbd{M-x visible-mode} to show or hide it.)
e4a9d9e3
RS
741
742@kindex f @r{(Info mode)}
743@findex Info-follow-reference
1fdd9f43
RS
744 There are two ways to follow a cross reference. You can move the
745cursor to it and press @key{RET}, just as in a menu. @key{RET}
746follows the cross reference that the cursor is on. Or you can type
747@kbd{f} and then specify the name of the cross reference (in this
748case, @samp{Cross}) as an argument. In Emacs Info, @kbd{f} runs
749@code{Info-follow-reference},
750
751 In the @kbd{f} command, you select the cross reference with its
752name, so it does not matter where the cursor was. If the cursor is on
753or near a cross reference, @kbd{f} suggests that reference name in
754parentheses as the default; typing @key{RET} will follow that
755reference. However, if you type a different reference name, @kbd{f}
756will follow the other reference which has that name.
e4a9d9e3
RS
757
758@format
1fdd9f43 759>> Type @kbd{f}, followed by @kbd{Cross}, and then @key{RET}.
e4a9d9e3
RS
760@end format
761
1fdd9f43
RS
762 As you enter the reference name, you can use the @key{DEL} (or
763@key{BACKSPACE}) key to edit your input. If you change your mind
764about following any reference, you can use @kbd{Control-g} to cancel
765the command. Completion is available in the @kbd{f} command; you can
766complete among all the cross reference names in the current node by
767typing a @key{TAB}.
768
769 To get a list of all the cross references in the current node, you
770can type @kbd{?} after an @kbd{f}. The @kbd{f} continues to await a
771cross reference name even after displaying the list, so if you don't
e4a9d9e3
RS
772actually want to follow a reference, you should type a @kbd{Control-g}
773to cancel the @kbd{f}.
774
775@format
776>> Type @kbd{f?} to get a list of the cross references in this node. Then
777 type a @kbd{Control-g} and see how the @samp{f} gives up.
778@end format
779
1fdd9f43
RS
780 The @key{TAB} and @kbd{M-@key{TAB}} key, which move between menu
781items in a menu, also move between cross references outside of menus.
e4a9d9e3 782
bac598bb
LT
783 Sometimes a cross reference (or a node) can lead to another file (in
784other words another ``manual''), or, on occasion, even a file on a
785remote machine (although Info files distributed with Emacs or the
786stand-alone Info avoid using remote links). Such a cross reference
d023326a
KB
787looks like this: @xref{Top,, Overview of Texinfo, texinfo, Texinfo:
788The GNU Documentation Format}. (After following this link, type
789@kbd{l} to get back to this node.) Here the name @samp{texinfo}
790between parentheses (shown in the stand-alone version) refers to the
791file name. This file name appears in cross references and node names
792if it differs from the current file. In Emacs, the file name is
793hidden (along with other text). (Use @kbd{M-x visible-mode} to show
794or hide it.)
bac598bb
LT
795
796 The remainder of this node applies only to the Emacs version. If
a57743b9 797you use the stand-alone version, you can type @kbd{n} immediately.
bac598bb
LT
798
799 To some users, switching manuals is a much bigger switch than
800switching sections. These users like to know that they are going to
801be switching to another manual (and which one) before actually doing
802so, especially given that, if one does not notice, Info commands like
803@kbd{t} (see the next node) can have confusing results.
804
805 If you put your mouse over the cross reference and if the cross
806reference leads to a different manual, then the information appearing
807in a separate box (tool tip) or in the echo area, will mention the
808file the cross reference will carry you to (between parentheses).
809This is also true for menu subtopic names. If you have a mouse, just
810leave it over the @samp{Overview} cross reference above and watch what
811happens.
812
813 If you always like to have that information available without having
814to move your mouse over the cross reference, set
815@code{Info-hide-note-references} to a value other than t (@pxref{Emacs
816Info Variables}). You might also want to do that if you have a lot of
817cross references to files on remote machines and have non-permanent or
818slow access, since otherwise you might not be able to distinguish
819between local and remote links.
820
821@format
822>> Now type @kbd{n} to learn more commands.
823@end format
824
e4a9d9e3 825@node Help-Int, Help-Q, Help-Xref, Getting Started
26901792 826@comment node-name, next, previous, up
2fc7d480 827@section Some intermediate Info commands
26901792 828
2fc7d480
RS
829 The introductory course is almost over; please continue
830a little longer to learn some intermediate-level commands.
26901792 831
e4a9d9e3
RS
832 Most Info files have an index, which is actually a large node that
833contains nothing but a menu. The menu has one menu item for each
834topic listed in the index. You can find the index node from the main
835menu of the file, with the @kbd{m} command; then you can use the
836@kbd{m} command again in the index node to go to the node that
837describes the topic.
838
839 There is also a short-cut Info command, @kbd{i}, which does all of
840that for you. It searches the index for a given topic (a string) and
841goes to the node which is listed in the index for that topic.
842@xref{Info Search}, for a full explanation.
843
b457dbd9
EZ
844@kindex l @r{(Info mode)}
845@findex Info-last
846@cindex going back in Info mode
26901792
DL
847 If you have been moving around to different nodes and wish to
848retrace your steps, the @kbd{l} command (@kbd{l} for @dfn{last}) will
849do that, one node-step at a time. As you move from node to node, Info
850records the nodes where you have been in a special history list. The
851@kbd{l} command revisits nodes in the history list; each successive
852@kbd{l} command moves one step back through the history.
853
b457dbd9
EZ
854 In Emacs, @kbd{l} runs the command @code{Info-last}.
855
26901792 856@format
bac598bb
LT
857>> Try typing @kbd{p p n} and then three @kbd{l}'s, pausing in between
858to see what each @kbd{l} does. You should wind up right back here.
26901792
DL
859@end format
860
26901792
DL
861 Note the difference between @kbd{l} and @kbd{p}: @kbd{l} moves to
862where @emph{you} last were, whereas @kbd{p} always moves to the node
b457dbd9 863which the header says is the @samp{Previous} node (from this node, the
bac598bb 864@samp{Prev} link leads to @samp{Help-Xref}).
b457dbd9
EZ
865
866@kindex d @r{(Info mode)}
867@findex Info-directory
868@cindex go to Directory node
869 The @kbd{d} command (@code{Info-directory} in Emacs) gets you
870instantly to the Directory node. This node, which is the first one
3c7625c9
EZ
871you saw when you entered Info, has a menu which leads (directly or
872indirectly, through other menus), to all the nodes that exist. The
b457dbd9
EZ
873Directory node lists all the manuals and other Info documents that
874are, or could be, installed on your system.
26901792
DL
875
876@format
b457dbd9 877>> Try doing a @kbd{d}, then do an @kbd{l} to return here (yes,
26901792
DL
878 @emph{do} return).
879@end format
880
b457dbd9
EZ
881@kindex t @r{(Info mode)}
882@findex Info-top-node
883@cindex go to Top node
884 The @kbd{t} command moves to the @samp{Top} node of the manual.
885This is useful if you want to browse the manual's main menu, or select
886some specific top-level menu item. The Emacs command run by @kbd{t}
887is @code{Info-top-node}.
888
b457dbd9
EZ
889 Clicking @kbd{Mouse-2} on or near a cross reference also follows the
890reference. You can see that the cross reference is mouse-sensitive by
891moving the mouse pointer to the reference and watching how the
892underlying text and the mouse pointer change in response.
893
894@format
26901792
DL
895>> Now type @kbd{n} to see the last node of the course.
896@end format
897
9170767d 898 @xref{Expert Info}, for more advanced Info features.
2fc7d480 899
26901792
DL
900@c If a menu appears at the end of this node, remove it.
901@c It is an accident of the menu updating command.
902
9170767d 903@node Expert Info
26901792
DL
904@chapter Info for Experts
905
9170767d
RS
906 This chapter describes various Info commands for experts. (If you
907are using a stand-alone Info reader, there are additional commands
b457dbd9
EZ
908specific to it, which are documented in several chapters of @ref{Top,,
909GNU Info, info-stnd, GNU Info}.)
910
911 This chapter also explains how to write an Info as distinct from a
912Texinfo file. (However, in most cases, writing a Texinfo file is
3ae62f22
EZ
913better, since you can use it to make a printed manual or produce other
914formats, such as HTML and DocBook, as well as for generating Info
915files.) @xref{Top,, Overview of Texinfo, texinfo, Texinfo: The GNU
bac598bb 916Documentation Format}.
26901792
DL
917
918@menu
bac598bb 919* Advanced:: Advanced Info commands: g, e, and 1 - 9.
b457dbd9 920* Info Search:: How to search Info documents for specific subjects.
26901792
DL
921* Add:: Describes how to add new nodes to the hierarchy.
922 Also tells what nodes look like.
923* Menus:: How to add to or create menus in Info nodes.
924* Cross-refs:: How to add cross-references to Info nodes.
925* Tags:: How to make tags tables for Info files.
926* Checking:: Checking an Info File
927* Emacs Info Variables:: Variables modifying the behavior of Emacs Info.
928@end menu
929
9170767d 930@node Advanced, Info Search, , Expert Info
26901792
DL
931@comment node-name, next, previous, up
932@section Advanced Info Commands
933
b457dbd9
EZ
934Here are some more Info commands that make it easier to move around.
935
936@unnumberedsubsec @kbd{g} goes to a node by name
26901792 937
b457dbd9
EZ
938@kindex g @r{(Info mode)}
939@findex Info-goto-node
940@cindex go to a node by name
941 If you know a node's name, you can go there by typing @kbd{g}, the
26901792 942name, and @key{RET}. Thus, @kbd{gTop@key{RET}} would go to the node
b457dbd9 943called @samp{Top} in this file. (This is equivalent to @kbd{t}, see
603c85d3 944@ref{Help-Int}.) @kbd{gAdvanced@key{RET}} would come back here.
b457dbd9 945@kbd{g} in Emacs runs the command @code{Info-goto-node}.
26901792 946
b457dbd9
EZ
947 Unlike @kbd{m}, @kbd{g} does not allow the use of abbreviations.
948But it does allow completion, so you can type @key{TAB} to complete a
949partial node name.
26901792 950
b457dbd9
EZ
951@cindex go to another Info file
952 To go to a node in another file, you can include the file name in the
26901792
DL
953node name by putting it at the front, in parentheses. Thus,
954@kbd{g(dir)Top@key{RET}} would go to the Info Directory node, which is
b457dbd9
EZ
955the node @samp{Top} in the Info file @file{dir}. Likewise,
956@kbd{g(emacs)Top@key{RET}} goes to the top node of the Emacs manual.
26901792 957
b457dbd9 958 The node name @samp{*} specifies the whole file. So you can look at
26901792 959all of the current file by typing @kbd{g*@key{RET}} or all of any
b457dbd9
EZ
960other file with @kbd{g(@var{filename})@key{RET}}.
961
962@unnumberedsubsec @kbd{1} -- @kbd{9} choose a menu subtopic by its number
963
964@kindex 1 @r{through} 9 @r{(Info mode)}
965@findex Info-nth-menu-item
966@cindex select @var{n}'th menu item
967 If you begrudge each character of type-in which your system requires,
968you might like to use the commands @kbd{1}, @kbd{2}, @kbd{3}, @kbd{4},
969@dots{}, @kbd{9}. They are short for the @kbd{m} command together
970with a name of a menu subtopic. @kbd{1} goes through the first item
971in the current node's menu; @kbd{2} goes through the second item, etc.
972In the stand-alone reader, @kbd{0} goes through the last menu item;
973this is so you need not count how many entries are there. In Emacs,
974the digit keys run the command @code{Info-nth-menu-item}.
975
976 If your display supports multiple fonts, and you are using Emacs'
977Info mode to read Info files, the @samp{*} for the fifth menu item
978stands out, either in color or in some other attribute, such as
979underline, and so is the @samp{*} for the ninth item; this makes it
980easy to see at a glance which number to use for an item.
981
982 Some terminals don't support colors or underlining. If you need to
26901792 983actually count items, it is better to use @kbd{m} instead, and specify
b457dbd9 984the name, or use @key{TAB} to quickly move between menu items.
26901792 985
b457dbd9
EZ
986@unnumberedsubsec @kbd{e} makes Info document editable
987
988@kindex e @r{(Info mode)}
989@findex Info-edit
990@cindex edit Info document
991 The Info command @kbd{e} changes from Info mode to an ordinary
26901792
DL
992Emacs editing mode, so that you can edit the text of the current node.
993Type @kbd{C-c C-c} to switch back to Info. The @kbd{e} command is allowed
994only if the variable @code{Info-enable-edit} is non-@code{nil}.
995
b457dbd9
EZ
996 The @kbd{e} command only works in Emacs, where it runs the command
997@code{Info-edit}. The stand-alone Info reader doesn't allow you to
998edit the Info file, so typing @kbd{e} there goes to the end of the
999current node.
1000
9170767d 1001@node Info Search, Add, Advanced, Expert Info
b457dbd9
EZ
1002@comment node-name, next, previous, up
1003@section How to search Info documents for specific subjects
1004
1005@cindex searching Info documents
1006@cindex Info document as a reference
1007 The commands which move between and inside nodes allow you to read
1008the entire manual or its large portions. But what if you need to find
1009some information in the manual as fast as you can, and you don't know
1010or don't remember in what node to look for it? This need arises when
1011you use a manual as a @dfn{reference}, or when it is impractical to
1012read the entire manual before you start using the programs it
1013describes.
1014
1015 Info has powerful searching facilities that let you find things
1016quickly. You can search either the manual indices or its text.
1017
1018@kindex i @r{(Info mode)}
1019@findex Info-index
1020 Since most subjects related to what the manual describes should be
1021indexed, you should try the index search first. The @kbd{i} command
1022prompts you for a subject and then looks up that subject in the
1023indices. If it finds an index entry with the subject you typed, it
1024goes to the node to which that index entry points. You should browse
1025through that node to see whether the issue you are looking for is
1026described there. If it isn't, type @kbd{,} one or more times to go
1027through additional index entries which match your subject.
1028
1029 The @kbd{i} command finds all index entries which include the string
1030you typed @emph{as a substring}. For each match, Info shows in the
1031echo area the full index entry it found. Often, the text of the full
1032index entry already gives you enough information to decide whether it
1033is relevant to what you are looking for, so we recommend that you read
1034what Emacs shows in the echo are before looking at the node it
1035displays.
1036
1037 Since @kbd{i} looks for a substring, you can search for subjects even
1038if you are not sure how they are spelled in the index. For example,
1039suppose you want to find something that is pertinent to commands which
1040complete partial input (e.g., when you type @key{TAB}). If you want
1041to catch index entries that refer to ``complete'', ``completion'', and
1042``completing'', you could type @kbd{icomplet@key{RET}}.
1043
1044 Info documents which describe programs should index the commands,
1045options, and key sequences that the program provides. If you are
1046looking for a description of a command, an option, or a key, just type
1047their names when @kbd{i} prompts you for a topic. For example, if you
1048want to read the description of what the @kbd{C-f} key does, type
1049@kbd{iC-f@key{RET}}. Here @kbd{C-f} are 3 literal characters
1050@samp{C}, @samp{-}, and @samp{f}, not the ``Control-f'' command key
1051you type inside Emacs to run the command bound to @kbd{C-f}.
1052
1053 In Emacs, @kbd{i} runs the command @code{Info-index}.
1054
1055@kindex s @r{(Info mode)}
1056@findex Info-search
1057 The @kbd{s} command allows you to search a whole file for a string.
1058It switches to the next node if and when that is necessary. You
1059type @kbd{s} followed by the string to search for, terminated by
1060@key{RET}. To search for the same string again, just @kbd{s} followed
1061by @key{RET} will do. The file's nodes are scanned in the order
1062they are in in the file, which has no necessary relationship to the
1063order that they may be in the tree structure of menus and @samp{next}
1064pointers. But normally the two orders are not very different. In any
1065case, you can always do a @kbd{b} to find out what node you have
1066reached, if the header is not visible (this can happen, because @kbd{s}
1067puts your cursor at the occurrence of the string, not at the beginning
1068of the node).
1069
1070@kindex M-s @r{(Info mode)}
1071 In Emacs, @kbd{Meta-s} is equivalent to @kbd{s}. That is for
1072compatibility with other GNU packages that use @kbd{M-s} for a similar
1073kind of search command. Both @kbd{s} and @kbd{M-s} run in Emacs the
1074command @code{Info-search}.
1075
1076
9170767d 1077@node Add, Menus, Info Search, Expert Info
26901792
DL
1078@comment node-name, next, previous, up
1079@section Adding a new node to Info
1080
1081To add a new topic to the list in the Info directory, you must:
b457dbd9 1082
26901792
DL
1083@enumerate
1084@item
1085Create some nodes, in some file, to document that topic.
1086@item
1087Put that topic in the menu in the directory. @xref{Menus, Menu}.
1088@end enumerate
1089
b457dbd9
EZ
1090 Usually, the way to create the nodes is with Texinfo (@pxref{Top,,
1091Overview of Texinfo, texinfo, Texinfo: The GNU Documentation Format});
9170767d
RS
1092this has the advantage that you can also make a printed manual or HTML
1093from them. You would use the @samp{@@dircategory} and
1094@samp{@@direntry} commands to put the manual into the Info directory.
1095However, if you want to edit an Info file manually and install it
1096manually, here is how.
26901792 1097
b457dbd9 1098@cindex node delimiters
26901792 1099 The new node can live in an existing documentation file, or in a new
79c43dcd 1100one. It must have a @samp{^_} character before it (invisible to the
26901792 1101user; this node has one but you cannot see it), and it ends with either
79c43dcd
EZ
1102a @samp{^_}, a @samp{^L} (``formfeed''), or the end of file.@footnote{If
1103you put in a @samp{^L} to end a new node, be sure that there is a
1104@samp{^_} after it to start the next one, since @samp{^L} cannot
1105@emph{start} a node. Also, a nicer way to make a node boundary be a
1106page boundary as well is to put a @samp{^L} @emph{right after} the
1107@samp{^_}.}
1108
1109 The @samp{^_} starting a node must be followed by a newline or a
9170767d
RS
1110@samp{^L} newline, after which comes the node's header line. The
1111header line must give the node's name (by which Info finds it), and
1112state the names of the @samp{Next}, @samp{Previous}, and @samp{Up}
1113nodes (if there are any). As you can see, this node's @samp{Up} node
1114is the node @samp{Expert Info}. The @samp{Next} node is @samp{Menus}.
b457dbd9
EZ
1115
1116@cindex node header line format
1117@cindex format of node headers
1118 The keywords @dfn{Node}, @dfn{Next}, @dfn{Previous}, and @dfn{Up}
26901792
DL
1119may appear in any order, anywhere in the header line, but the
1120recommended order is the one in this sentence. Each keyword must be
1121followed by a colon, spaces and tabs, and then the appropriate name.
1122The name may be terminated with a tab, a comma, or a newline. A space
1123does not end it; node names may contain spaces. The case of letters
1124in the names is insignificant.
1125
b457dbd9
EZ
1126@cindex node name format
1127@cindex Directory node
26901792
DL
1128 A node name has two forms. A node in the current file is named by
1129what appears after the @samp{Node: } in that node's first line. For
1130example, this node's name is @samp{Add}. A node in another file is
1131named by @samp{(@var{filename})@var{node-within-file}}, as in
1132@samp{(info)Add} for this node. If the file name starts with ``./'',
b457dbd9
EZ
1133then it is relative to the current directory; otherwise, it is
1134relative starting from the standard directory for Info files of your
1135site. The name @samp{(@var{filename})Top} can be abbreviated to just
1136@samp{(@var{filename})}. By convention, the name @samp{Top} is used
1137for the ``highest'' node in any single file---the node whose @samp{Up}
1138points out of the file. The @samp{Directory} node is @file{(dir)}, it
1139points to a file @file{dir} which holds a large menu listing all the
1140Info documents installed on your site. The @samp{Top} node of a
1141document file listed in the @samp{Directory} should have an @samp{Up:
26901792
DL
1142(dir)} in it.
1143
b457dbd9 1144@cindex unstructured documents
26901792
DL
1145 The node name @kbd{*} is special: it refers to the entire file.
1146Thus, @kbd{g*} shows you the whole current file. The use of the
1147node @kbd{*} is to make it possible to make old-fashioned,
1148unstructured files into nodes of the tree.
1149
1150 The @samp{Node:} name, in which a node states its own name, must not
b457dbd9
EZ
1151contain a file name, since when Info searches for a node, it does not
1152expect a file name to be there. The @samp{Next}, @samp{Previous} and
1153@samp{Up} names may contain them. In this node, since the @samp{Up}
1154node is in the same file, it was not necessary to use one.
26901792
DL
1155
1156 Note that the nodes in this file have a file name in the header
1157line. The file names are ignored by Info, but they serve as comments
1158to help identify the node for the user.
1159
9170767d 1160@node Menus, Cross-refs, Add, Expert Info
26901792
DL
1161@comment node-name, next, previous, up
1162@section How to Create Menus
1163
b457dbd9 1164 Any node in the Info hierarchy may have a @dfn{menu}---a list of subnodes.
26901792
DL
1165The @kbd{m} command searches the current node's menu for the topic which it
1166reads from the terminal.
1167
b457dbd9 1168@cindex menu and menu entry format
bac598bb
LT
1169 A menu begins with a line starting with @w{@samp{* Menu:}}. The
1170rest of the line is a comment. After the starting line, every line
1171that begins with a @samp{* } lists a single topic. The name of the
1172topic--what the user must type at the @kbd{m}'s command prompt to
1173select this topic---comes right after the star and space, and is
1174followed by a colon, spaces and tabs, and the name of the node which
1175discusses that topic. The node name, like node names following
1176@samp{Next}, @samp{Previous} and @samp{Up}, may be terminated with a
1177tab, comma, or newline; it may also be terminated with a period.
26901792
DL
1178
1179 If the node name and topic name are the same, then rather than
b457dbd9
EZ
1180giving the name twice, the abbreviation @samp{* @var{name}::} may be
1181used (and should be used, whenever possible, as it reduces the visual
26901792
DL
1182clutter in the menu).
1183
1184 It is considerate to choose the topic names so that they differ
1185from each other very near the beginning---this allows the user to type
1186short abbreviations. In a long menu, it is a good idea to capitalize
1187the beginning of each item name which is the minimum acceptable
1188abbreviation for it (a long menu is more than 5 or so entries).
1189
b457dbd9
EZ
1190 The nodes listed in a node's menu are called its ``subnodes'', and it
1191is their ``superior''. They should each have an @samp{Up:} pointing at
1192the superior. It is often useful to arrange all or most of the subnodes
1193in a sequence of @samp{Next} and @samp{Previous} pointers so that
1194someone who wants to see them all need not keep revisiting the Menu.
26901792
DL
1195
1196 The Info Directory is simply the menu of the node @samp{(dir)Top}---that
1197is, node @samp{Top} in file @file{.../info/dir}. You can put new entries
1198in that menu just like any other menu. The Info Directory is @emph{not} the
1199same as the file directory called @file{info}. It happens that many of
b457dbd9
EZ
1200Info's files live in that file directory, but they do not have to; and
1201files in that directory are not automatically listed in the Info
26901792
DL
1202Directory node.
1203
1204 Also, although the Info node graph is claimed to be a ``hierarchy'',
1205in fact it can be @emph{any} directed graph. Shared structures and
1206pointer cycles are perfectly possible, and can be used if they are
1207appropriate to the meaning to be expressed. There is no need for all
1208the nodes in a file to form a connected structure. In fact, this file
1209has two connected components. You are in one of them, which is under
1210the node @samp{Top}; the other contains the node @samp{Help} which the
1211@kbd{h} command goes to. In fact, since there is no garbage
1212collector, nothing terrible happens if a substructure is not pointed
1213to, but such a substructure is rather useless since nobody can
1214ever find out that it exists.
1215
9170767d 1216@node Cross-refs, Tags, Menus, Expert Info
26901792
DL
1217@comment node-name, next, previous, up
1218@section Creating Cross References
1219
b457dbd9 1220@cindex cross reference format
26901792
DL
1221 A cross reference can be placed anywhere in the text, unlike a menu
1222item which must go at the front of a line. A cross reference looks
b457dbd9 1223like a menu item except that it has @samp{*note} instead of @samp{*}.
26901792
DL
1224It @emph{cannot} be terminated by a @samp{)}, because @samp{)}'s are
1225so often part of node names. If you wish to enclose a cross reference
1226in parentheses, terminate it with a period first. Here are two
1227examples of cross references pointers:
1228
1229@example
1230*Note details: commands. (See *note 3: Full Proof.)
1231@end example
1232
b457dbd9
EZ
1233@noindent
1234@emph{These are just examples.} The places they ``lead to'' do not
1235really exist!
26901792 1236
768e4b74
KB
1237@menu
1238* Help-Cross:: Target of a cross-reference.
1239@end menu
1240
1241
1242@node Help-Cross, , , Cross-refs
1243@subsection The node reached by the cross reference in Info
1244
1245 This is the node reached by the cross reference named @samp{Cross}.
1246
1247 While this node is specifically intended to be reached by a cross
1248reference, most cross references lead to nodes that ``belong''
1249someplace else far away in the structure of an Info document. So you
1250cannot expect this node to have a @samp{Next}, @samp{Previous} or
1251@samp{Up} links pointing back to where you came from. In general, the
1252@kbd{l} (el) command is the only way to get back there.
1253
1254@format
1255>> Type @kbd{l} to return to the node where the cross reference was.
1256@end format
1257
2fc7d480 1258@node Help-Q, , Help-Int, Getting Started
768e4b74
KB
1259@comment node-name, next, previous, up
1260@section Quitting Info
1261
1262@kindex q @r{(Info mode)}
1263@findex Info-exit
1264@cindex quitting Info mode
1265 To get out of Info, back to what you were doing before, type @kbd{q}
1266for @dfn{Quit}. This runs @code{Info-exit} in Emacs.
1267
1268 This is the end of the basic course on using Info. You have learned
1269how to move in an Info document, and how to follow menus and cross
1270references. This makes you ready for reading manuals top to bottom,
1271as new users should do when they learn a new package.
1272
1273 Another set of Info commands is useful when you need to find
1274something quickly in a manual---that is, when you need to use a manual
9170767d 1275as a reference rather than as a tutorial. We urge you to learn
768e4b74
KB
1276these search commands as well. If you want to do that now, follow this
1277cross reference to @ref{Info Search}.
1278
1279Yet another set of commands are meant for experienced users; you can
1280find them by looking in the Directory node for documentation on Info.
1281Finding them will be a good exercise in using Info in the usual
1282manner.
1283
1284@format
1285>> Type @kbd{d} to go to the Info directory node; then type
1286 @kbd{mInfo} and Return, to get to the node about Info and
1287 see what other help is available.
1288@end format
1289
1290
9170767d 1291@node Tags, Checking, Cross-refs, Expert Info
26901792
DL
1292@comment node-name, next, previous, up
1293@section Tags Tables for Info Files
1294
b457dbd9 1295@cindex tags tables in info files
26901792
DL
1296 You can speed up the access to nodes of a large Info file by giving
1297it a tags table. Unlike the tags table for a program, the tags table for
b457dbd9 1298an Info file lives inside the file itself and is used
26901792
DL
1299automatically whenever Info reads in the file.
1300
b457dbd9 1301@findex Info-tagify
26901792
DL
1302 To make a tags table, go to a node in the file using Emacs Info mode and type
1303@kbd{M-x Info-tagify}. Then you must use @kbd{C-x C-s} to save the
b457dbd9
EZ
1304file. Info files produced by the @code{makeinfo} command that is part
1305of the Texinfo package always have tags tables to begin with.
26901792 1306
b457dbd9
EZ
1307@cindex stale tags tables
1308@cindex update Info tags table
26901792 1309 Once the Info file has a tags table, you must make certain it is up
b457dbd9
EZ
1310to date. If you edit an Info file directly (as opposed to editing its
1311Texinfo source), and, as a result of deletion of text, any node moves back
26901792
DL
1312more than a thousand characters in the file from the position
1313recorded in the tags table, Info will no longer be able to find that
b457dbd9
EZ
1314node. To update the tags table, use the @code{Info-tagify} command
1315again.
26901792
DL
1316
1317 An Info file tags table appears at the end of the file and looks like
1318this:
1319
1320@example
b457dbd9 1321^_^L
26901792
DL
1322Tag Table:
1323File: info, Node: Cross-refs^?21419
1324File: info, Node: Tags^?22145
1325^_
1326End Tag Table
1327@end example
1328
1329@noindent
1330Note that it contains one line per node, and this line contains
1331the beginning of the node's header (ending just after the node name),
79c43dcd 1332a @samp{DEL} character, and the character position in the file of the
26901792
DL
1333beginning of the node.
1334
b457dbd9 1335
9170767d 1336@node Checking, Emacs Info Variables, Tags, Expert Info
26901792
DL
1337@section Checking an Info File
1338
b457dbd9
EZ
1339When creating an Info file, it is easy to forget the name of a node when
1340you are making a pointer to it from another node. If you put in the
1341wrong name for a node, this is not detected until someone tries to go
1342through the pointer using Info. Verification of the Info file is an
1343automatic process which checks all pointers to nodes and reports any
1344pointers which are invalid. Every @samp{Next}, @samp{Previous}, and
26901792 1345@samp{Up} is checked, as is every menu item and every cross reference. In
b457dbd9
EZ
1346addition, any @samp{Next} which does not have a @samp{Previous} pointing
1347back is reported. Only pointers within the file are checked, because
1348checking pointers to other files would be terribly slow. But those are
1349usually few.
26901792 1350
b457dbd9
EZ
1351@findex Info-validate
1352To check an Info file, do @kbd{M-x Info-validate} while looking at any
1353node of the file with Emacs Info mode.
26901792 1354
9170767d 1355@node Emacs Info Variables, , Checking, Expert Info
26901792
DL
1356@section Emacs Info-mode Variables
1357
b457dbd9 1358The following variables may modify the behavior of Info-mode in Emacs;
26901792
DL
1359you may wish to set one or several of these variables interactively, or
1360in your @file{~/.emacs} init file. @xref{Examining, Examining and Setting
1361Variables, Examining and Setting Variables, emacs, The GNU Emacs
b457dbd9
EZ
1362Manual}. The stand-alone Info reader program has its own set of
1363variables, described in @ref{Variables,, Manipulating Variables,
1364info-stnd, GNU Info}.
26901792 1365
b457dbd9 1366@vtable @code
26901792
DL
1367@item Info-directory-list
1368The list of directories to search for Info files. Each element is a
79148ea7
GM
1369string (directory name) or @code{nil} (try default directory). If not
1370initialized Info uses the environment variable @env{INFOPATH} to
1371initialize it, or @code{Info-default-directory-list} if there is no
1372@env{INFOPATH} variable in the environment.
1373
56ce34cc
RS
1374If you wish to customize the Info directory search list for both Emacs
1375info and stand-alone Info, it is best to set the @env{INFOPATH}
1376environment variable, since that applies to both programs.
1377
79148ea7
GM
1378@item Info-additional-directory-list
1379A list of additional directories to search for Info documentation files.
1380These directories are not searched for merging the @file{dir} file.
26901792 1381
b457dbd9
EZ
1382@item Info-fontify
1383When set to a non-@code{nil} value, enables highlighting of Info
1384files. The default is @code{t}. You can change how the highlighting
1649f3e5
KB
1385looks by customizing the faces @code{info-node}, @code{info-xref},
1386@code{info-header-xref}, @code{info-header-node}, @code{info-menu-5},
1387@code{info-menu-header}, and @code{info-title-@var{n}-face} (where
1388@var{n} is the level of the section, a number between 1 and 4). To
b457dbd9
EZ
1389customize a face, type @kbd{M-x customize-face @key{RET} @var{face}
1390@key{RET}}, where @var{face} is one of the face names listed here.
1391
1392@item Info-use-header-line
1393If non-@code{nil}, Emacs puts in the Info buffer a header line showing
1394the @samp{Next}, @samp{Prev}, and @samp{Up} links. A header line does
1395not scroll with the rest of the buffer, making these links always
1396visible.
1397
bac598bb
LT
1398@item Info-hide-note-references
1399As explained in earlier nodes, the Emacs version of Info normally
1400hides some text in menus and cross-references. You can completely
1401disable this feature, by setting this option to @code{nil}. Setting
1402it to a value that is neither @code{nil} nor @code{t} produces an
1403intermediate behavior, hiding a limited amount of text, but showing
1404all text that could potentially be useful.
1405
b457dbd9 1406@item Info-scroll-prefer-subnodes
3c7625c9
EZ
1407If set to a non-@code{nil} value, @key{SPC} and @key{BACKSPACE} (or
1408@key{DEL}) keys in a menu visit subnodes of the current node before
1409scrolling to its end or beginning, respectively. For example, if the
1410node's menu appears on the screen, the next @key{SPC} moves to a
1411subnode indicated by the following menu item. Setting this option to
1412@code{nil} results in behavior similar to the stand-alone Info reader
1413program, which visits the first subnode from the menu only when you
bac598bb 1414hit the end of the current node. The default is @code{nil}.
79148ea7 1415
b457dbd9
EZ
1416@item Info-enable-active-nodes
1417When set to a non-@code{nil} value, allows Info to execute Lisp code
1418associated with nodes. The Lisp code is executed when the node is
1419selected. The Lisp code to be executed should follow the node
79c43dcd 1420delimiter (the @samp{DEL} character) and an @samp{execute: } tag, like
3c7625c9 1421this:
26901792 1422
b457dbd9
EZ
1423@example
1424^_execute: (message "This is an active node!")
1425@end example
1426
1427@item Info-enable-edit
1428Set to @code{nil}, disables the @samp{e} (@code{Info-edit}) command. A
1429non-@code{nil} value enables it. @xref{Add, Edit}.
1430@end vtable
1431
1432
1433@node Creating an Info File
1434@chapter Creating an Info File from a Texinfo File
26901792
DL
1435
1436@code{makeinfo} is a utility that converts a Texinfo file into an Info
1437file; @code{texinfo-format-region} and @code{texinfo-format-buffer} are
1438GNU Emacs functions that do the same.
1439
b457dbd9
EZ
1440@xref{Top,, Overview of Texinfo, texinfo, Texinfo: The GNU
1441Documentation Format}, to learn how to write a Texinfo file.
1442
1443@xref{Creating an Info File,,, texinfo, Texinfo: The GNU Documentation
1444Format}, to learn how to create an Info file from a Texinfo file.
1445
1446@xref{Installing an Info File,,, texinfo, Texinfo: The GNU
1447Documentation Format}, to learn how to install an Info file after you
1448have created one.
1449
1450@node Index
1451@unnumbered Index
1452
1453This is an alphabetical listing of all the commands, variables, and
1454topics discussed in this document.
26901792 1455
b457dbd9 1456@printindex cp
26901792 1457
26901792 1458@bye
ab5796a9
MB
1459
1460@ignore
1461 arch-tag: 965c1638-01d6-4156-9227-b10418b9d8e8
1462@end ignore