
                            Emacspeak User's Manual
                                       
     _________________________________________________________________
                                      
                               Table of Contents
                                       
     * Introduction
     * Synthesizers Supported
          + Dectalk Express
          + Software Dectalk
          + Dectalk MultiVoice
     * Installation
          + Retrieving Emacspeak
          + Quick Installation
          + Configuring and Installing Emacspeak
          + Starting Emacspeak
     * Basic Usage
          + Overview of Emacspeak
          + Movement
          + Action
          + Getting Information Without Moving Point
          + Speech Device Commands
          + Voice Lock Mode
          + Miscellaneous
     * Compatibility with Emacs Subsystems
          + The Insiduous Big Brother DB
          + A rolodex interface
          + Smart buffer selection
          + Bookmarks
          + Custom
          + dmacro
          + face menus
          + The Emacs calculator
          + Compiling code from Inside Emacs
          + Calendar Management
          + C and C++ Programming
          + Java IDE
          + Object Oriented code browser
          + Editing Perl code
          + Python scripts
          + Editing tcl code
          + Editing LaTeX Documents
          + Editing and maintaining bibtex files
          + Editing SGML
          + Directory Editing
          + Tape Archives (.tar files)
          + Archives (.ar files)
          + A powerful spreadsheet
          + Ediff Mode
          + Old Ediff mode
          + Rich text editing
          + Eterm
               o Line Sub-mode of Term Mode
               o Char Sub-mode of Term Mode
               o Eterm Mode Commands
          + Folding Mode
          + Forms Editing Mode
          + Playing Gomoku against Emacs
          + A powerful information manager
          + Kotl outliner
          + Online info pages
          + Man page reader
          + Outline Editing
          + Editing messages
          + Rmail Mail Reader
          + Manage Tables
          + Template-based Editing
          + View mode for previewing files
          + Task manager for Emacs
          + GNUS News Reader
          + Vm Mail Reader
          + mail spool tracker
          + W3 World Wide Web Page Reader
          + Playing Solitaire
          + Playing Tetris
          + Widget Editing Mode
     * Advanced Features
          + Using a Remote Speech Server
          + Pronunciation Dictionaries
          + Hooks
          + Miscellaneous Variables
     * Future Directions
     * Internals of Emacspeak
          + Global variables
          + Data Structures
          + Miscellaneous Functions
     * Acknowledgements
     * Concept Index
     * Key Index
     * Command Index
     * Variable Index
       
     _________________________________________________________________
                                      
   @setfilename./emacspeak.info
   
   Emacspeak User's Manual
   
   First Edition, Emacspeak Version$Revision: 1.5 $
   
   October 1994
   
   T. V. Raman raman@crl.dec.com Copyright (C) 1994 T. V. Raman
   
   Permission is granted to make and distribute verbatim copies of this
   manual provided the copyright notice and this permission notice are
   preserved on all copies.
   
                                 Introduction
                                       
   This documentation was written by T. V. Raman, then substantially
   modified by Jim Van Zandt. Please direct any questions about it to
   jrv@vanzandt.mv.com.
   
   Emacspeak is an Emacs subsystem that allows the user to get feedback
   using synthesized speech.
   
   Screen reading programs allow a visually impaired user to get feedback
   using synthesized speech. Such programs have been commercially
   available for well over a decade. Most of them run on PC's under DOS,
   and there are now a few screen-readers for the Windows platform.
   However, screen-readers for the UNIX environment have been conspicuous
   in their absence.
   
   This means that most visually impaired computer users face the
   additional handicap of being DOS-impaired -- a far more serious
   problem:-)
   
   Emacspeak is an emacs subsystem that provides basic speech access
   functionality. Emacspeak will always have the shortcoming that it will
   only work under Emacs. This said, there is very little that cannot be
   done inside Emacs, so it's not a real shortcoming:-)
   
   Emacspeak does have a significant advantage: since it runs inside
   Emacs, a structure-sensitive, fully customizable editor, Emacspeak
   often has more context-specific information about what it is speaking
   than its commercial counterparts. In this sense, Emacspeak is not a
   "screenreader", it is a subsystem that produces speech output. A
   traditional screen-reader speaks the content of the screen, leaving it
   to the user to interpret the visually laid-out information. Emacspeak,
   on the other hand, treats speech as a first-class output modality; it
   speaks the information in a manner that is easy to comprehend when
   listening.
   
   This initial version provides a basic speech subsystem for Emacs;
   using Emacs' power and flexibility, it has proven straightforward to
   add modules that customize how things are spoken, e.g. depending on
   the major/minor mode of a given buffer. Note that the basic speech
   functionality provided by Emacspeak is sufficient to use most Emacs
   packages effectively; adding package-specific customizations makes the
   interaction much smoother. This is because package-specific extensions
   can take advantage of the current context.
   
   Emacspeak currently comes with speech extensions for several popular
   Emacs subsystems and editing modes. I would like to thank their
   respective authors for their wonderful work which makes Emacs more
   than a text editor(1). For those who doubt the credibility of a speech
   extension to Emacs working as a full blown spoken interface, here is a
   list of Emacs subsystems that have been customized to work with speech
   output.
   
    1. W3 for surfing the WWW.
    2. VM For reading and replying to email.
    3. Gnus for reading Usenet news.
    4. Calendar for maintaining appointments etc.
    5. auctex for editing TeX and LaTeX.
    6. Dired for navigating a file system.
    7. C and C++ editing extensions.
    8. Calc for working with the Emacs Calculator.
    9. Info for listening to online documentation.
   10. Folding for using Emacs as a structured folding editor.
   11. Tempo a package that allows for editing templates. This extension
       makes html-helper-mode speech friendly.
   12. Ispell for spell checking files.
   13. Eterm for launching terminal based programs. This extension
       enables you to login to another system and get spoken feedback, as
       well as running programs that can only be run from the shell.
       Note: eterm is a new improved terminal emulator by Perl Bothner
       (bothner@cygnus.com)
   14. Buffer-menu for navigating through the list of currently open
       buffers.
   15. Comint for command interpreters running in an inferior process.
       
   In addition, other editing modes like Perl and TCL modes work fluently
   with emacspeak Emacspeak; there is currently no speech extension for
   these because I have not found a need for it.
   
   Emacs-19's font-locking facilities are extended to the speech output
   as well; for instance, a user can customize the system to have
   different types of text spoken using different kinds of voices (speech
   fonts). Currently, this feature is used to provide "voice locking" for
   many popular editing modes like c-mode, tcl-mode, perl-mode,
   emacs-lisp-mode etc.
   
   The basic concepts used by Emacspeak are simple; all of the Emacs
   cursor movement commands as well as the various input-output functions
   are adapted to provide speech feedback. Hence, a user can just use
   Emacs as he normally would; Emacspeak works behind the scene to give
   audio feedback in addition to updating the screen.
   
                            Synthesizers Supported
                                       
   Emacspeak currently supports the software DecTalk (using my
   DTK-tclSH), the portable Dectalk Express, the MultiVoice, and older
   Dectalk 3 synthesizers.
   
Dectalk Express

   The Dectalk Express is a portable Dectalk speech synthesizer that can
   be connected to the serial port of a workstation or PC. It is the
   latest in the family of Dectalk synthesizers and is backwards
   compatible with other serial-line Dectalk synthesizers, e.g. the
   MultiVoice.
   
   Note: The Dectalk Express and the Software-Dectalk are both DTK-4.2.
   
   To use the Dectalk Express, set the environment variable DTK_PROGRAM
   to dtk-exp.
   
   The environment variable DTK_PORT tells emacspeak which port the
   Dectalk is connected to. By default, this is /dev/tty00 on DEC Ultrix
   (mips) and Digital UNIX (OSF on DECALPHA) and /dev/ttyS0 under Linux.
   
Software Dectalk

   Note: (dtk-tclsh has not been generally released. If you have a
   DECALPHA and the software Dectalk, please get in touch, and I will
   make dtk-tclsh available to you.)
   
   The Software Dectalk is a Dectalk Speech Synthesizer that runs in
   software on the DECALPHA. This software library allows user
   applications to produce synthesized speech.
   
   dtk-tclsh is a TCL shell with Dectalk extensions; the functions
   provided by the Dectalk library are accessible as TCL commands.
   dtk-TCLSH allows the user to write simple TCL scripts that produce
   speech.
   
   To use the Software Dectalk with Emacspeak, you need to:
     * Install the software Dectalk on your workstation. At CRL, see
       /crl/kits/DECtalk.
     * Set the environment variable DTK_TCL to the pathname to the
       dtk-tclsh executable. At CRL use ~raman/bin.alpha/dtk-tclsh, and
       Set the environment variable dtk_PROGRAM to "dtk-soft".
       
Dectalk MultiVoice

   The Dectalk MultiVoice is another speech synthesizer which can be
   connected to the serial port of a workstation or PC.
   
   To use the MultiVoice, set the environment variable DTK_PROGRAM to
   dtk-mv.
   
   Note: The device drivers use extended TCL, also known as TCLX. This is
   a typical source of confusion, so here is some TCL background.
   
   TCL is a scripting language. The vanila TCL executable is called
   tclsh. The extended TCL is called TCLX, but the corresponding
   executable is called tcl on most systems. For emacspeak, you need the
   extended TCL shell, ie the executable tcl. (Note: Extended TCL comes
   as part of the tcl disk set with the Slackware distribution of Linux).
   
                                 Installation
                                       
   This chapter of the manual deals with getting, configuring, compiling,
   and installing _Emacspeak_.
   
Retrieving Emacspeak

   Emacspeak is available from the WWW page for Emacspeak at
   http://www.cs.cornell.edu/Info/People/raman/emacspeak/emacspeak.html
   This page contains information on recent updates, and pointers into a
   potential FAQ list.
   
   There is a mailing list emacspeak@cs.vassar.edu for Emacspeak users,
   maintained by Greg E. Priest-Dorman. If you are using Emacspeak, you
   should send mail to priestdo@cs.vassar.edu and ask for a subscription.
   Use it for reporting problems or better still, your own contributions
   to Emacspeak.
   
   Note: I work on Emacspeak in my spare time; so please keep this in
   mind when requesting additional features.
   
Quick Installation

   If you are lucky, things will probably work "out of the box" for you.
   Here are the quick installation instructions. See the next section for
   detailed installation instructions.
   
     * Look over the Makefile and edit site-specific variables.
     * Type `make config' to configure the sources for your site.
     * Type `make emacspeak' to compile the files.
     * Run it by doing one of:
          + Start Emacs as follows:

emacs -l <emacspeak-dir>/emacspeak-setup.el -l ~/.emacs
          + Add the line

(load-file "<emacspeak-dir>/emacspeak-setup.el")
        to the top of your .emacs file.
          + Run the shell script emacspeak.sh found in the directory
            <emacspeak-dir>
       In the above, <emacspeak-dir> refers to the directory where you
       unpacked the sources.
       
