@node Doc, Type, User Interface, Top
@chapter Doc

@defun APROPOS (string &optional (package nil))
Package:LISP

Prints those symbols whose print-names contain STRING as substring.
If PACKAGE is non-NIL, then only the specified package is searched.


@end defun

@defun INFO (string &optional (list-of-info-files *default-info-files*))
PACKAGE:SI

Find all documentation about STRING in LIST-OF-INFO-FILES.  The search
is done for STRING as a substring of a node name, or for STRING in the
indexed entries in the first index for each info file.  Typically that
should be a variable and function definition index, if the info file is
about a programming language.  If the windowing system is connected,
then a choice box is offered and double clicking on an item brings up
its documentation.

Otherwise a list of choices is offered and the user may select some of
these choices.

list-of-info-files is of the form
@example
 ("gcl-si.info" "gcl-tk.info" "gcl.info")
@end example
The above list is the default value of *default-info-files*,
a variable in the SI package.   To find these files in the file
system, the search path *info-paths* is consulted as is the master
info directory @file{dir}.

see *Index *default-info-files*:: and *Index *info-paths*::.
For example
@example
(info "defun")

 0: DEFUN :(gcl-si.info)Special Forms and Functions.
 1: (gcl.info)defun.
Enter n, all, none, or multiple choices eg 1 3 : 1

Info from file /home/wfs/gcl-doc/gcl.info:
defun                                                               [Macro]
---------------------------------------------------------------------------
`Defun'  function-name lambda-list [[@{declaration@}* | documentation]]
...

@end example
would list the node @code{(gcl.info)defun}.
That is the node entitled @code{defun} from the info file gcl.info.   That
documentation is based on the ANSI common lisp standard.   The choice
@example
DEFUN :(gcl-si.info)Special Forms and Functions.
@end example

refers to the documentation on DEFUN from the info file gcl-si.info in
the node @i{Special Forms And Functions}.  This is an index reference
and only the part of the node which refers to @code{defun} will be
printed.

@example
(info "factor" '("maxima.info"))
@end example
would search the maxima info files index and nodes for @code{factor}.

@end defun





@defvar *info-paths*
Package SI:

A list of strings such as
@example
  '("" "/usr/info/" "/usr/local/lib/info/" "/usr/local/info/"
    "/usr/local/gnu/info/" )
@end example
saying where to look for the info files.   It is used implicitly
by @code{info}, see *Index info::.

Looking for maxima.info would look for the file
maxima.info in all the directories listed in *info-paths*.  If nto found
then it would look for @file{dir} in the *info-paths* directories,
and if it were found it would look in the @file{dir} for a menu item
such as

@example
* maxima: (/home/wfs/maxima-5.0/info/maxima.info).
@end example

@noindent
If such an entry exists then the directory there would be used for the
purpose of finding @code{maxima.info}

@end defvar
