diff man/w3.texi @ 165:5a88923fcbfe r20-3b9

Import from CVS: tag r20-3b9
author cvs
date Mon, 13 Aug 2007 09:44:42 +0200
parents cca96a509cfe
children 15872534500d
line wrap: on
line diff
--- a/man/w3.texi	Mon Aug 13 09:43:39 2007 +0200
+++ b/man/w3.texi	Mon Aug 13 09:44:42 2007 +0200
@@ -1,3605 +0,0 @@
-\input texinfo
-@c
-@c Please note that this file uses some constructs not supported by earlier 
-@c versions of TeX-info.  You must be running one of the newer TeX-info 
-@c releases (I currently use version 3.9 from ftp://prep.ai.mit.edu/pub/gnu/)
-@c
-@c Please do not send in bug reports about not being able to format the
-@c document with 'makeinfo' or 'tex', just upgrade your installation.
-@c
-@c Info formatted files are provided in the distribution, and you can
-@c retrieve dvi, postscript, and PDF versions from the web site or FTP 
-@c site: http://www.cs.indiana.edu/elisp/w3/docs.html
-@c
-@setfilename w3.info
-@settitle Emacs/W3 User's Manual
-@iftex
-@finalout
-@end iftex
-@c @setchapternewpage odd
-@c @smallbook
-@tex
-\overfullrule=0pt
-%\global\baselineskip 30pt      % for printing in double space
-@end tex
-@synindex cp fn
-@synindex vr fn
-@dircategory World Wide Web
-@dircategory GNU Emacs Lisp
-@direntry
-* W3: (w3).                       Emacs/W3 World Wide Web browser.
-@end direntry
-@ifinfo
-This file documents the Emacs/W3 World Wide Web browser.
-
-Copyright (C) 1993, 1994, 1995, 1996 William M. Perry
-Copyright (C) 1996, 1997 Free Software Foundation
-
-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.
-
-@ignore
-Permission is granted to process this file through Tex and print the
-results, provided the printed document carries copying permission
-notice identical to this one except for the removal of this paragraph
-(this paragraph not being relevant to the printed manual).
-
-@end ignore
-@end ifinfo
-@c
-@titlepage
-@sp 6
-@center @titlefont{Emacs/W3}
-@center @titlefont{User's Manual}
-@sp 4
-@center Third Edition, Emacs/W3 Version 3.0
-@sp 1
-@center March 1997
-@sp 5
-@center William M. Perry
-@center @i{wmperry@@cs.indiana.edu}
-@page
-@vskip 0pt plus 1filll
-Copyright @copyright{} 1993, 1994, 1995 William M. Perry@*
-Copyright @copyright{} 1996, 1997 Free Software Foundation
-
-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.
-
-@end titlepage
-@page
-@ifinfo
-@node Top, Getting Started, (dir), (dir)
-@top W3
-
-Users can browse the World Wide Web from within Emacs by using Emacs/W3.
-All of the widely used (and even some not very widely used) @sc{url}
-schemes are supported, and it is very easy to add new methods as the
-need arises.
-
-Emacs/W3 provides some core functionality that can be readily re-used
-from any program in Emacs.  Users and other package writers are
-encouraged to @i{Web-enable} their applications and daily work routines
-with the library.
-
-Emacs/W3 is completely customizable, both from Emacs-Lisp and from
-stylesheets @xref{Stylesheets}  If there is any aspect of Emacs/W3 that
-cannot be modified to your satisfaction, please send mail to the
-@t{w3-beta@@indiana.edu} mailing list with any suggestions.
-@xref{Reporting Bugs}
-
-@menu
-* Getting Started::             Getting up and running with Emacs/W3
-* Basic Usage::                 Basic movement and usage of Emacs/W3.
-* Compatibility::               Explanation of compatibility with
-                                other browsers.
-* Stylesheets::                 How to control the look of web pages
-* Supported URLs::              What @sc{URL} schemes are supported.
-* MIME Support::                Support for @sc{mime}
-* Security::                    Various security methods supported
-* Non-Unix Operating Systems::  Special considerations necessary to get
-                                up and running correctly under non-unix
-                                OS's.
-* Speech Integration::          Outputting to a speech synthesizer.
-* Advanced Features::           Some of the more arcane features.
-* More Help::                   How to get more help---mailing lists,
-                                newsgroups, etc.
-* Future Directions::           Plans for future revisions
-
-Appendices:
-* Reporting Bugs::              How to report a bug in Emacs/W3.
-* Dealing with Firewalls::      How to get around your firewall.
-* Proxy Gateways::              Using a proxy gateway with Emacs/W3.
-* Installing SSL::              Turning on @sc{ssl} support.
-* Mailcap Files::               An explanation of Mailcap files.
-* Down with DoubleClick::       Annoyed by advertisements?  Read this!
-
-Indices:
-* General Index::               General Index.
-* Key Index::                   Menus of command keys and their references.
-@end menu
-@end ifinfo
-
-@node Getting Started, Basic Usage, Top, Top
-@chapter Getting Started
-@cindex Clueless in Seattle
-@cindex Getting Started
-@kindex M-x w3
-@vindex w3-default-homepage
-@findex w3
-If installed correctly, starting Emacs/W3 is quite painless.  Just type
-@kbd{M-x w3} in a running Emacs session.  This will retrieve the default
-page that has been configured (@pxref{Preferences Panel}) - by default the
-documentation for Emacs/W3 at Indiana University.
-
-If the default page is not retrieved correctly at startup, you will have
-to do some customization (@pxref{Preferences Panel}).
-
-Once started, you can use the mouse and the menu or use the following
-key commands (for more commands and more detail, @pxref{Basic Usage, ,
-Basic Usage}).
-
-@table @asis
-@item move forward 
-press the space bar, 
-
-@item move backwards
-press the backspace key, 
-
-@item move to the next HTML reference on the page
-press the @kbd{TAB} key,
-
-@item move to the previous HTML reference on the page
-press the @kbd{SHIFT} and @kbd{TAB} keys at the same time.  If this does
-not work (some text terminals cannot distinguish between @kbd{TAB} and
-@kbd{SHIFT-TAB}, pressing the @kbd{ALT} and @kbd{TAB} keys should also
-work.
-
-@item follow a link 
-put the cursor over it
-and press the @kbd{RETURN} key, or @*
-click the left mouse button on it,
-
-@item fetch a @sc{url}
-press the @kbd{Control} and @kbd{o} keys at the same time,@*
-type the @sc{url}, and then press the @kbd{RETURN} key,
-
-@item return to the last URL you were at 
-press the @kbd{l} key,
-
-@item quit W3 mode 
-press the @kbd{q} key.
-@end table
-
-@menu
-* Downloading::                 Where to download Emacs/W3.
-* Building and Installing::     Compiling and installing from source.
-* Startup Files::               What is where, and why.
-* Preferences Panel::           Quick configuration of common options.
-@end menu
-
-@node Downloading, Building and Installing, Getting Started, Getting Started
-@section Downloading
-
-:: WORK :: What you need, and why@*
-:: WORK :: Where to download Emacs, XEmacs, various platforms@*
-:: WORK :: Where to download Emacs/W3@*
-:: WORK :: Where to download related utilities (netpbm, xv, gimp, etc.)
-
-@node Building and Installing, Startup Files, Downloading, Getting Started
-@section Building and Installing
-
-:: WORK :: Document makefile variables@*
-:: WORK :: Document what gets installed where, why
-
-@node Startup Files, Preferences Panel, Building and Installing, Getting Started
-@section Startup Files
-@cindex Startup files
-@cindex Default stylesheet
-
-:: WORK :: startup files@*
-This section should document where Emacs/W3 looks for its startup files,
-and what each one does.  'profile' 'stylesheet' 'hotlist' 'history' etc.
-
-@node Preferences Panel,  , Startup Files, Getting Started
-@section Preferences Panel
-@cindex Preferences
-@kindex M-x w3-preferences-edit
-
-:: WORK :: pref panel@*
-This should document the quick preferences panel.  M-x w3-preferences-edit
-
-@node Basic Usage, Compatibility, Getting Started, Top
-@chapter Basic Usage
-@cindex Basic Usage
-@kindex space
-@kindex backspace
-@kindex return
-@kindex tab
-@kindex M-tab
-Emacs/W3 is similar to the Info package all Emacs users hold near and
-dear to their hearts (@xref{Top,,Info,info, The Info Manual}, for a
-description of Info).  Basically, @kbd{space} and @kbd{backspace}
-control scrolling, and @kbd{return} or the middle mouse button follows a
-hypertext link.  The @kbd{tab} and @kbd{Meta-tab} keys maneuver around the
-various links on the page.
-
-@b{NOTE:} Starting with Emacs/W3 3.0, form entry areas in a page can be
-typed directly into.  This is one of the main differences in navigation
-from version 2.0.  If you are used to using the @kbd{f} and @kbd{b} keys
-to navigate around a buffer, I suggest training yourself to always use
-@kbd{tab} and @kbd{M-tab} - it will save time and frustration on pages
-with lots of form fields.
-
-By default, hypertext links are surrounded by '[[' and ']]' on
-non-graphic terminals (VT100, DOS window, etc.).  On a graphics
-terminal, the links are in shown in different colors.
-@xref{Stylesheets} for information on how to change this.
-
-There are approximately 50 keys bound to special Emacs/W3 functions.
-The basic rule of thumb regarding keybindings in Emacs/W3 is that a
-lowercase key takes an action on the @b{current document}, and an
-uppercase key takes an action on the document pointed to by the
-hypertext link @b{under the cursor}.
-
-There are several areas that the keybindings fall into: movement,
-information, action, and miscellaneous.
-
-@menu
-* Movement::                    Moving around in the buffer.
-* Information::                 Getting information about a document.
-* Action::                      Following links, printing, etc.
-* Miscellaneous::               Everything else.
-@end menu
-
-@node Movement, Information, Basic Usage, Basic Usage
-@section Movement
-
-All the standard Emacs bindings for movement are still in effect, with a
-few additions for convenience.
-
-@table @kbd
-@findex w3-scroll-up
-@kindex space
-@item space
-Scroll downward in the buffer.  With prefix arg, scroll down that many
-screenfuls. 
-@kindex backspace
-@findex scroll-down
-@item backspace
-Scroll upward in the buffer.  With prefix arg, scroll up that many
-screenfuls. 
-@kindex <
-@findex w3-start-of-document
-@item <
-Goes to the start of document
-@kindex >
-@findex w3-end-of-document
-@item >
-Goes to the end of document
-@kindex b
-@kindex Meta-tab
-@findex w3-widget-backward
-@item Meta-tab, Shift-tab, b
-Attempts to move backward one link area in the current document.
-Signals an error if no previous links are found.
-@kindex f
-@kindex tab
-@kindex n
-@findex w3-widget-forward
-@item tab, f, n
-Attempts to move forward one link area in the current document.  Signals
-an error if no more links are found.
-@kindex B
-@findex w3-backward-in-history
-@item B
-Move backwards in the history stack.
-@kindex F
-@findex w3-forward-in-history
-@item F
-Move forwards in the history stack.
-@kindex l
-@findex w3-goto-last-buffer
-@item l
-Return to the last buffer shown before this buffer.
-@kindex q
-@findex w3-quit
-@item q
-Kill this buffer.
-@kindex Q, u
-@findex w3-leave-buffer
-@item Q, u
-Bury this buffer, but don't kill it
-@end table
-
-@node Information, Action, Movement, Basic Usage
-@section Information
-
-These functions relate information about one or more links on the
-current document.
-
-@table @kbd
-@kindex v
-@findex url-view-url
-@item v
-This shows the @sc{url} of the current document in the minibuffer.
-@kindex V
-@findex w3-view-this-url
-@item V
-This shows the @sc{url} of the hypertext link under point in the
-minibuffer.
-@kindex i
-@findex w3-document-information
-@item i
-Shows miscellaneous information about the currently displayed document.
-This includes the @sc{url}, the last modified date, @sc{mime} headers,
-the @sc{http} response code, and any relationships to other documents.
-Any security information is also displayed.
-@kindex I
-@findex w3-document-information-this-url
-@item I
-Shows information about the @sc{url} at point.
-@kindex s
-@findex w3-source-document
-@item s
-This shows the @sc{html} source of the current document in a separate buffer.
-The buffer's name is based on the document's @sc{url}.
-@kindex S
-@findex w3-source-document-at-point
-@item S
-Shows the @sc{html} source of the hypertext link under point in a separate
-buffer.  The buffer's name is based on the document's @sc{url}.
-@kindex k
-@findex w3-save-url
-@item k
-This stores the current document's @sc{url} in the kill ring, and also in the
-current window-system's clipboard, if possible.
-@kindex K
-@findex w3-save-this-url
-@item K
-Stores the @sc{url} of the document under point in the kill ring, and also in
-the current window-system's clipboard, if possible.
-@end table
-
-@node Action, Miscellaneous, Information, Basic Usage
-@section Action
-
-First, here are the keys and functions that bring up a new hypertext
-page, usually creating a new buffer.
-@table @kbd
-@kindex m
-@findex w3-complete-link
-@item m
-Choose a link from the current buffer and follow it.  A completing-read
-is done on all the links, so @kbd{space} and @kbd{TAB} can be used for
-completion.
-@kindex return
-@findex w3-follow-link
-@item return 
-Pressing return when over a hyperlink attempts to follow the link
-under the cursor.  With a prefix argument (@kbd{C-u}), this forces the
-file to be saved to disk instead of being passed off to other viewers
-or being parsed as @sc{html}.
-
-Pressing return when over a form input field can cause auto-submission
-of the form.  This is for Mosaic and Netscape compatibility.  If there
-is only one item in the form other than submit or reset buttons, then
-
-minibuffer for the data to insert into the input field.  Type checking
-is done, and the data is only entered into the form when data of the
-correct type is entered (ie: cannot enter 44 for 'date' field, etc).
-
-@kindex Middle Mouse Button
-@findex w3-follow-mouse
-@item Middle Mouse Button
-Attempt to follow a hypertext link under the mouse cursor.  Clicking on
-a form input field will prompt in the minibuffer for the data to insert
-into the input field.  Type checking is done, and the data is only
-entered into the form when data of the correct type is entered (ie:
-cannot enter 44 for 'date' field, etc).
-
-@kindex Control Middle Mouse Button
-@kindex Meta return
-@findex w3-follow-inlined-image
-@item Control Middle Mouse Button, Meta return
-Tries to retrieve the inlined image that is under point.  It ignores any
-form entry areas or hyperlinks, and blindly follows any inlined image.
-Useful for seeing images that are meant to be used as hyperlinks when
-not on a terminal capable of displaying graphics.
-
-@kindex p
-@findex w3-print-this-url
-@item p
-Prints out the current buffer in a variety of formats, including
-PostScript, @sc{html} source, or formatted text.
-@kindex P
-@findex w3-print-url-under-point
-@item P
-Prints out the @sc{url} under point in a variety of formats, including
-PostScript, @sc{html} source, or formatted text.
-@kindex m
-@findex w3-complete-link
-@item m
-Selects a destination from a list of all the hyperlinks in the current
-buffer.  Use @kbd{space} and @kbd{tab} to complete on the links.
-
-@kindex r
-@kindex g
-@findex w3-reload-document
-@item r, g
-Reloads the current document.  The position within the buffer remains
-the same (unless the document has changed since it was last retrieved,
-in which case it should be relatively close).  This causes an
-unconditional reload from the remote server - the locally cached copy is
-not consulted.
-@kindex C-o
-@findex w3-fetch
-@item C-o
-Prompts for a @sc{url} in the minibuffer, and attempts to fetch
-it.  If there are any errors, or Emacs/W3 cannot understand the type of link
-requested, the errors are displayed in a hypertext buffer.
-@kindex o
-@findex w3-open-local
-@vindex url-use-hypertext-dired
-@item o
-Opens a local file, interactively.  This prompts for a local file name
-to open.  The file must exist, and may be a directory.  If the requested
-file is a directory and @code{url-use-hypertext-dired} is @code{nil},
-then a dired-mode buffer is displayed.  If non@code{nil}, then Emacs/W3
-automatically generates a hypertext listing of the directory.  The
-hypertext mode is the default, so that all the keys and functions remain
-the same.
-
-@kindex M-s
-@findex w3-save-as
-@item M-s
-Save a document to the local disk as HTML Source, Formatted Text, LaTeX
-Source, or Binary.
-
-@kindex Hv
-@findex w3-show-history-list
-@vindex w3-keep-history
-@item Hv
-If @code{url-keep-history} is non-@code{nil}, then Emacs/W3 keeps track
-of all the @sc{url}s visited in an Emacs session.  This function takes all
-the links that are in that internal list, and formats them as hypertext
-links in a list.
-@end table
-
-@cindex Buffer movement
-And here are the commands to move around between Emacs/W3 buffers:
-
-@table @kbd
-@kindex l
-@findex w3-goto-last-buffer
-@item l
-Goes to the last WWW buffer seen.
-@kindex q
-@findex w3-quit
-@item q
-Quits WWW mode.  This kills the current buffer and goes to the most
-recently visited buffer.
-@kindex Q
-@findex w3-leave-buffer
-@item u
-This is similar to w3-quit, but the buffer is not killed, it is moved to
-the bottom of the buffer list (so it is the least likely to show up as
-the default with switch-to-buffer).  This is different from
-@code{w3-goto-last-buffer} in that it does not return to the last WWW
-page visited - it is the same as using @code{switch-to-buffer} - the
-buffer left in the window is fairly random. 
-@kindex HB
-@kindex B
-@findex w3-backward-in-history
-@item HB, B
-Takes one step back along the path in the current history.  Has no
-effect if at the beginning of the session history.
-@kindex HF
-@kindex F
-@findex w3-forward-in-history
-@item HF, F
-Takes one step forward along the path in the current history.  Has no
-effect if at the end of the session history.
-@end table
-
-@node Miscellaneous,  , Action, Basic Usage
-@section Miscellaneous
-
-@table @kbd
-@kindex M-m
-@findex w3-mail-current-document
-@item M-m
-Mails the current document to someone.  Choose from several different
-formats to mail: formatted text, @sc{html} source, PostScript, or LaTeX source.
-When the @sc{html} source is mailed, then an appropriate <base> tag is inserted
-at the beginning of the document so that relative links may be followed
-correctly by whoever receives the mail.
-@kindex M-M
-@findex w3-mail-document-under-point
-@item M-M
-Mails the document pointed to by the hypertext link under point to someone.
-Choose from several different formats to mail: formatted text, @sc{html} source,
-PostScript, or LaTeX source.  When the @sc{html} source is mailed, then an
-appropriate <base> tag is inserted at the beginning of the document so that
-relative links may be followed correctly by whoever receives the
-mail.
-@kindex p
-@findex w3-print-this-url
-@item p
-Prints the current document.  Choose from several different formats to
-print: formatted text, @sc{html} source, PostScript (with ps-print), or by using
-LaTeX and dvips).
-
-@findex lpr-buffer
-@vindex lpr-command
-@vindex lpr-switches
-When the formatted text is printed, the normal @code{lpr-buffer} function
-is called, and the variables @code{lpr-command} and @code{lpr-switches}
-control how the document is printed.
-
-When the @sc{html} source is printed, then an appropriate <base> tag is
-inserted at the beginning of the document.
-@vindex w3-print-commnad
-@vindex w3-latex-docstyle
-When postscript is printed, then the @sc{html} source of the document is
-converted into LaTeX source.  There are several variables controlling
-what the final LaTeX document looks like.
-
-:: WORK :: Document the new LaTeX backend
-
-@table @code
-@item w3-latex-use-latex2e
-@vindex w3-latex-use-latex2e
-If non-@code{nil}, configures the LaTeX engine to use the LaTeX2e
-syntax.  A @code{nil} value indicates that LaTeX 2.0.9 compabibility
-will be used instead.
-@item w3-latex-docstyle
-@vindex w3-latex-docstyle
-The document style to use when printing or mailing converted @sc{html} files
-in LaTeX.  Good defaults are: @{article@}, [psfig,twocolumn]@{article@},
-etc.
-@item w3-latex-packages
-@vindex w3-latex-packages
-List of LaTeX packages to include.  Currently this is only used if 
-@code{w3-latex-use-latex2e} is non-@code{nil}.
-@item w3-latex-use-maketitle
-@vindex w3-latex-use-maketitle
-If non-@code{nil}, the LaTeX engine will use real LaTeX title pages for
-document titles.
-@item w3-latex-print-links
-@vindex w3-latex-print-links
-If non-@code{nil}, prints the @sc{url}s of hypertext links as endnotes at the
-end of the document.  If set to @code{footnote}, prints the @sc{url}'s as
-footnotes on each page.
-@end table
-
-@kindex P
-@findex w3-print-url-under-point
-@item P
-Prints the document pointed to by the hypertext link under point.
-Please see the previous item for more information.
-@kindex M-x w3-insert-formatted-url
-@findex w3-insert-formatted-url
-@item M-x w3-insert-formatted-url
-Insert a fully formatted @sc{html} link into another buffer.  This gets the
-name and @sc{url} of either the current buffer, or, with a prefix arg, of the
-link under point, and construct the appropriate <a...>...</a> markup and
-insert it into the desired buffer.
-@kindex M-tab
-@findex w3-insert-this-url
-@item M-tab
-Inserts the @sc{url} of the current document into another buffer.  Buffer is
-prompted for in the minibuffer.  With prefix arg, uses the @sc{url} of the
-link under point.
-@kindex U
-@findex w3-use-links
-@item U
-Selects one of the <LINK> tags from this document and fetch it.  Links
-are attributes of a specific document, and can tell such things as who
-made the document, where a table of contents is located, etc.
-
-Link tags specify relationships between documents in two ways.  Normal
-(forward) relationships (where the link has a REL="xxx" attribute), and
-reverse relationships (where the link has a REV="xxx" attribute).  This
-first asks what type of link to follow (Normal or Reverse), then does
-a @code{completing-read} on only the links that have that type of
-relationship.
-@end table
-
-@node Compatibility, Stylesheets, Basic Usage, Top
-@chapter Compatibility with other Browsers
-Due to the popularity of several other browsers, Emacs/W3 offers an easy
-transition to its much better way of life.  This ranges from being able
-to share the same preferences files and disk cache to actually emulating
-the keybindings used in other browsers.
-
-@menu
-* Emulation::                   Emacs/W3 can emulate the keybindings and
-				other behaviours of other browsers.
-* Hotlist Handling::            A hotlist is an easy way to keep track of
-				interesting Web pages without having to
-				remember the exact path to get there.
-* Session History::             Keeping a history of documents visited
-				in one Emacs sessions allows the use of
-				'forward' and 'back' buttons easily.
-* Global History::              Keeping a history of all the places ever
-				visited on the web.
-@end menu
-
-@node Emulation, Hotlist Handling, Compatibility, Compatibility
-@section Emulation
-@cindex Browser emulation
-@cindex Emulation of other browsers
-@cindex Netscape emulation
-@cindex Lynx emulation
-@findex turn-on-netscape-emulation
-@findex turn-on-lynx-emulation
-@findex w3-netscape-emulation-minor-mode
-@findex w3-lynx-emulation-minor-mode
-@vindex w3-mode-hook
-
-:: WORK :: Document lynx emulation@*
-@table @kbd
-@item Down arrow
-Highlight next topic
-@item Up arrow
-Highlight previous topic
-@item Right arrow, Return, Enter
-Jump to highlighted topic
-@item Left arrow
-Return to previous topic
-@item +
-Scroll down to next page (Page-Down)
-@item -
-Scroll up to previous page (Page-Up)
-@item SPACE
-Scroll down to next page (Page-Down)
-@item b
-Scroll up to previous page (Page-Up)
-@item C-A
-Go to first page of the current document (Home)
-@item C-E
-Go to last page of the current document (End)
-@item C-B
-Scroll up to previous page (Page-Up)
-@item C-F
-Scroll down to next page (Page-Down)
-@item C-N
-Go forward two lines in the current document
-@item C-P
-Go back two lines in the current document
-@item )
-Go forward half a page in the current document
-@item (
-Go back half a page in the current document
-@item #
-Go to Toolbar or Banner in the current document
-@item ?, h
-Help (this screen)
-@item a
-Add the current link to a bookmark file
-@item c
-Send a comment to the document owner 
-@item d
-Download the current link
-@item e
-Edit the current file
-@item g
-Goto a user specified @sc{url} or file
-@item i
-Show an index of documents
-@item j
-Execute a jump operation
-@item k
-Show a list of key mappings
-@item l
-List references (links) in current document
-@item m
-Return to main screen
-@item o
-Set your options
-@item p
-Print the current document
-@item q
-Quit
-@item /
-Search for a string within the current document
-@item s
-Enter a search string for an external search
-@item n
-Go to the next search string
-@item v
-View a bookmark file
-@item V
-Go to the Visited Links Page
-@item x
-Force submission of form or link with no-cache
-@item z
-Cancel transfer in progress
-@item [backspace]
-Go to the history Page
-@item =
-Show file and link info
-@item \
-Toggle document source/rendered view
-@item !
-Spawn your default shell
-@item *
-Toggle image_links mode on and off
-@item [
-Toggle pseudo_inlines mode on and off
-@item ]
-Send an @sc{http} @sc{head} request for the current doc or link
-@item C-R
-Reload current file and refresh the screen
-@item C-W
-Refresh the screen
-@item C-U
-Erase input line
-@item C-G
-Cancel input or transfer
-@item C-T
-Toggle trace mode on and off
-@item C-K
-Invoke the Cookie Jar Page
-@end table
-
-:: WORK :: Document netscape emulation@*
-Uh, turn this into pretty tables about what keys are emulated.
-
-@example
-(define-key w3-netscape-emulation-minor-mode-map "\M-s" 'w3-save-as)
-(define-key w3-netscape-emulation-minor-mode-map "\M-m" 'w3-mailto)
-(define-key w3-netscape-emulation-minor-mode-map "\M-n" 'make-frame)
-(define-key w3-netscape-emulation-minor-mode-map "\M-l" 'w3-fetch)
-(define-key w3-netscape-emulation-minor-mode-map "\M-o" 'w3-open-local)
-(define-key w3-netscape-emulation-minor-mode-map "\M-p" 'w3-print-this-url)
-(define-key w3-netscape-emulation-minor-mode-map "\M-q" 'w3-quit)
-(define-key w3-netscape-emulation-minor-mode-map "\M-f" 'w3-search-forward)
-(define-key w3-netscape-emulation-minor-mode-map "\M-g" 'w3-search-again)
-(define-key w3-netscape-emulation-minor-mode-map "\M-r" 'w3-reload-document)
-(define-key w3-netscape-emulation-minor-mode-map "\M-i" 'w3-load-delayed-images)
-(define-key w3-netscape-emulation-minor-mode-map "\M-a" 'w3-hotlist-add-document)
-(define-key w3-netscape-emulation-minor-mode-map "\M-b" 'w3-show-hotlist)
-(define-key w3-netscape-emulation-minor-mode-map "\M-h" 'w3-show-history-list)
-
-@end example
-
-@node Hotlist Handling, Session History, Emulation, Compatibility
-@section Hotlist Handling
-
-:: WORK :: Document that it supports different types of hotlist formats@*
-:: WORK :: Make sure everything hotlist related can be accessed via 'h'@*
-In order to avoid having to traverse many documents to get to the same
-document over and over, Emacs/W3 supports a ``hotlist'' like Mosaic.  This is
-a file that contains @sc{url}s and aliases.  Hotlists allow quick access to any
-document in the Web, providing it has been visited and added to the hotlist.
-The variable @code{w3-hotlist-file} determines where this information
-is saved.  The structure of the file is compatible with Mosaic's
-hotlist file, so this defaults to @file{~/.mosaic-hotlist-default}.
-
-Hotlist commands are:
-@table @kbd
-@kindex hi
-@findex w3-hotlist-add-document
-@vindex w3-hotlist-file
-@item a
-Adds the current document to the hotlist, with the buffer name as its
-identifier.  Modifies the file specified by @code{w3-hotlist-file}.  If
-this is given a prefix-argument (via @kbd{C-u}), the title is prompted
-for instead of automatically defaulting to the document title.
-
-@findex w3-hotlist-refresh
-@vindex w3-hotlist-file
-@kindex hR
-@item hR
-This rereads the default hostlist file specified by
-@code{w3-hotlist-file}.
-@findex w3-hotlist-delete
-@vindex w3-hotlist-file
-@kindex hd
-@item d
-Prompts for the alias of the entry to kill.  Pressing the spacebar or
-tab will list out partial completions.  The internal representation of
-the hotlist and the file specified by @code{w3-hotlist-file} are
-updated. 
-@item hr
-@kindex hr
-@findex w3-hotlist-rename-entry
-@vindex w3-hotlist-file
-Some hotlist item names can be very unwieldy (`Mosaic for X level 2 fill
-out form support'), or uninformative (`Index of /').  Prompts for the
-item to rename in the minibuffer---use the spacebar or tab key for
-completion.  After having chosen an item to rename, prompts for a new
-title until a unique title is entered.  Modifies the file specified by
-@code{w3-hotlist-file}.
-
-@item hu
-@kindex hu
-@findex w3-use-hotlist
-Prompts for the alias to jump to.  Pressing the @key{spacebar} or
-@key{tab} key shows partial completions.
-
-@item hv
-@kindex hv
-@findex w3-show-hotlist
-Converts the hotlist into @sc{html} and displays it.
-@item ha
-@kindex ha
-@findex w3-hotlist-apropos
-Shows the hotlist entries matching a regular expression.
-@item hA
-@kindex hA
-@findex w3-hotlist-append
-Appends another hotlist file to the one currently in memory.
-@end table
-@node Session History, Global History, Hotlist Handling, Compatibility
-@section History
-@cindex History Lists
-
-Almost all web browsers keep track of the @sc{url}s followed from a page, so
-that it can provide @b{forward} and @b{back} buttons to keep a @i{path}
-of @sc{url}s that can be traversed easily.
-
-@vindex url-keep-history
-If the variable @code{url-keep-history} is @code{t}, then Emacs/W3
-keeps a list of all the @sc{url}s visited in a session.
-
-@findex w3-show-history
-To view a listing of the history for this session of Emacs/W3, use
-@code{M-x w3-show-history} from any buffer, and Emacs/W3 generates an
-@sc{html} document showing every @sc{url} visited since Emacs started (or
-cleared the history list), and then format it.  Any of the links can
-be chosen and followed to the original document.  To clear the history
-list, choose 'Clear History' from the 'Options' menu.
-
-@findex w3-forward-in-history
-@findex w3-backward-in-history
-@findex w3-fetch
-Another twist on the history list mechanism is the fact that all
-Emacs/W3 buffers remember what @sc{url}, buffer, and buffer position of the
-last document, and also keeps track of the next location jumped @b{to}
-from that buffer.  This means that the user can go forwards and
-backwards very easily along the path taken to reach a particular
-document.  To go forward, use the function @code{w3-forward-in-history},
-to go backward, use the function @code{w3-backward-in-history}.
-
-@node Global History,  , Session History, Compatibility
-@section Global History
-
-:: WORK :: Document that the global history can have diff. formats@*
-Most web browsers also support the idea of a ``history'' of @sc{url}s the
-user has visited, and it displays them in a different style than normal
-@sc{url}s.
-
-@vindex url-keep-history
-@vindex url-global-history-file
-If the variable @code{url-keep-history} is @code{t}, then Emacs/W3
-keeps a list of all the @sc{url}s visited in a session.  The file is
-automatically written to disk when exiting emacs.  The list is added to
-those already in the file specified by @code{url-global-history-file},
-which defaults to @file{~/.mosaic-global-history}.
-
-If any @sc{url} in the list is found in the file, it is not saved, but new
-ones are added at the end of the file.
-
-The function that saves the global history list is smart enough to
-notice what style of history list is being used (Netscape, Emacs/W3, or
-XMosaic), and writes out the new additions appropriately.
-
-@cindex Completion of URLs
-@cindex Usefulness of global history
-One of the nice things about keeping a global history files is that Emacs/W3
-can use it as a completion table.  When doing @kbd{M-x w3-fetch}, pressing
-the @kbd{tab} or @kbd{space} key will show all completions for a
-partial @sc{url}.  This is very useful, especially for very long @sc{url}s that
-are not in a hotlist, or for seeing all the pages from a particular web
-site before choosing which to retrieve.
-
-@node Stylesheets, Supported URLs, Compatibility, Top
-@chapter Stylesheets
-The way in which Emacs/W3 formats a document is very customizable.  All
-formatting is now controlled by a default stylesheet set by the user
-with the @code{w3-default-stylesheet} variable.  Emacs/W3 currently
-supports the @sc{W3C} recommendation for Cascading Style Sheets, Level 1
-(commonly known as @sc{CSS1}) with a few experimental items from other
-W3C proposals.  Wherever Emacs/W3 diverges from the specification, it
-will be clearly documented, and will be changed once a full standard is
-available.
-
-Support for @sc{DSSSL} is progressing, but spare time is at an all-time
-low.  If anyone would like to help, please contact the author.
-
-The following sections closely parallel the @sc{CSS1} specification so
-it should be very easy to look up what Emacs/W3 supports when browsing
-through the @sc{CSS1} specification.  Please note that a lot of the text
-in the following sections comes directly from the specification as
-well.
-
-@menu
-* Terminology::                 Terms used in the rest of this chapter.
-* Basic Concepts::              Why are stylesheets useful?  Getting started.
-* Pseudo-Classes/Elements::     Special classes for elements.
-* The Cascade::                 How stylesheets are combined.
-* Properties::                  What properties you can set on elements.
-* Units::                       What you can set them to.
-@end menu
-
-@node Terminology, Basic Concepts, Stylesheets, Stylesheets
-@section Terminology
-
-@table @dfn
-@item attribute
-HTML attribute, ie: @samp{align=center} - align is the attribute.
-@item author
-The author of an HTML document.
-@item block-level element
-An element which has a line break before and after (e.g. 'H1' in @sc{HTML}).
-@item canvas
-The part of the UA's drawing surface onto which documents are rendered.
-@item child element
-A subelement in @sc{sgml} terminology.
-@item contextual selector
-A selector that matches elements based on their position in the document
-structure. A contextual selector consists of several simple
-selectors. E.g., the contextual selector 'H1.initial B' consists of two
-simple selectors, 'H1.initial' and 'B'.
-@item @sc{css}
-Cascading Style Sheets.
-@item declaration
-A property (e.g. 'font-size') and a corresponding value (e.g. '12pt').
-@item designer
-The designer of a style sheet.
-@item document
-@sc{html} document.
-@item element
-@sc{html} element.
-@item element type
-A generic identifier in @sc{sgml} terminology.
-@item fictional tag sequence
-A tool for describing the behavior of pseudo-classes and pseudo-elements.
-@item font size
-The size for which a font is designed. Typically, the size of a font is
-approximately equal to the distance from the bottom of the lowest letter
-with a descender to the top of the tallest letter with an ascender and
-(optionally) with a diacritical mark.
-@item @sc{html} extension
-Markup introduced by UA vendors, most often to support certain visual
-effects. The @sc{font}, @sc{center} and @sc{blink} elements are examples
-of HTML extensions, as is the @sc{bgcolor} attribute. One of the goals
-of @sc{css} is to provide an alternative to @sc{html} extensions.
-@item inline element
-An element which does not have a line break before and after
-(e.g. '@sc{strong}' in @sc{html})
-@item intrinsic dimensions
-The width and height as defined by the element itself, not imposed by
-the surroundings. In this specification it is assumed that all replaced
-elements -- and only replaced elements -- come with intrinsic
-dimensions.
-@item parent element
-The containing element in @sc{sgml} terminology.
-@item pseudo-element
-Pseudo-elements are used in @sc{css} selectors to address typographical
-items (e.g. the first line of an element) rather than structural
-elements.
-@item pseudo-class
-Pseudo-classes are used in @sc{css} selectors to allow information
-external to the @sc{html} source (e.g. the fact that an anchor has been
-visited or not) to classify elements.
-@item property
-A stylistic parameter that can be influenced through @sc{css}.
-@item reader
-The person for whom the document is rendered.
-@item replaced element
-An element that the @sc{css} formatter only knows the intrinsic
-dimensions of. In @sc{html}, @sc{img}, @sc{input}, @sc{textarea},
-@sc{select} and @sc{object} elements can be examples of replaced
-elements. E.g., the content of the @sc{img} element is often replaced by
-the image that the @sc{src} attribute points to.  @sc{css1} does not
-define how the intrinsic dimensions are found.
-@item rule
-A declaration (e.g. 'font-family: helvetica') and its selector
-(e.g. @sc{'H1'}).
-@item selector
-A string that identifies what elements the corresponding rule applies
-to. A selector can either be a simple selector (e.g. 'H1') or a
-contextual selector (e.g. @sc{'h1 b'}) which consists of several simple
-selectors.
-@item @sc{sgml}
-Standard Generalized Markup Language, of which @sc{html} is an
-application.
-@item simple selector
-A selector that matches elements based on the element type and/or
-attributes, and not the element's position in the document
-structure. E.g., 'H1.initial' is a simple selector.
-@item style sheet
-A collection of rules.
-@item @sc{ua}
-User Agent, often a web browser or web client.
-@item user
-Synonymous with reader.
-@item weight
-The priority of a rule.
-@end table
-
-@node Basic Concepts, Pseudo-Classes/Elements, Terminology, Stylesheets
-@section Basic Concepts
-
-Designing simple style sheets is easy. One needs only to know a little
-HTML and some basic desktop publishing terminology. E.g., to set the
-text color of 'H1' elements to blue, one can say:
-
-@example 
-  H1 @{ color: blue @}
-@end example
-
-The example above is a simple CSS rule. A rule consists of two main
-parts: selector ('H1') and declaration ('color: blue'). The declaration
-has two parts: property ('color') and value ('blue'). While the example
-above tries to influence only one of the properties needed for rendering
-an HTML document, it qualifies as a style sheet on its own. Combined
-with other style sheets (one fundamental feature of CSS is that style
-sheets are combined) it will determine the final presentation of the
-document.
-
-The selector is the link between the HTML document and the style sheet, and
-all HTML element types are possible selectors.
-
-@node Pseudo-Classes/Elements, The Cascade, Basic Concepts, Stylesheets
-@section Pseudo-Classes/Elements
-
-In @sc{css1}, style is normally attached to an element based on its
-position in the document structure. This simple model is sufficient for
-a wide variety of styles, but doesn't cover some common effects. The
-concept of pseudo-classes and pseudo-elements extend addressing in
-@sc{css1} to allow external information to influence the formatting
-process.
-
-Pseudo-classes and pseudo-elements can be used in @sc{css} selectors,
-but do not exist in the @sc{html} source. Rather, they are "inserted" by
-the @sc{ua} under certain conditions to be used for addressing in style
-sheets. They are referred to as "classes" and "elements" since this is a
-convenient way of describing their behavior. More specifically, their
-behavior is defined by a fictional tag sequence.
-
-Pseudo-elements are used to address sub-parts of elements, while
-pseudo-classes allow style sheets to differentiate between different
-element types.
-
-The only support pseudo-classes in Emacs/W3 are on the anchor tag
-(<a>...</a>).
-
-User agents commonly display newly visited anchors differently from
-older ones. In @sc{css1}, this is handled through pseudo-classes on the
-'A' element:
-
-@example
-  A:link @{ color: red @}       /* unvisited link */
-  A:visited @{ color: blue @}   /* visited links */
-  A:active @{ color: lime @}    /* active links */
-@end example
-
-All 'A' elements with an 'HREF' attribute will be put into one and only
-one of these groups (i.e. target anchors are not affected). UAs may
-choose to move an element from 'visited' to 'link' after a certain
-time. An 'active' link is one that is currently being selected (e.g. by
-a mouse button press) by the reader.
-
-The formatting of an anchor pseudo-class is as if the class had been
-inserted manually. A @sc{ua} is not required to reformat a currently
-displayed document due to anchor pseudo-class transitions. E.g., a style
-sheet can legally specify that the 'font-size' of an 'active' link
-should be larger that a 'visited' link, but the UA is not required to
-dynamically reformat the document when the reader selects the 'visited'
-link.
-
-Pseudo-class selectors do not match normal classes, and vice versa. The
-style rule in the example below will therefore not have any influence:
-
-@example
-  A:link @{ color: red @}
-
-  <A CLASS=link NAME=target5> ... </A>
-@end example
-
-In @sc{css1}, anchor pseudo-classes have no effect on elements other
-than 'A'. Therefore, the element type can be omitted from the selector:
-
-@example
-  A:link @{ color: red @}
-  :link @{ color: red @}
-@end example
-
-The two selectors above will select the same elements in CSS1.
-
-Pseudo-class names are case-insensitive.
-
-Pseudo-classes can be used in contextual selectors:
-
-@example
-  A:link IMG @{ border: solid blue @}
-@end example
-
-Also, pseudo-classes can be combined with normal classes:
-
-@example
-  A.external:visited @{ color: blue @}
-
-  <A CLASS=external HREF="http://out.side/">external link</A>
-@end example
-
-If the link in the above example has been visited, it will be rendered
-in blue. Note that normal class names precede pseudo-classes in the
-selector.
-
-@node The Cascade, Properties, Pseudo-Classes/Elements, Stylesheets
-@section The Cascade
-
-In @sc{css}, more than one style sheet can influence the presentation
-simultaneously. There are two main reasons for this feature: modularity
-and author/reader balance.
-
-@table @i
-@item modularity
-A style sheet designer can combine several (partial) style sheets to
-reduce redundancy:
-
-@example
-  @@import url(http://www.style.org/pastoral);
-  @@import url(http://www.style.org/marine);
-
-  H1 @{ color: red @}     /* override imported sheets */
-@end example
-@item author/reader balance
-Both readers and authors can influence the presentation through style
-sheets. To do so, they use the same style sheet language thus reflecting
-a fundamental feature of the web: everyone can become a publisher. The
-@sc{ua} is free to choose the mechanism for referencing personal style
-sheets.
-@end table
-
-Sometimes conflicts will arise between the style sheets that influence
-the presentation. Conflict resolution is based on each style rule having
-a weight. By default, the weights of the reader's rules are less than
-the weights of rules in the author's documents. I.e., if there are
-conflicts between the style sheets of an incoming document and the
-reader's personal sheets, the author's rules will be used. Both reader
-and author rules override the @sc{ua}'s default values.
-
-The imported style sheets also cascade with each other, in the order
-they are imported, according to the cascading rules defined below. Any
-rules specified in the style sheet itself override rules in imported
-style sheets. That is, imported style sheets are lower in the cascading
-order than rules in the style sheet itself. Imported style sheets can
-themselves import and override other style sheets, recursively.
-
-In @sc{css1}, all '@@import' statements must occur at the start of a
-style sheet, before any declarations. This makes it easy to see that
-rules in the style sheet itself override rules in the imported style
-sheets.
-
-NOTE: The use of !important in @sc{css} stylesheets is unsupported at
-this time.
-
-Conflicting rules are intrinsic to the CSS mechanism. To find the value
-for an element/property combination, the following algorithm must be
-followed:
-
-@enumerate
-@item
-Find all declarations that apply to the element/property in
-question. Declarations apply if the selector matches the element in
-question. If no declarations apply, the inherited value is used. If
-there is no inherited value (this is the case for the 'HTML' element and
-for properties that do not inherit), the initial value is used.
-@item 
-Sort the declarations by explicit weight: declarations marked
-'!important' carry more weight than unmarked (normal) declarations.
-@item
-Sort by origin: the author's style sheets override the reader's style
-sheet which override the UA's default values. An imported style sheet
-has the same origin as the style sheet from which it is imported.
-@item
-Sort by specificity of selector: more specific selectors will override
-more general ones. To find the specificity, count the number of ID
-attributes in the selector (a), the number of CLASS attributes in the
-selector (b), and the number of tag names in the selector
-(c). Concatenating the three numbers (in a number system with a large
-base) gives the specificity. Some examples:
-@example
-  LI            @{...@}  /* a=0 b=0 c=1 -> specificity =   1 */
-  UL LI         @{...@}  /* a=0 b=0 c=2 -> specificity =   2 */
-  UL OL LI      @{...@}  /* a=0 b=0 c=3 -> specificity =   3 */
-  LI.red        @{...@}  /* a=0 b=1 c=1 -> specificity =  11 */
-  UL OL LI.red  @{...@}  /* a=0 b=1 c=3 -> specificity =  13 */ 
-  #x34y         @{...@}  /* a=1 b=0 c=0 -> specificity = 100 */ 
-@end example
-Pseudo-elements and pseudo-classes are counted as normal elements and
-classes, respectively.
-@item
-Sort by order specified: if two rules have the same weight, the latter
-specified wins. Rules in imported style sheets are considered to be
-before any rules in the style sheet itself.
-@end enumerate
-
-The search for the property value can be terminated whenever one rule
-has a higher weight than the other rules that apply to the same
-element/property combination.
-
-This strategy gives author's style sheets considerably higher weight
-than those of the reader. It is therefore important that the reader has
-the ability to turn off the influence of a certain style sheet,
-e.g. through a pull-down menu.
-
-A declaration in the 'STYLE' attribute of an element has the same weight
-as a declaration with an ID-based selector that is specified at the end
-of the style sheet:
-
-@example
-<STYLE TYPE="text/css">
-  #x97z @{ color: blue @}
-</STYLE>
-
-<P ID=x97z STYLE="color: red">
-@end example
-
-In the above example, the color of the 'P' element would be
-red. Although the specificity is the same for both declarations, the
-declaration in the 'STYLE' attribute will override the one in the
-'STYLE' element because of cascading rule number 5.
-
-The @sc{ua} may choose to honor other stylistic @sc{html} attributes,
-for example 'ALIGN'. If so, these attributes are translated to the
-corresponding @sc{css} rules with specificity equal to 1. The rules are
-assumed to be at the start of the author style sheet and may be
-overridden by subsequent style sheet rules. In a transition phase, this
-policy will make it easier for stylistic attributes to coexist with
-style sheets.
-
-@node Properties, Units, The Cascade, Stylesheets
-@section Properties
-
-In the text below, the allowed values for each property are listed
-with a syntax like the following:
-
-@example
-      Value: N | NW | NE
-      Value: [ <length> | thick | thin ]@{1,4@}
-      Value: <uri>? <color> [ / <color> ]?
-      Value: <uri> || <color>
-@end example
-
-The words between < and > give a type of value. The most common types
-are <length>, <percentage>, <url>, <number>and <color> these are
-described in the section on [[units]]. The more specialized types
-(e.g. <font-family>and <border-style>) are described under the property
-where they appear.
-
-Other words are keywords that must appear literally, without quotes. The
-slash (/) and the comma (,) must also appear literally.
-
-Several things juxtaposed mean that all of them must occur, in the given
-order. A bar (|) separates alternatives: one of them must occur. A
-double bar (A || B) means that either A or B or both must occur, in any
-order. Brackets ([]) are for grouping. Juxtaposition is stronger than
-the double bar, and the double bar is stronger than the bar. Thus "a b |
-c || d e" is equivalent to "[ a b ] | [ c || [ d e ]]".
-
-Every type, keyword, or bracketed group may be followed by one of the
-following modifiers:
-
-@itemize @bullet
-@item
-An asterisk (*) indicates that the preceding type, word or group is
-repeated zero or more times.
-@item
-A plus (+) indicates that the preceding type, word or group is repeated
-one or more times.
-@item
-A question mark (?) indicates that the preceding type, word or group is
-optional.
-@item
-A pair of numbers in curly braces (@{A,B@}) indicates that the preceding
-type, word or group is repeated at least A and at most B times.
-@end itemize
-
-Other than the value the following information is also shown.
-
-@multitable @columnfractions .20 .8
-@item Supported Values: @tab If this is present, it lists the parts of
-the specification that Emacs/W3 currently supports.
-@item Unsupported Values: @tab If this is present, it represents the
-parts of the specifcation that Emacs/W3 does not support.
-@item Initial: @tab The default value for the property, unless
-explicitly set in a stylesheet.
-@item Applies to: @tab What type of elements this property can be attached to.
-@item Inherited: @tab Yes or no
-@item Percentage values: @tab What a percentage value applies to when given.
-@end multitable
-
-@menu
-* Font Properties::             Selecting fonts, styles, and sizes.
-* Colors and Backgrounds::      Controlling colors, front and back.
-* Text Properties::             Alignment, decoration, and more!
-* Box Properties::              Borders, padding, and margins, oh my!
-* Classification::              Changing whitespace and display policies.
-* Media Selection::             Conditionalize stylesheets on media-type.
-* Speech Properties::           Speech output controlled by stylesheets.
-@end menu
-
-@node Font Properties, Colors and Backgrounds, Properties, Properties
-@subsection Font Properties
-
-Setting font properties will be among the most common uses of style
-sheets.  Unfortunately, there exists no well-defined and universally
-accepted taxonomy for classifying fonts, and terms that apply to one
-font family may not be appropriate for others. E.g. 'italic' is commonly
-used to label slanted text, but slanted text may also be labeled as
-being @b{Oblique}, @b{Slanted}, @b{Incline}, @b{Cursive} or
-@b{Kursiv}. Therefore it is not a simple problem to map typical font
-selection properties to a specific font.
-
-The properties defined by CSS1 are described in the following sections.
-@menu
-* font-family::                 Groups of fonts.
-* font-style::                  Normal, italic, or oblique?
-* font-variant::                Small-caps, etc.
-* font-weight::                 How bold can you go?
-* font-size::                   How big is yours?
-* font::                        Shorthand for all of the above.
-@end menu
-
-@node font-family, font-style, Font Properties, Font Properties
-@subsubsection font-family
-
-@multitable @columnfractions .20 .8
-@item Supported Values: @tab [[<family-name> | <generic-family>],]* [<family-name> | <generic-family>]
-@item Initial: @tab User specific
-@item Applies to: @tab all elements
-@item Inherited: @tab yes
-@item Percentage values: @tab N/A
-@end multitable
-The value is a prioritized list of font family names and/or generic
-family names. Unlike most other CSS1 properties, values are separated
-by a comma to indicate that they are alternatives:
-
-@example
-  BODY @{ font-family: gill, helvetica, sans-serif @}
-@end example
-
-There are two types of list values:
-
-@table @b
-@item <family-name>
-The name of a font family of choice. In the last example, "gill" and
-"helvetica" are font families.
-@item <generic-family>
-In the example above, the last value is a generic family name. The
-following generic families are defined:
-@itemize @bullet
-@item
-'serif' (e.g. Times)
-@item
-'sans-serif' (e.g. Helvetica)
-@item
-'cursive' (e.g. Zapf-Chancery)
-@item
-'fantasy' (e.g. Western)
-@item
-'monospace' (e.g. Courier)
-@end itemize
-@end table
-
-Style sheet designers are encouraged to offer a generic font family as a
-last alternative.
-
-Font names containing whitespace should be quoted:
-
-@example
-  BODY @{ font-family: "new century schoolbook", serif @}
-  
-  <BODY STYLE="font-family: 'My own font', fantasy">
-@end example
-
-If quoting is omitted, any whitespace characters before and after the
-font name are ignored and any sequence of whitespace characters inside
-the font name is converted to a single space.
-
-@node font-style, font-variant, font-family, Font Properties
-@subsubsection font-style
-
-@multitable @columnfractions .2 .8
-@item Supported Values: @tab normal | italic | oblique
-@item Initial: @tab normal
-@item Applies to: @tab all elements
-@item Inherited: @tab yes
-@item Percentage values: @tab N/A
-@end multitable
-
-The 'font-style' property selects between normal (sometimes referred to
-as "roman" or "upright"), italic and oblique faces within a font family.
-
-A value of 'normal' selects a font that is classified as 'normal' in the
-UA's font database, while 'oblique' selects a font that is labeled
-'oblique'. A value of 'italic' selects a font that is labeled 'italic',
-or, if that is not available, one labeled 'oblique'.
-
-The font that is labeled 'oblique' in the UA's font database may
-actually have been generated by electronically slanting a normal font.
-
-Fonts with Oblique, Slanted or Incline in their names will typically be
-labeled 'oblique' in the UA's font database. Fonts with Italic, Cursive
-or Kursiv in their names will typically be labeled 'italic'.
-
-@example
-  H1, H2, H3 @{ font-style: italic @}
-  H1 EM @{ font-style: normal @}
-@end example
-
-In the example above, emphasized text within 'H1' will appear in a
-normal face.
-
-@node font-variant, font-weight, font-style, Font Properties
-@subsubsection font-variant
-
-@multitable @columnfractions .2 .8
-@item Value:             @tab normal | small-caps
-@item Initial:           @tab normal
-@item Applies to:        @tab all elements
-@item Inherited:         @tab yes
-@item Percentage values: @tab N/A
-@end multitable
-
-Another type of variation within a font family is the small-caps. In a
-small-caps font the lower case letters look similar to the uppercase
-ones, but in a smaller size and with slightly different proportions. The
-'font-variant' property selects that font.
-
-A value of 'normal' selects a font that is not a small-caps font,
-'small-caps' selects a small-caps font. It is acceptable (but not
-required) in CSS1 if the small-caps font is a created by taking a normal
-font and replacing the lower case letters by scaled uppercase
-characters. As a last resort, uppercase letters will be used as
-replacement for a small-caps font.
-
-The following example results in an 'H3' element in small-caps, with
-emphasized words in oblique small-caps:
-
-@example
-  H3 @{ font-variant: small-caps @}
-  EM @{ font-style: oblique @}
-@end example
-
-There may be other variants in the font family as well, such as fonts
-with old-style numerals, small-caps numerals, condensed or expanded
-letters, etc. CSS1 has no properties that select those.
-
-@node font-weight, font-size, font-variant, Font Properties
-@subsubsection font-weight
-
-@multitable @columnfractions .2 .8
-@item Supported Values: @tab normal | bold | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900
-@item Unsupported Values: @tab bolder | lighter
-@item Initial: @tab normal
-@item Applies to: @tab all elements
-@item Inherited: @tab yes
-@item Percentage values: @tab N/A
-@end multitable
-
-The 'font-weight' property selects the weight of the font. The values
-'100' to '900' form an ordered sequence, where each number indicates a
-weight that is at least as dark as its predecessor. The keyword 'normal'
-is synonymous with '400', and 'bold' is synonymous with '700'. Keywords
-other than 'normal' and 'bold' have been shown to be often confused with
-font names and a numerical scale was therefore chosen for the 9-value
-list.
-
-@example
-  P @{ font-weight: normal @}   /* 400 */
-  H1 @{ font-weight: 700 @}     /* bold */
-@end example
-
-The 'bolder' and 'lighter' values select font weights that are relative
-to the weight inherited from the parent:
-
-@example
-  STRONG @{ font-weight: bolder @}
-@end example
-
-There is no guarantee that there will be a darker face for each of the
-'font-weight' values; for example, some fonts may have only a normal and
-a bold face, others may have eight different face weights. There is no
-guarantee on how a UA will map font faces within a family to weight
-values. The only guarantee is that a face of a given value will be no
-less dark than the faces of lighter values.
-
-@node font-size, font, font-weight, Font Properties
-@subsubsection font-size
-
-@multitable @columnfractions .2 .8
-@item Supported Values: @tab <absolute-size> | <length>
-@item Unsupported Values: @tab <percentage> | <relative-size>
-@item Initial: @tab medium
-@item Applies to: @tab all elements
-@item Inherited: @tab yes
-@item Percentage values: @tab relative to parent element's font size
-@end multitable
-
-@table @b
-@item <absolute-size>
-An <absolute-size> keyword is an index to a table of font sizes computed
-and kept by the UA. Possible values are:
-@itemize @bullet
-@item
-xx-small
-@item
-x-small
-@item
-small
-@item
-medium
-@item
-large
-@item
-x-large
-@item
-xx-large
-@end itemize
-
-On a computer screen a scaling factor of 1.5 is suggested between
-adjacent indexes; if the 'medium' font is 10pt, the 'large' font could
-be 15pt. Different media may need different scaling factors. Also, the
-UA should take the quality and availability of fonts into account when
-computing the table. The table may be different from one font family to
-another.
-@item <relative-size>
-A <relative-size> keyword is interpreted relative to the table of font
-sizes and the font size of the parent element. Possible values are
-@b{larger} or @b{smaller}. For example, if the parent element has a font
-size of 'medium', a value of 'larger' will make the font size of the
-current element be 'large'. If the parent element's size is not close to
-a table entry, the UA is free to interpolate between table entries or
-round off to the closest one. The UA may have to extrapolate table
-values if the numerical value goes beyond the keywords.
-@end table
-
-Length and percentage values should not take the font size table into
-account when calculating the font size of the element.
-
-Negative values are not allowed.
-
-On all other properties, 'em' and 'ex' length values refer to the font
-size of the current element. On the 'font-size' property, these length
-units refer to the font size of the parent element.
-
-Note that an application may reinterpret an explicit size, depending on
-the context. E.g., inside a VR scene a font may get a different size
-because of perspective distortion.
-
-Examples:
-
-@example
-  P @{ font-size: 12pt; @}
-  BLOCKQUOTE @{ font-size: larger @}
-  EM @{ font-size: 150% @}
-  EM @{ font-size: 1.5em @}
-@end example
-
-If the suggested scaling factor of 1.5 is used, the last three
-declarations are identical.
-
-@node font,  , font-size, Font Properties
-@subsubsection font
-
-@multitable @columnfractions .2 .8
-@item Value: @tab [ <font-style> || <font-variant> || <font-weight> ]? <font-size> [ / <line-height> ]? <font-family>
-@item Initial: @tab not defined for shorthand properties
-@item Applies to: @tab all elements
-@item Inherited: @tab yes
-@item Percentage values: @tab allowed on <font-size> and <line-height>
-@end multitable
-The 'font' property is a shorthand property for setting 'font-style'
-'font-variant' 'font-weight' 'font-size', 'line-height' and
-'font-family' at the same place in the style sheet. The syntax of this
-property is based on a traditional typographical shorthand notation to
-set multiple properties related to fonts.
-
-For a definition of allowed and initial values, see the previously
-defined properties. Properties for which no values are given are set to
-their initial value.
-
-@example
-  P @{ font: 12pt/14pt sans-serif @}
-  P @{ font: 80% sans-serif @}
-  P @{ font: x-large/110% "new century schoolbook", serif @}
-  P @{ font: bold italic large Palatino, serif @}
-  P @{ font: normal small-caps 120%/120% fantasy @}
-@end example
-
-In the second rule, the font size percentage value ('80%') refers to the
-font size of the parent element. In the third rule, the line height
-percentage refers to the font size of the element itself.
-
-In the first three rules above, the 'font-style', 'font-variant' and
-'font-weight' are not explicitly mentioned, which means they are all
-three set to their initial value ('normal'). The fourth rule sets the
-'font-weight' to 'bold', the 'font-style' to 'italic' and implicitly
-sets 'font-variant' to 'normal'.
-
-The fifth rule sets the 'font-variant' ('small-caps'), the 'font-size'
-(120% of the parent's font), the 'line-height' (120% times the font
-size) and the 'font-family' ('fantasy'). It follows that the keyword
-'normal' applies to the two remaining properties: 'font-style' and
-'font-weight'.
-
-@node Colors and Backgrounds, Text Properties, Font Properties, Properties
-@subsection Colors and Backgrounds
-
-These properties describe the color (often called foreground color) and
-background of an element (i.e. the surface onto which the content is
-rendered). One can set a background color and/or a background image. The
-position of the image, if/how it is repeated, and whether it is fixed or
-scrolled relative to the canvas can also be set.
-
-The 'color' property inherits normally. The background properties do not
-inherit, but the parent element's background will shine through by
-default because of the initial 'transparent' value on
-'background-color'.
-
-NOTE: Currently, Emacs/W3 can only show background images under XEmacs.
-Emacs 19 doesn't have the support in its display code yet.
-
-@menu
-* color::                       Foreground colors.
-* background-color::            Background colors.
-* background-image::            Background images.
-* background-repeat::           Controlling repeating of background images.
-* background-attachment::       Where background images are drawn.
-* background-position::         Where background images are drawn.
-* background::                  Shorthand for all background properties.
-@end menu
-
-@node color, background-color, Colors and Backgrounds, Colors and Backgrounds
-@subsubsection color
-
-@multitable @columnfractions .2 .8
-@item Value: @tab <color>
-@item Initial: @tab User specific
-@item Applies to: @tab  all elements
-@item Inherited: @tab yes
-@item Percentage values: @tab N/A
-@end multitable
-
-This property describes the text color of  an element (often referred to
-as the foreground color). There are different ways to specify red:
-
-@example
-  EM @{ color: red @}              /* natural language */
-  EM @{ color: rgb(255,0,0) @}     /* RGB range 0-255   */
-@end example
-
-See @ref{Color Units} for a description of possible color values.
-
-@node background-color, background-image, color, Colors and Backgrounds
-@subsubsection background-color
-
-@multitable @columnfractions .2 .8
-@item Value: @tab <color> | transparent
-@item Initial: @tab transparent
-@item Applies to: @tab all elements
-@item Inherited: @tab no
-@item Percentage values: @tab N/A
-@end multitable
-
-This property sets the background color of an element.
-
-@example
-  H1 @{ background-color: #F00 @}
-@end example
-
-@node background-image, background-repeat, background-color, Colors and Backgrounds
-@subsubsection background-image
-
-@multitable @columnfractions .2 .8
-@item Value: @tab <url> | none
-@item Initial: @tab none
-@item Applies to: @tab all elements
-@item Inherited: @tab no
-@item Percentage values: @tab N/A
-@end multitable
-
-This property sets the background image of an element. When setting a
-background image, one should also set a background color that will be
-used when the image is unavailable. When the image is available, it is
-overlaid on top of the background color.
-
-@example
-  BODY @{ background-image: url(marble.png) @}
-  P @{ background-image: none @}
-@end example
-
-@node background-repeat, background-attachment, background-image, Colors and Backgrounds
-@subsubsection background-repeat
-
-This property is not supported at all under Emacs/W3.
-
-@node background-attachment, background-position, background-repeat, Colors and Backgrounds
-@subsubsection background-attachment
-
-This property is not supported at all under Emacs/W3.
-
-@node background-position, background, background-attachment, Colors and Backgrounds
-@subsubsection background-position
-
-This property is not supported at all under Emacs/W3.
-
-@node background,  , background-position, Colors and Backgrounds
-@subsubsection background
-
-@multitable @columnfractions .2 .8
-@item Value: @tab <background-color> || <background-image> || <background-repeat> || <background-attachment> || <background-position>
-@item Initial: @tab not defined for shorthand properties
-@item Applies to: @tab all elements
-@item Inherited: @tab no
-@item Percentage values: @tab allowed on <background-position>
-@end multitable
-
-The 'background' property is a shorthand property for setting the
-individual background properties (i.e., 'background-color',
-'background-image', 'background-repeat', 'background-attachment' and
-'background-position') at the same place in the style sheet.
-
-Possible values on the 'background' properties are the set of all
-possible values on the individual properties.
-
-@example 
-  BODY @{ background: red @}
-  P @{ background: url(chess.png) gray 50% repeat fixed @}
-@end example
-
-The 'background' property always sets all the individual background
-properties. In the first rule of the above example, only a value for
-'background-color' has been given and the other individual properties
-are set to their initial value. In the second rule, all individual
-properties have been specified.
-
-@node Text Properties, Box Properties, Colors and Backgrounds, Properties
-@subsection Text Properties
-
-@menu
-* word-spacing::                
-* letter-spacing::              
-* text-decoration::             
-* vertical-align::              
-* text-transform::              
-* text-align::                  
-* text-indent::                 
-* line-height::                 
-@end menu
-
-@node word-spacing, letter-spacing, Text Properties, Text Properties
-@subsubsection word-spacing
-
-@multitable @columnfractions .2 .8
-@item Supported Values: @tab normal
-@item Unsupported Values: @tab <length>
-@item Initial: @tab normal
-@item Applies to: @tab all elements
-@item Inherited: @tab yes
-@item Percentage values: @tab N/A
-@end multitable
-
-The length unit indicates an addition to the default space between
-words. Values can be negative, but there may be implementation-specific
-limits. The UA is free to select the exact spacing algorithm. The word
-spacing may also be influenced by justification (which is a value of the
-'align' property).
-
-@example
-  H1 @{ word-spacing: 0.4em @}
-@end example
-
-Here, the word-spacing between each word in 'H1' elements would be
-increased by '1em'.
-
-NOTE: Emacs/W3 cannot currently support this, due to limitations in
-Emacs.  It may  be implemented in the future.
-
-@node letter-spacing, text-decoration, word-spacing, Text Properties
-@subsubsection letter-spacing
-
-@multitable @columnfractions .2 .8
-@item Supported Values: @tab normal
-@item Unsupported Values: @tab <length>
-@item Initial: @tab normal
-@item Applies to: @tab all elements
-@item Inherited: @tab yes
-@item Percentage values: @tab N/A
-@end multitable
-
-The length unit indicates an addition to the default space between
-characters. Values can be negative, but there may be
-implementation-specific limits. The UA is free to select the exact
-spacing algorithm. The letter spacing may also be influenced by
-justification (which is a value of the 'align' property).
-
-@example
-  BLOCKQUOTE @{ letter-spacing: 0.1em @}
-@end example
-
-Here, the letter-spacing between each character in 'BLOCKQUOTE' elements
-would be increased by '0.1em'.
-
-NOTE: Emacs/W3 cannot currently support this, due to limitations in
-Emacs.  It may be implemented in the future.
-
-@node text-decoration, vertical-align, letter-spacing, Text Properties
-@subsubsection text-decoration
-
-@multitable @columnfractions .2 .8
-@item Supported Values: @tab none | underline | line-through | blink
-@item Unsupported Values: @tab overline 
-@item Initial: @tab none
-@item Applies to: @tab all elements
-@item Inherited: @tab no, but see clarification below
-@item Percentage values: @tab N/A
-@end multitable
-
-This property describes decorations that are added to the text of an
-element. If the element has no text (e.g. the 'IMG' element in HTML) or
-is an empty element (e.g. '<EM></EM>'), this property has no effect. A
-value of 'blink' causes the text to blink.
-
-The color(s) required for the text decoration should be derived from the
-'color' property value.
-
-This property is not inherited, but elements should match their
-parent. E.g., if an element is underlined, the line should span the
-child elements. The color of the underlining will remain the same even
-if descendant elements have different 'color' values.
-
-@example
-  A:link, A:visited, A:active @{ text-decoration: underline @}
-@end example
-
-The example above would underline the text of all links (i.e., all 'A'
-elements with a 'HREF' attribute).
-
-NOTE: The 'line-through' property is only supported under XEmacs
-currently.  A patch has been sent to the Emacs maintainers to add
-support for this, but it has not made it into the main distribution
-yet.
-
-@node vertical-align, text-transform, text-decoration, Text Properties
-@subsubsection vertical-align
-
-This is currently unsupported in Emacs/W3.
-
-@node text-transform, text-align, vertical-align, Text Properties
-@subsubsection text-transform
-
-@multitable @columnfractions .2 .8
-@item Supported Values: @tab none
-@item Unsupported Values: @tab capitalize | uppercase | lowercase
-@item Initial: @tab none
-@item Applies to: @tab all elements
-@item Inherited: @tab yes
-@item Percentage values: @tab N/A
-@end multitable
-
-@table @b
-@item 'capitalize'
-Uppercases the first character of each word.
-@item 'uppercase'
-Uppercases all letters of the element.
-@item 'lowercase'
-Lowercases all letters of the element.
-@item 'none'
-Neutralizes inherited value.
-@end table
-
-The actual transformation in each case is human language dependent.
-
-@example
-  H1 @{ text-transform: uppercase @}
-@end example
-
-The example above would put 'H1' elements in uppercase text.
-
-NOTE: This capability was in the previous version of Emacs/W3, but has
-not been reimplemented in the new display code yet.  Please feel free to
-send me patches.
-
-@node text-align, text-indent, text-transform, Text Properties
-@subsubsection text-align
-
-@multitable @columnfractions .2 .8
-@item Value: @tab left | right | center | justify
-@item Initial: @tab User specific
-@item Applies to: @tab block-level elements
-@item Inherited: @tab yes
-@item Percentage values: @tab N/A
-@end multitable
-
-This property describes how text is aligned within the element. The
-actual justification algorithm used is UA and human language dependent.
-
-Example:
-@example
-  DIV.center @{ text-align: center @}
-@end example
-
-Since 'text-align' inherits, all block-level elements inside the 'DIV'
-element with 'CLASS=center' will be centered. Note that alignments are
-relative to the width of the element, not the canvas.
-
-@node text-indent, line-height, text-align, Text Properties
-@subsubsection text-indent
-
-Not currently implemented in Emacs/W3.
-
-@node line-height,  , text-indent, Text Properties
-@subsubsection line-height
-
-Not currently implemented in Emacs/W3.
-
-@node Box Properties, Classification, Text Properties, Properties
-@subsection Box Properties
-
-@multitable @columnfractions .2 .8
-@end multitable
-
-@node Classification, Media Selection, Box Properties, Properties
-@subsection Classification
-
-These properties classify elements into categories more than they set
-specific visual parameters.
-
-The list-style properties describe how list items (i.e. elements with a
-'display' value of 'list-item') are formatted. The list-style properties
-can be set on any element, and it will inherit normally down the
-tree. However, they will only be have effect on elements with a
-'display' value of 'list-item'. In HTML this is typically the case for
-the 'LI' element.
-
-@menu
-* display::                     
-* white-space::                 
-* list-style-type::             
-* list-style-image::            
-* list-style-position::         
-* list-style::                  
-@end menu
-
-@node display, white-space, Classification, Classification
-@subsubsection display
-
-@multitable @columnfractions .2 .8
-@item Value: @tab block | inline | list-item | none
-@item Extensions: @tab line
-@item Initial: @tab inline
-@item Applies to: @tab all elements
-@item Inherited: @tab no
-@item Percentage values: @tab N/A
-@end multitable
-
-This property describes how/if an element is displayed on the canvas
-(which may be on a printed page, a computer display etc.).
-
-An element with a 'display' value of 'block' opens whitespace suitable
-for a paragraph break.  Typically, elements like 'H1' and 'P' are of
-type 'block'. A value of 'list-item' is similar to 'block' except that a
-list-item marker is added. In HTML, 'LI' will typically have this value.
-
-An element with a 'display' value of 'inline' results in a new inline
-box on the same line as the previous content.
-
-A value of 'none' turns off the display of the element, including
-children elements and the surrounding box.
-
-@example
-  P @{ display: block @}
-  EM @{ display: inline @}
-  LI @{ display: list-item @}
-  IMG @{ display: none @}
-@end example
-
-The last rule turns off the display of images.
-
-A value of 'line' results in a single line break.  Emacs/W3 needs this
-extension to be able to fully specify the behaviour of @sc{br} and
-@sc{hr} elements within a stylesheet.
-
-NOTE: Emacs/W3 defaults to using 'inline' for this property, which is a
-slight deviation from the specification.
-
-@node white-space, list-style-type, display, Classification
-@subsubsection white-space
-
-@multitable @columnfractions .2 .8
-@item Value: @tab normal | pre | nowrap
-@item Initial: @tab normal
-@item Applies to: @tab block-level elements
-@item Inherited: @tab yes
-@item Percentage values: @tab N/A
-@end multitable
-
-This property declares how whitespace inside the element is handled: the
-'normal' way (where whitespace is collapsed), as 'pre' (which behaves
-like the 'PRE' element in HTML) or as 'nowrap' (where wrapping is done
-only through BR elements):
-
-@example
-  PRE @{ white-space: pre @}
-  P   @{ white-space: normal @}
-@end example
-
-@node list-style-type, list-style-image, white-space, Classification
-@subsubsection list-style-type
-
-@multitable @columnfractions .2 .8
-@item Value: @tab disc | circle | square | decimal | lower-roman | upper-roman | lower-alpha | upper-alpha | none
-@item Initial: @tab disc
-@item Applies to: @tab elements with 'display' value 'list-item'
-@item Inherited: @tab yes
-@item Percentage values: @tab N/A
-@end multitable
-
-This property is used to determine the appearance of the list-item
-marker if 'list-style-image' is 'none' or if the image pointed to by the
-URL cannot be displayed.
-
-Fo example:
-@example
-  OL @{ list-style-type: decimal @}       /* 1 2 3 4 5 etc. */
-  OL @{ list-style-type: lower-alpha @}   /* a b c d e etc. */
-  OL @{ list-style-type: lower-roman @}   /* i ii iii iv v etc. */
-@end example
-
-@node list-style-image, list-style-position, list-style-type, Classification
-@subsubsection list-style-image
-
-@multitable @columnfractions .2 .8
-@item Value: @tab <url> | none
-@item Initial: @tab none
-@item Applies to: @tab elements with 'display' value 'list-item'
-@item Inherited: @tab yes
-@item Percentage values: @tab N/A
-@end multitable
-
-This property sets the image that will be used as the list-item
-marker. When the image is available it will replace the marker set with
-the 'list-style-type' marker.
-
-NOTE: This is currently unimplemented in Emacs/W3.
-
-@example
-  UL @{ list-style-image: url(http://png.com/ellipse.png) @}
-@end example
-
-@node list-style-position, list-style, list-style-image, Classification
-@subsubsection list-style-position
-
-@multitable @columnfractions .2 .8
-@item Supported Values: @tab outside
-@item Unsupported Values: @tab inside
-@item Initial: @tab outside
-@item Applies to: @tab elements with 'display' value 'list-item'
-@item Inherited: @tab yes
-@item Percentage values: @tab N/A
-@end multitable
-
-The value of 'list-style-position' determines how the list-item marker
-is drawn with regard to the content. For a formatting example see
-section 4.1.3.
-
-@node list-style,  , list-style-position, Classification
-@subsubsection list-style
-
-@multitable @columnfractions .2 .8
-@item Value: @tab <keyword> || <position> || <url>
-@item Initial: @tab not defined for shorthand properties
-@item Applies to: @tab elements with 'display' value 'list-item'
-@item Inherited: @tab yes
-@item Percentage values: @tab N/A
-@end multitable
-
-The 'list-style' property is a shorthand notation for setting the three
-properties 'list-style-type', 'list-style-image' and
-'list-style-position' at the same place in the style sheet.
-
-@example
-  UL @{ list-style: upper-roman inside @}
-  UL UL @{ list-style: circle outside @}
-  LI.square @{ list-style: square @}
-@end example
-
-Setting 'list-style' directly on 'LI' elements can have unexpected
-results. Consider:
-
-@example
-  <STYLE TYPE="text/css">
-    OL.alpha LI  @{ list-style: lower-alpha @}
-    UL LI        @{ list-style: disc @}
-  </STYLE>
-  <BODY>
-    <OL CLASS=alpha>
-      <LI>level 1
-      <UL>
-         <LI>level 2
-      </UL>
-    </OL>
-  </BODY>
-@end example
-
-Since the specificity (as defined in the cascading order) is higher for
-the first rule in the style sheet in the example above, it will override
-the second rule on all 'LI' elements and only 'lower-alpha' list styles
-will be used. It is therefore recommended to set 'list-style' only on
-the list type elements:
-
-@example
-  OL.alpha  @{ list-style: lower-alpha @}
-  UL        @{ list-style: disc @}
-@end example
-
-In the above example, inheritance will transfer the 'list-style' values
-from 'OL' and 'UL' elements to 'LI' elements.
-
-A URL value can be combined with any other value:
-
-@example
-  UL @{ list-style: url(http://png.com/ellipse.png) disc @}
-@end example
-
-In the example above, the 'disc' will be used when the image is
-unavailable.
-
-@node Media Selection, Speech Properties, Classification, Properties
-@subsection Media Selection
-
-To specify that a stylesheet declaration should only apply when using a
-certain media type (ie: different font families preferred when printing
-versus on-screen presentation), the declarations should be wrapped in
-the proposed @b{@@media} directive.
-
-The @@media directive takes two arguments, the media type, and a block
-of style declarations.
-
-@example
-  @@media print @{ 
-    BODY @{ font-size: 10pt @}
-    H1 @{ font-size: 14pt @}
-  @}
-@end example
-The '@@media' construct also allows to put include style sheet rules
-for various media in the same style sheet:
-
-@example
-  @@media print @{
-    BODY @{ font-size: 10pt @}
-  @}
-  @@media screen @{
-    BODY @{ font-size: 12pt @}
-  @}
-@end example
-
-Currently, the following media types are defined.
-@table @b
-@item Print
-Output for paged opaque material, and for documents viewed on screen in
-print preview mode.
-@item Screen
-A continuous presentation for computer screens.
-@item Projector
-Paged presentation for projected presentations.
-@item Braille
-For braille tactile feedback devices.
-@item Speech
-Aural presentation.
-@item Light
-The stylesheet will only be applied if the user is using a light background.
-@item Dark
-The stylesheet will only be applied if the user is using a dark background.
-@item Emacs
-The stylesheet will only be applied if the user is running in Emacs 19.
-@item XEmacs
-The stylesheet will only be applied if the user is running in XEmacs 19.
-@item All
-The default value, the style sheet applies to all output devices.
-@end table
-
-@node Speech Properties,  , Media Selection, Properties
-@subsection Speech Properties
-
-Those of us who are sighted are accustomed to visual presentation of
-@sc{html} documents, frequently on a bitmapped display. This is not the
-only possible presentation method, however. Aural presentation, using a
-combination of speech synthesis and 'audio icons', provides an
-alternative presentation. This form of presentation is in current use by
-the blind and print-impaired communities.
-
-Often such aural presentation occurs by converting the document to plain
-text and feeding this to a 'screen reader' -- software or hardware that
-simply reads all the characters on the screen. This results in less
-effective presentation than would be the case if the document structure
-were retained.
-
-There are other large markets for aural presentation, including in-car
-and home entertainment use; aurual or mixed aural/visual presentation is
-thus likely to increase in importance over the next few years. Realizing
-that that the aural rendering is essentially independent of the visual
-rendering:
-
-@itemize @bullet
-@item
-Allows orthogonal aural and visual views.
-@item
-Allows browsers to optionally implement both aural and visual views to
-produce truly multimodal documents.
-@end itemize
-
-@menu
-* volume::                      
-* pause-before::                
-* pause-after::                 
-* pause::                       
-* cue-before::                  
-* cue-after::                   
-* cue::                         
-* play-during::                 
-* speed::                       
-* voice-family::                
-* pitch::                       
-* pitch-range::                 
-* stress::                      
-* richness::                    
-* speak-punctuation::           
-* speak-date::                  
-* speak-numeral::               
-* speak-time::                  
-@end menu
-
-@node volume, pause-before, Speech Properties, Speech Properties
-@subsubsection volume
-
-@multitable @columnfractions .2 .8
-@item Value: @tab <percentage> | mute | x-soft | soft | medium | loud | x-loud
-@item Initial: @tab medium
-@item Applies to: @tab all elements
-@item Inherited: @tab yes
-@item Percentage values: @tab relative to user-specified mapping
-@end multitable
-
-The legal range of percentage values is 0% to 100%. There is a fixed
-mapping between keyword values and percentages:
-
-@itemize @bullet
-@item
-'x-soft' = '0%'
-@item
-'soft' = '25%'
-@item
-'medium' = '50%'
-@item
-'loud' = '75%'
-@item
-'x-loud' = '100%'
-@end itemize
-
-Volume refers to the median volume of the waveform. In other words, a
-highly inflected voice at a volume of 50 might peak well above
-that. Note that '0%' does not mean the same as "mute". 0% represents the
-minimum audible volume level and 100% corresponds to the maximum
-comfortable level. The UA should allow the values corresponding to 0%
-and 100% to be set by the user. Suitable values depend on the equipment
-in use (speakers, headphones), the environment (in car, home theater,
-library) and personal preferences. Some examples:
-
-@itemize @bullet
-@item
-A browser for in-car use has a setting for when there is lots of
-background noise . 0% would map to a fairly high level and 100% to a
-quite high level. The overall values are likely to be human adjustable
-for comfort, for example with a physical volume control: what this
-proposal does is adjust the dynamic range.
-@item
-Another speech browser is being used in the home, late at night, (don't
-annoy the neighbors) or in a shared study room. 0% is set to very quiet
-and 100% to a fairly quiet level, too. As with the first example, there
-is a low slope; the dynamic range is reduced. The actual volumes are low
-here, wheras they were high in the first example.
-@item
-In a quiet and isolated house, an expensive hifi home theatre setup. 0%
-is set fairly low and 100% to quite high; there is wide dynamic range.
-@end itemize
-
-The same authors stylesheet could be used in all cases, simply by
-mapping the 0 and 100 points suitably at the client side.
-
-@node pause-before, pause-after, volume, Speech Properties
-@subsubsection pause-before
-
-@multitable @columnfractions .2 .8
-@item Value: @tab <time> | <percentage>
-@item Initial: @tab UA specific
-@item Applies to: @tab all elements
-@item Inherited: @tab no
-@item Percentage values: @tab speed
-@end multitable
-
-This property specifies the pause before elements. It may be given in an
-absolute units (seconds, milliseconds) or as a relative value in which
-case it is relative to the reciprocal of the 'speed' property: if speed
-is 120 words per minute (ie a word takes half a second -- 500
-milliseconds) then a pause-before of 100% means a pause of 500 ms and a
-pause-before of 20% means 100ms.
-
-Using relative units gives more robust stylesheets in the face of large
-changes in speed.
-
-@node pause-after, pause, pause-before, Speech Properties
-@subsubsection pause-after
-
-@multitable @columnfractions .2 .8
-@item Value: @tab <time> | <percentage>
-@item Applies to: @tab all elements
-@item Inherited: @tab no
-@item Percentage values: @tab speed
-@end multitable
-
-This property specifies the pause after elements. Values are specified
-the same way as 'pause-before'.
-
-@node pause, cue-before, pause-after, Speech Properties
-@subsubsection pause
-
-@multitable @columnfractions .2 .8
-@item Value: @tab [<time> | <percentage> ]@{1,2@};
-@item Applies to: @tab all elements
-@item Inherited: @tab no
-@item Percentage values: @tab speed
-@end multitable
-
-The 'pause' property is a shorthand for setting 'pause-before' and
-'pause-after'. The first value is pause-before and the second is
-pause-after. If only one value is given, it applies to both properties.
-
-Examples:
-
-@example
-  H1 @{ pause: 20ms @}       /* pause-before: 20ms; pause-after: 20ms */
-  H2 @{ pause: 30ms 40ms @}  /* pause-before: 30ms; pause-after: 40ms */
-  H3 @{ pause-after: 10ms @} /* pause-before: ?;    pause-after: 10ms */
-@end example
-
-@node cue-before, cue-after, pause, Speech Properties
-@subsubsection cue-before
-
-@multitable @columnfractions .2 .8
-@item Value: @tab <url> | none
-@item Initial: @tab none
-@item Applies to: @tab all elements
-@item Inherited: @tab no
-@end multitable
-Auditory icons are another way to distinguish semantic elements. Sounds
-may be played before, and/or after the element to delimit it. The same
-sound can be used both before and after, using the cue property.
-
-Examples:
-
-@example
-  A  @{ cue-before: url(bell.aiff); cue-after: url(dong.wav) @}
-  H1 @{ cue-before: url(pop.au); cue-after: url(pop.au) @}
-  H1 @{ cue: url(pop.au) @}  /* same as previous */
-@end example
-
-@node cue-after, cue, cue-before, Speech Properties
-@subsubsection cue-after
-
-@xref{cue-before}
-
-@node cue, play-during, cue-after, Speech Properties
-@subsubsection cue
-
-@xref{cue-before}
-
-@node play-during, speed, cue, Speech Properties
-@subsubsection cue-during
-
-@multitable @columnfractions .2 .8
-@item Value: @tab <url> | mix | none
-@item Initial: @tab mix
-@item Applies to: @tab all elements
-@item Inherited: @tab no
-@end multitable
-Similar to the cue-before and cue-after properties, this indicates sound
-to be played during an element as a background (ie the sound is mixed in
-with the speech).
-
-Examples:
-
-@example
-  BLOCKQUOTE.sad @{ cue-during: url(violins.aiff) @}
-@end example
-
-@node speed, voice-family, play-during, Speech Properties
-@subsubsection speed
-
-@multitable @columnfractions .2 .8
-@item Value: @tab <words-per-minute> | x-slow | slow | medium | fast | x-fast | faster | slower
-@item Initial: @tab medium
-@item Applies to: @tab all elements
-@item Inherited: @tab yes
-@end multitable
-
-Specifies the speaking rate. Note that both absolute and relative
-keyword values are allowed (compare with @ref{font-weight}).
-
-@node voice-family, pitch, speed, Speech Properties
-@subsubsection voice-family
-
-@multitable @columnfractions .2 .8
-@item Value: @tab [[<specific-voice> | <generic-voice>],]* [<specific-voice> | <generic-voice>]
-@item Initial: @tab device-specific
-@item Applies to: @tab all elements
-@item Inherited: @tab yes
-@end multitable
-
-The value is a prioritized list of voice family names. Generic families
-are male, female, and child.
-
-Examples of specific voice families are: comedian, paul, lisa
-
-Examples
-
-@example
-  H1 @{ voice-family: announcer, male @}
-  P.part.romeo @{ voice-family: romeo, male @}
-  P.part.juliet @{ voice-family: juliet, female @}
-@end example
-
-@node pitch, pitch-range, voice-family, Speech Properties
-@subsubsection pitch
-
-@multitable @columnfractions .2 .8
-@end multitable
-
-@node pitch-range, stress, pitch, Speech Properties
-@subsubsection pitch-range
-
-@multitable @columnfractions .2 .8
-@end multitable
-
-@node stress, richness, pitch-range, Speech Properties
-@subsubsection stress
-
-@multitable @columnfractions .2 .8
-@item Value: @tab <percentage>
-@item Initial: @tab medium
-@item Applies to: @tab all elements
-@item Inherited: @tab yes
-@end multitable
-
-Specifies the level of stress (assertiveness or emphasis) of the
-speaking voice. English is a stressed language, and different parts of a
-sentence are assigned primary, secondary or tertiary stress. The value
-of property 'stress' controls the amount of inflection that results from
-these stress markers.
-
-Increasing the value of this property results in the speech being more
-strongly inflected. It is in a sense dual to property 'pitch-range' and
-is provided to allow developers to exploit higher-end auditory displays.
-
-@node richness, speak-punctuation, stress, Speech Properties
-@subsubsection richness
-
-@multitable @columnfractions .2 .8
-@item Value: @tab <percentage>
-@item Initial: @tab medium (50%)
-@item Applies to: @tab all elements
-@item Inherited: @tab yes
-@end multitable
-
-Specifies the richness (brightness) of the speaking voice. Different
-speech devices may require the setting of one or more device-specific
-parameters to achieve this effect.
-
-The effect of increasing richness is to produce a voice that carries --
-reducing richness produces a soft, mellifluous voice.
-
-@node speak-punctuation, speak-date, richness, Speech Properties
-@subsubsection speak-punctuation
-
-@multitable @columnfractions .2 .8
-@item Value: @tab code | none
-@item Initial: @tab none
-@item Applies to: @tab all elements
-@item Inherited: @tab yes
-@end multitable
-
-'code' indicates that punctuation such as semicolons, braces, and so on
-are to be spoken literally. The default value of 'none' means that
-punctuation is not spoken but instead is rendered naturally as various
-pauses.
-
-@node speak-date, speak-numeral, speak-punctuation, Speech Properties
-@subsubsection speak-date
-
-@multitable @columnfractions .2 .8
-@item Value: @tab myd | dmy | ymd | none
-@item Initial: @tab none
-@item Applies to: @tab all elements
-@item Inherited: @tab no
-@end multitable
-
-This is a hint that the element contains a date and also how that date
-should be spoken. month-day-year is common in the USA, while
-day-month-year is common in Europe and year-month-day is also used.
-
-This should really be an HTML tag not a stylesheet property, since it
-gives semantic information about the content.
-
-@node speak-numeral, speak-time, speak-date, Speech Properties
-@subsubsection speak-numeral
-
-@multitable @columnfractions .2 .8
-@item Value: @tab digits | continous
-@item Initial: @tab none
-@item Applies to: @tab all elements
-@item Inherited: @tab yes
-@end multitable
-
-@node speak-time,  , speak-numeral, Speech Properties
-@subsubsection speak-time
-
-@multitable @columnfractions .2 .8
-@item Value: @tab 24 | 12 | none
-@item Initial: @tab none
-@item Applies to: @tab all elements
-@item Inherited: @tab yes
-@end multitable
-
-@node Units,  , Properties, Stylesheets
-@section Units
-
-@menu
-* Length Units::                
-* Percentage Units::            
-* Color Units::                 
-* URLs::                        
-* Angle Units::                 
-* Time Units::                  
-@end menu
-
-@node Length Units, Percentage Units, Units, Units
-@subsection Length Units
-
-@node Percentage Units, Color Units, Length Units, Units
-@subsection Percentage Units
-
-@node Color Units, URLs, Percentage Units, Units
-@subsection color Units
-
-@node URLs, Angle Units, Color Units, Units
-@subsection URLs
-
-@node Angle Units, Time Units, URLs, Units
-@subsection Angle Units
-
-These are the legal angle units:
-@itemize @bullet
-@item
-deg: degrees
-@item
-grad
-@item
-rad: radians
-@end itemize
-
-@node Time Units,  , Angle Units, Units
-@subsection Time Units
-
-These are the legal time units:
-
-@itemize @bullet
-@item
-ms: milliseconds
-@item
-s: seconds
-@end itemize
-
-@node Supported URLs, MIME Support, Stylesheets, Top
-@chapter Supported URLs
-
-::WORK:: List supported URL types, specific RFCs, etc.
-
-@menu
-* file::                        Local file access.
-* ftp::                         Remote file access via ftp.
-* nfs::                         Remote file access via NFS.
-* info::                        Access to the Emacs Info system.
-* http/https::                  @sc{http/1.0} support.
-* mailto::                      Sending simple electronic mail.
-* news/nntp/snews::             Reading and sending Usenet news.
-* rlogin/telnet/tn3270::        Legacy host connections.
-* irc::                         Internet Relay Chat.
-* data::                        Embedding the data within the URL itself.
-* mailserver::                  Slightly more complicated electronic mail.
-* gopher::                      Gopher and Gopher+.
-* finger::                      The old favorite.
-@end menu
-
-@node file, ftp, Supported URLs, Supported URLs
-@section file
-
-@node ftp, nfs, file, Supported URLs
-@section ftp
-
-@node nfs, info, ftp, Supported URLs
-@section nfs
-
-@node info, http/https, nfs, Supported URLs
-@section info
-
-@node http/https, mailto, info, Supported URLs
-@section http/https
-
-@node mailto, news/nntp/snews, http/https, Supported URLs
-@section mailto
-
-@node news/nntp/snews, rlogin/telnet/tn3270, mailto, Supported URLs
-@section news/nntp/snews
-
-@node rlogin/telnet/tn3270, irc, news/nntp/snews, Supported URLs
-@section rlogin/telnet/tn3270
-
-@node irc, data, rlogin/telnet/tn3270, Supported URLs
-@section irc
-
-@node data, mailserver, irc, Supported URLs
-@section data
-
-@node mailserver, gopher, data, Supported URLs
-@section mailserver
-
-@node gopher, finger, mailserver, Supported URLs
-@section gopher
-
-@node finger,  , gopher, Supported URLs
-@section finger
-
-@node MIME Support, Security, Supported URLs, Top
-@chapter MIME Support
-@sc{mime} is an emerging standard for multimedia mail.  It offers a very
-flexible typing mechanism.  The type of a file or message is specified
-in two parts, separated by a '/'.  The first part is the general
-category of the data (text, application, image, etc.).  The second part
-is the specific type of data (postscript, png, jpeg, etc.).  So
-@samp{text/html} specifies an @sc{html} document, whereas
-@samp{image/x-xwindowdump} specifies an image of an Xwindow taken with
-the @file{xwd} program.
-
-
-This typing allows much more flexibility in naming files.  @sc{http}/1.0
-servers can now send back content-type headers in response to a request,
-and not have the client second-guess it based on file extensions.  @sc{html}
-files can now be named @file{something.png} (not a great idea, but
-possible).
-
-@menu
-* Adding MIME types based on file extensions::  How to map file
-                                                extensions onto MIME
-                                                types (e.g., @samp{.png ->
-                                                image/png)}.
-* Specifying Viewers::          How to specify external and internal viewers
-                        for files that Emacs/W3 cannot handle natively.
-@end menu
-
-@node Adding MIME types based on file extensions, Specifying Viewers, MIME Support, MIME Support
-@section Adding MIME types based on file extensions
-
-@vindex mm-mime-extensions
-For some protocols however, it is still necessary to guess the content
-of a file based on the file extension.  This type of guess-work should
-only be needed when accessing files via @sc{ftp}, local file access, or old
-@sc{http}/0.9 servers.
-
-Instead of specifying how to view things twice, once based on
-content-type and once based on the file extension, it is easier to map
-file extensions to MIME content-types.  The variable that controls this
-is @code{mm-mime-extensions}.
-
-This variable is an assoc list of file extensions and the corresponding
-MIME content-type.  A sample entry looks like: @samp{(".movie"
-. "video/x-sgi-movie")} This makes all files that end in @file{.movie}
-(@file{foo.movie} and @file{bar.movie}) be interpreted as SGI animation
-files.  If a content-type is defined for the document, then this is
-over-ridden.  Regular expressions can @b{NOT} be used.
-
-@cindex mime-types file
-@findex mm-parse-mimetypes
-Both Mosaic and the NCSA @sc{http} daemon rely on a separate file for mapping
-file extensions to MIME types.  Instead of having the users of Emacs/W3
-duplicate this in lisp, this file can be parsed using the
-@code{url-parse-mimetypes} function.  This function is called each time
-w3 is loaded.  It tries to locate mimetype files in several places. If
-the environment variable @code{MIMETYPES} is nonempty, then this is
-assumed to specify a UNIX-like path of mimetype files (this is a colon
-separated string of pathnames).  If the @code{MIMETYPES} environment
-variable is empty, then Emacs/W3 looks for these files:
-
-@enumerate
-@item
-@file{~/.mime-types}
-@item
-@file{/etc/mime-types}
-@item
-@file{/usr/etc/mime-types}
-@item
-@file{/usr/local/etc/mime-types}
-@item
-@file{/usr/local/www/conf/mime-types}
-@end enumerate
-
-Each line contains information for one @sc{http} type.  These types resemble
-MIME types.  To add new ones, use subtypes beginning with x-, such as
-application/x-myprogram.  Lines beginning with # are comment lines, and
-suitably ignored.  Each line consists of:
-
-type/subtype ext1 ext2 ...  ext@var{n}
-
-type/subtype is the MIME-like type of the document. ext* is any number
-of space-separated filename extensions which correspond to the MIME
-type.
-
-@node Specifying Viewers,  , Adding MIME types based on file extensions, MIME Support
-@section Specifying Viewers
-
-Not all files look as they should when parsed as an @sc{html} document
-(whitespace is stripped, paragraphs are reformatted, and lots of little
-changes that make the document look unrecognizable).  Files may be
-passed to external programs or Emacs Lisp functions to be viewed.
-
-Not all files can be viewed accurately from within an Emacs session (PNG
-files for example, or audio files).  For this reason, the user can
-specify file "viewers" based on MIME content-types.  This is done with
-a standard mailcap file.  @xref{Mailcap Files}
-
-@findex mm-add-mailcap-entry
-As an alternative, the function @code{mm-add-mailcap-entry} can also be
-used from an appropriate hook.@xref{Hooks}  This functions takes three
-arguments, the major type ("@i{image}"), the minor type ("@i{png}"), and
-an assoc list of information about the viewer.  Please see the @sc{url}
-documentation for more specific information on what this assoc list
-should look like.
-
-@node Security, Non-Unix Operating Systems, MIME Support, Top
-@chapter Security
-@cindex Security
-@cindex Paranoia
-There are an increasing number of ways to authenticate a user to a web
-service.  Emacs/W3 tries to support as many as possible.  Emacs/W3
-currently supports:
-
-@table @b
-@item Basic Authentication
-@cindex Security, Basic
-@cindex HTTP/1.0 Authentication
-@cindex Authentication, Basic
-The weakest authentication available, not recommended if serious
-security is necessary.  This is simply a string that looks like
-@samp{user:password} that has been Base64 encoded, as defined in RFC
-1421.
-@item Digest Authentication
-@cindex Security, Digest
-@cindex HTTP/1.0 Authentication
-@cindex Authentication, Digest
-Jeffery L. Hostetler, John Franks, Philip Hallam-Baker, Ari Luotonen,
-Eric W. Sink, and Lawrence C. Stewart have an internet draft for a new
-authentication mechanism.  For the complete specification, please see
-draft-ietf-http-digest-aa-01.txt in the nearest internet drafts
-archive@footnote{One is ftp://ds.internic.net/internet-drafts}.
-@item SSL Encryption
-@cindex HTTP/1.0 Authentication
-@cindex Secure Sockets Layer
-@cindex SSL
-@cindex Gag Puke Retch
-@cindex Exportability
-@cindex Export Restrictions
-SSL is the @code{Secure Sockets Layer} interface developed by Netscape
-Communications @footnote{http://www.netscape.com/}.  Emacs/W3 supports
-@sc{http} transfers over an SSL encrypted channel, if the appropriate files
-have been installed.@xref{Installing SSL}
-@end table
-
-@node Non-Unix Operating Systems, Speech Integration, Security, Top
-@chapter Non-Unix Operating Systems
-@cindex Non-Unix Operating Systems
-
-@menu
-* VMS::                         The wonderful world of VAX|AXP-VMS!
-* OS/2::                        The next-best thing to Unix.
-* MS-DOS::                      The wonderful world of MS-DOG!
-* Windows::                     Windows NT, Chicago/Windows 95.
-@end menu
-
-@node VMS, OS/2, Non-Unix Operating Systems, Non-Unix Operating Systems
-@section VMS
-@cindex VAX-VMS
-@cindex AXP-VMS
-@cindex Digital VMS
-@cindex VMS
-
-:: WORK :: VMS Specific instriuctions
-
-@node OS/2, MS-DOS, VMS, Non-Unix Operating Systems
-@section OS/2
-@cindex OS/2
-@cindex Warp
-
-:: WORK :: OS/2 Specific instructions
-
-@node MS-DOS, Windows, OS/2, Non-Unix Operating Systems
-@section MS-DOS
-@cindex MS-DOS
-@cindex Microsloth
-@cindex DOS
-@cindex MS-DOG
-
-:: WORK :: DOS Specific instructions
-
-@node Windows,  , MS-DOS, Non-Unix Operating Systems
-@section Windows
-@cindex Windows (32-Bit)
-@cindex 32-Bit Windows
-@cindex Microsloth
-@cindex Windows '95
-
-:: WORK :: 32bit Windows Specific instructions
-
-@node Speech Integration, Advanced Features, Non-Unix Operating Systems, Top
-@chapter Speech Integration
-
-:: WORK :: Emacspeak integration
-
-@node Advanced Features, More Help, Speech Integration, Top
-@chapter Advanced Features
-
-@menu
-* Disk Caching::                Improving performance by using a local disk cache
-* Interfacing to Mail/News::    How to make VM understand hypertext links
-* Debugging HTML::              How to make Emacs/W3 display warnings about invalid
-                                @sc{html}/@sc{html}+ constructs.
-* Hooks::                       Various hooks to use throughout Emacs/W3
-* Other Variables::             Miscellaneous variables that control the real
-                                guts of Emacs/W3.
-@end menu
-
-@node Disk Caching, Interfacing to Mail/News, Advanced Features, Advanced Features
-@section Disk Caching
-@cindex Caching
-@cindex Persistent Cache
-@cindex Disk Cache
-
-A cache stores the information on a page on the local machine.  When
-requesting a page that is in the cache, Emacs/W3 can retrieve the page
-from the cache more quickly than retrieving the page again from its
-location out on the network.  With a well-populated cache, browsing the
-web is dramatically faster.
-
-The first time a page is requested, Emacs/W3 retrieves the page from the
-network.  When requesting a page that is in the cache, Emacs/W3 checks
-to see if the page has changed since it was last retrieved from the
-remote machine.  If it has not changed, the local copy is used, saving
-the transmission of the file over the network.
-
-@vindex url-automatic-caching
-@cindex Turning on caching
-@cindex Cleaning the cache
-@cindex Clearing the cache
-@cindex Cache cleaning
-@cindex Limiting the size of the cache
-To turn on disk caching, set the variable @code{url-automatic-caching}
-to non-@code{nil}, or choose the 'Caching' menu item (under `Options').
-That is all there is to it.  Running the @code{clean-cache} shell script
-fist is recommended, to allow for future cleaning of the cache.  This
-shell script will remove all files that have not been accessed since it
-was last run.  To keep the cache pared down, it is recommended that this
-script be run from @i{at} or @i{cron} (see the manual pages for
-crontab(5) or at(1) for more information)
-
-
-@cindex Relying on cache
-@cindex Cache only mode
-@cindex Standalone mode
-@cindex Browsing with no network connection
-@cindex Netless browsing
-@vindex url-standalone-mode
-With a large cache of documents on the local disk, it can be very handy
-when traveling, or any other time the network connection is not active
-(a laptop with a dial-on-demand PPP connection, etc).  Emacs/W3 can rely
-solely on its cache, and avoid checking to see if the page has changed
-on the remote server.  In the case of a dial-on-demand PPP connection,
-this will keep the phone line free as long as possible, only bringing up
-the PPP connection when asking for a page that is not located in the
-cache.  This is very useful for demonstrations as well.  To turn this
-feature on, set the variable @code{url-standalone-mode} to
-non-@code{nil}, or choose the `Use Cache Only' menu item (under
-`Options')
-
-@node Interfacing to Mail/News, Debugging HTML, Disk Caching, Advanced Features
-@section Interfacing to Mail/News
-@cindex Interfacing to Mail/News
-@cindex VM
-@cindex Using Emacs/W3 with VM
-@cindex GNUS
-@cindex Using Emacs/W3 with Gnus
-@cindex RMAIL
-@cindex Using Emacs/W3 with RMAIL
-
-More and more people are including @sc{url}s in their signatures, and within
-the body of mail messages.  It can get quite tedious to type these into
-the minibuffer to follow one. 
-
-@vindex browse-url-browser-function
-With the latest versions of VM (the 5.9x series of betas) and Gnus
-(5.x), @sc{url}s are automatically highlighted, and can be followed with the
-mouse or the return key.  How the @sc{url}s are viewed is determined by the
-variable @code{browse-url-browser-function}, and it should be set to the
-symbol @code{browse-url-w3}.
-
-To access @sc{url}s from within RMAIL, the following hook should do the
-trick.
-@example
-(add-hook 'rmail-mode-hook
-	  (function
-	   (lambda ()
-	     (define-key rmail-mode-map [mouse-2] 'w3-maybe-follow-link-mouse)
-	     (define-key rmail-mode-map "\r"      'w3-maybe-follow-link))))
-@end example
-
-@node Debugging HTML, Hooks, Interfacing to Mail/News, Advanced Features
-@section Debugging HTML
-@cindex Debugging
-@cindex Invalid HTML
-@cindex Bad HTML
-@vindex w3-debug-buffer
-@vindex w3-debug-html
-
-For those people that are adventurous, or are just as anal as I am about
-people writing valid @sc{html}, set the variable @code{w3-debug-html} to
-@code{t} and see what happens.
-
-
-If a Emacs/W3 thinks it has encountered invalid @sc{html}, then a debugging
-message is displayed.
-
-:: WORK :: Need to list the different values w3-debug-html can have, and@*
-:: WORK :: what they do ::
-
-@node Hooks, Other Variables, Debugging HTML, Advanced Features
-@section Hooks
-@cindex Hooks
-
-These are the various hooks that can be used to customize some of
-Emacs/W3's behavior.  They are arranged in the order in which they would
-happen when retrieving a document.  These are all 'normal hooks' in
-standard Emacs-terminology, meaning they are functions (or lists of
-functions) that are called consecutively.
-
-@table @code
-@vindex w3-load-hook
-@item w3-load-hook
-These hooks are run the first time a @sc{url} is fetched.  All the
-Emacs/W3 variables are initialized before this hook is run.
-@item w3-mode-hook
-These hooks are run after a buffer has been parsed and displayed, but
-before any inlined images are downloaded and converted.
-@item w3-source-file-hook
-These hooks are run after displaying a document's source.
-@end table
-
-@node Other Variables,  , Hooks, Advanced Features
-@section Miscellaneous variables
-
-There are lots of variables that control the real nitty-gritty of Emacs/W3
-that the beginning user probably shouldn't mess with.  Here they are.
-
-@table @code
-@item url-bad-port-list
-@vindex url-bad-port-list
-List of ports to warn the user about connecting to.  Defaults to just
-the mail and @sc{nntp} ports so a malicious @sc{html} author cannot spoof mail or
-news to other people.
-@item url-confirmation-func
-@vindex url-confirmation-func
-What function to use for asking yes or no functions.  Possible values
-are @code{'yes-or-no-p} or @code{'y-or-n-p}, or any function that takes
-a single argument (the prompt), and returns @code{t} only if a positive
-answer is gotten.  Defaults to @code{'yes-or-no-p}.
-@item w3-default-action
-@vindex w3-default-action
-A lisp symbol specifying what action to take for files with extensions
-that are not in the @code{mm-mime-extensions} assoc list.  This is
-useful in case Emacs/W3 ever run across files with weird extensions
-(.foo, .README, .READMEFIRST, etc.).  In most circumstances, this should
-not be required anymore.
-
-Possible values: any lisp symbol.  Should be a function that takes no
-arguments.  The return value does not matter, it is ignored.  Some examples
-are @code{'w3-prepare-buffer} or @code{'indented-text-mode}.
-@ignore
-@item w3-icon-directory-list
-@vindex w3-icon-directory-list
-A list of directorys to look in for the w3 standard icons...  must end
-in a /!  If the directory @code{data-directory}/w3 exists, then this is
-automatically added to the default value of
-http://cs.indiana.edu/elisp/w3/icons/.
-@end ignore
-@item w3-keep-old-buffers
-@vindex w3-keep-old-buffers
-Whether to keep old buffers around when following links.  To avoid lots
-of buffers in one Emacs session, set this variable to @code{nil}.  I
-recommend setting it to @code{t}, so that backtracking from one link to
-another is faster.
-
-@item url-passwd-entry-func
-@vindex url-passwd-entry-func
-This is a symbol indicating which function to call to read in a
-password.  If this variable is @code{nil} at startup, it is initialized
-depending on whether @dfn{EFS} or @dfn{ange-ftp} is being used.  This
-function should accept the prompt string as its first argument, and the
-default value as its second argument.
-
-@item w3-reuse-buffers
-@vindex w3-reuse-buffers
-Determines what happens when @code{w3-fetch} is called on a document
-that has already been loaded into another buffer.  Possible values are:
-@code{nil}, @code{yes}, and @code{no}.  @code{nil} will ask the user if
-Emacs/W3 should reuse the buffer (this is the default value).  A value of
-@code{yes} means assume the user wants to always reuse the buffer.  A
-value of @code{no} means assume the user always wants to re-fetch the
-document.
-@item w3-show-headers
-@vindex w3-show-headers
-This is a list of @sc{http}/1.0 headers to show at the end of a buffer.  All
-the headers should be in lowercase.  They are inserted at the end of the
-buffer in a <UL> list.  Alternatively, if this is simply @code{t}, then
-all the @sc{http}/1.0 headers are shown.  The default value is
-@code{nil}.
-@item w3-show-status, url-show-status
-@vindex url-show-status
-@vindex w3-show-status
-Whether to show progress messages in the minibuffer.
-@code{w3-show-status} controls if messages about the parsing are
-displayed, and @code{url-show-status} controls if a running total of the
-number of bytes transferred is displayed.  These Can cause a large
-performance hit if using a remote X display over a slow link, or a
-terminal with a slow modem.
-@item mm-content-transfer-encodings
-@vindex mm-content-transfer-encodings
-An assoc list of @var{Content-Transfer-Encodings} or
-@var{Content-Encodings} and the appropriate decoding algorithms for each.
-If the @code{cdr} of a node is a list, then this specifies the decoder is
-an external program, with the program as the first item in the list, and
-the rest of the list specifying arguments to be passed on the command line.
-If using an external decoder, it must accept its input from @code{stdin}
-and send its output to @code{stdout}.
-
-If the @code{cdr} of a node is a symbol whose function definition is
-non-@code{nil}, then that encoding can be handled internally.  The function
-is called with 2 arguments, buffer positions bounding the region to be
-decoded.  The function should completely replace that region with the
-unencoded information.
-
-Currently supported transfer encodings are: base64, x-gzip, 7bit, 8bit,
-binary, x-compress, x-hqx, and quoted-printable.
-@item url-uncompressor-alist
-@vindex url-uncompressor-alist
-An assoc list of file extensions and the appropriate uncompression
-programs for each.  This is used to build the Accept-encoding header for
-@sc{http}/1.0 requests.
-@end table
-
-@node More Help, Future Directions, Advanced Features, Top
-@chapter More Help
-@cindex Relevant Newsgroups
-@cindex Newsgroups
-@cindex Support
-For more help on Emacs/W3, please send me mail
-(@i{wmperry@@cs.indiana.edu}).  Several discussion lists have also been
-created for Emacs/W3.  To subscribe, send mail to
-@i{majordomo@@indiana.edu}, with the body of the message 'subscribe
-@var{listname} @var{<email addres>}'.  All other mail should go to
-@i{<listname>@@indiana.edu}.
-
-
-@itemize @bullet
-@item
-w3-announce -- this list is for anyone interested in Emacs/W3, and
-should in general only be used by me.  The gnu.emacs.sources newsgroup
-and a few other mailing lists are included on this.  Please only use
-this list for major package releases related to Emacs/W3.
-(@i{www-announce@@w3.org} is included on this list).
-@item
-w3-beta -- this list is for beta testers of Emacs/W3.  These brave souls test
-out not-quite stable code.
-@item
-w3-dev -- a list consisting of myself and a few other people who are
-interested in the internals of Emacs/W3, and doing active development work.
-Pretty dead right now, but I hope it will grow.
-@end itemize
-
-For more help on the World Wide Web in general, please refer to the
-comp.infosystems.www.* newsgroups.  There are also several discussion
-lists concerning the Web.  Send mail to @i{<listname>-request@@w3.org}
-with a subject line of 'subscribe <listname>'.  All mail should go to
-@i{<listname>@@w3.org}.  Administrative mail should go to
-@i{www-admin@@w3.org}.  The lists are:
-
-
-@itemize @bullet
-@item
-www-talk -- for general discussion of the World Wide Web, where its
-going, new features, etc.  All the major developers are subscribed to
-this list.
-@item
-www-announce -- for announcements concerning the World Wide Web.  Server
-changes, new servers, new software, etc.
-@end itemize
-
-As a last resort, mail me.  I'll try to answer as quickly as I can.
-
-@node Future Directions, Reporting Bugs, More Help, Top
-@chapter Future Directions
-Changes are constantly being made to the Emacs browser (hopefully all
-for the better).  This is a list of the things that are being worked on
-right now.
-
-:: WORK :: Revamp the todo list
-
-@node Reporting Bugs, Dealing with Firewalls, Future Directions, Top
-@appendix Reporting Bugs
-@cindex Reporting Bugs
-@cindex Bugs
-@cindex Contacting the author
-
-If any bugs are discovered in Emacs/W3, please report them to the
-mailing list @t{w3-beta@@indiana.edu} - this is where the brave souls
-who beta test the latest versions of Emacs/W3 reside, and are generally
-very responsive to bug reports.
-
-@kindex w
-Please make sure to use the bug submission feature of Emacs/W3, so that
-all relevant information will be sent along with your bug report.  By
-default this is bound to the `@key{w}' key when in an Emacs/W3 buffer,
-or you can use @key{M-x w3-submit-bug} from anywhere within Emacs.
-
-For problems that are causing emacs to signal and error, please send a
-backtrace.  You can get a backtrace by @kbd{M-x setvariable RET
-debug-on-error RET t RET}, and then reproduce the error.
-
-If the problem is visual, please capture a copy of the output and mail
-it along with the bug report (preferably as a MIME attachment, but
-anything will do).  You can use the @code{xwd} program under X-windows
-for this, or @key{Alt-PrintScreen} under Windows 95/NT.  Sorry, but I
-don't remember what the magic incarnation is for doing a screen dump
-under NeXTstep or OS/2.
-
-If the problem is actually causing Emacs to crash, then you will need to
-also mail the maintainers of the various Emacs distributions with the
-bug.  Please use the @t{gnu.emacs.bug} newgroup for reporting bugs with
-GNU Emacs 19, and @t{comp.emacs.xemacs} for reporting bugs with XEmacs
-19 or XEmacs 20.  I am actively involved with the beta testing of the
-latest versions of both branches of Emacs, and if I can reproduce the
-problem, I will do my best to see it gets fixed in the next release.
-
-It is also important to always maintain as much context as possible in
-your responses.  I get so much email from my various Emacs-activities
-and work, that I cannot remember everything.  If you send a bug report,
-and I send you a reply, and you reply with 'no that didn't work', then
-odds are I will have no clue what didn't work, much less what that was
-trying to fix in the first place.  It will be much quicker and less
-painful if I don't have to waste a round-trip email exchange saying
-'what are you talking about'.
-
-@node Dealing with Firewalls, Proxy Gateways, Reporting Bugs, Top
-@appendix Dealing with Firewalls
-By default, Emacs can support standard @sc{tcp}/@sc{ip} network
-connections on almost all the platforms it runs on (Unix, @sc{vms},
-Windows, etc).  However, there are several situations where it is not
-sufficient.
-
-@table @b
-@cindex Firewalls
-@item Firewalls
-It is becoming more and more common to be behind a firewall or some
-other system that restricts your outbound network activity, especially
-if you are like me and away from the wonderful world of academia.
-Emacs/W3 has several different methods to get around firewalls (not to
-worry though - none of them should get you in trouble with the local
-@sc{mis} department.)
-
-@item Emacs cannot resolve hostnames.
-@cindex Faulty hostname resolvers
-@cindex Broken SunOS libc
-@cindex Hostname resolution
-This happens quite often on SunOS workstations and some ULTRIX machines.
-Some C libraries do not include the hostname resolver routines in their
-static libraries.  If Emacs was linked statically, and was not linked
-with the resolver libraries, it wil not be able to get to any machines
-off the local network.  This is characterized by being able to reach
-someplace with a raw ip number, but not its hostname
-(@url{http://129.79.254.191/} works, but
-@url{http://www.cs.indiana.edu/} doesn't).
-
-The best solution for this problem is to recompile Emacs, making sure to
-either link dynamically (if available on your operating system), or
-include the @file{-lresolv}.
-
-@cindex url-gateway-broken-resolution
-If you do not have the disk space or the appropriate permissions to
-recompile Emacs, another alternative is using the @file{nslookup}
-program to do hostname resolution.  To turn this on, set the variable
-@code{url-gateway-broken-resolution} in your @file{~/.emacs} file.  This
-runs the program specified by @code{url-gateway-nslookup-program} (by
-default "@code{nslookup}" to do hostname resolution.  This program should
-expect a single argument on the command line - the hostname to resolve,
-and should produce output similar to the standard Unix @file{nslookup}
-program:
-
-@example
-Name: www.cs.indiana.ed
-Address: 129.79.254.191
-@end example
-
-@cindex @sc{term}
-@item Using @sc{term} (or @sc{term}-like) Networking Software
-@sc{term} @footnote{@sc{term} is a user-level protocol for emulating
-@sc{ip} over a serial line.  More information is available at
-@url{ftp://sunsite.unc.edu/pub/Linux/apps/comm/term}} for slip-like
-access to the internet.
-
-@sc{note}: XEmacs and Emacs 19.22 or later have patches to enable native
-@sc{term} networking.  To enable it, @code{#define TERM} in the
-appropriate s/*.h file for the operating system, then change the
-@code{SYSTEM_LIBS} definition to include the @file{termnet} library that
-comes with the latest versions of @sc{term}.
-
-If you run into any problems with the native @sc{term} networking
-support in Emacs or XEmacs, please let @t{wmperry@@cs.indiana.edu} know,
-as he is responsible for the original support.
-@end table
-
-@vindex url-gateway-local-host-regexp
-Emacs/W3 has support for using the gateway mechanism for certain
-domains, and directly connecting to others.  The variable
-@code{url-gateway-local-host-regexp} controls this behaviour.  This is a
-regular expression @footnote{Please see the full Emacs distribution for
-a description of regular expressions} that matches local hosts that do
-not require the use of a gateway.  If @code{nil}, then all connections
-are made through the gateway.
-
-@vindex url-gateway-method
-Emacs/W3 supports several methods of getting around gateways.  The
-variable @code{url-gateway-method} controls which of these methods is
-used.  This variable can have several values (use these as symbol names,
-not strings), ie: @samp{(setq url-gateway-method 'telnet)}.  Possible
-values are:
-
-@table @dfn
-@item telnet
-Use this method if you must first telnet and log into a gateway host,
-and then run telnet from that host to connect to outside machines.
-
-:: WORK :: document telnet gw variables@*
-This section needs more information, specifically documenting the
-following variables.  For now, please do @key{C-h v} on the variable for
-more information.
-
-@table @code
-@item url-gateway-telnet-host
-@item url-gateway-telnet-parameters
-@item url-gateway-telnet-password-prompt
-@item url-gateway-telnet-puser-name
-@item url-gateway-prompt-pattern
-@end table
-
-@item rlogin
-This method is identical to the @code{telnet} method, but uses
-@file{rlogin} to log into the remote machine without having to send the
-username and password over the wire every time.
-
-:: WORK :: document rlogin gw variables@*
-This section needs more information, specifically documenting the
-following variables.  For now, please do @key{C-h v} on the variable for
-more information.
-
-@table @code
-@item url-gateway-rlogin-host
-@item url-gateway-rlogin-parameters
-@item url-gateway-rlogin-user-name
-@item url-gateway-prompt-pattern
-@end table
-
-@item tcp
-Masanobu UMEDA (@i{umerin@@mse.kyutech.ac.jp}) has written a very small
-application that you can run in a subprocess to do the network
-connections.
-
-@item @sc{socks}
-Use if the firewall has a @sc{socks} gateway running on it.
-
-:: WORK :: document socks variables@*
-This section needs more information, specifically documenting the
-following variables.  For now, please do @key{C-h v} on the variable for
-more information.
-
-@table @code
-@item socks-host
-@item socks-password
-@item socks-username
-@item socks-port
-@item socks-timeout
-@end table
-
-@c @item ssl
-@c This probably shouldn't be documented
-
-@item native
-This means that Emacs/W3 should use the builtin networking code of
-Emacs.  This should be used only if there is no firewall, or the Emacs
-source has already been hacked to get around the firewall.
-@end table
-
-Emacs/W3 should now be able to get outside the local network.  If none
-of this makes sense, its probably my fault.  Please check with the
-network administrators to see if they have a program that does most of
-this already, since somebody somewhere at the company has probably been
-through something similar to this before, and would be much more
-helpful/knowledgeable about the local setup than I would be.  But feel
-free to mail me as a last resort.
-
-@node Proxy Gateways, Installing SSL, Dealing with Firewalls, Top
-@appendix Proxy Gateways
-@vindex url-proxy-services
-@cindex Proxy Servers
-@cindex Proxies
-@cindex Proxies, environment variables
-@cindex HTTP Proxy
-
-In late January 1993, Kevin Altis and Lou Montulli proposed and
-implemented a new proxy service.  This service requires the use of
-environment variables to specify a gateway server/port # to send
-protocol requests to.  Each protocol (@sc{http}, @sc{wais}, gopher,
-@sc{ftp}, etc.) can have a different gateway server.  The environment
-variables are @code{PROTOCOL}_proxy, where @code{PROTOCOL} is one of the
-supported network protocols (gopher, file, @sc{http}, @sc{ftp}, etc.)
-
-@cindex No Proxy
-@cindex Proxies, exclusion lists
-@vindex NO_PROXY
-For companies with internal intranets, it will usually be helpful to
-define a list of hosts that should be contacted directly, @b{not} sent
-through the proxy.  The @code{NO_PROXY} environment variable controls
-what hosts are able to be contacted directly.  This should be a comma
-separated list of hostnames, domain names, or a mixture of both.
-Asterisks can be used as a wildcard.  For example:
-
-@example
-NO_PROXY=*.aventail.com,home.com,*.seanet.com
-@end example
-
-tells Emacs/W3 to contact all machines in the @b{aventail.com} and
-@b{seanet.com} domains directly, as well as the machine named
-@b{home.com}.
-
-@vindex url-proxy-services
-@cindex Proxies, setting from lisp
-For those adventurous souls who enjoy writing regular expressions, all
-the proxy settings can be manipulated from Emacs-Lisp.  The variable
-@code{url-proxy-services} controls this.  This is an assoc list, keyed
-on the protocol type (@sc{http}, gopher, etc) in all lowercase.  The
-@code{cdr} of each entry should be the fully-specified @sc{url} of the proxy
-server to contact, or, in the case of the special "no_proxy" entry, a
-regular expression that matches any hostnames that should be contacted
-directly.
-
-@example
-(setq url-proxy-services '(("http"     . "http://proxy.aventail.com/")
-                           ("no_proxy" . "^.*\\(aventail\\|seanet\\)\.com")))
-@end example
-
-@node Installing SSL, Mailcap Files, Proxy Gateways, Top
-@appendix Installing SSL
-@cindex HTTP/1.0 Authentication
-@cindex Secure Sockets Layer
-@cindex SSL
-@cindex Gag Puke Retch
-@cindex Exportability
-@cindex Export Restrictions
-In order to use SSL in Emacs/W3, an implementation of SSL is necessary.
-Emacs/W3 is configued to work out of the box with SSLeay 0.6.6 or later.
-For best results, you should apply a patch that makes the SSLeay client
-much quieter about what it reports.
-
-You can download SSLeay from
-@url{ftp://ftp.psy.uq.oz.au/pub/Crypto/SSL/}
-
-The following variables control how the external program is invoked.
-
-@table @code
-@item ssl-program-name
-@vindex ssl-program-name
-The name of the program to run, as a string.
-
-@example
-(setq ssl-program-name "s_client")
-@end example
-
-@item ssl-program-arguments
-@vindex ssl-program-arguments
-This should be used if your SSL program needs command line switches to
-specify any behaviour (certificate file locations, etc).  This is a list
-of strings and symbols.
-
-The special symbols 'host and 'port may be used in the list of arguments
-and will be replaced with the hostname and service/port that will be
-connected to.
-
-@example
-(setq ssl-program-arguments '("-host" host "-port" service "-verify" "4"
-                              "-CApath /usr/local/ssl/certs"))
-@end example
-@end table
-
-@node Mailcap Files, Down with DoubleClick, Installing SSL, Top
-@appendix Mailcap Files
-NCSA Mosaic and almost all other WWW browsers rely on a separate file
-for mapping MIME types to external viewing programs.  This takes some of
-the burden off of browser developers, so each browser does not have to
-support all image formats, or postscript, etc.  Instead of having the
-users of Emacs/W3 duplicate this in lisp, this file can be parsed using
-the @code{mm-parse-mailcaps} function.  This function is called each
-time Emacs/W3 is loaded.  It tries to locate mimetype files in several
-places. If the environment variable @code{MAILCAPS} is nonempty, then
-this is assumed to specify a UNIX-like path of mimetype files (this is a
-colon separated string of pathnames).  If the @code{MAILCAPS}
-environment variable is empty, then Emacs/W3 looks for these
-files:
-
-@enumerate
-@item
-@file{~/.mailcap}
-@item
-@file{/etc/mailcap}
-@item
-@file{/usr/etc/mailcap}
-@item
-@file{/usr/local/etc/mailcap}
-@end enumerate
-
-This format of this file is specified in RFC 1343, but a brief synopsis
-follows (this is taken verbatim from sections of RFC 1343).
-
-Each mailcap file consists of a set of entries that describe the proper
-handling of one media type at the local site.  For example, one line
-might tell how to display a message in Group III fax format.  A mailcap
-file consists of a sequence of such individual entries, separated by
-newlines (according to the operating system's newline
-conventions). Blank lines and lines that start with the "#" character
-(ASCII 35) are considered comments, and are ignored.  Long entries may
-be continued on multiple lines if each non-terminal line ends with a
-backslash character ('\', ASCII 92), in which case the multiple lines
-are to be treated as a single mailcap entry.  Note that for such
-"continued" lines, the backslash must be the last character on the line
-to be continued.
-
-Each mailcap entry consists of a number of fields, separated by
-semi-colons.  The first two fields are required, and must occur in the
-specified order.  The remaining fields are optional, and may appear in
-any order.
-
-The first field is the content-type, which indicates the type of data
-this mailcap entry describes how to handle.  It is to be matched against
-the type/subtype specification in the "Content-Type" header field of an
-Internet mail message.  If the subtype is specified as "*", it is
-intended to match all subtypes of the named content-type.
-
-The second field, view-command, is a specification of how the message or
-body part can be viewed at the local site.  Although the syntax of this
-field is fully specified, the semantics of program execution are
-necessarily somewhat operating system dependent.
-
-The optional fields, which may be given in any order, are as follows:
-@itemize @bullet
-@item
-The "compose" field may be used to specify a program that can be used to
-compose a new body or body part in the given format.  Its intended use
-is to support mail composing agents that support the composition of
-multiple types of mail using external composing agents.  As with the
-view- command, the semantics of program execution are operating system
-dependent.  The result of the composing program may be data that is not
-yet suitable for mail transport---that is, a Content-Transfer-Encoding
-may need to be applied to the data.
-@item
-The "composetyped" field is similar to the "compose" field, but is to be
-used when the composing program needs to specify the Content-type header
-field to be applied to the composed data.  The "compose" field is
-simpler, and is preferred for use with existing (non-mail-oriented)
-programs for composing data in a given format.  The "composetyped" field
-is necessary when the Content-type information must include auxilliary
-parameters, and the composition program must then know enough about mail
-formats to produce output that includes the mail type
-information.
-@item
-The "edit" field may be used to specify a program that can be used to
-edit a body or body part in the given format.  In many cases, it may be
-identical in content to the "compose" field, and shares the
-operating-system dependent semantics for program execution.
-@item
-The "print" field may be used to specify a program that can be used to
-print a message or body part in the given format.  As with the
-view-command, the semantics of program execution are operating system
-dependent.
-@item
-The "test" field may be used to test some external condition (e.g.  the
-machine architecture, or the window system in use) to determine whether
-or not the mailcap line applies.  It specifies a program to be run to
-test some condition.  The semantics of execution and of the value
-returned by the test program are operating system dependent.  If the
-test fails, a subsequent mailcap entry should be sought.  Multiple test
-fields are not permitted---since a test can call a program, it can
-already be arbitrarily complex.
-@item
-The "needsterminal" field indicates that the view-command must be run on
-an interactive terminal.  This is needed to inform window-oriented user
-agents that an interactive terminal is needed.  (The decision is not
-left exclusively to the view-command because in some circumstances it
-may not be possible for such programs to tell whether or not they are on
-interactive terminals.)  The needsterminal command should be assumed to
-apply to the compose and edit commands, too, if they exist.  Note that
-this is NOT a test---it is a requirement for the environment in which
-the program will be executed, and should typically cause the creation of
-a terminal window when not executed on either a real terminal or a
-terminal window.
-@item
-The "copiousoutput" field indicates that the output from the
-view-command will be an extended stream of output, and is to be
-interpreted as advice to the UA (User Agent mail- reading program) that
-the output should be either paged or made scrollable. Note that it is
-probably a mistake if needsterminal and copiousoutput are both
-specified.
-@item
-The "description" field simply provides a textual description,
-optionally quoted, that describes the type of data, to be used
-optionally by mail readers that wish to describe the data before
-offering to display it.
-@item
-The "x11-bitmap" field names a file, in X11 bitmap (xbm) format, which
-points to an appropriate icon to be used to visually denote the presence
-of this kind of data.
-@item
-Any other fields beginning with "x-" may be included for local or
-mailer-specific extensions of this format.  Implementations should
-simply ignore all such unrecognized fields to permit such extensions,
-some of which might be standardized in a future version of this
-document.
-@end itemize
-
-@node Down with DoubleClick, General Index, Mailcap Files, Top
-@appendix Down with DoubleClick
-:: WORK :: Document why doubleclick is evil@*
-:: WORK :: Document how you can never see another ad from them again
-
-@node General Index, Key Index, Down with DoubleClick, Top
-@appendix General Index
-@printindex fn
-@node Key Index,  , General Index, Top
-@appendix Key Index
-@printindex ky
-@contents
-@bye