Configuring and Installing Emacspeak

   Note: You need GNU Emacs 19 (19.23 or later) for using Emacspeak.
   Emacspeak may work with other flavors of Emacs19, e.g. xemacs, but I
   have not tried it.
   
   The driver for the Dectalk is written in TclX. (For example, see the
   source file `dtk-exp'). If you happen to rewrite it in C, I'd be more
   than happy to incorporate it in a future version of Emacspeak.
   
     * Decide where you want the Emacspeak elisp files. Most Unix
       packages are unpacked and compiled in one directory, and then the
       executable, documentation, and data files are installed in the
       appropriate system directories. However, Emacspeak elisp
       byte-compiled files are conventionally left in the same directory
       as the source files. One reasonable choice would be
       `/usr/local/share/emacs/site-lisp/emacspeak'. Once you have
       decided on the appropriate directory, make it if necessary and
       unpack the distribution .tar file there.
     * Look through the introductory section of the Makefile to see if
       you need to edit it for your site. You may also want to define the
       Make variable DECTALK to give you spoken feedback during
       installation (a hundred lines or so). For example, on Ultrix you
       might define

DECTALK=>/dev/tty00
     * Check the directory prefix for installation. The default is
       `/usr/local', so `.info' files go to `/usr/local/info' and the
       executable file goes to `/usr/local/bin'. To change this, edit the
       line defining prefix.
       
   Configure the source files by typing `make config'. At this point you
   can check that the device driver is correctly configured by typing

tcl dtk-exp

   (assuming you are using the Dectalk Express). You should hear the
   Dectalk speak and get a TCL prompt if everything is okay.
   
   If you're feeling paranoid, you can perform a couple of additional
   tests at this point. Execute the following commands in the running tcl
   session you just started above. (Most users will not need to do this;
   it is a sanity check and is useful in tracking problems, especially if
   you find emacspeak beginning to talk and then immediately fall
   silent.)
   
     * `dectalk_speak testing' You should hear the Dectalk speak the
       text.
     * `dectalk_stop' The above command stops speech. You should see a
       TCL prompt when you execute it. If things appear to hang when you
       execute `dectalk_stop' i.e. you don't see a TCL prompt
         1. The serial cable conecting your speech device is flaky
         2. Your serial port is flaky
         3. The stty settings on the port are incorrect for your system
       In the case of incorrect stty settings please report the problem.
       The following UNIX command can be used to report the stty
       settings:

stty -a < serial_port

   Quit this TCL session by typing control-D.
   
   Next, compile the elisp files by typing
make emacspeak

   Finally, install the documentation and executable files by typing
make install

   The driver program and/or output port can also be specified at run
   time by setting the shell environment variables DTK_PROGRAM and
   DTK_PORT. Examples: If using csh or tcsh

setenv DTK_PROGRAM "dtk-exp"

   if using sh or bash
DTK_PROGRAM=dtk-exp
export DTK_PROGRAM

   Similarly,
DTK_PORT=/dev/ttyS0

   You can always set these variables from a running Emacs session by
   executing the Emacs setenv command.
   
Starting Emacspeak

   To use emacspeak you can do one of the following:
   
     * Add the line
 (load-file (expand-file-name "emacspeak_dir/emacspeak-setup.el"))
   to the start of your `.emacs' file. This will start emacspeak every
       time you use Emacs. (This might not be a good idea if a sighted
       person often uses your account.)
     * Alternatively, define emacspeak as an alias. If you use csh or
       tcsh:

alias emacspeak "emacs -q -l emacspeak_dir/emacspeak-setup.el -l $HOME/.emacs"
   If you use bash (the default under linux):

alias emacspeak="emacs -q -l emacspeak_dir/emacspeak-setup.el -l $HOME/.emacs"
   This could go into the system-wide initilization file (`/etc/profile')
       or in the personal initialization file (in `~/.bash_profile',
       `~/.bash_login', or `~/.profile') Note: in all of the above you
       should of course replace emacspeak_dir with your site-specific
       value
     * Use the emacspeak.sh shell script which is equivalent to the above
       alias, and is created during the above installation procedure.
       
   Using any one of these methods will:
   
     * Add the Emacspeak code directory to the load-path.
     * Load the relevant libraries.
     * Start up Emacspeak.
       
                                  Basic Usage
                                       
   Note: This documentation should be used in conjunction with the online
   Emacs info pages that extensively document Emacs itself. These
   sections briefly describe the speech-enabling extensions. However,
   they should not be considered a substitute for reading the Emacs
   manual.
   
   How successfully you use Emacspeak will depend on how well you learn
   your Emacs.
   
   All Emacs navigation and editing commands have been speech enabled.
   Thus, moving to the next or previous word, line or sexp results in the
   text around point being spoken. Exactly how much text is spoken is
   determined by the amount by which point moves.
   
   In addition, Emacspeak provides basic reading functions that can be
   invoked to listen to chunks of text without moving point.
   
Overview of Emacspeak

   `M-x emacspeak-describe-emacspeak'
          Give a brief overview of emacspeak.
   `C-e C-b'
   `M-x emacspeak-submit-bug'
          Function to submit a bug to the programs maintainer
          
Movement

   All of the normal Emacs movement commands will speak the relevant
   information after moving. Here are some of the cursor movement
   functions that have been speech enabled. Note that this list only
   enumerates a few of these speech enabled commands; the purpose of
   emacspeak is to speech-enable all of emacs and provide you spoken
   feedback as you work. Thus, this list is here only as a representative
   example of the kind of speech-enabling extensions Emacspeak provides.
   
   C-n
   M-x next-line
   down
          Speaks line moved to.
   C-p
   M-x previous-line
   up
          Speaks line moved to.
   M-f
   M-x forward-word
          Speaks word moved to. Places point on the first character of
          the next work, rather than on the space preceding it (This is
          my personal preference).
   M-b
   M-x backward-word
          Speaks word moved to.
   M-C-f
   M-x forward-sexp
          Speaks sexp moved to. If the sexp spans more than a line, only
          the first line is spoken.
   M-C-b
   M-x backward-sexp
          Speaks sexp moved to. If the sexp spans more than a line, only
          the first line is spoken.
   M-<
   M-x beginning-of-buffer
          Speaks line moved to.
   M->
   M-x end-of-buffer
          Speaks line moved to.
   M-m
   M-x back-to-indentation
          Speaks entire current line. A useful way of hearing the current
          line.
          
   For a complete list of the functions that have been advised, see file
   `emacspeak-advice.el'.
   
Action

   While typing in an Emacs buffer, hitting space speaks the recently
   typed word. I use TMC completion all the time; so Emacspeak will speak
   the completion just inserted as well as the next possible completion.
   Under Emacs19, use load-library ret completion ret for loading the
   completion package.
   
   The standard Emacs I/O functions have also been advised to speak. All
   forms of completion, including minibuffer completion, provide speech
   feedback.
   
   In addition, Emacspeak provides a number of commands for reading
   portions of the current buffer, getting status information, and
   modifying Emacspeak's state.
   
   All of the commands are documented in the subsequent sections. They
   can be classified into types:
   
     * Emacspeak commands for listening to chunks of information. The
       names of these commands all start with the common prefix
       emacspeak-. All Emacspeak commands are bound to the keymap
       emacspeak-keymap and are accessed with the key Control e(2). Thus,
       the Emacspeak command _emacspeak-speak-line_ is bound to l in
       keymap emacspeak-keymap and can be accessed with the keystroke
       Control-e l. If for some reason you wish to use some key other
       than control-e as the common keyboard prefix for all Emacspeak
       commands, set the variable emacspeak-prefix.
     * The second category of commands provided by Emacspeak manipulate
       the state of the speech device. The names of these commands start
       with the common prefix dtk- and are bound in keymap
       emacspeak-dtk-submap. You can access these commands via the prefix
       Control-e d(3). Thus, the command _dtk-set-rate_ is bound to r in
       keymap emacspeak-dtk-submap and can be executed by pressing
       Control e d r.
       
   Emacs has extensive online help; so does emacspeak. Please use it.
   This info manual is only to get you started. You can get a summary of
   Emacspeak's features by pressing Control-h Control-e
   
Getting Information Without Moving Point

   The following commands allow you to listen to information without
   moving point (point is emacs terminology for the editing cursor).
   
   Emacspeak uses C-e as a prefix-key. Note: In all of the following, a
   prefix arg (conventionally C-u) will read the "rest of the unit" and a
   negative prefix arg (conventionally C-u -) will read the initial part
   of the unit before point. As an example, given the sexp
   able-baker-charlie with point on the - preceding the baker,
   _emacspeak-speak-speak_ will say:
   
     * able-baker-charlie with no prefix-arg.
     * baker-charlie with a positive prefix-arg.
     * able with a negative prefix arg.
       
   Note: I am not satisfied with the above, in fact providing a negative
   prefix is so cumbersome that I never use it.
   
   Note: For a better way of reading the beginning and or rest of a line
   etc, see the extended Emacspeak reading commands such as
   emacspeak-speak-line-interactively.
   
   `M-x emacspeak-audio-annotate-paragraphs'
          Set property auditory-icon at front of all paragraphs.
          Interactive prefix arg prompts for sound cue to use
   `M-x emacspeak-speak-voice-annotate-paragraphs'
          Locate paragraphs and voice annotate the first word. Here,
          paragraph is taken to mean a chunk of text preceeded by a blank
          line. Useful to do this before you listen to an entire buffer.
   `C-e M-a'
   `M-x emacspeak-toggle-action-mode'
          Toggle state of Emacspeak action mode. Interactive prefix arg
          means toggle the global default value, and then set the current
          local value to the result.
   `C-e d l'
   `M-x emacspeak-toggle-line-echo'
          Toggle state of Emacspeak line echo. Interactive prefix arg
          means toggle the global default value, and then set the current
          local value to the result.
   `C-e d w'
   `M-x emacspeak-toggle-word-echo'
          Toggle state of Emacspeak word echo. Interactive prefix arg
          means toggle the global default value, and then set the current
          local value to the result.
   `C-e d k'
   `M-x emacspeak-toggle-character-echo'
          Toggle state of Emacspeak character echo. Interactive prefix
          arg means toggle the global default value, and then set the
          current local value to the result.
   `C-e C-d'
   `M-x emacspeak-toggle-show-point'
          Toggle state of Emacspeak-show-point. Interactive prefix arg
          means toggle the global default value, and then set the current
          local value to the result.
   `C-e d i'
   `M-x emacspeak-toggle-audio-indentation'
          Toggle state of Emacspeak audio indentation. Interactive prefix
          arg means toggle the global default value, and then set the
          current local value to the result. Specifying the method of
          indentation as `tones' results in the Dectalk producing a tone
          whose length is a function of the line's indentation.
          Specifying `speak' results in the number of initial spaces
          being spoken.
   `C-e r'
   `M-x emacspeak-speak-region'
          Speak region.
   `C-e l'
   `M-x emacspeak-speak-line'
          Speak current line. With prefix arg, speaks the rest of the
          line from point. Negative prefix optional arg speaks from start
          of line to point. Voicifies if voice-lock-mode is on. Indicates
          indentation with a tone if audio indentation is in use.
          Indicates position of point with an aural highlight if option
          emacspeak-show-point is turned on --see command
          emacspeak-show-point bound to `M-x emacspeak-show-point'. Lines
          that start hidden blocks of text, e.g. outline header lines, or
          header lines of blocks created by command
          emacspeak-hide-or-expose-block are indicated with auditory icon
          ellipses.
   `C-e W'
   `M-x emacspeak-speak-spell-current-word'
          Spell word at point
   `C-e w'
   `M-x emacspeak-speak-word'
          Speak current word. With prefix arg, speaks the rest of the
          word from point. Negative prefix arg speaks from start of word
          to point. If executed on the same buffer position a second
          time, the word is spelt instead of being spoken.
   `C-e c'
   `M-x emacspeak-speak-char'
          Speak char under point Pronounces character phonetically unless
          called with a prefix arg.
   `C-e C'
   `M-x emacspeak-speak-display-char'
          Display char under point using current speech display table.
          Behavior is the same as command emacspeak-speak-char bound to
          C-e c for characters in the range 0--127.
   `M-x emacspeak-speak-set-display-table'
          Sets up buffer specific speech display table that controls how
          special characters are spoken. Interactive prefix argument
          causes setting to be global.
   `M-x emacspeak-speak-sentence'
          Speak current sentence. With prefix arg, speaks the rest of the
          sentence from point. Negative prefix arg speaks from start of
          sentence to point.
   `C-e ''
   `M-x emacspeak-speak-sexp'
          Speak current sexp. With prefix arg, speaks the rest of the
          sexp from point. Negative prefix arg speaks from start of sexp
          to point. If voice-lock-mode is on, then uses the personality.
   `M-x emacspeak-speak-page'
          Speak a page. With prefix arg, speaks rest of current page.
          Negative prefix arg will read from start of current page to
          point. If voice-lock-mode is on, then it will use any defined
          personality.
   `C-e ['
   `M-x emacspeak-speak-paragraph'
          Speak paragraph. With prefix arg, speaks rest of current
          paragraph. Negative prefix arg will read from start of current
          paragraph to point. If voice-lock-mode is on, then it will use
          any defined personality.
   `C-e b'
   `M-x emacspeak-speak-buffer'
          Speak current buffer contents. With prefix arg, speaks the rest
          of the buffer from point. Negative prefix arg speaks from start
          of buffer to point. If voice lock mode is on, the paragraphs in
          the buffer are voice annotated first, see command
          emacspeak-speak-voice-annotate-paragraphs.
   `M-x emacspeak-speak-front-of-buffer'
          Speak the buffer from start to point
   `C-e n'
   `M-x emacspeak-speak-rest-of-buffer'
          Speak remainder of the buffer starting at point
   `C-e h'
   `M-x emacspeak-speak-help'
          Speak help buffer if one present. With prefix arg, speaks the
          rest of the buffer from point. Negative prefix arg speaks from
          start of buffer to point.
   `M-x emacspeak-speak-completions'
          Speak completions buffer if one present.
   `M-x emacspeak-speak-minibuffer'
          Speak the minibuffer contents With prefix arg, speaks the rest
          of the buffer from point. Negative prefix arg speaks from start
          of buffer to point.
   `M-x next-completion'
          Move to the next item in the completion list. WIth prefix
          argument N, move N items (negative N means move backward).
   `M-x previous-completion'
          Move to the previous item in the completion list.
   `C-e M-m'
   `M-x emacspeak-toggle-mail-alert'
          Toggle state of Emacspeak mail alert. Interactive prefix arg
          means toggle the global default value, and then set the current
          local value to the result. Turning on this option results in
          Emacspeak producing an auditory icon indicating the arrival of
          new mail when displaying the mode line.
   `C-e m'
   `M-x emacspeak-speak-mode-line'
          Speak the mode-line.
   `C-e M'
   `M-x emacspeak-speak-minor-mode-line'
          Speak the minor mode-information.
   `C-e C-l'
   `M-x emacspeak-speak-line-number'
          Speak the line number of the current line.
   `C-e f'
   `M-x emacspeak-speak-buffer-filename'
          Speak name of file being visited in current buffer. Speak
          default directory if invoked in a dired buffer, or when the
          buffer is not visiting any file.
   `C-e [up]'
   `M-x emacspeak-read-previous-line'
          Read previous line, specified by an offset, without moving.
          Default is to read the previous line.
   `C-e [down]'
   `M-x emacspeak-read-next-line'
          Read next line, specified by an offset, without moving. Default
          is to read the next line.
   `M-x emacspeak-read-previous-word'
          Read previous word, specified as a prefix arg, without moving.
          Default is to read the previous word.
   `M-x emacspeak-read-next-word'
          Read next word, specified as a numeric arg, without moving.
          Default is to read the next word.
   `C-e t'
   `M-x emacspeak-speak-time'
          Speak the time.
   `C-e v'
   `M-x emacspeak-speak-version'
          Announce version information for running emacspeak.
   `C-e k'
   `M-x emacspeak-speak-current-kill'
          Speak the current kill entry. This is the text that will be
          yanked in by the next `C-y'. Prefix numeric arg, count,
          specifies that the text that will be yanked as a result of a
          `C-y' followed by count-1 `ESC y' be spoken. The kill number
          that is spoken says what numeric prefix arg to give to command
          yank.
   `C-e d z'
   `M-x emacspeak-zap-dtk'
          Send this command to the Dectalk directly.
   `C-e d t'
   `M-x emacspeak-dial-dtk'
          Prompt for and dial a phone number with the Dectalk.
   `C-e d V'
   `M-x emacspeak-dtk-speak-version'
          Use this to find out which version of the Dectalk firmware you
          have.
   `C-e C-@'
   `M-x emacspeak-speak-current-mark'
          Speak the line containing the mark. With no argument, speaks
          the line containing the mark--this is where
          exchange-point-and-mark `M-x exchange-point-and-mark' would
          jump. Numeric prefix arg 'n' speaks line containing mark 'n'
          where 'n' is one less than the number of times one has to jump
          using set-mark-command to get to this marked position. The
          location of the mark is indicated by an aural highlight
          achieved by a change in voice personality.
   `M-x emacspeak-execute-repeatedly'
          Execute command repeatedly.
   `C-e C-m'
   `M-x emacspeak-speak-continuously'
          Speak a buffer continuously. First prompts using the minibuffer
          for the kind of action to perform after speaking each chunk.
          E.G. speak a line at a time etc. Speaking commences at current
          buffer position. Pressing C-g breaks out, leaving point on last
          chunk that was spoken. Any other key continues to speak the
          buffer.
   `C-e .'
   `M-x emacspeak-speak-browse-buffer'
          Browse the current buffer by reading it a paragraph at a time.
   `M-x emacspeak-speak-skim-paragraph'
          Skim paragraph. Skimming a paragraph results in the speech
          speeding up after the first clause. Speech is scaled by the
          value of dtk-speak-skim-scale
   `M-x emacspeak-speak-skim-next-paragraph'
          Skim next paragraph.
   `M-x emacspeak-speak-skim-buffer'
          Skim the current buffer a paragraph at a time.
   `C-e C-h'
   `M-x emacspeak-learn-mode'
          Helps you learn the keys. You can press keys and hear what they
          do. To leave, press `C-g'.
   `C-e C-q'
   `M-x emacspeak-toggle-comint-autospeak'
          Toggle state of Emacspeak comint autospeak. When turned on,
          comint output is automatically spoken. Turn this on if you want
          your shell to speak its results. Interactive prefix arg means
          toggle the global default value, and then set the current local
          value to the result.
   `C-e q'
   `M-x emacspeak-toggle-speak-messages'
          Toggle the state of whether emacspeak echoes messages.
   `M-x emacspeak-speak-current-field'
          Speak current field. A field is defined currently as a sequence
          of non-white space characters. may be made mode specific later.
   `C-e >'
   `M-x emacspeak-speak-next-field'
          Skip across the next contiguous sequence of non-blank
          characters, and speak it. Useful in moving across fields. Will
          be improved if it proves useful.
   `C-e <'
   `M-x emacspeak-speak-previous-field'
          Skip backwards across the next contiguous sequence of non-blank
          characters, and speak it. Useful in moving across fields. Will
          be improved if it proves useful.
   `C-e ='
   `M-x emacspeak-speak-current-column'
          Speak the current column
   `C-e %'
   `M-x emacspeak-speak-current-percentage'
          Announce the percentage into the current buffer.
   `C-e a'
   `M-x emacspeak-speak-message-again'
          Speak the last message from Emacs once again.
   `C-e C-w'
   `M-x emacspeak-speak-window-information'
          Speaks information about current windows.
   `M-x emacspeak-speak-current-window'
          Speak contents of current window. Speaks entire window
          irrespective of point.
   `C-e C-o'
   `M-x emacspeak-speak-other-window'
          Speak contents of `other' window. Speaks entire window
          irrespective of point. Semantics of `other' is the same as for
          the builtin emacs command `other-window'.
   `C-e C-n'
   `M-x emacspeak-speak-next-window'
          Speak the next window
   `C-e C-p'
   `M-x emacspeak-speak-previous-window'
          Speak the previous window
   `M-x emacspeak-owindow-scroll-up'
          Scroll up the window that command other-window would move to.
          Speak the window contents after scrolling.
   `M-x emacspeak-owindow-scroll-down'
          Scroll down the window that command other-window would move to.
          Speak the window contents after scrolling.
   `M-x emacspeak-owindow-next-line'
          Move to the next line in the other window and speak it. Numeric
          prefix arg can specify number of lines to move.
   `M-x emacspeak-owindow-previous-line'
          Move to the next line in the other window and speak it. Numeric
          prefix arg can specify number of lines to move.
   `M-x emacspeak-owindow-speak-line'
          Speak the current line in the other window.
   `M-x emacspeak-speak-predefined-window'
          Speak one of the first 10 windows on the screen. In general,
          you'll never have emacs split the screen into more than two or
          three. Argument arg determines the 'other' window to speak.
          Speaks entire window irrespective of point. Semantics of
          `other' is the same as for the builtin emacs command
          `other-window'.
   `C-e B'
   `M-x emacspeak-speak-buffer-interactively'
          Speak the start of, rest of, or the entire buffer. 's' to speak
          the start. 'r' to speak the rest. any other key to speak entire
          buffer.
   `C-e H'
   `M-x emacspeak-speak-help-interactively'
          Speak the start of, rest of, or the entire help. 's' to speak
          the start. 'r' to speak the rest. any other key to speak entire
          help.
   `C-e L'
   `M-x emacspeak-speak-line-interactively'
          Speak the start of, rest of, or the entire line. 's' to speak
          the start. 'r' to speak the rest. any other key to speak entire
          line.
   `C-e P'
   `M-x emacspeak-speak-paragraph-interactively'
          Speak the start of, rest of, or the entire paragraph. 's' to
          speak the start. 'r' to speak the rest. any other key to speak
          entire paragraph.
   `C-e ]'
   `M-x emacspeak-speak-page-interactively'
          Speak the start of, rest of, or the entire page. 's' to speak
          the start. 'r' to speak the rest. any other key to speak entire
          page.
   `M-x emacspeak-speak-word-interactively'
          Speak the start of, rest of, or the entire word. 's' to speak
          the start. 'r' to speak the rest. any other key to speak entire
          word.
   `C-e'
   `M-x emacspeak-speak-sexp-interactively'
          Speak the start of, rest of, or the entire sexp. 's' to speak
          the start. 'r' to speak the rest. any other key to speak entire
          sexp.
   `C-e x'
   `M-x emacspeak-view-register'
          Display the contents of a register, and then speak it.
   `C-e R'
   `M-x emacspeak-speak-rectangle'
          Speak a rectangle of text. Rectangle is delimited by point and
          mark. When call from a program, arguments specify the start and
          end of the rectangle.
   `M-x emacspeak-voicify-rectangle'
          Voicify the current rectangle. Prompts for personality with
          completion when called interactively. When calling from a
          program,arguments are start end personality
   `C-e o'
   `M-x emacspeak-voicify-region'
          Voicify the current region. Prompts for personality with
          completion when called interactively. When calling from a
          program,arguments are start end personality
   `M-x emacspeak-blink-matching-open'
          Display matching delimiter in the minibuffer
   `C-e )'
   `M-x emacspeak-use-customized-blink-paren'
          Ask Emacs to use a customized blink-paren function that speaks
          the line containing the matching opening paren. We need to call
          this in case Emacs is anal and loads its own builtin
          blink-paren function which does not talk.
   `M-x emacspeak-skip-blank-lines-forward'
          Move forward across blank lines and leave point at the
          beginning of the first non-blank line. This line is then
          spoken. Signals end of buffer.
   `M-x emacspeak-skip-blank-lines-backward'
          Move backward across blank lines and leave point at the
          beginning of the first non-blank line. This line is then
          spoken. Signals beginning of buffer.
   `C-e M-v'
   `M-x emacspeak-show-personality-at-point'
          Show value of property personality at point.
   `C-e M-p'
   `M-x emacspeak-show-property-at-point'
          Show value of property at point. If optional arg property is
          not supplied, read it interactively. Provides completion based
          on properties that are of interest. If no property is set, show
          a message and exit.
   `C-e M-\C-@'
   `M-x emacspeak-speak-spaces-at-point'
          Speak the white space at point
   `M-x emacspeak-switch-to-previous-buffer'
          Switch to most recently used interesting buffer
   `M-x emacspeak-kill-buffer-quietly'
          Kill current buffer without asking for confirmation.
   `M-x emacspeak-generate-documentation'
          Generates docs for all emacspeak commands. Prompts for filename
          in which to save the documentation. Warning! Contents of file
          filename will be overwritten.
          
Speech Device Commands

   `C-e d d'
   `M-x dtk-select-server'
          Select a speech server interactively. This will be the server
          that is used when you next call either `M-x dtk-initialize' or
          `M-x dtk-emergency-restart'.
   `C-e C-s'
   `M-x dtk-emergency-restart'
          Use this to nuke the currently running dtk server and restart
          it. Useful if you want to switch to another synthesizer while
          emacspeak is running. Also useful for emergency stopping of
          speech.
   `C-e d b'
   `M-x dtk-toggle-debug'
          Toggle state of the debug flag. When debugging is on, you can
          switch to the buffer *speaker* to examine the output from the
          process that talks to the speech device. Note: *speaker* is a
          hidden buffer, ie it has a leading space in its name.
   `C-e d [space]'
   `M-x dtk-toggle-splitting-on-white-space'
          Toggle state of emacspeak that decides if we split text purely
          by clause boundaries, or also include whitespace. By default,
          emacspeak sends a clause at a time to the speech device. This
          produces fluent speech for normal use. However in modes such as
          shell-mode and some programming language modes, clause markers
          appear infrequently, and this can result in large amounts of
          text being sent to the speech device at once, making the system
          unresponsive when asked to stop talking. Splitting on white
          space makes emacspeak's stop command responsive. However, when
          splitting on white space, the speech sounds choppy since the
          synthesizer is getting a word at a time.
   `C-e d C-m'
   `M-x dtk-set-chunk-separator-syntax'
          Interactively set how text is split in chunks. See the emacs
          documentation on syntax tables for details on how characters
          are classified into various syntactic classes.
          
   `C-e s'
   `M-x dtk-stop'
          Stop speech now.
   `C-e d a'
   `M-x dtk-add-cleanup-pattern'
          Add this pattern to the list of repeating patterns that are
          cleaned up. Optional interactive prefix arg deletes this
          pattern if previously added. Cleaning up repeated patterns
          results in emacspeak speaking the pattern followed by a repeat
          count instead of speaking all the characters making up the
          pattern. Thus, by adding the repeating pattern `.' (this is
          already added by default) emacspeak will say "aw fifteen dot"
          when speaking the string "..............." instead of "period
          period period period "
   `C-e d r'
   `M-x dtk-set-rate'
          Set speaking rate for the tts. Interactive prefix arg means set
          the global default value, and then set the current local value
          to the result.
   `M-x dtk-set-predefined-speech-rate'
          Set speech rate to one of nine predefined levels. Interactive
          prefix arg says to set the rate globally.
   `C-e d f'
   `M-x dtk-set-character-scale'
          Set scale factor by which speech rate is scaled when speaking
          characters. Interactive prefix arg means set the global default
          value, and then set the current local value to the result.
   `C-e d q'
   `M-x dtk-toggle-quiet'
          Toggle state of the speech device between being quiet and
          talkative. Useful if you want to continue using an emacs
          session that has emacspeak loaded but wish to make the speech
          shut up.
   `C-e d I'
   `M-x dtk-toggle-stop-immediately-while-typing'
          Toggle state of variable dtk-stop-immediately-while-typing. As
          the name implies, if T then speech flushes immediately as you
          type.
   `C-e d s'
   `M-x dtk-toggle-split-caps'
          Toggle split caps mode. Split caps mode is useful when reading
          Hungarian notation in program source code. Interactive prefix
          arg means toggle the global default value, and then set the
          current local value to the result.
   `C-e d c'
   `M-x dtk-toggle-capitalization'
          Toggle capitalization. when set, capitalization is indicated by
          a short beep. Interactive prefix arg means toggle the global
          default value, and then set the current local value to the
          result.
   `C-e d C'
   `M-x dtk-toggle-allcaps-beep'
          Toggle allcaps-beep. when set, allcaps words are indicated by a
          short beep. Interactive prefix arg means toggle the global
          default value, and then set the current local value to the
          result. Note that allcaps-beep is a very useful thing when
          programming. However it is irritating to have it on when
          reading documents.
   `C-e d p'
   `M-x dtk-set-punctuations'
          Set punctuation state. Possible values are `some', `all', or
          `none'. Interactive prefix arg means set the global default
          value, and then set the current local value to the result.
   `M-x dtk-set-punctuations-to-all'
          Set punctuation mode to all. Interactive prefix arg sets
          punctuation mode globally.
   `M-x dtk-set-punctuations-to-some'
          Set punctuation mode to some. Interactive prefix arg sets
          punctuation mode globally.
   `C-e d m'
   `M-x dtk-set-pronunciation-mode'
          Set pronunciation mode. This command is valid only for newer
          Dectalks, e.g. the Dectalk Express. Possible values are `math,
          name, europe, spell', all of which can be turned on or off.
   `C-e d R'
   `M-x dtk-reset-state'
          Restore sanity to the Dectalk. Typically used after the Dectalk
          has been power cycled.
   `C-e p'
   `M-x dtk-pause'
          Pause ongoing speech. The speech can be resumed with command
          dtk-resume normally bound to C-e [space]. Pausing speech is
          useful when one needs to perform a few actions before
          continuing to read a large document. Emacspeak gives you speech
          feedback as usual once speech has been paused. dtk-resume
          continues the interrupted speech irrespective of the buffer in
          which it is executed. Optional first arg pauses speech even if
          there is no ongoing speech. This lets you flush paused speech
          without having to resume it. If speech has already been paused
          once, this command will not pause speech again-- instead you
          will hear an auditory warning if have auditory icons turned on.
   `C-e [space]'
   `M-x dtk-resume'
          Resumes speech that has been suspended by executing command
          dtk-pause bound to C-e p. If speech has not been paused, and
          variable dtk-resume-should-toggle is t then this command will
          pause ongoing speech.
          
