Node:Other Info Directories, Next:Installing Dir Entries, Previous:New Info File, Up:Installing an Info File
If an Info file is not in the info directory, there are three
ways to specify its location:
dir file as the second part of the menu.
dir
file, in its directory; and then add the name of that directory to the
Info-directory-list variable in your personal or site
initialization file.
This variable tells Emacs where to look for dir files (the files
must be named dir). Emacs merges the files named dir from
each of the listed directories. (In Emacs version 18, you can set the
Info-directory variable to the name of only one
directory.)
INFOPATH environment
variable in your .profile or .cshrc initialization file.
(Only you and others who set this environment variable will be able to
find Info files whose location is specified this way.)
For example, to reach a test file in the /home/bob/info
directory, you could add an entry like this to the menu in the
standard dir file:
* Test: (/home/bob/info/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 could write the following in your .emacs file:
(require 'info)
(setq Info-directory-list
(cons (expand-file-name "/home/bob/info")
Info-directory-list))
This tells Emacs to merge the system dir file with the dir
file in /home/bob/info. Thus, Info will list the
/home/bob/info/info-test file as a menu entry in the
/home/bob/info/dir file. Emacs does the merging only when
M-x info is first run, so if you want to set
Info-directory-list in an Emacs session where you've already run
info, you must (setq Info-dir-contents nil) to force Emacs
to recompose the dir file.
Finally, you can tell Info where to look by setting the INFOPATH
environment variable in your shell startup file, such as .cshrc,
.profile or autoexec.bat. If you use a Bourne-compatible
shell such as sh or bash for your shell command
interpreter, you set the INFOPATH environment variable in the
.profile initialization file; but if you use csh or
tcsh, you set the variable in the .cshrc initialization
file. On MS-DOS/MS-Windows systems, you must set INFOPATH in
your autoexec.bat file or in the Registry. Each type of shell
uses a different syntax.
.cshrc file, you could set the INFOPATH
variable as follows:
setenv INFOPATH .:~/info:/usr/local/emacs/info
.profile file, you would achieve the same effect by
writing:
INFOPATH=.:$HOME/info:/usr/local/emacs/info export INFOPATH
autoexec.bat file, you write this command1:
set INFOPATH=.;%HOME%/info;c:/usr/local/emacs/info
The . indicates the current directory as usual. Emacs uses the
INFOPATH environment variable to initialize the value of Emacs's
own Info-directory-list variable. The stand-alone Info reader
merges any files named dir in any directory listed in the
INFOPATH variable into a single menu presented to you in the node
called (dir)Top.
However you set INFOPATH, if its last character is a
colon2, this
is replaced by the default (compiled-in) path. This gives you a way to
augment the default path with new directories without having to list all
the standard places. For example (using sh syntax):
INFOPATH=/local/info: export INFOPATH
will search /local/info first, then the standard directories.
Leading or doubled colons are not treated specially.
When you create your own dir file for use with
Info-directory-list or INFOPATH, it's easiest to start by
copying an existing dir file and replace all the text after the
* Menu: with your desired entries. That way, the punctuation and
special CTRL-_ characters that Info needs will be present.
Note the
use of ; as the directory separator, and a different syntax for
using values of other environment variables.
On MS-DOS/MS-Windows systems, use semi-colon instead.