Skip to content

How do I install a piece of Texinfo documentation?

Emacs releases come with pre-built Info files, and the normal install process places them in the correct location. This is true for most applications that provide Info files. The following section is only relevant if you want to install extra Info files by hand.

First, you must turn the Texinfo source files into Info files. You may do this using the stand-alone makeinfo program, available as part of the Texinfo package at

https://www.gnu.org/software/texinfo/

For information about the Texinfo format, read the Texinfo manual which comes with the Texinfo package. This manual also comes installed in Info format, so you can read it from Emacs; type C-h i m texinfo RET.

Alternatively, you could use the Emacs command M-x texinfo-format-buffer, after visiting the Texinfo source file of the manual you want to convert.

Neither texinfo-format-buffer nor makeinfo installs the resulting Info files in Emacs’s Info tree. To install Info files, perform these steps:

  1. Move the files to the info directory in the installed Emacs distribution. See What are src/config.h, site-lisp/default.el, etc.?, if you don’t know where that is.

  2. Run the install-info command, which is part of the Texinfo distribution, to update the main Info directory menu, like this:

    bash
     install-info --info-dir=dir-path dir-path/file

    where dir-path is the full path to the directory where you copied the produced Info file(s), and file is the name of the Info file you produced and want to install.

    If you don’t have the install-info command installed, you can edit the file info/dir in the installed Emacs distribution, and add a line for the top level node in the Info package that you are installing. Follow the examples already in this file. The format is:

    orgmode
    * Topic: (relative-pathname).  Short description of topic.

If you want to install Info files and you don’t have the necessary privileges, you have several options:

  • Info files don’t actually need to be installed before being used. You can use a prefix argument for the info command and specify the name of the Info file in the minibuffer. This goes to the node named ‘Top’ in that file. For example, to view an Info file named info-file in your home directory, you can type this:

    kbd
    C-u C-h i ~/info-file RET

    Alternatively, you can feed a file name to the Info-goto-node command (invoked by pressing g in Info mode) by typing the name of the file in parentheses, like this:

    kbd
    C-h i g (~/info-file) RET
  • You can create your own Info directory. You can tell Emacs where that Info directory is by adding its pathname to the value of the variable Info-default-directory-list. For example, to use a private Info directory which is a subdirectory of your home directory named Info, you could put this in your init file (see How do I set up an init file properly?):

    emacs-lisp
    (add-to-list 'Info-default-directory-list "~/Info/")

    You will need a top-level Info file named dir in this directory which has everything the system dir file has in it, except it should list only entries for Info files in that directory. You might not need it if (fortuitously) all files in this directory were referenced by other dir files. The node lists from all dir files in Info-default-directory-list are merged by the Info system.