Voice Lock Mode

   `C-e d v'
   `M-x voice-lock-mode'
          Toggle Voice Lock mode. With arg, turn Voice Lock mode on if
          and only if arg is positive. When Voice Lock mode is enabled,
          text is voiceified as you type it: - Comments are displayed in
          `voice-lock-comment-personality'; - Strings are displayed in
          `voice-lock-string-personality'; - Certain other expressions
          are displayed in other personalities according to the value of
          the variable `voice-lock-keywords'. You can enable Voice Lock
          mode in any major mode automatically by turning on in the major
          mode's hook. For example, put in your ~/.emacs: (add-hook
          'c-mode-hook 'turn-on-voice-lock) Alternatively, you can use
          Global Voice Lock mode to automagically turn on Voice Lock mode
          in buffers whose major mode supports it and whose major mode is
          one of `voice-lock-global-modes'. For example, put in your
          ~/.emacs: (global-voice-lock-mode t) There are a number of
          support modes that may be used to speed up Voice Lock mode in
          various ways, specified via the variable
          `voice-lock-support-mode'. Where major modes support different
          levels of voiceification, you can use the variable
          `voice-lock-maximum-decoration' to specify which level you
          generally prefer. When you turn Voice Lock mode on/off the
          buffer is voiceified/devoiceified, though voiceification occurs
          only if the buffer is less than `voice-lock-maximum-size'. For
          example, to specify that Voice Lock mode use use Lazy Lock mode
          as a support mode and use maximum levels of voiceification, put
          in your ~/.emacs: (setq voice-lock-support-mode
          'lazy-voice-lock-mode) (setq voice-lock-maximum-decoration t)
          To voiceify a buffer, without turning on Voice Lock mode and
          regardless of buffer size, you can use `M-x
          voice-lock-voiceify-buffer'. To voiceify a block (the function
          or paragraph containing point, or a number of lines around
          point), perhaps because modification on the current line caused
          syntactic change on other lines, you can use `M-x
          voice-lock-voiceify-block'. The default Voice Lock mode
          personalities and their attributes are defined in the variable
          `voice-lock-personality-attributes', and Voice Lock mode
          default settings in the variable `voice-lock-defaults-alist'.
          You can set your own default settings for some mode, by setting
          a buffer local value for `voice-lock-defaults', via its mode
          hook.
   `M-x global-voice-lock-mode'
          Toggle Global Voice Lock mode. With prefix ARG, turn Global
          Voice Lock mode on if and only if ARG is positive. Displays a
          message saying whether the mode is on or off if MESSAGE is
          non-nil. Returns the new status of Global Voice Lock mode
          (non-nil means on). When Global Voice Lock mode is enabled,
          Voice Lock mode is automagically turned on in a buffer if its
          major mode is one of `voice-lock-global-modes'.
   `M-x voice-lock-voiceify-buffer'
          Voiceify the current buffer the way `voice-lock-mode' would.
   `M-x voice-lock-voiceify-block'
          Voiceify some lines the way `voice-lock-voiceify-buffer' would.
          The lines could be a function or paragraph, or a specified
          number of lines. If ARG is given, voiceify that many lines
          before and after point, or 16 lines if no ARG is given and
          `voice-lock-mark-block-function' is nil. If
          `voice-lock-mark-block-function' non-nil and no ARG is given,
          it is used to delimit the region to voiceify.
          
   `M-x fast-voice-lock-mode'
          Toggle Fast Lock mode. With arg, turn Fast Lock mode on if and
          only if arg is positive and the buffer is associated with a
          file. Enable it automatically in your `~/.emacs' by: (setq
          voice-lock-support-mode 'fast-voice-lock-mode) If Fast Lock
          mode is enabled, and the current buffer does not contain any
          text properties, any associated Voice Lock cache is used if its
          timestamp matches the buffer's file, and its
          `voice-lock-keywords' match those that you are using. Voice
          Lock caches may be saved: - When you save the file's buffer. -
          When you kill an unmodified file's buffer. - When you exit
          Emacs, for all unmodified or saved buffers. Depending on the
          value of `fast-voice-lock-save-events'. See also the commands
          `fast-voice-lock-read-cache' and `fast-voice-lock-save-cache'.
          Use `M-x voice-lock-voiceify-buffer' to voiceify the buffer if
          the cache is bad. Various methods of control are provided for
          the Voice Lock cache. In general, see variable
          `fast-voice-lock-cache-directories' and function
          `fast-voice-lock-cache-name'. For saving, see variables
          `fast-voice-lock-minimum-size', `fast-voice-lock-save-events',
          `fast-voice-lock-save-others' and
          `fast-voice-lock-save-personalities'. Use `M-x
          fast-voice-lock-submit-bug-report' to send bug reports or
          feedback.
   `M-x fast-voice-lock-read-cache'
          Read the Voice Lock cache for the current buffer. The following
          criteria must be met for a Voice Lock cache file to be read: -
          Fast Lock mode must be turned on in the buffer. - The buffer
          must not be modified. - The buffer's `voice-lock-keywords' must
          match the cache's. - The buffer file's timestamp must match the
          cache's. - Criteria imposed by
          `fast-voice-lock-cache-directories'. See
          `fast-voice-lock-mode'.
   `M-x fast-voice-lock-save-cache'
          Save the Voice Lock cache of BUFFER or the current buffer. The
          following criteria must be met for a Voice Lock cache file to
          be saved: - Fast Lock mode must be turned on in the buffer. -
          The event must be one of `fast-voice-lock-save-events'. - The
          buffer must be at least `fast-voice-lock-minimum-size' bytes
          long. - The buffer file must be owned by you, or
          `fast-voice-lock-save-others' must be t. - The buffer must
          contain at least one `personality' text property. - The buffer
          must not be modified. - The buffer file's timestamp must be the
          same as the file's on disk. - The on disk file's timestamp must
          be different than the buffer's cache. - Criteria imposed by
          `fast-voice-lock-cache-directories'. See
          `fast-voice-lock-mode'.
          
   `M-x lazy-voice-lock-mode'
          Toggle Lazy Lock mode. With arg, turn Lazy Lock mode on if and
          only if arg is positive. Enable it automatically in your
          `~/.emacs' by: (setq voice-lock-support-mode
          'lazy-voice-lock-mode) When Lazy Lock mode is enabled,
          voiceification can be lazy in a number of ways: - Demand-driven
          buffer voiceification if `lazy-voice-lock-minimum-size' is
          non-nil. This means initial voiceification does not occur if
          the buffer is greater than `lazy-voice-lock-minimum-size'
          characters in length. Instead, voiceification occurs when
          necessary, such as when scrolling through the buffer would
          otherwise reveal unvoiceified areas. This is useful if buffer
          voiceification is too slow for large buffers. - Defer-driven
          buffer voiceification if `lazy-voice-lock-defer-driven' is
          non-nil. This means all voiceification is deferred, such as
          voiceification that occurs when scrolling through the buffer
          would otherwise reveal unvoiceified areas. Instead, these areas
          are seen momentarily unvoiceified. This is useful if
          demand-driven voiceification is too slow to keep up with
          scrolling. - Deferred on-the-fly voiceification if
          `lazy-voice-lock-defer-time' is non-nil. This means on-the-fly
          voiceification does not occur as you type. Instead,
          voiceification is deferred until after
          `lazy-voice-lock-defer-time' seconds of Emacs idle time, while
          Emacs remains idle. This is useful if on-the-fly voiceification
          is too slow to keep up with your typing. - Stealthy buffer
          voiceification if `lazy-voice-lock-stealth-time' is non-nil.
          This means remaining unvoiceified areas of buffers are
          voiceified if Emacs has been idle for
          `lazy-voice-lock-stealth-time' seconds, while Emacs remains
          idle. This is useful if any buffer has demand- or defer-driven
          voiceification. See also variables
          `lazy-voice-lock-stealth-lines', `lazy-voice-lock-stealth-nice'
          and `lazy-voice-lock-stealth-verbose' for stealth
          voiceification. Use `M-x lazy-voice-lock-submit-bug-report' to
          send bug reports or feedback.
   `M-x lazy-voice-lock-submit-bug-report'
          Submit via mail a bug report on lazy-voice-lock.el.
          
Miscellaneous

   `C-e M-t'
   `M-x emacspeak-tapestry-describe-tapestry'
          Describe the current layout of visible buffers in current
          frame.
          
   `C-e C-a'
   `M-x emacspeak-toggle-auditory-icons'
          Toggle use of auditory icons. Optional interactive prefix arg
          toggles global value.
   `M-x emacspeak-play-all-icons'
          Plays all defined icons and speaks their names.
          
   `C-e i'
   `M-x emacspeak-tabulate-region'
          Voicifies the white-space of a table if one found. Optional
          interactive prefix arg mark-fields specifies if the header row
          information is used to mark fields in the white-space.
          
   `M-x emacspeak-list-buffers-speak-buffer-name'
          Speak the name of the buffer on this line
   `M-x emacspeak-list-buffers-speak-buffer-line'
          Speak information about this buffer
   `M-x emacspeak-list-buffers-next-line'
          Speech enabled buffer menu navigation
   `M-x emacspeak-list-buffers-previous-line'
          Speech enabled buffer menu navigation
          
   `C-e j'
   `M-x emacspeak-hide-or-expose-block'
          This command either hides or exposes a block of text starting
          on the current line. A block of text is defined as a portion of
          the buffer in which all lines start with a common prefix.
          Optional interactive prefix arg causes all blocks in current
          buffer to be hidden or exposed.
   `M-x emacspeak-hide-or-expose-all-blocks'
          Hide or expose all blocks in buffer
   `C-e C-j'
   `M-x emacspeak-hide-speak-block-sans-prefix'
          Speaks current block after stripping its prefix. If the current
          block is not hidden, it first hides it. This is useful because
          as you locate blocks, you can invoke this command to listen to
          the block, and when you have heard enough navigate easily to
          move past the block.
          
   `C-e M-n'
   `M-x emacspeak-imenu-goto-next-index-position'
          Goto the next index position in current buffer
   `C-e M-p'
   `M-x emacspeak-imenu-goto-previous-index-position'
          Goto the previous index position in current buffer
   `C-e M-'
   `M-x emacspeak-imenu-speak-this-section'
          Speak upto start of next index entry
          
                      Compatibility with Emacs Subsystems
                                       
   Emacspeak already works in all Emacs modes. The following modes have
   Emacspeak specific commands. Note: The documentation in the subsequent
   sections should be used in conjunction with the info pages for these
   separate subsystems. This document will only describe Emacspeak
   extensions to the various subsystems. Often, the description here is
   limited to documenting what Emacspeak adds by way of auditory
   feedback.
   
The Insiduous Big Brother DB

A rolodex interface

Smart buffer selection

Bookmarks

   This package is for setting "bookmarks" in files. A bookmark
   associates a string with a location in a certain file. Thus, you can
   navigate your way to that location by providing the string.
   
Custom

   Tools for declaring and initializing Emacs customization options.
   
dmacro

   dmacro is used to write code rapidly and consistently.
   
face menus

   Create a face menu for interactively adding fonts to text.
   
The Emacs calculator

   This calculator major mode implements a Reverse Polish Notation (RPN)
   calculator featuring arbitrary-precision integer, rational,
   floating-point, complex, matrix, and symbolic arithmetic.
   
   You can download this (360 KB) from
   ftp://ftp.cs.vassar.edu/pub/mirror/emacspeak/subsystems/calc-2.02.tar.
   Z or ftp://csvax.caltech.edu:pub/calc-2.02.tar.Z or install the Debian
   package "calc".
   
Compiling code from Inside Emacs

   `M-x emacspeak-compilation-speak-error'
          Speech feedback about the compilation error.
   `M-x next-error'
          Speak the line containing the error.
   `M-x previous-error'
          Speak the line containing the error.
   `M-x compile-goto-error'
          Speak the compilation error.
   `M-x compilation-next-file'
          Speak the error line.
   `M-x compilation-previous-file'
          Speak the error line.
   `M-x compile'
          provide auditory confirmation
          
Calendar Management

   `M-x emacspeak-speak-calendar-date'
          Speak the date under point when called in Calendar Mode.
   `C-e A'
   `M-x emacspeak-appt-repeat-announcement'
          Speaks the most recently displayed appointment message if any.
   `M-x emacspeak-compilation-speak-error'
          Speech feedback about the compilation error.
          
C and C++ Programming

   Emacspeak adds commands to move to the next or previous statement, and
   to speak the semantics of a statement.
   
   `M-x c-previous-statement'
          Move to the previous C statement.
   `M-x c-next-statement'
          Move to the next C statement.
   `M-x emacspeak-c-speak-semantics'
          Speak the C semantics of this line.
          
Java IDE

   An interface to the Java IDE, which can be found at
   http://sunsite.auc.dk/jde/.
   
   The speedbar is also advised for use with emacspeak. The default
   speedbar.el that is distributed with the Emacs JDE will only work
   under a windowing system. This module takes care of setting things up
   to work (if somewhat clumsily) outside X. I hope to get the author of
   speedbar to tweak things a bit so we can avoid kluges here.
   
   `M-x emacspeak-speedbar-goto-speedbar'
          Switch to the speedbar
   `M-x emacspeak-speedbar-click'
          Does the equivalent of the mouse click from the keyboard
          
Object Oriented code browser

   You can get the Object Oriented code browser from
   ftp://ftp.xemacs.org/pub/altrasoft/oo-browser-2.10.tar.gz.
   
Editing Perl code

Python scripts

   If you have python installed you will find python-mode.el in the
   Python distribution. If you dont have python, then you dont need this
   either.
   
   `M-x emacspeak-py-previous-block'
          Move backward to the beginning of the current block. If already
          at the beginning then move to previous block.
   `M-x emacspeak-py-next-block'
          Move forward to the beginning of the next block.
          
Editing tcl code

Editing LaTeX Documents

Editing and maintaining bibtex files

Editing SGML

   PSGML is a major mode for editing SGML documents written by Lennart
   Staflin <lenst@lysator.liu.se> and James Clark <jjc@clark.com>.
   
   You can download it (130 KB) from
   ftp://ftp.cs.vassar.edu/pub/mirror/emacspeak/subsystems/psgml-0.4b3.ta
   r.gz
   
Directory Editing

   `M-x emacspeak-dired-label-fields'
          Labels the fields of the listing in the dired buffer. Currently
          is a no-op unless unless dired-listing-switches contains -al
   `M-x emacspeak-dired-speak-header-line'
          Speak the header line of the dired buffer.
   `M-x emacspeak-dired-speak-file-size'
          Speak the size of the current file
   `M-x emacspeak-dired-speak-file-modification-time'
          Speak modification time of the current file
   `M-x emacspeak-dired-speak-file-access-time'
          Speak access time of the current file
   `M-x emacspeak-dired-speak-symlink-target'
          Speaks the target of the symlink on the current line
   `M-x emacspeak-dired-speak-file-permissions'
          Speak the permissions of the current file
          
Tape Archives (.tar files)

   Simple viewing and editing of tar files.
   
Archives (.ar files)

   View an archive file in the same way that dired mode views a
   directory.
   
