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:
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.
INFOPATH
variable as follows:
setenv INFOPATH .:~/info:/usr/local/emacs/info
INFOPATH=.:$HOME/info:/usr/local/emacs/info export INFOPATH
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.