Info files are usually kept in the `info' directory. (You can find the location of this directory within Emacs by typing C-h i to enter Info and then typing C-x C-f to see the full pathname to the `info' directory.)
For Info to work, the `info' directory must contain a file that serves as a top level directory for the Info system. By convention, this file is called `dir'. The `dir' file is itself an Info file. It contains the top level menu for all the Info files in the system. The menu looks like this:
* Menu: * Info: (info). Documentation browsing system. * Emacs: (emacs). The extensible, self-documenting text editor. * Texinfo: (texinfo). With one source file, make either a printed manual using TeX or an Info file. ...
Each of these menu entries points to the `Top' node of the Info file that is named in parentheses. (The menu entry does not need to specify the `Top' node, since Info goes to the `Top' node if no node name is mentioned. See section Referring to Other Info Files.)
Thus, the `Info' entry points to the `Top' node of the `info' file and the `Emacs' entry points to the `Top' node of the `emacs' file.
In each of the Info files, the `Up' pointer of the `Top' node refers
back to the
dir file. For example, the line for the `Top'
node of the Emacs manual looks like this in Info:
File: emacs Node: Top, Up: (DIR), Next: Distrib
(Note that in this case, the `dir' file name is written in upper case letters--it can be written in either upper or lower case. Info has a feature that it will change the case of the file name to lower case if it cannot find the name as written.)
To add a new Info file to your system, write a menu entry for it in the menu in the `dir' file in the `info' directory. Also, move the new Info file itself to the `info' directory. For example, if you were adding documentation for GDB, you would write the following new entry:
* GDB: (gdb). The source-level C debugger.
The first part of the menu entry is the menu entry name, followed by a colon. The second part is the name of the Info file, in parentheses, followed by a period. The third part is the description.
Conventionally, the name of an Info file has a `.info' extension. Thus, you might list the name of the file like this:
* GDB: (gdb.info). The source-level C debugger.
However, Info will look for a file with a `.info' extension if it does not find the file under the name given in the menu. This means that you can refer to the file `gdb.info' as `gdb', as shown in the first example. This looks better.
If an Info file is not in the `info' directory, there are two ways to specify its location:
For example, to reach a test file in the `~bob/manuals' directory, you could add an entry like this to the menu in the `dir' file:
* Test: (~bob/manuals/info-test). Bob's own test file.
In this case, the absolute file name of the `info-test' file is written as the second part of the menu entry.
Alternatively, you can tell Info where to look by setting the
INFOPATH environment variable in your `.cshrc' or
If you use
bash for your shell command interpreter,
you must set the
INFOPATH environment variable in the
`.profile' initialization file; but if you use
csh, you must
set the variable in the `.cshrc' initialization file. The two
files require slightly different command formats.
INFOPATHvariable as follows:
setenv INFOPATH .:~bob/manuals:/usr/local/emacs/info
INFOPATH=.:~bob/manuals:/usr/local/emacs/info export INFOPATH
Either form would cause Info to look first in the current directory, indicated by the `.', then in the `~bob/manuals' directory, and finally in the `/usr/local/emacs/info' directory (which is a common location for the standard Info directory).
Go to the first, previous, next, last section, table of contents.