A powerful spreadsheet

   dismal (Dis' Mode Ain't lotus) is a major mode in GNU-emacs that
   implements a spreadsheet.
   
   You can download it (324 KB) from
   ftp://ftp.cs.vassar.edu/pub/mirror/emacspeak/subsystems/dismal-1.04.ta
   r.gz or ftp://vpsyc.nott.ac.uk/pub/ritter/dismal
   
   `M-x emacspeak-dismal-display-cell-expression'
          Display the expression in the message area
   `M-x emacspeak-dismal-display-cell-value'
          Display the cell value in the message area
   `M-x emacspeak-dismal-display-cell-with-row-header'
          Displays current cell along with its row header. The `row
          header' is the entry in column 0.
   `M-x emacspeak-dismal-display-cell-with-col-header'
          Display current cell along with its column header. The `column
          header' is the entry in row 0.
   `M-x emacspeak-dismal-forward-row-and-summarize'
          Move forward by arg rows (the next row by default)and summarize
          it.
   `M-x emacspeak-dismal-backward-row-and-summarize'
          Move backward by arg rows (the previous row by default)and
          summarize it.
   `M-x emacspeak-dismal-forward-col-and-summarize'
          Move forward by arg columns (the next column by default)and
          summarize it.
   `M-x emacspeak-dismal-backward-col-and-summarize'
          Move backward by arg columns (the previous column by
          default)and summarize it.
   `M-x emacspeak-dismal-row-summarize'
          Summarizes a row using the specification in list
          emacspeak-dismal-row-summarizer-list
   `M-x emacspeak-dismal-col-summarize'
          Summarizes a col using the specification in list
          emacspeak-dismal-col-summarizer-list
   `M-x emacspeak-dismal-sheet-summarize'
          Summarizes a sheet using the specification in list
          emacspeak-dismal-sheet-summarizer-list
   `M-x emacspeak-dismal-set-row-summarizer-list'
          Specify or reset row summarizer list.
   `M-x emacspeak-dismal-set-col-summarizer-list'
          Specify or reset col summarizer list.
   `M-x emacspeak-dismal-set-sheet-summarizer-list'
          Specify or reset sheet summarizer list.
          
Ediff Mode

   A comprehensive interface to diff (for file comparisons) and patch
   (for making small changes to files).
   
   `M-x emacspeak-ediff-speak-current-difference'
          Speak the current difference
          
Old Ediff mode

   An older interface to diff (for file comparisons) and patch (for
   making small changes to files).
   
   `M-x emacspeak-ediff-speak-current-difference'
          Speak the current difference
          
Rich text editing

   Emacs now has the ability to edit enriched text, which is text
   containing embedded formatting information in the MIME standard
   text/enriched format, representing faces, colors, indentation, and
   other properties. To create a new file with enriched text, use the
   command "M-x enriched-mode". More information about Enriched mode is
   available in the file etc/enriched.doc in the Emacs distribution
   directory, which you may find at /usr/lib/emacs/19.34/etc/enriched.doc
   or similar.
   
   `M-x emacspeak-enriched-voiceify-faces'
          Map base fonts to voices. Useful in voicifying rich text.
          
Eterm

   You can use the terminal emulator mode to run arbitrary terminal-based
   programs from within Emacs. You open a terminal emulator buffer using
   M-x term, with an extra carriage return to accept the default shell
   (such as bash). (Incidently, don't confuse this command with M-x
   terminal-emulator, which starts an older terminal emulator mode not
   supported by Emacspeak.)
   
   Three kinds of commands are used within the terminal emulator. Normal
   term commands use a prefix of C-c. The emacspeak commands for eterm
   mode use a prefix of C-t. Anything else is a normal shell command.
   
   There are two sub-modes of term mode: char sub-mode and line sub-mode.
   In char sub-mode, emacspeak will only speak the finally displayed
   line. Each character typed (except `term-escape-char`) is sent
   immediately. Use char sub-mode for screen oriented programs like vi or
   pine.
   
   In line sub-mode, all program output is spoken. When you type a return
   at the end of the buffer, that line is sent as input, while return not
   at end copies the rest of the line to the end and sends it.
   
   The default is char sub-mode. You can switch to line sub-mode with C-c
   C-j (recall that control J is a linefeed), and back to char sub-mode
   with C-c C-k (think of character spelled with a K).
   
   In both terminal modes, characters you type are spoken. In line mode,
   the command's output and the shell's prompt are also spoken.
   
  Line Sub-mode of Term Mode
  
   In line sub-mode of term mode, emacs editing commands work normally,
   until you type RET which sends the current line to the inferior
   process.
   
   Here are some of the useful commands for the line sub-mode of the term
   mode. In addition, the usual commands for handling a buffer work in
   this mode (C-x o to switch windows, C-x k to kill a buffer, C-x f to
   find a file, and so forth).
   
   `C-c C-k'
   `M-x term-char-mode'
          Switch to char sub-mode of term mode.
   `C-c C-z'
   `M-x term-stop-subjob'
          Stop the current subjob. Resume the subjob in the foreground
          with the ordinary command fg, or run it in the background with
          bg. WARNING: if there is no current subjob, you can end up
          suspending the top-level process running in the buffer. If you
          accidentally do this, use M-x term-continue-subjob to resume
          the process. (This is not a problem with with most shells,
          including bash, since they ignore this signal.)
   `C-c C-\'
   `M-x term-quit-subjob'
          Send quit signal to the current subjob.
   `C-c C-c'
   `M-x term-interrupt-subjob'
          Interrupt the current subjob.
   `C-c C-w'
   `M-x backward-kill-word'
          Kill characters backward until encountering the end of a word.
   `C-c C-u'
   `M-x term-kill-input'
          Kill all text from last stuff output by interpreter to point.
   `C-c C-a'
   `M-x term-bol'
          Goes to the beginning of line, then skips past the prompt, if
          any. If a prefix argument is given (C-u), then no prompt skip
          -- go straight to column 0.
   `C-c C-d'
   `M-x term-send-eof'
          Send an end of file character (EOF) to the current buffer's
          process.
          
   You can get a list of all the key sequences with a C-c prefix by
   typing C-c C-h while in this sub-mode. Some of those commands are only
   available in the line sub-mode, while others are generally available.
   
  Char Sub-mode of Term Mode
  
   In char sub-mode of term, each character you type is sent directly to
   the inferior process without intervention from emacs, except for the
   escape character (usually C-c).
   
   Here are some of the useful commands for the char sub-mode. Note that
   the usual commands for killing a buffer or switching buffers do not
   work in this mode, so new key bindings are supplied. The first five
   commands are different ways of leaving this mode.
   
   `C-c C-j'
   `M-x term-line-mode'
          Switch to line sub-mode of term mode.
   `C-c o'
   `M-x other-window'
          Select the next window on this frame. All windows on current
          frame are arranged in a cyclic order. This command selects the
          next window in that order. If there are no other windows, this
          command does nothing.
   `C-c C-f'
   `M-x find-file'
          Switch to a buffer visiting a file, creating one if none
          already exists.
   `C-c 0'
   `M-x delete-window'
          Remove current window from the display.
   `C-c k'
   `M-x kill-buffer'
          Kill the current buffer.
   `C-c C-x C-c'
   `M-x save-buffers-kill-emacs'
          Offer to save each buffer, then kill this Emacs process.
   `C-c C-d'
   `M-x list-directory'
          Display a list of files in or matching DIRNAME, a la `ls'.
          DIRNAME is globbed by the shell if necessary. Prefix arg (C-u)
          means supply -l switch to `ls'. The list appears in a second
          window.
   `C-c 1'
   `M-x delete-other-windows'
          Delete all other windows in the frame, making the current
          window fill its frame.
   `C-c C-c'
   `M-x term-send-raw'
          Send the last character typed through the terminal-emulator
          without any interpretation.
   `C-c ('
   `M-x start-kbd-macro'
          Record subsequent keyboard input, defining a keyboard macro.
          The commands are recorded even as they are executed. Use C-c )
          to finish recording and make the macro available. Use M-x
          name-last-kbd-macro to give it a permanent name. Prefix arg
          (C-u) means append to last macro defined; This begins by
          re-executing that macro as if you had typed it again.
   `C-c )'
   `M-x end-kbd-macro'
          Finish defining a keyboard macro. The definition was started by
          C-c (. The macro is now available for use via C-c e, or it can
          be given a name with M-x name-last-kbd-macro and then invoked
          under that name.
   `C-c e'
   `M-x call-last-kbd-macro'
          Call the last keyboard macro that you defined with C-c (. A
          prefix argument serves as a repeat count. Zero means repeat
          until error.
          
   You can get a list of all the key sequences with a C-c prefix by
   typing C-c C-h while in this sub-mode. Some of those commands are only
   available in the char sub-mode, while others are generally available.
   
  Eterm Mode Commands
  
   The eterm mode maintains a pointer, which is not necessarily the same
   as the terminal's cursor. It is intended to be used in eterm's char
   submode. In char submode, C-t , (that's control-t followed by comma)
   will tell you where the eterm pointer is. C-t C-i will tell you where
   the terminal's cursor is. The top left corner of the window is "row 0
   column 0".
   
   The eterm pointer can be moved with C-t < (to the top of the screen),
   C-t > (to the bottom of the screen), C-t n (to the next line), C-t p
   (to the previous line), and C-t . (to the cursor). Each of these also
   speaks the line the pointer moves to. You can also search forward with
   C-t s.
   
   These commands speak without moving the pointer: C-t l (current line),
   C-t w (current word), C-t c (current character), and C-t [space] (from
   eterm pointer to cursor).
   
   You may enter review mode with C-t q. In review mode, you can search
   the buffer and speak its contents, without disturbing the terminal.
   Commands for moving the pointer are similar to normal editing
   commands, but without a control key: n and p for next and previous
   line, f and b for forward and back by characters, < and > for the
   beginning or end of the buffer. c, w, and l speak the current
   character, word, and line. s searches forward (not incrementally). A
   comma speaks the pointer location. A period moves the pointer to the
   terminal cursor. Return to normal term mode by typing q.
   
   `M-x emacspeak-eterm-maybe-send-raw'
          Send a raw character through if in the terminal buffer Execute
          end of line if in a non eterm buffer if executed via C-e C-e
   `C-t C-i'
   `M-x emacspeak-eterm-speak-cursor'
          Speak cursor position
   `C-t ,'
   `M-x emacspeak-eterm-speak-pointer'
          Speak current pointer position.
   `C-t [space]'
   `M-x emacspeak-eterm-speak-screen'
          Speak the screen. Default is to speak from the emacspeak
          pointer to point. Prefix arg causes region above the Emacspeak
          pointer to be spoken.
   `C-t l'
   `M-x emacspeak-eterm-speak-pointer-line'
          Speak the line the pointer is on
   `C-t w'
   `M-x emacspeak-eterm-speak-pointer-word'
          Speak the word the pointer is on
   `C-t c'
   `M-x emacspeak-eterm-speak-pointer-char'
          Speak char under eterm pointer. Pronounces character
          phonetically unless called with a prefix arg.
   `C-t .'
   `M-x emacspeak-eterm-pointer-to-cursor'
          Move the pointer to the cursor
   `C-t <'
   `M-x emacspeak-eterm-pointer-to-top'
          Move the pointer to the top of the screen.
   `C-t >'
   `M-x emacspeak-eterm-pointer-to-bottom'
          Move the pointer to the bottom of the screen.
   `C-t p'
   `M-x emacspeak-eterm-pointer-up'
          Move the pointer up a line.
   `C-t n'
   `M-x emacspeak-eterm-pointer-down'
          Move the pointer down a line.
   `C-t b'
   `M-x emacspeak-eterm-pointer-left'
          Move the pointer left a line.
   `C-t f'
   `M-x emacspeak-eterm-pointer-right'
          Move the pointer right.
   `C-t e'
   `M-x emacspeak-eterm-pointer-to-right-edge'
          Move the pointer to the right edge.
   `C-t a'
   `M-x emacspeak-eterm-pointer-to-left-edge'
          Move the pointer to the right edge.
   `C-t M-b'
   `M-x emacspeak-eterm-pointer-backward-word'
          Move the pointer backward by words. Interactive numeric prefix
          arg specifies number of words to move.
   `C-t M-f'
   `M-x emacspeak-eterm-pointer-forward-word'
          Move the pointer forward by words. Interactive numeric prefix
          arg specifies number of words to move.
   `C-t g'
   `M-x emacspeak-eterm-goto-line'
          Move emacspeak eterm pointer to a specified line.
   `C-t s'
   `M-x emacspeak-eterm-search-forward'
          Search forward on the terminal.
   `C-t r'
   `M-x emacspeak-eterm-search-backward'
          Search backward on the terminal.
   `C-t h'
   `M-x emacspeak-eterm-pointer-to-next-color-change'
          Move the eterm pointer to the next color change. This allows
          you to move between highlighted regions of the screen.
   `C-t H'
   `M-x emacspeak-eterm-pointer-to-previous-color-change'
          Move the eterm pointer to the next color change. This allows
          you to move between highlighted regions of the screen.
   `C-t q'
   `M-x emacspeak-eterm-toggle-review'
          Toggle state of eterm review. In review mode, you can move
          around the terminal and listen to the contnets without sending
          input to the terminal itself.
   `C-t m'
   `M-x emacspeak-eterm-set-marker'
          Set the emacspeak eterm marker to the position pointed to by
          the emacspeak eterm pointer.
   `C-t y'
   `M-x emacspeak-eterm-kill-ring-save-region'
          Copy region delimited by the emacspeak eterm marker set by
          command C-t m and the emacspeak eterm pointer.
   `C-t x'
   `M-x emacspeak-eterm-copy-region-to-register'
          Copy region delimited by the emacspeak eterm marker set by
          command C-t m and the emacspeak eterm pointer to a register.
   `C-t v'
   `M-x emacspeak-eterm-paste-register'
          Paste contents of register at current location. If the
          specified register contains text, then that text is sent to the
          terminal as if it were typed by the user.
   `C-t C-w'
   `M-x emacspeak-eterm-define-window'
          Prompt for a window id and define it to be the rectangle
          delimited by point and eterm mark. This is to be used when
          emacspeak is set to review mode inside an eterm.
   `C-t C-m'
   `M-x emacspeak-eterm-speak-window'
          Speak an eterm window.
   `C-t C-y'
   `M-x emacspeak-eterm-yank-window'
          Yank contents of an eterm window at point.
   `C-t C-d'
   `M-x emacspeak-eterm-describe-window'
          Describe an eterm window. Description indicates eterm window
          coordinates and whether it is stretchable
   `C-t C-f'
   `M-x emacspeak-eterm-set-focus-window'
          Prompt for the id of a predefined window, and set the `focus'
          window to it. Non-nil interactive prefix arg `unsets' the focus
          window; this is equivalent to having the entire terminal as the
          focus window (this is what eterm starts up with). Setting the
          focus window results in emacspeak only monitoring screen
          activity in that area of the screen.
   `C-t 1'
   `M-x emacspeak-eterm-speak-predefined-window'
          Speak a predefined eterm window between 1 and 10.
   `C-t C-q'
   `M-x emacspeak-toggle-eterm-autospeak'
          Toggle state of eterm autospeak. When eterm autospeak is turned
          on and the terminal is in line mode, all output to the terminal
          is automatically spoken. Interactive prefix arg means toggle
          the global default value, and then set the current local value
          to the result.
   `C-t C-p'
   `M-x emacspeak-eterm-toggle-pointer-mode'
          Toggle emacspeak eterm pointer mode. With optional interactive
          prefix arg, turn it on. When emacspeak eterm is in pointer
          mode, the eterm read pointer stays where it is rather than
          automatically moving to the terminal cursor when there is
          terminal activity.
   `C-e C-r'
   `M-x emacspeak-eterm-remote-term'
          Start a terminal-emulator in a new buffer.
          
Folding Mode

Forms Editing Mode

   `M-x emacspeak-forms-speak-field'
          Speak current form field name and value. Assumes that point is
          at the front of a field value.
          
Playing Gomoku against Emacs

   Enter this mode with the command `M-x gomoku'.
   `M-x emacspeak-gomoku-speak-square'
          Speak coordinates and state of square at point
   `M-x emacspeak-gomoku-show-current-row'
          Aurally display current row
   `M-x emacspeak-gomoku-show-current-column'
          Aurally display current column
   `M-x emacspeak-gomoku-show-current-positive-diagonal'
          Aurally display current positively sloped diagonal
   `M-x emacspeak-gomoku-show-current-negative-diagonal'
          Aurally display current negative sloped diagonal
   `M-x emacspeak-gomoku-display-statistics'
          Display statistics from previous games
   `M-x emacspeak-gomoku-speak-emacs-previous-move'
          Speak emacs' previous move
   `M-x emacspeak-gomoku-speak-humans-previous-move'
          Speak human' previous move
   `M-x emacspeak-gomoku-speak-number-of-moves'
          Speak number of moves so far
   `M-x gomoku-move-left'
          Move left on the Gomoku board
   `M-x gomoku-move-right'
          Move right on the Gomoku board
          
A powerful information manager

   You can get the Hyperbole package from
   ftp://ftp.xemacs.org/pub/altrasoft/hyperbole-4.023.tar.gz
   
Kotl outliner

   The Kotl outliner comes with the Hyperbole system.
   
   `M-x emacspeak-kotl-speak-cell'
          Speak cell contents from point to end of cell. With prefix arg,
          speaks entire cell contents
   `M-x emacspeak-kotl-setup-keys'
          Setup additional keybindings
          
Online info pages

Man page reader

   `M-x emacspeak-man-browse-man-page'
          Browse the man page --read it a paragraph at a time
          
Outline Editing

   Outline mode is for editing outlines with selective display. Headings
   are lines which start with asterisks: one for major headings, two for
   subheadings, etc. Lines not starting with asterisks are body lines.
   Type "M-x outline-mode" to switch to Outline mode as the major mode of
   the current buffer.
   
   `M-x emacspeak-outline-speak-heading'
          Function used by all interactive section speaking commands.
   `M-x emacspeak-outline-speak-next-heading'
          Analogous to outline-next-visible-heading, except that the
          outline section is optionally spoken
   `M-x emacspeak-outline-speak-previous-heading'
          Analogous to outline-previous-visible-heading, except that the
          outline section is optionally spoken
   `M-x emacspeak-outline-speak-forward-heading'
          Analogous to outline-forward-same-level, except that the
          outline section is optionally spoken
   `M-x emacspeak-outline-speak-backward-heading'
          Analogous to outline-backward-same-level except that the
          outline section is optionally spoken
   `M-x emacspeak-outline-speak-this-heading'
          Speak current outline section starting from point
          
Editing messages

Rmail Mail Reader

Manage Tables

   `M-x emacspeak-table-speak-coordinates'
          Speak current table coordinates.
   `M-x emacspeak-table-speak-current-element'
          Speak current table element
   `M-x emacspeak-table-speak-row-header-and-element'
          Speak row header and table element
   `M-x emacspeak-table-speak-column-header-and-element'
          Speak column header and table element
   `M-x emacspeak-table-speak-both-headers-and-element'
          Speak both row and column header and table element
   `M-x emacspeak-table-get-entry-with-headers'
          Return both row and column header and table element
   `M-x emacspeak-table-speak-row-filtered'
          Speaks a table row after applying a specified row filter.
          Optional prefix arg prompts for a new filter.
   `M-x emacspeak-table-speak-column-filtered'
          Speaks a table column after applying a specified column filter.
          Optional prefix arg prompts for a new filter.
   `C-e C-t'
   `M-x emacspeak-table-find-file'
          Open a file containing table data and display it in table mode.
          emacspeak table mode is designed to let you browse tabular data
          using all the power of the two-dimensional spatial layout while
          giving you sufficient contextual information. The tables
          subdirectory of the emacspeak distribution contains some sample
          tables --these are the CalTrain schedules. Execute command
          `describe-mode' bound to `M-x describe-mode' in a buffer that
          is in emacspeak table mode to read the documentation on the
          table browser.
   `C-e C-i'
   `M-x emacspeak-table-display-table-in-region'
          Recognize tabular data in current region and display it in
          table browsing mode in a a separate buffer. emacspeak table
          mode is designed to let you browse tabular data using all the
          power of the two-dimensional spatial layout while giving you
          sufficient contextual information. The tables subdirectory of
          the emacspeak distribution contains some sample tables --these
          are the CalTrain schedules. Execute command `describe-mode'
          bound to `M-x describe-mode' in a buffer that is in emacspeak
          table mode to read the documentation on the table browser.
   `M-x emacspeak-table-select-automatic-speaking-method'
          Interactively select the kind of automatic speech to produce
          when browsing table elements
   `M-x emacspeak-table-next-row'
          Move to the next row if possible
   `M-x emacspeak-table-previous-row'
          Move to the previous row if possible
   `M-x emacspeak-table-next-column'
          Move to the next column if possible
   `M-x emacspeak-table-previous-column'
          Move to the previous column if possible
   `M-x emacspeak-table-goto'
          Prompt for a table cell coordinates and jump to it.
   `M-x emacspeak-table-goto-top'
          Goes to the top of the current column.
   `M-x emacspeak-table-goto-bottom'
          Goes to the bottom of the current column.
   `M-x emacspeak-table-goto-left'
          Goes to the left of the current row.
   `M-x emacspeak-table-goto-right'
          Goes to the right of the current row.
   `M-x emacspeak-table-search'
          Search the table for matching elements. Interactively prompts
          for row or column to search and pattern to look for. If there
          is a match, makes the matching cell current.
   `M-x emacspeak-table-search-headers'
          Search the table row or column headers. Interactively prompts
          for row or column to search and pattern to look for. If there
          is a match, makes the matching row or column current.
   `M-x emacspeak-table-copy-to-clipboard'
          Copy table in current buffer to the table clipboard. Current
          buffer must be in emacspeak-table mode.
   `M-x emacspeak-table-paste-from-clipboard'
          Paste the emacspeak table clipboard into the current buffer.
          Use the major mode of this buffer to decide what kind of table
          markup to use.
          
Template-based Editing

View mode for previewing files

   `M-x emacspeak-view-line-to-top'
          Moves current line to top of window
          
Task manager for Emacs

   View-process is an Elisp package for viewing processes with the
   XEmacs/Emacs19, written by Heiko Muenkel
   <muenkel@tnt.uni-hannover.de>. The output of ps is inserted in an
   emacs buffer. One can easily send signals to one or more processes and
   sort and filter the output. A description of the output is also
   provided.
   
   You can download this package (39 kb) from
   ftp://ftp.cs.vassar.edu/pub/mirror/emacspeak/subsystems/hm--view-proce
   ss-2.4.tar.gz or from
   ftp://ftp.tnt.uni-hannover.de/data/ftp/pub/editors/xemacs/contrib/hm--
   view-process-2.4.tar.gz
   
GNUS News Reader

   `M-x gnus-summary-show-some-headers'
          Show only the important article headers, i.e. sender name, and
          subject.
   `M-x gnus-summary-hide-all-headers'
          Hide all headers in the article. Use this command if you don't
          want to listen to any article headers when reading news.
   `M-x gnus-summary-catchup-quietly-and-exit'
          Catch up on articles without confirmation.
          
   `M-x emacspeak-rmail-summarize-current-message'
          Summarize current message
   `M-x emacspeak-rmail-speak-current-message-labels'
          Speak labels of current message
          
Vm Mail Reader

   `M-x emacspeak-vm-speak-labels'
          Speak a message's labels
   `M-x emacspeak-vm-mode-line'
          VM mode line information.
   `M-x emacspeak-vm-locate-subject-line'
          Locates the subject line in a message being read. Useful when
          you're reading a message that has been forwarded multiple
          times.
   `M-x emacspeak-vm-browse-message'
          Browse an email message --read it paragraph at a time.
          
mail spool tracker

   Monitor multiple maildrops.
   
W3 World Wide Web Page Reader

   by William M. Perry <wmperry@cs.indiana.edu>
   
   You can download the W3 package (417 KB) from:
   ftp://ftp.cs.vassar.edu/pub/mirror/emacspeak/subsystems/w3-3.0.86.tar.
   gz or http://www.cs.indiana.edu/pub/elisp/w3/.betas
   
   (At this writing, the "stable" version is 2.2.26, which does not
   include widget.el among other things. You will need the current "beta"
   version, currently 3.0.86.)
   
   There is more documentation on w3 at
   http://www.cs.indiana.edu/elisp/w3/docs.html
   
Playing Solitaire

   Enter this mode with the command `M-x solitaire'.
   `M-x emacspeak-solitaire-speak-coordinates'
          Speak coordinates of current position
   `M-x emacspeak-solitaire-show-row'
          Display current row auditorallly
   `M-x emacspeak-solitaire-show-column'
          Display current row auditorallly
          
Playing Tetris

   Tetris for Emacs, by Glynn Clements <glynn@sensei.co.uk>.
   
   You can get tetris from:
   
   ftp://ftp.cs.vassar.edu/pub/mirror/emacspeak/subsystems/tetris.el
   
   or:
   
   http://www.cs.vassar.edu/mirror/emacspeak/subsystems/tetris.el or
   ftp://sensei.co.uk/misc/tetris.el.gz
   
   `M-x emacspeak-tetris-speak-row'
          Speak current tetris row
   `M-x emacspeak-tetris-speak-row-number'
          Speak where on the tetris board we are
   `M-x emacspeak-tetris-speak-x-coordinate'
          Speak current position
   `M-x emacspeak-tetris-speak-coordinates'
          Speak current position
   `M-x emacspeak-tetris-speak-current-shape'
          Speak current shape
   `M-x emacspeak-tetris-speak-next-shape'
          Speak next shape
   `M-x emacspeak-tetris-speak-current-shape-and-coordinates'
          Speak shape orientation and coordinates
   `M-x emacspeak-tetris-speak-score'
          Speak the score
   `M-x emacspeak-tetris-goto-bottom-row'
          Move to and speak bottom row
   `M-x emacspeak-tetris-goto-top-row'
          Move to and speak the top row
   `M-x tetris-move-left-edge'
          Moves the shape to the left edge of the playing area
   `M-x tetris-move-right-edge'
          Moves the shape to the right edge of the playing area
   `M-x tetris-move-to-x-pos'
          Moves the shape to a specified x position if possible
          
Widget Editing Mode

   `M-x emacspeak-widget-summarize-widget-under-point'
          Summarize a widget if any under point. Optional interactive
          prefix specifies how many levels to go up from current widget
          before summarizing.
   `M-x emacspeak-widget-browse-widget-interactively'
          Allows you to browse a widget
          
                               Advanced Features
                                       
   <To be written>
   
   `M-x emacspeak-keymap-choose-new-emacspeak-prefix'
          Interactively select a new prefix key to use for all emacspeak
          commands. The default is to use `C-e' This command lets you
          switch the prefix to something else. This is a useful thing to
          do if you run emacspeak on a remote machine from inside a
          terminal that is running inside a local emacspeak session. You
          can have the remote emacspeak use a different control key to
          give your fingers some relief.
          
Using a Remote Speech Server

   Emacspeak can connect to a speech server running on a remote host.
   
   `M-x emacspeak-remote-quick-connect-to-server'
          Connect to remote server. Does not prompt for host or port, but
          quietly uses the guesses that appear as defaults when
          prompting. Use this once you are sure the guesses are usually
          correct.
   `C-e M-r'
   `M-x emacspeak-remote-connect-to-server'
          Connect to and start using remote speech server running on host
          host and listening on port port. Host is the hostname of the
          remote server, typically the desktop machine. Port is the tcp
          port that that host is listening on for speech requests.
          
Pronunciation Dictionaries

   Emacspeak implements user customizable pronunciation dictionaries.
   Custom pronunciations can be defined per file, per directory and/or
   per major mode. Emacspeak maintains a persistent user dictionary upon
   request and loads these in new emacspeak sessions.
   
   `M-x emacspeak-pronounce-save-dictionaries'
          Writes out the persistent emacspeak pronunciation dictionaries.
   `M-x emacspeak-pronounce-load-dictionaries'
          Load pronunciation dictionaries
   `M-x emacspeak-pronounce-clear-dictionaries'
          Clear all current pronunciation dictionaries.
   `M-x emacspeak-pronounce-define-pronunciation'
          Interactively define entries in the pronunciation dictionaries.
          Default term to define is delimited by region. First loads any
          persistent dictionaries if not already loaded.
   `M-x emacspeak-pronounce-toggle-use-of-dictionaries'
          Toggles use of pronunciation dictionaries in current buffer.
          Pronunciations can be defined on a per file, per directory
          and/or per mode basis. Pronunciations are activated on a per
          buffer basis. Turning on the use of pronunciation dictionaries
          results in emacspeak composing a pronunciation table based on
          the currently defined pronunciation dictionaries. After this,
          the pronunciations will be applied whenever text in the buffer
          is spoken.
   `M-x emacspeak-pronounce-refresh-pronunciations'
          Refresh pronunciation table for current buffer. Activates
          pronunciation dictionaries if not already active.
   `C-e M-d'
   `M-x emacspeak-pronounce-dispatch'
          Provides the user interface front-end to Emacspeak's
          pronunciation dictionaries.
          
Hooks

   These are the various hooks you can use to customize some of
   Emacspeaks behavior. They are arranged in the order in which they
   would happen.
   
   dtk-startup-hook specifies a list of functions to run after starting
   the speech system. You can set the speech-device state, e.g.
   speech-rate etc in this hook.
   
   emacspeak-startup-hook is run after Emacspeak has been started up.
   
Miscellaneous Variables

   <to be written> There are lots of variables that control the real
   nitty-gritty of Emacspeak that the beginning user probably shouldn't
   mess with. Here they are.
   
   `dtk-family-table'
          Association list of dtk voice names and control codes
   `dtk-css-code-tables'
          Hash table holding vectors of dtk codes. Keys are symbols of
          the form <FamilyName-Dimension>. Values are vectors holding the
          control codes for the 10 settings.
   `dtk-gain-table'
          Maps CSS volume settings to actual synthesizer codes.
   `dtk-startup-hook'
          List of hooks to be run after starting up the speech server. .
          Set things like speech rate, punctuation mode etc in this hook.
   `dtk-tcl'
          tcl
   `dtk-program'
          The program to use to talk to the speech engine. At present:
          dtk-exp for the Dectalk Express. dtk-mv for the Multivoice and
          older Dectalks. dtk-soft (not yet released) for the software
          Dectalk. dtk-sapi (not yet released) for the software Dectalk
          on NT. The default is dtk-exp.
   `dtk-stop-immediately'
          If t, speech stopped immediately when new speech received.
          Emacspeak sets this to nil if the current message being spoken
          is too important to be interrupted.
   `dtk-display-table'
          Variable holding display information for special characters.
   `dtk-character-to-speech-table'
          Holds the mapping of characters to the string that should be
          spoken for pronouncing that character.
   `dtk-debug'
          Set this to t if you want to debug the synthesizer server.
   `dtk-speak-server-initialized'
          Records if the server is initialized.
   `dtk-speak-process-connection-type'
          *Specifies if we use ptys or pipes to connect to the speech
          server process. Has the same semantics as the builtin
          process-connection-type. Default is to use pipes.
   `dtk-stop-immediately-while-typing'
          *Set it to nil if you dont want speech to flush as you type.
          See command dtk-toggle-stop-immediately-while-typing bound to
          C-e d I.
   `dtk-quiet'
          Switch indicating if the speech synthesizer is to keep quiet.
          Do not set this variable by hand. See command dtk-toggle-quiet
          bound to C-e d q.
   `dtk-split-caps'
          Flag indicating whether to use split caps when speaking. Do not
          set this variable by hand, use command dtk-toggle-split-caps
          bound to C-e d s.
   `dtk-cleanup-patterns'
          .
   `dtk-clean-text-function'
          Set this to a function if you want to perform cleanups on the
          text before shipping it to the speech server.
   `dtk-character-scale'
          Factor by which speech rate is scaled when characters are
          spoken. Do not set this variable by hand, use command
          dtk-set-character-scale bound to C-e d f.
   `dtk-capitalize'
          Non-nil means produce a beep to indicate capitalization. Do not
          set this variable by hand, use command
          dtk-toggle-capitalization bound to C-e d c.
   `dtk-allcaps-beep'
          Non-nil means produce a beep to indicate upper case words in
          conjunction with split caps Do not set this variable by hand,
          use command dtk-toggle-allcaps-beep bound to C-e d C.
   `dtk-last-output'
          Variable holding last output
   `dtk-speech-rate'
          Rate at which tts talks. Do not modify this variable directly;
          use command dtk-set-rate bound to C-e d r.
   `dtk-speak-nonprinting-chars'
          *Non nil value means non printing characters should be spoken
          as their octal value. Set this to t to avoid a dectalk bug that
          makes the speech box die if it seems some accented characters
          in certain contexts.
   `dtk-chunk-separator-syntax'
          Syntax string to identify chunks when splitting text.
   `dtk-speak-treat-embedded-punctuations-specially'
          *If T then speech not split at embedded punctuations.
   `dtk-speak-skim-scale'
          *Scale factor applied to speech rate when skimming.
   `dtk-speech-rate-step'
          * Determines step size used when setting speech rate via
          command dtk-set-predefined-speech-rate. Formula used is 180 +
          dtk-speech-rate-step*level
   `dtk-paused'
          Records if speech has been paused.
   `dtk-resume-should-toggle'
          *T means dtk-resume acts as a toggle.
   `dtk-default-voice'
          Default voice
   `dtk-default-voice-string'
          Default dtk string for the default voice.
   `dtk-voice-table'
          Association between symbols and strings to set dtk voices. The
          string can set any dtk parameter.
   `dtk-voice-reset-code'
          Memoize default voice command to make voice locking efficient.
          This variable holds the code associated with dtk-default-voice
          and saves repeated hash lookups.
   `emacspeak-delete-char-speak-deleted-char'
          *T means delete-char speaks char that was deleted.
   `emacspeak-backward-delete-char-speak-deleted-char'
          *T means backward-delete-char speaks char that was deleted.
   `emacspeak-delete-char-speak-current-char'
          *T means delete-char speaks char that becomes current after
          deletion.
   `emacspeak-backward-delete-char-speak-current-char'
          *T means backward-delete-char speaks char that becomes current
          after deletion.
   `emacspeak-last-message'
          Holds the last output generated by the Emacs 'message function.
   `emacspeak-lazy-message-time'
          Records when we last spoke a message.
   `emacspeak-speak-messages-should-pause-ongoing-speech'
          *If t then all messages will pause ongoing speech if any before
          the message is spoken.
   `emacspeak-ange-ftp-last-percent'
          Cache the last percentage that emacspeak spoke.
   `emacspeak-advice-advice-princ'
          If T then princ is advised to speak. Set dynamically by
          emacspeak to influence behavior. Do not change this unless you
          know what you are doing.
   `emacspeak-dismal-sheet-summarizer-list'
          Specifies how the entire sheet should be summarized.
   `emacspeak-dismal-row-summarizer-list'
          Specifies how rows should be summarized.
   `emacspeak-dismal-col-summarizer-list'
          Specifies how cols should be summarized.
   `emacspeak-dismal-already-customized-dismal'
          Records if we have customized dismal. Checked by emacspeak
          specific dis-mode-hooks entry.
   `emacspeak-ediff-A-personality'
          Personality used to voiceify difference chunk A
   `emacspeak-ediff-B-personality'
          Personality used to voiceify difference chunk B
   `emacspeak-ediff-fine-A-personality'
          Personality used to voiceify fine differences in chunk A
   `emacspeak-ediff-fine-B-personality'
          Personality used to voiceify fine differences in chunk B
   `emacspeak-ediff-current-diff-face-A'
          Personality for aurally highlighting the selected difference in
          buffer A.
   `emacspeak-ediff-current-diff-face-B'
          Personality for aurally highlighting the selected difference in
          buffer A.
   `emacspeak-ediff-fine-diff-face-A'
          Face for highlighting the refinement of the selected diff in
          buffer A.
   `emacspeak-ediff-fine-diff-face-B'
          Face for highlighting the refinement of the selected diff in
          buffer B.
   `emacspeak-ediff-control-buffer'
          Holds the control buffer for the most recent ediff
   `emacspeak-ediff-always-autorefine-diffs'
          Says if emacspeak should try computing fine differences each
          time. Set this to nil if things get too slow.
   `emacspeak-enriched-font-faces-to-voiceify'
          List of font faces we voiceify
   `emacspeak-eterm-keymap'
          Keymap used to navigate a terminal without moving the cursor.
   `emacspeak-eterm-prefix'
          Prefix char used by emacspeak for navigating an eterm
   `emacspeak-eterm-raw-prefix'
          Prefix key to use to send out raw term input. Useful when eterm
          is in review mode.
   `emacspeak-eterm-review-p'
          T if eterm is in review mode. In review mode, you can move
          around the terminal and listen to parts of it. Do not set this
          variable by hand. Use command C-t q.
   `emacspeak-eterm-marker'
          Marker used by emacspeak to yank when in eterm review mode.
   `emacspeak-eterm-maximum-windows'
          Variable specifying how many windows can be defined.
   `emacspeak-eterm-window-table'
          Vector of window positions. A terminal window is recorded by
          the positions of its top left and bottom right.
   `emacspeak-eterm-focus-window'
          Current window that emacspeak eterm focuses on
   `eterm-current-personality'
          Current personality for eterm.
   `emacspeak-eterm-row'
          Record the eterm row last spoken
   `emacspeak-eterm-column'
          Record the column last spoken
   `emacspeak-eterm-pointer'
          Terminal pointer. Can be moved around to listen to the contents
          of the terminal. See commands provided by the emacspeak
          extension to eterm: keymap emacspeak-eterm-keymap. Each
          term-mode buffer has a buffer local value of this variable.
   `emacspeak-eterm-marker'
          Mark set in an eterm buffer. Used to cut and paste from the
          terminal.
   `emacspeak-eterm-autospeak'
          Tells if eterm output is automatically spoken when in line
          mode. Use command emacspeak-toggle-eterm-autospeak bound to C-t
          C-q to set this.
   `eterm-line-mode'
          T if eterm is in line mode.
   `eterm-char-mode'
          Flag indicating if eterm is in char mode.
   `emacspeak-eterm-pointer-mode'
          If T then the emacspeak pointer will not track the terminal
          cursor. Do not set this by hand. Use command
          emacspeak-eterm-toggle-pointer-mode bound to C-t C-p.
   `emacspeak-eterm-remote-hosts-table'
          obarray used for completing hostnames when prompting for a
          remote host. Hosts are added whenever a new hostname is
          encountered, and the list of known hostnames is persisted in
          file named by emacspeak-eterm-remote-hostnames
   `emacspeak-eterm-remote-hosts-cache'
          File where list of known remote hosts is cached
   `emacspeak-finder-inf-file'
          File where we save the keyword/package associations for
          Emacspeak
   `emacspeak-finder-preamble'
          ;;;$Id: emacspeak-finder.el,v 8.0 1998/05/01 14:15:46 raman Exp
          $\n
   `emacspeak-finder-postamble'
          ))\n\n
   `emacspeak-interactive-functions-that-are-fixed'
          Functions which have been adviced automatically to make their
          interactive prompts speak.
   `gnus-ignored-most-headers'
          ^Path:\\|^Posting-Version:\\|^Article-I.D.:\\|^Expires:
   `emacspeak-gnus-large-article'
          *Articles having more than emacspeak-gnus-large-article lines
          will be considered to be a large article. A large article is
          not spoken all at once; instead you hear only the first
          screenful.
   `emacspeak-hidden-header-line-personality'
          Personality used to identify header lines of blocks.
   `emacspeak-hide-prefix-not-token-table'
          ^[ ]*$
   `emacspeak-hyperbole-phone-regexp'
          Regexp that matches phone numbers.
   `emacspeak-imenu-flattened-index-alist'
          Cached flattened index alist for buffer navigation
   `Info-voiceify'
          *Non-nil enables highlighting and voices in Info nodes.
   `Info-voiceify-maximum-menu-size'
          *Maximum size of menu to voiceify if `Info-voiceify' is
          non-nil.
   `ispell-highlight-personality'
          Voice used to highlight spelling errors.
   `emacspeak-prefix'
          Default prefix key used for emacspeak.
   `emacspeak-keymap'
          Primary keymap used by emacspeak.
   `emacspeak-dtk-submap'
          Submap used for DTK commands.
   `emacspeak-dir'
          Directory where emacspeak is installed.
   `emacspeak-resource-directory'
          Directory where Emacspeak resource files such as pronunciation
          dictionaries are stored.
   `Man-voice-lock-keywords'
          Keywords to highlight in Man mode
   `emacspeak-ediff-even-diff-face-A-var'
          Personality used to aurally highlight even-numbered differences
          in buffer A.
   `emacspeak-ediff-odd-diff-face-A-var'
          Personality used to aurally highlight odd-numbered differences
          in buffer B.
   `emacspeak-ediff-even-diff-face-B-var'
          Personality used to aurally highlight even-numbered differences
          in buffer B.
   `emacspeak-ediff-odd-diff-face-B-var'
          Personality used to aurally highlight odd-numbered differences
          in buffer B.
   `emacspeak-ediff-current-diff-face-A'
          Personality for aurally highlighting the selected difference in
          buffer A.
   `emacspeak-ediff-current-diff-face-B'
          Personality for aurally highlighting the selected difference in
          buffer A.
   `emacspeak-ediff-fine-diff-face-A'
          Face for highlighting the refinement of the selected diff in
          buffer A.
   `emacspeak-ediff-fine-diff-face-B'
          Face for highlighting the refinement of the selected diff in
          buffer B.
   `emacspeak-ediff-always-autorefine-diffs'
          Says if emacspeak should try computing fine differences each
          time. Set this to nil if things get too slow.
   `emacspeak-pronounce-dictionaries'
          Hash table holding emacspeak's persistent pronunciation
          dictionaries. Keys are either filenames, directory names, or
          major mode names. Values are alists containing
          string.pronunciation pairs.
   `emacspeak-pronounce-pronunciation-personality'
          *Personality used when speaking things that have a
          pronunciation applied.
   `emacspeak-pronounce-dictionaries-file'
          File that holds the persistent emacspeak pronunciation
          dictionaries.
   `emacspeak-pronounce-dictionaries-loaded'
          Indicates if dictionaries already loaded.
   `emacspeak-pronounce-current-buffer'
          Buffer name where we are currently defining a pronunciation
   `emacspeak-pronounce-yank-word-point'
          Point where we left off reading from the buffer containing the
          term being defined
   `emacspeak-pronounce-pronunciation-table'
          Variable holding association list of pronunciations for a
          buffer. Becomes automatically buffer local.
   `emacspeak-pronounce-help'
          Dictionary: Clear Define Load Refresh Save Toggle
   `emacspeak-realaudio-player'
          *Executable that plays relaudio
   `emacspeak-realaudio-process'
          Process handle to running player
   `emacspeak-realaudio-last-url'
          Records the last RealAudio resource we played
   `emacspeak-realaudio-history'
          History list holding resources we played recently
   `emacspeak-realaudio-shortcuts-directory'
          *Directory where we keep realaudio shortcuts. I typically keep
          .ram --RealAudio metafiles-- in this directory. Realaudio
          metafiles typically contain a single line that specifies the
          actual location of the realaudio stream --typically the .ra
          file.
   `emacspeak-functions-that-bypass-function-cell'
          These commands are activated directly through C, rather than
          through their function cell. They have to be redefined and
          rebound to make them talk.
   `emacspeak-remote-hooks'
          List of hook functions that are run after emacspeak is set to
          run as a remote application. Use this to add actions you
          typically perform after you enter remote mode.
   `emacspeak-remote-update-keymap'
          *Set this to T if you want the default remote startup hook to
          update your keymap. This is useful if you run remote emacspeak
          sessions within a local Emacspeak terminal buffer.
   `emacspeak-remote-hostname'
          /
   `emacspeak-remote-default-port-to-connect'
          Default used when prompting for a port to connect to.
   `emacspeak-remote-use-telnet-to-connect'
          *If set to t, then use a telnet subprocess to connect to the
          remote host that is running the speech server. Default is to
          use Emacs' built-in open-network-stream.
   `emacspeak-replace-highlight-on'
          Flag that says if replace highlight is on.
   `emacspeak-replace-saved-personality'
          Value saved before replace-highlight changed the personality.
   `emacspeak-dir'
          Directory where emacspeak is installed.
   `dtk-default-speech-rate'
          *Default speech rate at which Dectalk is started.
   `emacspeak-resource-directory'
          Directory where Emacspeak resource files such as pronunciation
          dictionaries are stored.
   `emacspeak-solitaire-autoshow'
          *T means rows and columns are toned as we move
   `emacspeak-solitaire-autoshow'
          *T means rows and columns are toned as we move
   `emacspeak-use-auditory-icons'
          Tells if emacspeak should use auditory icons. Do not set this
          variable by hand, use emacspeak-toggle-auditory-icons bound to
          C-e C-a.
   `emacspeak-sounds-table'
          Association between symbols and names of sound files. When
          producing auditory icons, other modules should use names
          defined here.
   `emacspeak-default-sound'
          Default sound to play if requested icon not found.
   `emacspeak-play-args'
          Set this to -i on suns if using the play program that ships on
          sunos/solaris. Note: on sparc20's there is a sunos bug that
          causes the machine to crash if you attempt to play sound when
          /dev/audio is busy. It's imperative that you use the -i flag to
          play on sparc20's.
   `emacspeak-auditory-icon-function'
          *Function that plays auditory icons
   `emacspeak-speak-paragraph-personality'
          *Personality for using to mark start of paragraph.
   `emacspeak-speak-voice-annotated-paragraphs'
          Records if paragraphs in this buffer have been voice annotated.
   `emacspeak-action-mode'
          If t then any function that is set as the value of property
          action is executed when the text unit at that point is spoken.
   `emacspeak-line-echo'
          If t, then emacspeak echoes lines as you type. Do not set this
          variable by hand; Use C-e d l
   `emacspeak-word-echo'
          If t, then emacspeak echoes words as you type. Do not set this
          variable by hand; Use C-e d w
   `emacspeak-character-echo'
          If t, then emacspeak echoes characters as you type. Do not set
          this variable by hand; Use C-e d k
   `emacspeak-show-point'
          If t, then emacspeak-speak-line indicates position of point by
          an aural highlight. Do not set this variable by hand; Use
          command emacspeak-toggle-show-point bound to C-e C-d
   `emacspeak-audio-indentation'
          If non-nil , then speaking a line indicates its indentation. Do
          not set this by hand, use command
          emacspeak-toggle-audio-indentation bound to C-e d i.
   `emacspeak-audio-indentation-method'
          *Current technique used to cue indentation See variable
          emacspeak-audio-indentation-methods for possible values.
          Automatically becomes local in any buffer where it is set.
   `emacspeak-horizontal-rule'
          *Regular expression to match horizontal rules in ascii text.
   `emacspeak-decoration-rule'
          *Regular expressions to match lines that are purely decorative
          ascii
   `emacspeak-unspeakable-rule'
          *Regular expression to match lines containing only
          non-alphanumeric characters. emacspeak will generate a tone
          instead of speaking such lines when punctuation mode is set to
          some.
   `emacspeak-speak-last-spoken-word-position'
          Records position of the last word that was spoken. Local to
          each buffer. Used to decide if we should spell the word rather
          than speak it.
   `emacspeak-mail-last-alerted-time'
          Records the least significant 16 digits of the time when the
          user was last alerted to the arrival of new mail. Alert the
          user only if mail has arrived since this time in the future.
   `emacspeak-mail-alert'
          If t, emacspeak will alert you about newly arrived mail with an
          auditory icon when displaying the mode line. Do not set this
          variable by hand --use command emacspeak-toggle-mail-alert
          bound to C-e M-m.
   `emacspeak-speak-time-format-string'
          %_I %M %p on %A, %B %_e, %Y
   `emacspeak-read-line-by-line-quotient'
          Determines behavior of emacspeak-read-line-by-line.
   `emacspeak-read-by-line-by-line-tick'
          Granularity of time for reading line-by-line.
   `emacspeak-comint-autospeak'
          Says if comint output is automatically spoken. Do not set this
          by hand, use command `emacspeak-toggle-comint-autospeak` bound
          to C-e C-q
   `emacspeak-speak-messages'
          If nil, emacspeak will not speak messages as they are echoed to
          the message area. Do not set this variable by hand. Use command
          emacspeak-toggle-speak-messages bound to C-e q.
   `emacspeak-completions-current-prefix'
          Prefix typed in the minibuffer before completions was invoked
   `emacspeak-clipboard-file'
          File used to save Emacspeak clipboard. The emacspeak clipboard
          provides a convenient mechnaism for exchanging information
          between different emacs sessions.
   `emacspeak-speedbar-disable-updates'
          Non nil means speedbar does not automatically update. An
          automatically updating speedbar consumes resources.
   `speedbar-button-personality'
          personality used for speedbar buttons
   `speedbar-directory-personality'
          Speedbar personality for directory buttons
   `speedbar-file-personality'
          Personality used for file buttons
   `speedbar-highlight-personality'
          Personality used for for speedbar highlight.
   `speedbar-tag-personality'
          Personality used for speedbar tags
   `emacspeak-speedbar-default-personality'
          Default personality used in speedbar buffers
   `emacspeak-table-column-header-personality'
          personality for speaking column headers.
   `emacspeak-table-row-header-personality'
          Personality for speaking row headers
   `emacspeak-table-keymap'
          Keymap for using in table browsing mode
   `emacspeak-table-speak-row-filter'
          Template specifying how a row is filtered before it is spoken.
   `emacspeak-table-speak-column-filter'
          Template specifying how a column is filtered before it is
          spoken.
   `emacspeak-table-select-automatic-speaking-method-prompt'
          Prompt to display when selecting automatic speaking method for
          table elements
   `emacspeak-table-speak-element'
          Function to call when automatically speaking table elements.
   `emacspeak-table-clipboard'
          Variable to hold table copied to the clipboard.
   `emacspeak-table-markup-table'
          Hash table to hold mapping between major modes and mode
          specific table markup.
   `tcl-voice-lock-keywords'
          Keywords to highlight in tcl mode
   `tcl-proc-list'
          List of commands whose first argument defines something. This
          exists because some people (eg, me) use \
   `tcl-typeword-list'
          List of Tcl keywords denoting \
   `tcl-keyword-list'
          set
   `emacspeak-tetris-pronunciations-defined'
          Indicate if tetris pronunciations are defined
   `emacspeak-tetris-shape-name-table'
          Names of the tiles based on their shape
   `emacspeak-tetris-tick-period'
          *Set this to a convenient value so you get time to look at what
          is going on. Reduce it as you get better.
   `emacspeak-tetris-width'
          *Set this to different values for fun
   `emacspeak-tetris-blank-row'
          String matching a blank row of the board
   `View-process-signal-line-personality'
          Indicate a signal
   `emacspeak-view-keys-optimized'
          Records if we have already optimized Emacspeak keybindings for
          view mode
   `vm-voice-lock-keywords'
          Keywords to highlight in vm
   `w3-min-img-size'
          *Image size under which the alt string is replaced by
          `w3-dummy-img-alt-repl'. 15 is a bit aggressive, 5 pixels would
          be safer
   `w3-dummy-img-re'
          Image name regexp for which the alt string is replaced by
          `w3-dummy-img-alt-repl'.
   `w3-dummy-img-alt-repl'
          *Dummy img alt replacement
   `emacspeak-widget-field-personality'
          Personality for edit fields
   `emacspeak-widget-button-personality'
          Personality for buttons
   `emacspeak-widget-documentation-personality'
          Personality for documentation
   `emacspeak-startup-hook'
          Hook to run after starting emacspeak
   `fast-voice-lock-save-personalities'
          Submit via mail a bug report on fast-voice-lock.el.
   `fast-voice-lock-minimum-size'
          *Minimum size of a buffer for cached voiceification. Only
          buffers more than this can have associated Voice Lock cache
          files saved. If nil, means cache files are never created. If a
          list, each element should be a cons pair of the form
          (MAJOR-MODE . SIZE), where MAJOR-MODE is a symbol or t (meaning
          the default). For example: ((c-mode . 25600) (c++-mode . 25600)
          (rmail-mode . 1048576)) means that the minimum size is 25K for
          buffers in C or C++ modes, one megabyte for buffers in Rmail
          mode, and size is irrelevant otherwise.
   `fast-voice-lock-save-events'
          *Events under which caches will be saved. Valid events are
          `save-buffer', `kill-buffer' and `kill-emacs'. If concurrent
          editing sessions use the same associated cache file for a
          file's buffer, then you should add `save-buffer' to this list.
   `fast-voice-lock-save-others'
          *If non-nil, save Voice Lock cache files irrespective of file
          owner. If nil, means only buffer files known to be owned by you
          can have associated Voice Lock cache files saved. Ownership may
          be unknown for networked files.
   `lazy-voice-lock-minimum-size'
          *Minimum size of a buffer for demand-driven voiceification.
          On-demand voiceification occurs if the buffer size is greater
          than this value. If nil, means demand-driven voiceification is
          never performed. If a list, each element should be a cons pair
          of the form (MAJOR-MODE . SIZE), where MAJOR-MODE is a symbol
          or t (meaning the default). For example: ((c-mode . 25600)
          (c++-mode . 25600) (rmail-mode . 1048576)) means that the
          minimum size is 25K for buffers in C or C++ modes, one megabyte
          for buffers in Rmail mode, and size is irrelevant otherwise.
          The value of this variable is used when Lazy Lock mode is
          turned on.
   `lazy-voice-lock-defer-driven'
          *If non-nil, means voiceification should be defer-driven. If
          nil, means demand-driven voiceification is performed. This
          means when scrolling into unvoiceified areas of the buffer,
          those areas are immediately voiceified. Thus scrolling never
          presents unvoiceified areas. However, since voiceification
          occurs during scrolling, scrolling may be slow. If t, means
          defer-driven voiceification is performed. This means
          voiceification of those areas is deferred. Thus scrolling may
          present momentarily unvoiceified areas. However, since
          voiceification does not occur during scrolling, scrolling will
          be faster than demand-driven voiceification. If any other
          value, e.g., `eventually', means demand-driven voiceification
          is performed until the buffer is voiceified, then buffer
          voiceification becomes defer-driven. Thus scrolling never
          presents unvoiceified areas until the buffer is first
          voiceified, after which subsequent scrolling may present future
          buffer insertions momentarily unvoiceified. However, since
          voiceification does not occur during scrolling after the buffer
          is first voiceified, scrolling will become faster. The value of
          this variable is used when Lazy Lock mode is turned on.
   `lazy-voice-lock-defer-time'
          *Time in seconds to delay before beginning deferred
          voiceification. Deferred voiceification occurs if there is no
          input within this time. If nil, means voiceification is never
          deferred. However, voiceification occurs on-the-fly or during
          scrolling, which may be slow. If a list, it should be of the
          form (MAJOR-MODES . TIME), where MAJOR-MODES is a list of
          `major-mode' symbols for which deferred voiceification should
          occur. The sense of the list is negated if it begins with
          `not'. For example: ((c-mode c++-mode) . 0.25) means that the
          deferral time is 0.25s for buffers in C or C++ modes, and
          deferral does not occur otherwise. The value of this variable
          is used when Lazy Lock mode is turned on.
   `lazy-voice-lock-stealth-time'
          *Time in seconds to delay before beginning stealth
          voiceification. Stealth voiceification occurs if there is no
          input within this time. If nil, means stealth voiceification is
          never performed. The value of this variable is used when Lazy
          Lock mode is turned on.
   `lazy-voice-lock-stealth-lines'
          *Maximum size of a chunk of stealth voiceification. Each
          iteration of stealth voiceification can voiceify this number of
          lines. To speed up input response during stealth
          voiceification, at the cost of stealth taking longer to
          voiceify, you could reduce the value of this variable.
   `lazy-voice-lock-stealth-nice'
          *Time in seconds to pause between chunks of stealth
          voiceification. Each iteration of stealth voiceification is
          separated by this amount of time. To reduce machine load during
          stealth voiceification, at the cost of stealth taking longer to
          voiceify, you could increase the value of this variable.
   `lazy-voice-lock-stealth-verbose'
          *If non-nil, means stealth voiceification should show status
          messages.
   `voice-lock-verbose'
          *If non-nil, means show status messages for buffer
          voiceification. If a number, only buffers greater than this
          size have voiceification messages.
   `voice-lock-maximum-decoration'
          *Maximum decoration level for voiceification. If nil, use the
          default decoration (typically the minimum available). If t, use
          the maximum decoration available. If a number, use that level
          of decoration (or if not available the maximum). If a list,
          each element should be a cons pair of the form (MAJOR-MODE .
          LEVEL), where MAJOR-MODE is a symbol or t (meaning the
          default). For example: ((c-mode . t) (c++-mode . 2) (t . 1))
          means use the maximum decoration available for buffers in C
          mode, level 2 decoration for buffers in C++ mode, and level 1
          decoration otherwise.
   `voice-lock-maximum-size'
          *Maximum size of a buffer for buffer voiceification. Only
          buffers less than this can be voiceified when Voice Lock mode
          is turned on. If nil, means size is irrelevant. If a list, each
          element should be a cons pair of the form (MAJOR-MODE . SIZE),
          where MAJOR-MODE is a symbol or t (meaning the default). For
          example: ((c-mode . 256000) (c++-mode . 256000) (rmail-mode .
          1048576)) means that the maximum size is 250K for buffers in C
          or C++ modes, one megabyte for buffers in Rmail mode, and size
          is irrelevant otherwise.
   `voice-lock-keywords'
          *A list of the keywords to highlight. Each element should be of
          the form: MATCHER (MATCHER . MATCH) (MATCHER . VOICENAME)
          (MATCHER . HIGHLIGHT) (MATCHER HIGHLIGHT ...) (eval . FORM)
          where HIGHLIGHT should be either MATCH-HIGHLIGHT or
          MATCH-ANCHORED. FORM is an expression, whose value should be a
          keyword element, evaluated when the keyword is (first) used in
          a buffer. This feature can be used to provide a keyword that
          can only be generated when Voice Lock mode is actually turned
          on. For highlighting single items, typically only
          MATCH-HIGHLIGHT is required. However, if an item or (typically)
          items are to be highlighted following the instance of another
          item (the anchor) then MATCH-ANCHORED may be required.
          MATCH-HIGHLIGHT should be of the form: (MATCH VOICENAME
          OVERRIDE LAXMATCH) Where MATCHER can be either the regexp to
          search for, or the function name to call to make the search
          (called with one argument, the limit of the search). MATCH is
          the subexpression of MATCHER to be highlighted. VOICENAME is an
          expression whose value is the personality name to use.
          VOICENAME's default attributes may be defined in
          `voice-lock-personality-attributes'. OVERRIDE and LAXMATCH are
          flags. If OVERRIDE is t, existing voiceification may be
          overwritten. If `keep', only parts not already voiceified are
          highlighted. If `prepend' or `append', existing voiceification
          is merged with the new, in which the new or existing
          voiceification, respectively, takes precedence. If LAXMATCH is
          non-nil, no error is signaled if there is no MATCH in MATCHER.
          For example, an element of the form highlights (if not already
          highlighted): \
   `voice-lock-defaults'
          If set by a major mode, should be the defaults for Voice Lock
          mode. The value should be like the `cdr' of an item in
          `voice-lock-defaults-alist'.
   `voice-lock-keywords-only'
          *Non-nil means Voice Lock should not voiceify comments or
          strings. This is normally set via `voice-lock-defaults'.
   `voice-lock-keywords-case-fold-search'
          *Non-nil means the patterns in `voice-lock-keywords' are
          case-insensitive. This is normally set via
          `voice-lock-defaults'.
   `voice-lock-syntax-table'
          Non-nil means use this syntax table for voiceifying. If this is
          nil, the major mode's syntax table is used. This is normally
          set via `voice-lock-defaults'.
   `voice-lock-beginning-of-syntax-function'
          *Non-nil means use this function to move back outside of a
          syntactic block. When called with no args it should leave point
          at the beginning of any enclosing syntactic block. If this is
          nil, the beginning of the buffer is used (in the worst case).
          This is normally set via `voice-lock-defaults'.
   `voice-lock-mark-block-function'
          *Non-nil means use this function to mark a block of text. When
          called with no args it should leave point at the beginning of
          any enclosing textual block and mark at the end. This is
          normally set via `voice-lock-defaults'.
   `voice-lock-comment-start-regexp'
          *Regexp to match the start of a comment. This need not
          discriminate between genuine comments and quoted comment
          characters or comment characters within strings. If nil,
          `comment-start-skip' is used instead; see that variable for
          more info. This is normally set via `voice-lock-defaults'.
   `voice-lock-voiceify-buffer-function'
          Function to use for voiceifying the buffer. This is normally
          set via `voice-lock-defaults'.
   `voice-lock-unvoiceify-buffer-function'
          Function to use for unvoiceifying the buffer. This is used when
          turning off Voice Lock mode. This is normally set via
          `voice-lock-defaults'.
   `voice-lock-voiceify-region-function'
          Function to use for voiceifying a region. It should take two
          args, the beginning and end of the region, and an optional
          third arg VERBOSE. If non-nil, the function should print status
          messages. This is normally set via `voice-lock-defaults'.
   `voice-lock-unvoiceify-region-function'
          Function to use for unvoiceifying a region. It should take two
          args, the beginning and end of the region. This is normally set
          via `voice-lock-defaults'.
   `voice-lock-inhibit-thing-lock'
          List of Voice Lock mode related modes that should not be turned
          on. Currently, valid mode names as `fast-voice-lock-mode' and
          `lazy-voice-lock-mode'. This is normally set via
          `voice-lock-defaults'.
   `voice-lock-mode-hook'
          Function or functions to run on entry to Voice Lock mode.
   `voice-lock-global-modes'
          *Modes for which Voice Lock mode is automagically turned on.
          Global Voice Lock mode is controlled by the
          `global-voice-lock-mode' command. If nil, means no modes have
          Voice Lock mode automatically turned on. If t, all modes that
          support Voice Lock mode have it automatically turned on. If a
          list, it should be a list of `major-mode' symbol names for
          which Voice Lock mode should be automatically turned on. The
          sense of the list is negated if it begins with `not'. For
          example: (c-mode c++-mode) means that Voice Lock mode is turned
          on for buffers in C and C++ modes only.
   `voice-lock-support-mode'
          *Support mode for Voice Lock mode. Support modes speed up Voice
          Lock mode by being choosy about when voiceification occurs.
          Known support modes are Fast Lock mode (symbol
          `fast-voice-lock-mode') and Lazy Lock mode (symbol
          `lazy-voice-lock-mode'). See those modes for more info. If nil,
          means support for Voice Lock mode is never performed. If a
          symbol, use that support mode. If a list, each element should
          be of the form (MAJOR-MODE . SUPPORT-MODE), where MAJOR-MODE is
          a symbol or t (meaning the default). For example: ((c-mode .
          fast-voice-lock-mode) (c++-mode . fast-voice-lock-mode) (t .
          lazy-voice-lock-mode)) means that Fast Lock mode is used to
          support Voice Lock mode for buffers in C or C++ modes, and Lazy
          Lock mode is used to support Voice Lock mode otherwise. The
          value of this variable is used when Voice Lock mode is turned
          on.
   `voice-lock-display-type'
          A symbol indicating the display Emacs is running under. The
          symbol should be one of `color', `grayscale' or `mono'. If
          Emacs guesses this display attribute wrongly, either set this
          variable in your `~/.emacs' or set the resource
          `Emacs.displayType' in your `~/.Xdefaults'. See also
          `voice-lock-background-mode' and
          `voice-lock-personality-attributes'.
   `voice-lock-background-mode'
          A symbol indicating the Emacs background brightness. The symbol
          should be one of `light' or `dark'. If Emacs guesses this frame
          attribute wrongly, either set this variable in your `~/.emacs'
          or set the resource `Emacs.backgroundMode' in your
          `~/.Xdefaults'. See also `voice-lock-display-type' and
          `voice-lock-personality-attributes'.
   `voice-lock-personality-attributes'
          A list of default attributes to use for personality attributes.
          Each element of the list should be of the form (VOICE
          FOREGROUND BACKGROUND BOLD-P ITALIC-P UNDERLINE-P) where VOICE
          should be one of the personality symbols
          `voice-lock-comment-personality',
          `voice-lock-string-personality',
          `voice-lock-keyword-personality',
          `voice-lock-type-personality',
          `voice-lock-function-name-personality',
          `voice-lock-variable-name-personality', and
          `voice-lock-reference-personality'. A form for each of these
          personality symbols should be provided in the list, but other
          personality symbols and attributes may be given and used in
          highlighting. See `voice-lock-keywords'. Subsequent element
          items should be the attributes for the corresponding Voice Lock
          mode personalities. Attributes FOREGROUND and BACKGROUND should
          be strings \(default if nil), while BOLD-P, ITALIC-P, and
          UNDERLINE-P should specify the corresponding personality
          attributes (yes if non-nil). Emacs uses default attributes
          based on display type and background brightness. See variables
          `voice-lock-display-type' and `voice-lock-background-mode'.
          Resources can be used to over-ride these personality
          attributes. For example, the resource
          `Emacs.voice-lock-comment-personality.attributeUnderline' can
          be used to specify the UNDERLINE-P attribute for personality
          `voice-lock-comment-personality'.
   `lisp-voice-lock-keywords'
          Default expressions to highlight in Lisp modes.
   `objc-voice-lock-extra-types'
          *List of extra types to voiceify in Objective-C mode. Each list
          item should be a regexp not containing word-delimiters. For
          example, a value of (\
   `java-voice-lock-extra-types'
          *List of extra types to voiceify in Java mode. Each list item
          should be a regexp not containing word-delimiters. For example,
          a value of (\
   `objc-voice-lock-keywords'
          Default expressions to highlight in Objective-C mode. See also
          `objc-voice-lock-extra-types'.
   `java-voice-lock-keywords'
          Default expressions to highlight in Java mode. See also
          `java-voice-lock-extra-types'.
   `c-voice-lock-keywords'
          Default expressions to highlight in C mode.
   `c++-voice-lock-keywords'
          Default expressions to highlight in C++ mode.
   `voice-lock-mode-specific-keywords-table'
          Association between major mode names and the voice lock
          keywords to be used in that mode.
   `compilation-mode-voice-lock-keywords'
          Additional expressions to highlight in Compilation mode.
   `help-voice-lock-keywords'
          Voice lock keywords for help mode.
   `voice-lock-comment-personality'
          Personality to use for comments.
   `voice-lock-underline-personality'
          Personality to use for underline text.
   `voice-lock-bold-personality'
          Personality to use for bold text.
   `voice-lock-italic-personality'
          Personality to use for italic text.
   `voice-lock-doc-string-personality'
          Personality to use for documentation strings.
   `voice-lock-string-personality'
          Personality to use for string constants.
   `voice-lock-function-name-personality'
          Personality to use for function names.
   `voice-lock-keyword-personality'
          Personality to use for keywords.
   `voice-lock-variable-name-personality'
          Personality to use for keywords.
   `voice-lock-type-personality'
          Personality to use for data types.
   `voice-lock-reference-personality'
          Personality to use for comments.
          
                               Future Directions
                                       
   Emacspeak is being actively developed by me. That is, I implement
   features as I need them.
   
                            Internals of Emacspeak
                                       
   <to be written>
   
Global variables

   There are also some variables that may be useful if you are writing a
   program or function that interacts with Emacspeak. <to be written>
   
Data Structures

   <to be written>
   
Miscellaneous Functions

   I have done quite a bit of work trying to make a semi-clean interface
   to the internals of Emacspeak. Here is a list of functions that you
   can use to take advantage of these features.
   
                               Acknowledgements
                                       
   Emacspeak would not have come about without the following people:
   
   Dave Wecker who goaded me into writing this package.
   
   Hans Chalupsky whose advice package makes Emacspeak work.
   
                                 Concept Index
                                       
d

     Dectalk Express
     Dictionaries
       
h

     Hooks
       
i

     Internals of Emacspeak
       
s

     Screen-Reading
       
u

     Using Emacspeak from your own programs
       
                                   Key Index
                                       
c

     C-c (
     C-c )
     C-c 0
     C-c 1
     C-c C-\
     C-c C-a
     C-c C-c, C-c C-c
     C-c C-d, C-c C-d
     C-c C-f
     C-c C-j
     C-c C-k
     C-c C-u
     C-c C-w
     C-c C-x C-c
     C-c C-z
     C-c e
     C-c k
     C-c o
     C-e
     C-e %
     C-e '
     C-e )
     C-e .
     C-e <
     C-e =
     C-e >
     C-e [
     C-e [down]
     C-e [space]
     C-e [up]
     C-e ]
     C-e A
     C-e a
     C-e B
     C-e b
     C-e C
     C-e c
     C-e C-@
     C-e C-a
     C-e C-b
     C-e C-d
     C-e C-h
     C-e C-i
     C-e C-j
     C-e C-l
     C-e C-m
     C-e C-n
     C-e C-o
     C-e C-p
     C-e C-q
     C-e C-r
     C-e C-s
     C-e C-t
     C-e C-w
     C-e d [space]
     C-e d a
     C-e d b
     C-e d C
     C-e d c
     C-e d C-m
     C-e d d
     C-e d f
     C-e d I
     C-e d i
     C-e d k
     C-e d l
     C-e d m
     C-e d p
     C-e d q
     C-e d R
     C-e d r
     C-e d s
     C-e d t
     C-e d V
     C-e d v
     C-e d w
     C-e d z
     C-e f
     C-e H
     C-e h
     C-e i
     C-e j
     C-e k
     C-e l
     C-e L
     C-e m
     C-e M
     C-e M-
     C-e M-\C-@
     C-e M-a
     C-e M-d
     C-e M-m
     C-e M-n
     C-e M-p, C-e M-p
     C-e M-r
     C-e M-t
     C-e M-v
     C-e n
     C-e o
     C-e p
     C-e P
     C-e q
     C-e r
     C-e R
     C-e s
     C-e t
     C-e v
     C-e w
     C-e W
     C-e x
     C-n
     C-p
     C-t ,
     C-t .
     C-t 1
     C-t <
     C-t >
     C-t [space]
     C-t a
     C-t b
     C-t c
     C-t C-d
     C-t C-f
     C-t C-i
     C-t C-m
     C-t C-p
     C-t C-q
     C-t C-w
     C-t C-y
     C-t e
     C-t f
     C-t g
     C-t H
     C-t h
     C-t l
     C-t m
     C-t M-b
     C-t M-f
     C-t n
     C-t p
     C-t q
     C-t r
     C-t s
     C-t v
     C-t w
     C-t x
     C-t y
       
m

     M-<
     M->
     M-b
     M-C-b
     M-C-f
     M-f
     M-m
       
                                 Command Index
                                       
b

     back-to-indentation
     backward-sexp
     backward-word
     beginning-of-buffer
       
c

     c-next-statement
     c-previous-statement
     compilation-next-file
     compilation-previous-file
     compile
     compile-goto-error
       
d

     dtk-add-cleanup-pattern
     dtk-emergency-restart
     dtk-pause
     dtk-reset-state
     dtk-resume
     dtk-select-server
     dtk-set-character-scale
     dtk-set-chunk-separator-syntax
     dtk-set-predefined-speech-rate
     dtk-set-pronunciation-mode
     dtk-set-punctuations
     dtk-set-punctuations-to-all
     dtk-set-punctuations-to-some
     dtk-set-rate
     dtk-stop
     dtk-toggle-allcaps-beep
     dtk-toggle-capitalization
     dtk-toggle-debug
     dtk-toggle-quiet
     dtk-toggle-split-caps
     dtk-toggle-splitting-on-white-space
     dtk-toggle-stop-immediately-while-typing
       
e

     emacspeak-appt-repeat-announcement
     emacspeak-audio-annotate-paragraphs
     emacspeak-blink-matching-open
     emacspeak-c-speak-semantics
     emacspeak-compilation-speak-error, emacspeak-compilation-speak-error
     emacspeak-describe-emacspeak
     emacspeak-dial-dtk
     emacspeak-dired-label-fields
     emacspeak-dired-speak-file-access-time
     emacspeak-dired-speak-file-modification-time
     emacspeak-dired-speak-file-permissions
     emacspeak-dired-speak-file-size
     emacspeak-dired-speak-header-line
     emacspeak-dired-speak-symlink-target
     emacspeak-dismal-backward-col-and-summarize
     emacspeak-dismal-backward-row-and-summarize
     emacspeak-dismal-col-summarize
     emacspeak-dismal-display-cell-expression
     emacspeak-dismal-display-cell-value
     emacspeak-dismal-display-cell-with-col-header
     emacspeak-dismal-display-cell-with-row-header
     emacspeak-dismal-forward-col-and-summarize
     emacspeak-dismal-forward-row-and-summarize
     emacspeak-dismal-row-summarize
     emacspeak-dismal-set-col-summarizer-list
     emacspeak-dismal-set-row-summarizer-list
     emacspeak-dismal-set-sheet-summarizer-list
     emacspeak-dismal-sheet-summarize
     emacspeak-dtk-speak-version
     emacspeak-ediff-speak-current-difference,
       emacspeak-ediff-speak-current-difference
     emacspeak-enriched-voiceify-faces
     emacspeak-eterm-copy-region-to-register
     emacspeak-eterm-define-window
     emacspeak-eterm-describe-window
     emacspeak-eterm-goto-line
     emacspeak-eterm-kill-ring-save-region
     emacspeak-eterm-maybe-send-raw
     emacspeak-eterm-paste-register
     emacspeak-eterm-pointer-backward-word
     emacspeak-eterm-pointer-down
     emacspeak-eterm-pointer-forward-word
     emacspeak-eterm-pointer-left
     emacspeak-eterm-pointer-right
     emacspeak-eterm-pointer-to-bottom
     emacspeak-eterm-pointer-to-cursor
     emacspeak-eterm-pointer-to-left-edge
     emacspeak-eterm-pointer-to-next-color-change
     emacspeak-eterm-pointer-to-previous-color-change
     emacspeak-eterm-pointer-to-right-edge
     emacspeak-eterm-pointer-to-top
     emacspeak-eterm-pointer-up
     emacspeak-eterm-remote-term
     emacspeak-eterm-search-backward
     emacspeak-eterm-search-forward
     emacspeak-eterm-set-focus-window
     emacspeak-eterm-set-marker
     emacspeak-eterm-speak-cursor
     emacspeak-eterm-speak-pointer
     emacspeak-eterm-speak-pointer-char
     emacspeak-eterm-speak-pointer-line
     emacspeak-eterm-speak-pointer-word
     emacspeak-eterm-speak-predefined-window
     emacspeak-eterm-speak-screen
     emacspeak-eterm-speak-window
     emacspeak-eterm-toggle-pointer-mode
     emacspeak-eterm-toggle-review
     emacspeak-eterm-yank-window
     emacspeak-execute-repeatedly
     emacspeak-forms-speak-field
     emacspeak-generate-documentation
     emacspeak-gomoku-display-statistics
     emacspeak-gomoku-show-current-column
     emacspeak-gomoku-show-current-negative-diagonal
     emacspeak-gomoku-show-current-positive-diagonal
     emacspeak-gomoku-show-current-row
     emacspeak-gomoku-speak-emacs-previous-move
     emacspeak-gomoku-speak-humans-previous-move
     emacspeak-gomoku-speak-number-of-moves
     emacspeak-gomoku-speak-square
     emacspeak-hide-or-expose-all-blocks
     emacspeak-hide-or-expose-block
     emacspeak-hide-speak-block-sans-prefix
     emacspeak-imenu-goto-next-index-position
     emacspeak-imenu-goto-previous-index-position
     emacspeak-imenu-speak-this-section
     emacspeak-keymap-choose-new-emacspeak-prefix
     emacspeak-kill-buffer-quietly
     emacspeak-kotl-setup-keys
     emacspeak-kotl-speak-cell
     emacspeak-learn-mode
     emacspeak-list-buffers-next-line
     emacspeak-list-buffers-previous-line
     emacspeak-list-buffers-speak-buffer-line
     emacspeak-list-buffers-speak-buffer-name
     emacspeak-man-browse-man-page
     emacspeak-outline-speak-backward-heading
     emacspeak-outline-speak-forward-heading
     emacspeak-outline-speak-heading
     emacspeak-outline-speak-next-heading
     emacspeak-outline-speak-previous-heading
     emacspeak-outline-speak-this-heading
     emacspeak-owindow-next-line
     emacspeak-owindow-previous-line
     emacspeak-owindow-scroll-down
     emacspeak-owindow-scroll-up
     emacspeak-owindow-speak-line
     emacspeak-play-all-icons
     emacspeak-pronounce-clear-dictionaries
     emacspeak-pronounce-define-pronunciation
     emacspeak-pronounce-dispatch
     emacspeak-pronounce-load-dictionaries
     emacspeak-pronounce-refresh-pronunciations
     emacspeak-pronounce-save-dictionaries
     emacspeak-pronounce-toggle-use-of-dictionaries
     emacspeak-py-next-block
     emacspeak-py-previous-block
     emacspeak-read-next-line
     emacspeak-read-next-word
     emacspeak-read-previous-line
     emacspeak-read-previous-word
     emacspeak-remote-connect-to-server
     emacspeak-remote-quick-connect-to-server
     emacspeak-rmail-speak-current-message-labels
     emacspeak-rmail-summarize-current-message
     emacspeak-show-personality-at-point
     emacspeak-show-property-at-point
     emacspeak-skip-blank-lines-backward
     emacspeak-skip-blank-lines-forward
     emacspeak-solitaire-show-column
     emacspeak-solitaire-show-row
     emacspeak-solitaire-speak-coordinates
     emacspeak-speak-browse-buffer
     emacspeak-speak-buffer
     emacspeak-speak-buffer-filename
     emacspeak-speak-buffer-interactively
     emacspeak-speak-calendar-date
     emacspeak-speak-char
     emacspeak-speak-completions
     emacspeak-speak-continuously
     emacspeak-speak-current-column
     emacspeak-speak-current-field
     emacspeak-speak-current-kill
     emacspeak-speak-current-mark
     emacspeak-speak-current-percentage
     emacspeak-speak-current-window
     emacspeak-speak-display-char
     emacspeak-speak-front-of-buffer
     emacspeak-speak-help
     emacspeak-speak-help-interactively
     emacspeak-speak-line
     emacspeak-speak-line-interactively
     emacspeak-speak-line-number
     emacspeak-speak-message-again
     emacspeak-speak-minibuffer
     emacspeak-speak-minor-mode-line
     emacspeak-speak-mode-line
     emacspeak-speak-next-field
     emacspeak-speak-next-window
     emacspeak-speak-other-window
     emacspeak-speak-page
     emacspeak-speak-page-interactively
     emacspeak-speak-paragraph
     emacspeak-speak-paragraph-interactively
     emacspeak-speak-predefined-window
     emacspeak-speak-previous-field
     emacspeak-speak-previous-window
     emacspeak-speak-rectangle
     emacspeak-speak-region
     emacspeak-speak-rest-of-buffer
     emacspeak-speak-sentence
     emacspeak-speak-set-display-table
     emacspeak-speak-sexp
     emacspeak-speak-sexp-interactively
     emacspeak-speak-skim-buffer
     emacspeak-speak-skim-next-paragraph
     emacspeak-speak-skim-paragraph
     emacspeak-speak-spaces-at-point
     emacspeak-speak-spell-current-word
     emacspeak-speak-time
     emacspeak-speak-version
     emacspeak-speak-voice-annotate-paragraphs
     emacspeak-speak-window-information
     emacspeak-speak-word
     emacspeak-speak-word-interactively
     emacspeak-speedbar-click
     emacspeak-speedbar-goto-speedbar
     emacspeak-submit-bug
     emacspeak-switch-to-previous-buffer
     emacspeak-table-copy-to-clipboard
     emacspeak-table-display-table-in-region
     emacspeak-table-find-file
     emacspeak-table-get-entry-with-headers
     emacspeak-table-goto
     emacspeak-table-goto-bottom
     emacspeak-table-goto-left
     emacspeak-table-goto-right
     emacspeak-table-goto-top
     emacspeak-table-next-column
     emacspeak-table-next-row
     emacspeak-table-paste-from-clipboard
     emacspeak-table-previous-column
     emacspeak-table-previous-row
     emacspeak-table-search
     emacspeak-table-search-headers
     emacspeak-table-select-automatic-speaking-method
     emacspeak-table-speak-both-headers-and-element
     emacspeak-table-speak-column-filtered
     emacspeak-table-speak-column-header-and-element
     emacspeak-table-speak-coordinates
     emacspeak-table-speak-current-element
     emacspeak-table-speak-row-filtered
     emacspeak-table-speak-row-header-and-element
     emacspeak-tabulate-region
     emacspeak-tapestry-describe-tapestry
     emacspeak-tetris-goto-bottom-row
     emacspeak-tetris-goto-top-row
     emacspeak-tetris-speak-coordinates
     emacspeak-tetris-speak-current-shape
     emacspeak-tetris-speak-current-shape-and-coordinates
     emacspeak-tetris-speak-next-shape
     emacspeak-tetris-speak-row
     emacspeak-tetris-speak-row-number
     emacspeak-tetris-speak-score
     emacspeak-tetris-speak-x-coordinate
     emacspeak-toggle-action-mode
     emacspeak-toggle-audio-indentation
     emacspeak-toggle-auditory-icons
     emacspeak-toggle-character-echo
     emacspeak-toggle-comint-autospeak
     emacspeak-toggle-eterm-autospeak
     emacspeak-toggle-line-echo
     emacspeak-toggle-mail-alert
     emacspeak-toggle-show-point
     emacspeak-toggle-speak-messages
     emacspeak-toggle-word-echo
     emacspeak-use-customized-blink-paren
     emacspeak-view-line-to-top
     emacspeak-view-register
     emacspeak-vm-browse-message
     emacspeak-vm-locate-subject-line
     emacspeak-vm-mode-line
     emacspeak-vm-speak-labels
     emacspeak-voicify-rectangle
     emacspeak-voicify-region
     emacspeak-widget-browse-widget-interactively
     emacspeak-widget-summarize-widget-under-point
     emacspeak-zap-dtk
     end-of-buffer
       
f

     fast-voice-lock-mode
     fast-voice-lock-read-cache
     fast-voice-lock-save-cache
     forward-sexp
     forward-word
       
g

     global-voice-lock-mode
     gnus-summary-catchup-quietly-and-exit
     gnus-summary-hide-all-headers
     gnus-summary-show-some-headers
     gomoku-move-left
     gomoku-move-right
       
l

     lazy-voice-lock-mode
     lazy-voice-lock-submit-bug-report
       
m

     M-x term-line-mode
       
n

     next-completion
     next-error
     next-line
       
p

     previous-completion
     previous-error
     previous-line
       
t

     tetris-move-left-edge
     tetris-move-right-edge
     tetris-move-to-x-pos
       
v

     voice-lock-mode
     voice-lock-voiceify-block
     voice-lock-voiceify-buffer
       
                                Variable Index
                                       
c

     c++-voice-lock-keywords
     c-voice-lock-keywords
     compilation-mode-voice-lock-keywords
       
d

     dtk-allcaps-beep
     dtk-capitalize
     dtk-character-scale
     dtk-character-to-speech-table
     dtk-chunk-separator-syntax
     dtk-clean-text-function
     dtk-cleanup-patterns
     dtk-css-code-tables
     dtk-debug
     dtk-default-speech-rate
     dtk-default-voice
     dtk-default-voice-string
     dtk-display-table
     dtk-family-table
     dtk-gain-table
     dtk-last-output
     dtk-paused
     dtk-program
     dtk-quiet
     dtk-resume-should-toggle
     dtk-speak-nonprinting-chars
     dtk-speak-process-connection-type
     dtk-speak-server-initialized
     dtk-speak-skim-scale
     dtk-speak-treat-embedded-punctuations-specially
     dtk-speech-rate
     dtk-speech-rate-step
     dtk-split-caps
     dtk-startup-hook, dtk-startup-hook
     dtk-stop-immediately
     dtk-stop-immediately-while-typing
     dtk-tcl
     dtk-voice-reset-code
     dtk-voice-table
       
e

     emacspeak-action-mode
     emacspeak-advice-advice-princ
     emacspeak-ange-ftp-last-percent
     emacspeak-audio-indentation
     emacspeak-audio-indentation-method
     emacspeak-auditory-icon-function
     emacspeak-backward-delete-char-speak-current-char
     emacspeak-backward-delete-char-speak-deleted-char
     emacspeak-character-echo
     emacspeak-clipboard-file
     emacspeak-comint-autospeak
     emacspeak-completions-current-prefix
     emacspeak-decoration-rule
     emacspeak-default-sound
     emacspeak-delete-char-speak-current-char
     emacspeak-delete-char-speak-deleted-char
     emacspeak-dir, emacspeak-dir
     emacspeak-dismal-already-customized-dismal
     emacspeak-dismal-col-summarizer-list
     emacspeak-dismal-row-summarizer-list
     emacspeak-dismal-sheet-summarizer-list
     emacspeak-dtk-submap
     emacspeak-ediff-A-personality
     emacspeak-ediff-always-autorefine-diffs,
       emacspeak-ediff-always-autorefine-diffs
     emacspeak-ediff-B-personality
     emacspeak-ediff-control-buffer
     emacspeak-ediff-current-diff-face-A,
       emacspeak-ediff-current-diff-face-A
     emacspeak-ediff-current-diff-face-B,
       emacspeak-ediff-current-diff-face-B
     emacspeak-ediff-even-diff-face-A-var
     emacspeak-ediff-even-diff-face-B-var
     emacspeak-ediff-fine-A-personality
     emacspeak-ediff-fine-B-personality
     emacspeak-ediff-fine-diff-face-A, emacspeak-ediff-fine-diff-face-A
     emacspeak-ediff-fine-diff-face-B, emacspeak-ediff-fine-diff-face-B
     emacspeak-ediff-odd-diff-face-A-var
     emacspeak-ediff-odd-diff-face-B-var
     emacspeak-enriched-font-faces-to-voiceify
     emacspeak-eterm-autospeak
     emacspeak-eterm-column
     emacspeak-eterm-focus-window
     emacspeak-eterm-keymap
     emacspeak-eterm-marker, emacspeak-eterm-marker
     emacspeak-eterm-maximum-windows
     emacspeak-eterm-pointer
     emacspeak-eterm-pointer-mode
     emacspeak-eterm-prefix
     emacspeak-eterm-raw-prefix
     emacspeak-eterm-remote-hosts-cache
     emacspeak-eterm-remote-hosts-table
     emacspeak-eterm-review-p
     emacspeak-eterm-row
     emacspeak-eterm-window-table
     emacspeak-finder-inf-file
     emacspeak-finder-postamble
     emacspeak-finder-preamble
     emacspeak-functions-that-bypass-function-cell
     emacspeak-gnus-large-article
     emacspeak-hidden-header-line-personality
     emacspeak-hide-prefix-not-token-table
     emacspeak-horizontal-rule
     emacspeak-hyperbole-phone-regexp
     emacspeak-imenu-flattened-index-alist
     emacspeak-interactive-functions-that-are-fixed
     emacspeak-keymap
     emacspeak-last-message
     emacspeak-lazy-message-time
     emacspeak-line-echo
     emacspeak-mail-alert
     emacspeak-mail-last-alerted-time
     emacspeak-play-args
     emacspeak-prefix
     emacspeak-pronounce-current-buffer
     emacspeak-pronounce-dictionaries
     emacspeak-pronounce-dictionaries-file
     emacspeak-pronounce-dictionaries-loaded
     emacspeak-pronounce-help
     emacspeak-pronounce-pronunciation-personality
     emacspeak-pronounce-pronunciation-table
     emacspeak-pronounce-yank-word-point
     emacspeak-read-by-line-by-line-tick
     emacspeak-read-line-by-line-quotient
     emacspeak-realaudio-history
     emacspeak-realaudio-last-url
     emacspeak-realaudio-player
     emacspeak-realaudio-process
     emacspeak-realaudio-shortcuts-directory
     emacspeak-remote-default-port-to-connect
     emacspeak-remote-hooks
     emacspeak-remote-hostname
     emacspeak-remote-update-keymap
     emacspeak-remote-use-telnet-to-connect
     emacspeak-replace-highlight-on
     emacspeak-replace-saved-personality
     emacspeak-resource-directory, emacspeak-resource-directory
     emacspeak-show-point
     emacspeak-solitaire-autoshow, emacspeak-solitaire-autoshow
     emacspeak-sounds-table
     emacspeak-speak-last-spoken-word-position
     emacspeak-speak-messages
     emacspeak-speak-messages-should-pause-ongoing-speech
     emacspeak-speak-paragraph-personality
     emacspeak-speak-time-format-string
     emacspeak-speak-voice-annotated-paragraphs
     emacspeak-speedbar-default-personality
     emacspeak-speedbar-disable-updates
     emacspeak-startup-hook, emacspeak-startup-hook
     emacspeak-table-clipboard
     emacspeak-table-column-header-personality
     emacspeak-table-keymap
     emacspeak-table-markup-table
     emacspeak-table-row-header-personality
     emacspeak-table-select-automatic-speaking-method-prompt
     emacspeak-table-speak-column-filter
     emacspeak-table-speak-element
     emacspeak-table-speak-row-filter
     emacspeak-tetris-blank-row
     emacspeak-tetris-pronunciations-defined
     emacspeak-tetris-shape-name-table
     emacspeak-tetris-tick-period
     emacspeak-tetris-width
     emacspeak-unspeakable-rule
     emacspeak-use-auditory-icons
     emacspeak-view-keys-optimized
     emacspeak-widget-button-personality
     emacspeak-widget-documentation-personality
     emacspeak-widget-field-personality
     emacspeak-word-echo
     eterm-char-mode
     eterm-current-personality
     eterm-line-mode
       
f

     fast-voice-lock-minimum-size
     fast-voice-lock-save-events
     fast-voice-lock-save-others
     fast-voice-lock-save-personalities
       
g

     gnus-ignored-most-headers
       
h

     help-voice-lock-keywords
       
i

     Info-voiceify
     Info-voiceify-maximum-menu-size
     ispell-highlight-personality
       
j

     java-voice-lock-extra-types
     java-voice-lock-keywords
       
l

     lazy-voice-lock-defer-driven
     lazy-voice-lock-defer-time
     lazy-voice-lock-minimum-size
     lazy-voice-lock-stealth-lines
     lazy-voice-lock-stealth-nice
     lazy-voice-lock-stealth-time
     lazy-voice-lock-stealth-verbose
     lisp-voice-lock-keywords
       
m

     Man-voice-lock-keywords
       
o

     objc-voice-lock-extra-types
     objc-voice-lock-keywords
       
s

     speedbar-button-personality
     speedbar-directory-personality
     speedbar-file-personality
     speedbar-highlight-personality
     speedbar-tag-personality
       
t

     tcl-keyword-list
     tcl-proc-list
     tcl-typeword-list
     tcl-voice-lock-keywords
       
v

     View-process-signal-line-personality
     vm-voice-lock-keywords
     voice-lock-background-mode
     voice-lock-beginning-of-syntax-function
     voice-lock-bold-personality
     voice-lock-comment-personality
     voice-lock-comment-start-regexp
     voice-lock-defaults
     voice-lock-display-type
     voice-lock-doc-string-personality
     voice-lock-function-name-personality
     voice-lock-global-modes
     voice-lock-inhibit-thing-lock
     voice-lock-italic-personality
     voice-lock-keyword-personality
     voice-lock-keywords
     voice-lock-keywords-case-fold-search
     voice-lock-keywords-only
     voice-lock-mark-block-function
     voice-lock-maximum-decoration
     voice-lock-maximum-size
     voice-lock-mode-hook
     voice-lock-mode-specific-keywords-table
     voice-lock-personality-attributes
     voice-lock-reference-personality
     voice-lock-string-personality
     voice-lock-support-mode
     voice-lock-syntax-table
     voice-lock-type-personality
     voice-lock-underline-personality
     voice-lock-unvoiceify-buffer-function
     voice-lock-unvoiceify-region-function
     voice-lock-variable-name-personality
     voice-lock-verbose
     voice-lock-voiceify-buffer-function
     voice-lock-voiceify-region-function
       
w

     w3-dummy-img-alt-repl
     w3-dummy-img-re
     w3-min-img-size
       
     _________________________________________________________________
                                      
                                   Footnotes
                                       
  (1)
  
   I currently use Emacspeak under Linux as the only speech feedback on
   my laptop; I also run Emacspeak at work on my DECALPHA workstation
   both under a vt100 as well as under X.
   
  (2)
  
   Control e is mnemonic for Emacspeak.
   
  (3)
  
   d is mnemonic for Dectalk.
   
     _________________________________________________________________
                                      
   This document was generated on 6 June 1998 using the texi2html
   translator version 1.51.
