Don't use the British spelling of "behaviour".
[bpt/emacs.git] / man / gnus.texi
index 7553453..42b6aa0 100644 (file)
 
 \thispagestyle{empty}
 
-Copyright \copyright{} 1995,96,97,98,99,2000 Free Software Foundation, Inc.
+Copyright \copyright{} 1995,96,97,98,99,2000,2001 Free Software Foundation, Inc.
 
 
 Permission is granted to copy, distribute and/or modify this document
@@ -300,7 +300,7 @@ license to the document, as described in section 6 of the license.
 
 This file documents Gnus, the GNU Emacs newsreader.
 
-Copyright (C) 1995,96,97,98,99,2000 Free Software Foundation, Inc.
+Copyright (C) 1995,96,97,98,99,2000,2001 Free Software Foundation, Inc.
 
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.1 or
@@ -329,7 +329,7 @@ license to the document, as described in section 6 of the license.
 @page
 
 @vskip 0pt plus 1filll
-Copyright @copyright{} 1995,96,97,98,99,2000 Free Software Foundation, Inc.
+Copyright @copyright{} 1995,96,97,98,99,2000,2001 Free Software Foundation, Inc.
 
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.1 or
@@ -816,14 +816,14 @@ History
 * Gnus Development::    How Gnus is developed.
 * Contributors::        Oodles of people.
 * New Features::        Pointers to some of the new stuff in Gnus.
-* Newest Features::     Features so new that they haven't been written yet.
 
 New Features
 
 * ding Gnus::          New things in Gnus 5.0/5.1, the first new Gnus.
-* September Gnus::     The Thing Formally Known As Gnus 5.3/5.3.
+* September Gnus::     The Thing Formally Known As Gnus 5.2/5.3.
 * Red Gnus::           Third time best---Gnus 5.4/5.5.
 * Quassia Gnus::       Two times two is four, or Gnus 5.6/5.7.
+* Pterodactyl Gnus::   Pentad also starts with P, AKA Gnus 5.8/5.9.
 
 Customization
 
@@ -957,7 +957,7 @@ gnus} later in the same Emacs session, Gnus will contact the same
 server.)
 
 @findex gnus-group-browse-foreign-server
-@kindex B (Group)
+@kindex B @r{(Group)}
 However, if you use one @sc{nntp} server regularly and are just
 interested in a couple of groups from a different server, you would be
 better served by using the @kbd{B} command in the group buffer.  It will
@@ -1850,37 +1850,37 @@ expected, hopefully.
 @table @kbd
 
 @item n
-@kindex n (Group)
+@kindex n @r{(Group)}
 @findex gnus-group-next-unread-group
 Go to the next group that has unread articles
 (@code{gnus-group-next-unread-group}).
 
 @item p
-@itemx DEL
-@kindex DEL (Group)
-@kindex p (Group)
+@itemx @key{DEL}
+@kindex @key{DEL} @r{(Group)}
+@kindex p @r{(Group)}
 @findex gnus-group-prev-unread-group
 Go to the previous group that has unread articles
 (@code{gnus-group-prev-unread-group}).
 
 @item N
-@kindex N (Group)
+@kindex N @r{(Group)}
 @findex gnus-group-next-group
 Go to the next group (@code{gnus-group-next-group}).
 
 @item P
-@kindex P (Group)
+@kindex P @r{(Group)}
 @findex gnus-group-prev-group
 Go to the previous group (@code{gnus-group-prev-group}).
 
 @item M-n
-@kindex M-n (Group)
+@kindex M-n @r{(Group)}
 @findex gnus-group-next-unread-group-same-level
 Go to the next unread group on the same (or lower) level
 (@code{gnus-group-next-unread-group-same-level}).
 
 @item M-p
-@kindex M-p (Group)
+@kindex M-p @r{(Group)}
 @findex gnus-group-prev-unread-group-same-level
 Go to the previous unread group on the same (or lower) level
 (@code{gnus-group-prev-unread-group-same-level}).
@@ -1891,20 +1891,20 @@ Three commands for jumping to groups:
 @table @kbd
 
 @item j
-@kindex j (Group)
+@kindex j @r{(Group)}
 @findex gnus-group-jump-to-group
 Jump to a group (and make it visible if it isn't already)
 (@code{gnus-group-jump-to-group}).  Killed groups can be jumped to, just
 like living groups.
 
 @item ,
-@kindex , (Group)
+@kindex , @r{(Group)}
 @findex gnus-group-best-unread-group
 Jump to the unread group with the lowest level
 (@code{gnus-group-best-unread-group}).
 
 @item .
-@kindex . (Group)
+@kindex . @r{(Group)}
 @findex gnus-group-first-unread-group
 Jump to the first group with unread articles
 (@code{gnus-group-first-unread-group}).
@@ -1923,8 +1923,8 @@ is @code{t}.
 
 @table @kbd
 
-@item SPACE
-@kindex SPACE (Group)
+@item @key{SPC}
+@kindex @key{SPC} @r{(Group)}
 @findex gnus-group-read-group
 Select the current group, switch to the summary buffer and display the
 first unread article (@code{gnus-group-read-group}).  If there are no
@@ -1943,8 +1943,9 @@ When you are in the group (in the Summary buffer), you can type
 @kbd{M-g} to fetch new articles, or @kbd{C-u M-g} to also show the old
 ones.
 
-@item RET
-@kindex RET (Group)
+@item @key{RET}
+@kindex @key{RET} @r{(Group)}
+
 @findex gnus-group-select-group
 Select the current group and switch to the summary buffer
 (@code{gnus-group-select-group}).  Takes the same arguments as
@@ -1952,27 +1953,27 @@ Select the current group and switch to the summary buffer
 does not display the first unread article automatically upon group
 entry.
 
-@item M-RET
-@kindex M-RET (Group)
+@item M-@key{RET}
+@kindex M-@key{RET} @r{(Group)}
 @findex gnus-group-quick-select-group
 This does the same as the command above, but tries to do it with the
 minimum amount of fuzz (@code{gnus-group-quick-select-group}).  No
 scoring/killing will be performed, there will be no highlights and no
 expunging.  This might be useful if you're in a real hurry and have to
 enter some humongous group.  If you give a 0 prefix to this command
-(i.e., @kbd{0 M-RET}), Gnus won't even generate the summary buffer,
+(i.e., @kbd{0 M-@key{RET}}), Gnus won't even generate the summary buffer,
 which is useful if you want to toggle threading before generating the
 summary buffer (@pxref{Summary Generation Commands}).
 
-@item M-SPACE
-@kindex M-SPACE (Group)
+@item M-@key{SPC}
+@kindex M-@key{SPC} @r{(Group)}
 @findex gnus-group-visible-select-group
-This is yet one more command that does the same as the @kbd{RET}
+This is yet one more command that does the same as the @key{RET}
 command, but this one does it without expunging and hiding dormants
 (@code{gnus-group-visible-select-group}).
 
-@item M-C-RET
-@kindex M-C-RET (Group)
+@item M-C-@key{RET}
+@kindex M-C-@key{RET} @r{(Group)}
 @findex gnus-group-select-group-ephemerally
 Finally, this command selects the current group ephemerally without
 doing any processing of its contents
@@ -1995,7 +1996,7 @@ be fetched.
 @vindex gnus-select-group-hook
 @vindex gnus-auto-select-first
 @code{gnus-auto-select-first} control whether any articles are selected
-automatically when entering a group with the @kbd{SPACE} command.
+automatically when entering a group with the @key{SPC} command.
 
 @table @code
 
@@ -2043,8 +2044,8 @@ selected.
 
 @item S t
 @itemx u
-@kindex S t (Group)
-@kindex u (Group)
+@kindex S t @r{(Group)}
+@kindex u @r{(Group)}
 @findex gnus-group-unsubscribe-current-group
 @c @icon{gnus-group-unsubscribe}
 Toggle subscription to the current group
@@ -2052,8 +2053,8 @@ Toggle subscription to the current group
 
 @item S s
 @itemx U
-@kindex S s (Group)
-@kindex U (Group)
+@kindex S s @r{(Group)}
+@kindex U @r{(Group)}
 @findex gnus-group-unsubscribe-group
 Prompt for a group to subscribe, and then subscribe it.  If it was
 subscribed already, unsubscribe it instead
@@ -2061,21 +2062,21 @@ subscribed already, unsubscribe it instead
 
 @item S k
 @itemx C-k
-@kindex S k (Group)
-@kindex C-k (Group)
+@kindex S k @r{(Group)}
+@kindex C-k @r{(Group)}
 @findex gnus-group-kill-group
 @c @icon{gnus-group-kill-group}
 Kill the current group (@code{gnus-group-kill-group}).
 
 @item S y
 @itemx C-y
-@kindex S y (Group)
-@kindex C-y (Group)
+@kindex S y @r{(Group)}
+@kindex C-y @r{(Group)}
 @findex gnus-group-yank-group
 Yank the last killed group (@code{gnus-group-yank-group}).
 
 @item C-x C-t
-@kindex C-x C-t (Group)
+@kindex C-x C-t @r{(Group)}
 @findex gnus-group-transpose-groups
 Transpose two groups (@code{gnus-group-transpose-groups}).  This isn't
 really a subscription command, but you can use it instead of a
@@ -2083,18 +2084,18 @@ kill-and-yank sequence sometimes.
 
 @item S w
 @itemx C-w
-@kindex S w (Group)
-@kindex C-w (Group)
+@kindex S w @r{(Group)}
+@kindex C-w @r{(Group)}
 @findex gnus-group-kill-region
 Kill all groups in the region (@code{gnus-group-kill-region}).
 
 @item S z
-@kindex S z (Group)
+@kindex S z @r{(Group)}
 @findex gnus-group-kill-all-zombies
 Kill all zombie groups (@code{gnus-group-kill-all-zombies}).
 
 @item S C-k
-@kindex S C-k (Group)
+@kindex S C-k @r{(Group)}
 @findex gnus-group-kill-level
 Kill all groups on a certain level (@code{gnus-group-kill-level}).
 These groups can't be yanked back after killing, so this command should
@@ -2115,7 +2116,7 @@ Also @pxref{Group Levels}.
 @table @kbd
 
 @item c
-@kindex c (Group)
+@kindex c @r{(Group)}
 @findex gnus-group-catchup-current
 @vindex gnus-group-catchup-group-hook
 @c @icon{gnus-group-catchup-current}
@@ -2125,13 +2126,13 @@ Mark all unticked articles in this group as read
 the group buffer.
 
 @item C
-@kindex C (Group)
+@kindex C @r{(Group)}
 @findex gnus-group-catchup-current-all
 Mark all articles in this group, even the ticked ones, as read
 (@code{gnus-group-catchup-current-all}).
 
 @item M-c
-@kindex M-c (Group)
+@kindex M-c @r{(Group)}
 @findex gnus-group-clear-data
 Clear the data from the current group---nix out marks and the list of
 read articles (@code{gnus-group-clear-data}).
@@ -2163,7 +2164,7 @@ Remember:  The higher the level of the group, the less important it is.
 @table @kbd
 
 @item S l
-@kindex S l (Group)
+@kindex S l @r{(Group)}
 @findex gnus-group-set-current-level
 Set the level of the current group.  If a numeric prefix is given, the
 next @var{n} groups will have their levels set.  The user will be
@@ -2303,37 +2304,37 @@ with the process mark and then execute the command.
 @table @kbd
 
 @item #
-@kindex # (Group)
+@kindex # @r{(Group)}
 @itemx M m
-@kindex M m (Group)
+@kindex M m @r{(Group)}
 @findex gnus-group-mark-group
 Set the mark on the current group (@code{gnus-group-mark-group}).
 
 @item M-#
-@kindex M-# (Group)
+@kindex M-# @r{(Group)}
 @itemx M u
-@kindex M u (Group)
+@kindex M u @r{(Group)}
 @findex gnus-group-unmark-group
 Remove the mark from the current group
 (@code{gnus-group-unmark-group}).
 
 @item M U
-@kindex M U (Group)
+@kindex M U @r{(Group)}
 @findex gnus-group-unmark-all-groups
 Remove the mark from all groups (@code{gnus-group-unmark-all-groups}).
 
 @item M w
-@kindex M w (Group)
+@kindex M w @r{(Group)}
 @findex gnus-group-mark-region
 Mark all groups between point and mark (@code{gnus-group-mark-region}).
 
 @item M b
-@kindex M b (Group)
+@kindex M b @r{(Group)}
 @findex gnus-group-mark-buffer
 Mark all groups in the buffer (@code{gnus-group-mark-buffer}).
 
 @item M r
-@kindex M r (Group)
+@kindex M r @r{(Group)}
 @findex gnus-group-mark-regexp
 Mark all groups that match some regular expression
 (@code{gnus-group-mark-regexp}).
@@ -2361,7 +2362,7 @@ consulted.
 @table @kbd
 
 @item G m
-@kindex G m (Group)
+@kindex G m @r{(Group)}
 @findex gnus-group-make-group
 @cindex making groups
 Make a new group (@code{gnus-group-make-group}).  Gnus will prompt you
@@ -2369,7 +2370,7 @@ for a name, a method and possibly an @dfn{address}.  For an easier way
 to subscribe to @sc{nntp} groups, @pxref{Browse Foreign Server}.
 
 @item G r
-@kindex G r (Group)
+@kindex G r @r{(Group)}
 @findex gnus-group-rename-group
 @cindex renaming groups
 Rename the current group to something else
@@ -2378,45 +2379,45 @@ groups---mail groups mostly.  This command might very well be quite slow
 on some backends.
 
 @item G c
-@kindex G c (Group)
+@kindex G c @r{(Group)}
 @cindex customizing
 @findex gnus-group-customize
 Customize the group parameters (@code{gnus-group-customize}).
 
 @item G e
-@kindex G e (Group)
+@kindex G e @r{(Group)}
 @findex gnus-group-edit-group-method
 @cindex renaming groups
 Enter a buffer where you can edit the select method of the current
 group (@code{gnus-group-edit-group-method}).
 
 @item G p
-@kindex G p (Group)
+@kindex G p @r{(Group)}
 @findex gnus-group-edit-group-parameters
 Enter a buffer where you can edit the group parameters
 (@code{gnus-group-edit-group-parameters}).
 
 @item G E
-@kindex G E (Group)
+@kindex G E @r{(Group)}
 @findex gnus-group-edit-group
 Enter a buffer where you can edit the group info
 (@code{gnus-group-edit-group}).
 
 @item G d
-@kindex G d (Group)
+@kindex G d @r{(Group)}
 @findex gnus-group-make-directory-group
 @cindex nndir
 Make a directory group (@pxref{Directory Groups}).  You will be prompted
 for a directory name (@code{gnus-group-make-directory-group}).
 
 @item G h
-@kindex G h (Group)
+@kindex G h @r{(Group)}
 @cindex help group
 @findex gnus-group-make-help-group
 Make the Gnus help group (@code{gnus-group-make-help-group}).
 
 @item G a
-@kindex G a (Group)
+@kindex G a @r{(Group)}
 @cindex (ding) archive
 @cindex archive group
 @findex gnus-group-make-archive-group
@@ -2428,7 +2429,7 @@ default a group pointing to the most recent articles will be created
 group will be created from @code{gnus-group-archive-directory}.
 
 @item G k
-@kindex G k (Group)
+@kindex G k @r{(Group)}
 @findex gnus-group-make-kiboze-group
 @cindex nnkiboze
 Make a kiboze group.  You will be prompted for a name, for a regexp to
@@ -2437,7 +2438,7 @@ strings to match on headers (@code{gnus-group-make-kiboze-group}).
 @xref{Kibozed Groups}.
 
 @item G D
-@kindex G D (Group)
+@kindex G D @r{(Group)}
 @findex gnus-group-enter-directory
 @cindex nneething
 Read an arbitrary directory as if it were a newsgroup with the
@@ -2445,7 +2446,7 @@ Read an arbitrary directory as if it were a newsgroup with the
 @xref{Anything Groups}.
 
 @item G f
-@kindex G f (Group)
+@kindex G f @r{(Group)}
 @findex gnus-group-make-doc-group
 @cindex ClariNet Briefs
 @cindex nndoc
@@ -2459,14 +2460,14 @@ If you run this command without a prefix, Gnus will guess at the file
 type.  @xref{Document Groups}.
 
 @item G u
-@kindex G u (Group)
+@kindex G u @r{(Group)}
 @vindex gnus-useful-groups
 @findex gnus-group-make-useful-group
 Create one of the groups mentioned in @code{gnus-useful-groups}
 (@code{gnus-group-make-useful-group}).
 
 @item G w
-@kindex G w (Group)
+@kindex G w @r{(Group)}
 @findex gnus-group-make-web-group
 @cindex DejaNews
 @cindex Alta Vista
@@ -2483,8 +2484,8 @@ If you use the @code{dejanews} search engine, you can limit the search
 to a particular group by using a match string like
 @samp{~g alt.sysadmin.recovery shaving}.
 
-@item G DEL
-@kindex G DEL (Group)
+@item G @key{DEL}
+@kindex G @key{DEL} @r{(Group)}
 @findex gnus-group-delete-group
 This function will delete the current group
 (@code{gnus-group-delete-group}).  If given a prefix, this function will
@@ -2494,13 +2495,13 @@ absolutely sure of what you are doing.  This command can't be used on
 read-only groups (like @code{nntp} group), though.
 
 @item G V
-@kindex G V (Group)
+@kindex G V @r{(Group)}
 @findex gnus-group-make-empty-virtual
 Make a new, fresh, empty @code{nnvirtual} group
 (@code{gnus-group-make-empty-virtual}).  @xref{Virtual Groups}.
 
 @item G v
-@kindex G v (Group)
+@kindex G v @r{(Group)}
 @findex gnus-group-add-to-virtual
 Add the current group to an @code{nnvirtual} group
 (@code{gnus-group-add-to-virtual}).  Uses the process/prefix convention.
@@ -2559,6 +2560,9 @@ the articles from a mail-to-news gateway.  Posting directly to this
 group is therefore impossible---you have to send mail to the mailing
 list address instead.
 
+Some parameters have corresponding customizable variables, each of which
+is an alist of regexps and values.
+
 @item to-list
 @cindex to-list
 Address used when doing @kbd{a} in that group.
@@ -2581,6 +2585,8 @@ If you do an @kbd{a} command in a mail group and you don't have a
 @code{to-list} group parameter, one will be added automatically upon
 sending the message.
 
+See also @code{gnus-parameter-to-list-alist}.
+
 @item visible
 @cindex visible
 If the group parameter list has the element @code{(visible . t)},
@@ -2631,6 +2637,8 @@ expiry process, even if they are not marked as expirable.  Use with
 caution.  Unread, ticked and dormant articles are not eligible for
 expiry.
 
+See also @code{gnus-total-expirable-newsgroups}.
+
 @item expiry-wait
 @cindex expiry-wait
 @vindex nnmail-expiry-wait-function
@@ -2682,20 +2690,15 @@ Elements that look like @code{(charset . iso-8859-1)} will make
 @code{iso-8859-1} the default charset; that is, the charset that will be
 used for all articles that do not specify a charset.
 
-@item (@var{variable} @var{form})
-You can use the group parameters to set variables local to the group you
-are entering.  If you want to turn threading off in @samp{news.answers},
-you could put @code{(gnus-show-threads nil)} in the group parameters of
-that group.  @code{gnus-show-threads} will be made into a local variable
-in the summary buffer you enter, and the form @code{nil} will be
-@code{eval}ed there.
+See also @code{gnus-group-charset-alist}.
 
-This can also be used as a group-specific hook function, if you'd like.
-If you want to hear a beep when you enter a group, you could put
-something like @code{(dummy-variable (ding))} in the parameters of that
-group.  @code{dummy-variable} will be set to the result of the
-@code{(ding)} form, but who cares?
+@item ignored-charsets
+Elements that look like @code{(ignored-charsets x-known iso-8859-1)}
+will make @code{iso-8859-1} and @code{x-unknown} ignored; that is, the
+default charset will be used for decoding articles.
 
+See also @code{gnus-group-ignored-charsets-alist}.
 @item posting-style
 You can store additional posting style information for this group only
 here (@pxref{Posting Styles}).  The format is that of an entry in the
@@ -2720,6 +2723,20 @@ that matches the regular expression "regex" to be stripped. Instead of
 last signature or any of the elements of the alist
 @code{gnus-article-banner-alist}.
 
+@item (@var{variable} @var{form})
+You can use the group parameters to set variables local to the group you
+are entering.  If you want to turn threading off in @samp{news.answers},
+you could put @code{(gnus-show-threads nil)} in the group parameters of
+that group.  @code{gnus-show-threads} will be made into a local variable
+in the summary buffer you enter, and the form @code{nil} will be
+@code{eval}ed there.
+
+This can also be used as a group-specific hook function, if you like.
+If you want to hear a beep when you enter a group, you could put
+something like @code{(dummy-variable (ding))} in the parameters of that
+group.  @code{dummy-variable} will be set to the result of the
+@code{(ding)} form, but who cares?
+
 @end table
 
 Use the @kbd{G p} or the @kbd{G c} command to edit group parameters of a
@@ -2739,8 +2756,8 @@ These commands all list various slices of the groups available.
 
 @item l
 @itemx A s
-@kindex A s (Group)
-@kindex l (Group)
+@kindex A s @r{(Group)}
+@kindex l @r{(Group)}
 @findex gnus-group-list-groups
 List all groups that have unread articles
 (@code{gnus-group-list-groups}).  If the numeric prefix is used, this
@@ -2751,8 +2768,8 @@ groups).
 
 @item L
 @itemx A u
-@kindex A u (Group)
-@kindex L (Group)
+@kindex A u @r{(Group)}
+@kindex L @r{(Group)}
 @findex gnus-group-list-all-groups
 List all groups, whether they have unread articles or not
 (@code{gnus-group-list-all-groups}).  If the numeric prefix is used,
@@ -2761,14 +2778,14 @@ it lists groups of level seven or lower (i.e., just subscribed and
 unsubscribed groups).
 
 @item A l
-@kindex A l (Group)
+@kindex A l @r{(Group)}
 @findex gnus-group-list-level
 List all unread groups on a specific level
 (@code{gnus-group-list-level}).  If given a prefix, also list the groups
 with no unread articles.
 
 @item A k
-@kindex A k (Group)
+@kindex A k @r{(Group)}
 @findex gnus-group-list-killed
 List all killed groups (@code{gnus-group-list-killed}).  If given a
 prefix argument, really list all groups that are available, but aren't
@@ -2776,23 +2793,23 @@ currently (un)subscribed.  This could entail reading the active file
 from the server.
 
 @item A z
-@kindex A z (Group)
+@kindex A z @r{(Group)}
 @findex gnus-group-list-zombies
 List all zombie groups (@code{gnus-group-list-zombies}).
 
 @item A m
-@kindex A m (Group)
+@kindex A m @r{(Group)}
 @findex gnus-group-list-matching
 List all unread, subscribed groups with names that match a regexp
 (@code{gnus-group-list-matching}).
 
 @item A M
-@kindex A M (Group)
+@kindex A M @r{(Group)}
 @findex gnus-group-list-all-matching
 List groups that match a regexp (@code{gnus-group-list-all-matching}).
 
 @item A A
-@kindex A A (Group)
+@kindex A A @r{(Group)}
 @findex gnus-group-list-active
 List absolutely all groups in the active file(s) of the
 server(s) you are connected to (@code{gnus-group-list-active}).  This
@@ -2803,24 +2820,24 @@ don't exist (yet)---these will be listed as if they were killed groups.
 Take the output with some grains of salt.
 
 @item A a
-@kindex A a (Group)
+@kindex A a @r{(Group)}
 @findex gnus-group-apropos
 List all groups that have names that match a regexp
 (@code{gnus-group-apropos}).
 
 @item A d
-@kindex A d (Group)
+@kindex A d @r{(Group)}
 @findex gnus-group-description-apropos
 List all groups that have names or descriptions that match a regexp
 (@code{gnus-group-description-apropos}).
 
 @item A c
-@kindex A c (Group)
+@kindex A c @r{(Group)}
 @findex gnus-group-list-cached
 List all groups with cached articles (@code{gnus-group-list-cached}).
 
 @item A ?
-@kindex A ? (Group)
+@kindex A ? @r{(Group)}
 @findex gnus-group-list-dormant
 List all groups with dormant articles (@code{gnus-group-list-dormant}).
 
@@ -2844,7 +2861,7 @@ groups.  It is @code{t} by default.
 @section Sorting Groups
 @cindex sorting groups
 
-@kindex C-c C-s (Group)
+@kindex C-c C-s @r{(Group)}
 @findex gnus-group-sort-groups
 @vindex gnus-group-sort-function
 The @kbd{C-c C-s} (@code{gnus-group-sort-groups}) command sorts the
@@ -2896,37 +2913,37 @@ some sorting criteria:
 
 @table @kbd
 @item G S a
-@kindex G S a (Group)
+@kindex G S a @r{(Group)}
 @findex gnus-group-sort-groups-by-alphabet
 Sort the group buffer alphabetically by group name
 (@code{gnus-group-sort-groups-by-alphabet}).
 
 @item G S u
-@kindex G S u (Group)
+@kindex G S u @r{(Group)}
 @findex gnus-group-sort-groups-by-unread
 Sort the group buffer by the number of unread articles
 (@code{gnus-group-sort-groups-by-unread}).
 
 @item G S l
-@kindex G S l (Group)
+@kindex G S l @r{(Group)}
 @findex gnus-group-sort-groups-by-level
 Sort the group buffer by group level
 (@code{gnus-group-sort-groups-by-level}).
 
 @item G S v
-@kindex G S v (Group)
+@kindex G S v @r{(Group)}
 @findex gnus-group-sort-groups-by-score
 Sort the group buffer by group score
 (@code{gnus-group-sort-groups-by-score}).  @xref{Group Score}.
 
 @item G S r
-@kindex G S r (Group)
+@kindex G S r @r{(Group)}
 @findex gnus-group-sort-groups-by-rank
 Sort the group buffer by group rank
 (@code{gnus-group-sort-groups-by-rank}).  @xref{Group Score}.
 
 @item G S m
-@kindex G S m (Group)
+@kindex G S m @r{(Group)}
 @findex gnus-group-sort-groups-by-method
 Sort the group buffer alphabetically by backend name
 (@code{gnus-group-sort-groups-by-method}).
@@ -2943,37 +2960,37 @@ You can also sort a subset of the groups:
 
 @table @kbd
 @item G P a
-@kindex G P a (Group)
+@kindex G P a @r{(Group)}
 @findex gnus-group-sort-selected-groups-by-alphabet
 Sort the groups alphabetically by group name
 (@code{gnus-group-sort-selected-groups-by-alphabet}).
 
 @item G P u
-@kindex G P u (Group)
+@kindex G P u @r{(Group)}
 @findex gnus-group-sort-selected-groups-by-unread
 Sort the groups by the number of unread articles
 (@code{gnus-group-sort-selected-groups-by-unread}).
 
 @item G P l
-@kindex G P l (Group)
+@kindex G P l @r{(Group)}
 @findex gnus-group-sort-selected-groups-by-level
 Sort the groups by group level
 (@code{gnus-group-sort-selected-groups-by-level}).
 
 @item G P v
-@kindex G P v (Group)
+@kindex G P v @r{(Group)}
 @findex gnus-group-sort-selected-groups-by-score
 Sort the groups by group score
 (@code{gnus-group-sort-selected-groups-by-score}).  @xref{Group Score}.
 
 @item G P r
-@kindex G P r (Group)
+@kindex G P r @r{(Group)}
 @findex gnus-group-sort-selected-groups-by-rank
 Sort the groups by group rank
 (@code{gnus-group-sort-selected-groups-by-rank}).  @xref{Group Score}.
 
 @item G P m
-@kindex G P m (Group)
+@kindex G P m @r{(Group)}
 @findex gnus-group-sort-selected-groups-by-method
 Sort the groups alphabetically by backend name
 (@code{gnus-group-sort-selected-groups-by-method}).
@@ -2988,13 +3005,13 @@ Sort the groups alphabetically by backend name
 
 @table @kbd
 @item b
-@kindex b (Group)
+@kindex b @r{(Group)}
 @findex gnus-group-check-bogus-groups
 Find bogus groups and delete them
 (@code{gnus-group-check-bogus-groups}).
 
 @item F
-@kindex F (Group)
+@kindex F @r{(Group)}
 @findex gnus-group-find-new-groups
 Find new groups and process them (@code{gnus-group-find-new-groups}).
 With 1 @kbd{C-u}, use the @code{ask-server} method to query the server
@@ -3003,13 +3020,13 @@ to query the server for new groups, and subscribe the new groups as
 zombies.
 
 @item C-c C-x
-@kindex C-c C-x (Group)
+@kindex C-c C-x @r{(Group)}
 @findex gnus-group-expire-articles
 Run all expirable articles in the current group through the expiry
 process (if any) (@code{gnus-group-expire-articles}).
 
 @item C-c M-C-x
-@kindex C-c M-C-x (Group)
+@kindex C-c M-C-x @r{(Group)}
 @findex gnus-group-expire-all-groups
 Run all articles in all groups through the expiry process
 (@code{gnus-group-expire-all-groups}).
@@ -3024,7 +3041,7 @@ Run all articles in all groups through the expiry process
 
 @table @kbd
 @item B
-@kindex B (Group)
+@kindex B @r{(Group)}
 @findex gnus-group-browse-foreign-server
 You will be queried for a select method and a server name.  Gnus will
 then attempt to contact this server and let you browse the groups there
@@ -3049,14 +3066,14 @@ Go to the next group (@code{gnus-group-next-group}).
 @findex gnus-group-prev-group
 Go to the previous group (@code{gnus-group-prev-group}).
 
-@item SPACE
-@kindex SPACE (Browse)
+@item @key{SPC}
+@kindex @key{SPC} (Browse)
 @findex gnus-browse-read-group
 Enter the current group and display the first article
 (@code{gnus-browse-read-group}).
 
-@item RET
-@kindex RET (Browse)
+@item @key{RET}
+@kindex @key{RET} (Browse)
 @findex gnus-browse-select-group
 Enter the current group (@code{gnus-browse-select-group}).
 
@@ -3089,20 +3106,20 @@ Yes, Gnus is ex(c)iting.
 
 @table @kbd
 @item z
-@kindex z (Group)
+@kindex z @r{(Group)}
 @findex gnus-group-suspend
 Suspend Gnus (@code{gnus-group-suspend}).  This doesn't really exit Gnus,
 but it kills all buffers except the Group buffer.  I'm not sure why this
 is a gain, but then who am I to judge?
 
 @item q
-@kindex q (Group)
+@kindex q @r{(Group)}
 @findex gnus-group-exit
 @c @icon{gnus-group-exit}
 Quit Gnus (@code{gnus-group-exit}).
 
 @item Q
-@kindex Q (Group)
+@kindex Q @r{(Group)}
 @findex gnus-group-quit
 Quit Gnus without saving the @file{.newsrc} files (@code{gnus-group-quit}).
 The dribble file will be saved, though (@pxref{Auto Save}).
@@ -3166,7 +3183,7 @@ Gnus
 @end example
 
 @findex gnus-topic-mode
-@kindex t (Group)
+@kindex t @r{(Group)}
 To get this @emph{fab} functionality you simply turn on (ooh!) the
 @code{gnus-topic} minor mode---type @kbd{t} in the group buffer.  (This
 is a toggling command.)
@@ -3341,10 +3358,10 @@ previous topic (@code{gnus-topic-indent}).  If given a prefix,
 ``Un-indent'' the current topic so that it becomes a sub-topic of the
 parent of its current parent (@code{gnus-topic-unindent}).
 
-@item RET
-@kindex RET (Topic)
+@item @key{RET}
+@kindex @key{RET} (Topic)
 @findex gnus-topic-select-group
-@itemx SPACE
+@itemx @key{SPC}
 Either select a group or fold a topic (@code{gnus-topic-select-group}).
 When you perform this command on a group, you'll enter the group, as
 usual.  When done on a topic line, the topic will be folded (if it was
@@ -3376,8 +3393,8 @@ before all groups.
 @findex gnus-topic-rename
 Rename a topic (@code{gnus-topic-rename}).
 
-@item T DEL
-@kindex T DEL (Topic)
+@item T @key{DEL}
+@kindex T @key{DEL} (Topic)
 @findex gnus-topic-delete
 Delete an empty topic (@code{gnus-topic-delete}).
 
@@ -3569,19 +3586,19 @@ happens.  You just have to be careful if you do stuff like that.
 @table @kbd
 
 @item ^
-@kindex ^ (Group)
+@kindex ^ @r{(Group)}
 @findex gnus-group-enter-server-mode
 Enter the server buffer (@code{gnus-group-enter-server-mode}).
 @xref{The Server Buffer}.
 
 @item a
-@kindex a (Group)
+@kindex a @r{(Group)}
 @findex gnus-group-post-news
 Post an article to a group (@code{gnus-group-post-news}).  If given a
 prefix, the current group name will be used as the default.
 
 @item m
-@kindex m (Group)
+@kindex m @r{(Group)}
 @findex gnus-group-mail
 Mail a message somewhere (@code{gnus-group-mail}).
 
@@ -3644,7 +3661,7 @@ For example:
 @table @kbd
 
 @item g
-@kindex g (Group)
+@kindex g @r{(Group)}
 @findex gnus-group-get-new-news
 @c @icon{gnus-group-get-new-news}
 Check the server(s) for new articles.  If the numerical prefix is used,
@@ -3654,7 +3671,7 @@ command will force a total re-reading of the active file(s) from the
 backend(s).
 
 @item M-g
-@kindex M-g (Group)
+@kindex M-g @r{(Group)}
 @findex gnus-group-get-new-news-this-group
 @vindex gnus-goto-next-group-when-activating
 @c @icon{gnus-group-get-new-news-this-group}
@@ -3666,11 +3683,11 @@ to move point to the next group or not.  It is @code{t} by default.
 @findex gnus-activate-all-groups
 @cindex activating groups
 @item C-c M-g
-@kindex C-c M-g (Group)
+@kindex C-c M-g @r{(Group)}
 Activate absolutely all groups (@code{gnus-activate-all-groups}).
 
 @item R
-@kindex R (Group)
+@kindex R @r{(Group)}
 @cindex restarting
 @findex gnus-group-restart
 Restart Gnus (@code{gnus-group-restart}).  This saves the @file{.newsrc}
@@ -3696,7 +3713,7 @@ news.
 
 
 @item H f
-@kindex H f (Group)
+@kindex H f @r{(Group)}
 @findex gnus-group-fetch-faq
 @vindex gnus-group-faq-directory
 @cindex FAQ
@@ -3715,8 +3732,8 @@ through @code{gnus-group-faq-directory} and try to open them one by one.
 @item H d
 @itemx C-c C-d
 @c @icon{gnus-group-describe-group}
-@kindex H d (Group)
-@kindex C-c C-d (Group)
+@kindex H d @r{(Group)}
+@kindex C-c C-d @r{(Group)}
 @cindex describing groups
 @cindex group description
 @findex gnus-group-describe-group
@@ -3724,26 +3741,26 @@ Describe the current group (@code{gnus-group-describe-group}).  If given
 a prefix, force Gnus to re-read the description from the server.
 
 @item M-d
-@kindex M-d (Group)
+@kindex M-d @r{(Group)}
 @findex gnus-group-describe-all-groups
 Describe all groups (@code{gnus-group-describe-all-groups}).  If given a
 prefix, force Gnus to re-read the description file from the server.
 
 @item H v
 @itemx V
-@kindex V (Group)
-@kindex H v (Group)
+@kindex V @r{(Group)}
+@kindex H v @r{(Group)}
 @cindex version
 @findex gnus-version
 Display current Gnus version numbers (@code{gnus-version}).
 
 @item ?
-@kindex ? (Group)
+@kindex ? @r{(Group)}
 @findex gnus-group-describe-briefly
 Give a very short help message (@code{gnus-group-describe-briefly}).
 
 @item C-c C-i
-@kindex C-c C-i (Group)
+@kindex C-c C-i @r{(Group)}
 @cindex info
 @cindex manual
 @findex gnus-info-find-node
@@ -3798,7 +3815,7 @@ something like:
 @table @kbd
 
 @item r
-@kindex r (Group)
+@kindex r @r{(Group)}
 @findex gnus-group-read-init-file
 @vindex gnus-init-file
 @cindex reading init file
@@ -3806,7 +3823,7 @@ Re-read the init file (@code{gnus-init-file}, which defaults to
 @file{~/.gnus}) (@code{gnus-group-read-init-file}).
 
 @item s
-@kindex s (Group)
+@kindex s @r{(Group)}
 @findex gnus-group-save-newsrc
 @cindex saving .newsrc
 Save the @file{.newsrc.eld} file (and @file{.newsrc} if wanted)
@@ -3814,7 +3831,7 @@ Save the @file{.newsrc.eld} file (and @file{.newsrc} if wanted)
 file(s) whether Gnus thinks it is necessary or not.
 
 @c @item Z
-@c @kindex Z (Group)
+@c @kindex Z @r{(Group)}
 @c @findex gnus-group-clear-dribble
 @c Clear the dribble buffer (@code{gnus-group-clear-dribble}).
 
@@ -4210,30 +4227,22 @@ None of these commands select articles.
 @table @kbd
 @item G M-n
 @itemx M-n
-@kindex M-n (Summary)
-@kindex G M-n (Summary)
+@kindex M-n @r{(Summary)}
+@kindex G M-n @r{(Summary)}
 @findex gnus-summary-next-unread-subject
 Go to the next summary line of an unread article
 (@code{gnus-summary-next-unread-subject}).
 
 @item G M-p
 @itemx M-p
-@kindex M-p (Summary)
-@kindex G M-p (Summary)
+@kindex M-p @r{(Summary)}
+@kindex G M-p @r{(Summary)}
 @findex gnus-summary-prev-unread-subject
 Go to the previous summary line of an unread article
 (@code{gnus-summary-prev-unread-subject}).
 
-@item G j
-@itemx j
-@kindex j (Summary)
-@kindex G j (Summary)
-@findex gnus-summary-goto-article
-Ask for an article number or @code{Message-ID}, and then go to that
-article (@code{gnus-summary-goto-article}).
-
 @item G g
-@kindex G g (Summary)
+@kindex G g @r{(Summary)}
 @findex gnus-summary-goto-subject
 Ask for an article number and then go to the summary line of that article
 without displaying the article (@code{gnus-summary-goto-subject}).
@@ -4315,78 +4324,78 @@ If you want to fetch new articles or redisplay the group, see
 @ref{Exiting the Summary Buffer}.
 
 @table @kbd
-@item SPACE
-@kindex SPACE (Summary)
+@item @key{SPC}
+@kindex @key{SPC} @r{(Summary)}
 @findex gnus-summary-next-page
 Select the current article, or, if that one's read already, the next
 unread article (@code{gnus-summary-next-page}).
 
 @item G n
 @itemx n
-@kindex n (Summary)
-@kindex G n (Summary)
+@kindex n @r{(Summary)}
+@kindex G n @r{(Summary)}
 @findex gnus-summary-next-unread-article
 @c @icon{gnus-summary-next-unread}
 Go to next unread article (@code{gnus-summary-next-unread-article}).
 
 @item G p
 @itemx p
-@kindex p (Summary)
+@kindex p @r{(Summary)}
 @findex gnus-summary-prev-unread-article
 @c @icon{gnus-summary-prev-unread}
 Go to previous unread article (@code{gnus-summary-prev-unread-article}).
 
 @item G N
 @itemx N
-@kindex N (Summary)
-@kindex G N (Summary)
+@kindex N @r{(Summary)}
+@kindex G N @r{(Summary)}
 @findex gnus-summary-next-article
 Go to the next article (@code{gnus-summary-next-article}).
 
 @item G P
 @itemx P
-@kindex P (Summary)
-@kindex G P (Summary)
+@kindex P @r{(Summary)}
+@kindex G P @r{(Summary)}
 @findex gnus-summary-prev-article
 Go to the previous article (@code{gnus-summary-prev-article}).
 
 @item G C-n
-@kindex G C-n (Summary)
+@kindex G C-n @r{(Summary)}
 @findex gnus-summary-next-same-subject
 Go to the next article with the same subject
 (@code{gnus-summary-next-same-subject}).
 
 @item G C-p
-@kindex G C-p (Summary)
+@kindex G C-p @r{(Summary)}
 @findex gnus-summary-prev-same-subject
 Go to the previous article with the same subject
 (@code{gnus-summary-prev-same-subject}).
 
 @item G f
 @itemx .
-@kindex G f  (Summary)
-@kindex .  (Summary)
+@kindex G f  @r{(Summary)}
+@kindex .  @r{(Summary)}
 @findex gnus-summary-first-unread-article
 Go to the first unread article
 (@code{gnus-summary-first-unread-article}).
 
 @item G b
 @itemx ,
-@kindex G b (Summary)
-@kindex , (Summary)
+@kindex G b @r{(Summary)}
+@kindex , @r{(Summary)}
 @findex gnus-summary-best-unread-article
 Go to the article with the highest score
 (@code{gnus-summary-best-unread-article}).
 
 @item G l
 @itemx l
-@kindex l (Summary)
-@kindex G l (Summary)
+@kindex l @r{(Summary)}
+@kindex G l @r{(Summary)}
 @findex gnus-summary-goto-last-article
 Go to the previous article read (@code{gnus-summary-goto-last-article}).
 
 @item G o
-@kindex G o (Summary)
+@kindex G o @r{(Summary)}
 @findex gnus-summary-pop-article
 @cindex history
 @cindex article history
@@ -4396,6 +4405,14 @@ command above in that you can pop as many previous articles off the
 history as you like, while @kbd{l} toggles the two last read articles.
 For a somewhat related issue (if you use these commands a lot),
 @pxref{Article Backlog}.
+
+@item G j
+@itemx j
+@kindex j @r{(Summary)}
+@kindex G j @r{(Summary)}
+@findex gnus-summary-goto-article
+Ask for an article number or @code{Message-ID}, and then go to that
+article (@code{gnus-summary-goto-article}).
 @end table
 
 
@@ -4441,34 +4458,34 @@ instead.  It will leave marks like @code{gnus-low-score-mark},
 
 @table @kbd
 
-@item SPACE
-@kindex SPACE (Summary)
+@item @key{SPC}
+@kindex @key{SPC} @r{(Summary)}
 @findex gnus-summary-next-page
-Pressing @kbd{SPACE} will scroll the current article forward one page,
+Pressing @key{SPC} will scroll the current article forward one page,
 or, if you have come to the end of the current article, will choose the
 next article (@code{gnus-summary-next-page}).
 
-@item DEL
-@kindex DEL (Summary)
+@item @key{DEL}
+@kindex @key{DEL} @r{(Summary)}
 @findex gnus-summary-prev-page
 Scroll the current article back one page (@code{gnus-summary-prev-page}).
 
-@item RET
-@kindex RET (Summary)
+@item @key{RET}
+@kindex @key{RET} @r{(Summary)}
 @findex gnus-summary-scroll-up
 Scroll the current article one line forward
 (@code{gnus-summary-scroll-up}).
 
-@item M-RET
-@kindex M-RET (Summary)
+@item M-@key{RET}
+@kindex M-@key{RET} @r{(Summary)}
 @findex gnus-summary-scroll-down
 Scroll the current article one line backward
 (@code{gnus-summary-scroll-down}).
 
 @item A g
 @itemx g
-@kindex A g (Summary)
-@kindex g (Summary)
+@kindex A g @r{(Summary)}
+@kindex g @r{(Summary)}
 @findex gnus-summary-show-article
 @vindex gnus-summary-show-article-charset-alist
 (Re)fetch the current article (@code{gnus-summary-show-article}).  If
@@ -4477,7 +4494,7 @@ article treatment functions.  This will give you a ``raw'' article, just
 the way it came from the server.
 
 If given a numerical prefix, you can do semi-manual charset stuff.
-@kbd{C-u 0 g cn-gb-2312 RET} will decode the message as if it were
+@kbd{C-u 0 g cn-gb-2312 @key{RET}} will decode the message as if it were
 encoded in the @code{cn-gb-2312} charset.  If you have
 
 @lisp
@@ -4490,29 +4507,29 @@ then you can say @kbd{C-u 1 g} to get the same effect.
 
 @item A <
 @itemx <
-@kindex < (Summary)
-@kindex A < (Summary)
+@kindex < @r{(Summary)}
+@kindex A < @r{(Summary)}
 @findex gnus-summary-beginning-of-article
 Scroll to the beginning of the article
 (@code{gnus-summary-beginning-of-article}).
 
 @item A >
 @itemx >
-@kindex > (Summary)
-@kindex A > (Summary)
+@kindex > @r{(Summary)}
+@kindex A > @r{(Summary)}
 @findex gnus-summary-end-of-article
 Scroll to the end of the article (@code{gnus-summary-end-of-article}).
 
 @item A s
 @itemx s
-@kindex A s (Summary)
-@kindex s (Summary)
+@kindex A s @r{(Summary)}
+@kindex s @r{(Summary)}
 @findex gnus-summary-isearch-article
 Perform an isearch in the article buffer
 (@code{gnus-summary-isearch-article}).
 
 @item h
-@kindex h (Summary)
+@kindex h @r{(Summary)}
 @findex gnus-summary-select-article-buffer
 Select the article buffer (@code{gnus-summary-select-article-buffer}).
 
@@ -4541,8 +4558,8 @@ Commands for composing a mail message:
 
 @item S r
 @itemx r
-@kindex S r (Summary)
-@kindex r (Summary)
+@kindex S r @r{(Summary)}
+@kindex r @r{(Summary)}
 @findex gnus-summary-reply
 @c @icon{gnus-summary-mail-reply}
 @c @icon{gnus-summary-reply}
@@ -4551,8 +4568,8 @@ Mail a reply to the author of the current article
 
 @item S R
 @itemx R
-@kindex R (Summary)
-@kindex S R (Summary)
+@kindex R @r{(Summary)}
+@kindex S R @r{(Summary)}
 @findex gnus-summary-reply-with-original
 @c @icon{gnus-summary-reply-with-original}
 Mail a reply to the author of the current article and include the
@@ -4560,7 +4577,7 @@ original message (@code{gnus-summary-reply-with-original}).  This
 command uses the process/prefix convention.
 
 @item S w
-@kindex S w (Summary)
+@kindex S w @r{(Summary)}
 @findex gnus-summary-wide-reply
 Mail a wide reply to the author of the current article
 (@code{gnus-summary-wide-reply}).  A @dfn{wide reply} is a reply that
@@ -4568,7 +4585,7 @@ goes out to all people listed in the @code{To}, @code{From} (or
 @code{Reply-to}) and @code{Cc} headers.
 
 @item S W
-@kindex S W (Summary)
+@kindex S W @r{(Summary)}
 @findex gnus-summary-wide-reply-with-original
 Mail a wide reply to the current article and include the original
 message (@code{gnus-summary-wide-reply-with-original}).  This command uses
@@ -4576,8 +4593,8 @@ the process/prefix convention.
 
 @item S o m
 @itemx C-c C-f
-@kindex S o m (Summary)
-@kindex C-c C-f (Summary)
+@kindex S o m @r{(Summary)}
+@kindex C-c C-f @r{(Summary)}
 @findex gnus-summary-mail-forward
 @c @icon{gnus-summary-mail-forward}
 Forward the current article to some other person
@@ -4593,15 +4610,15 @@ default, the message is decoded and forwarded as an rfc822 MIME section.
 
 @item S m
 @itemx m
-@kindex m (Summary)
-@kindex S m (Summary)
+@kindex m @r{(Summary)}
+@kindex S m @r{(Summary)}
 @findex gnus-summary-mail-other-window
 @c @icon{gnus-summary-mail-originate}
 Send a mail to some other person
 (@code{gnus-summary-mail-other-window}).
 
 @item S D b
-@kindex S D b (Summary)
+@kindex S D b @r{(Summary)}
 @findex gnus-summary-resend-bounced-mail
 @cindex bouncing mail
 If you have sent a mail, but the mail was bounced back to you for some
@@ -4614,7 +4631,7 @@ that mail and display it for easy perusal of its headers.  This might
 very well fail, though.
 
 @item S D r
-@kindex S D r (Summary)
+@kindex S D r @r{(Summary)}
 @findex gnus-summary-resend-message
 Not to be confused with the previous command,
 @code{gnus-summary-resend-message} will prompt you for an address to
@@ -4635,14 +4652,14 @@ This command understands the process/prefix convention
 (@pxref{Process/Prefix}).
 
 @item S O m
-@kindex S O m (Summary)
+@kindex S O m @r{(Summary)}
 @findex gnus-uu-digest-mail-forward
 Digest the current series (@pxref{Decoding Articles}) and forward the
 result using mail (@code{gnus-uu-digest-mail-forward}).  This command
 uses the process/prefix convention (@pxref{Process/Prefix}).
 
 @item S M-c
-@kindex S M-c (Summary)
+@kindex S M-c @r{(Summary)}
 @findex gnus-summary-mail-crosspost-complaint
 @cindex crossposting
 @cindex excessive crossposting
@@ -4671,8 +4688,8 @@ Commands for posting a news article:
 @table @kbd
 @item S p
 @itemx a
-@kindex a (Summary)
-@kindex S p (Summary)
+@kindex a @r{(Summary)}
+@kindex S p @r{(Summary)}
 @findex gnus-summary-post-news
 @c @icon{gnus-summary-post-news}
 Post an article to the current group
@@ -4680,16 +4697,16 @@ Post an article to the current group
 
 @item S f
 @itemx f
-@kindex f (Summary)
-@kindex S f (Summary)
+@kindex f @r{(Summary)}
+@kindex S f @r{(Summary)}
 @findex gnus-summary-followup
 @c @icon{gnus-summary-followup}
 Post a followup to the current article (@code{gnus-summary-followup}).
 
 @item S F
 @itemx F
-@kindex S F (Summary)
-@kindex F (Summary)
+@kindex S F @r{(Summary)}
+@kindex F @r{(Summary)}
 @c @icon{gnus-summary-followup-with-original}
 @findex gnus-summary-followup-with-original
 Post a followup to the current article and include the original message
@@ -4697,13 +4714,13 @@ Post a followup to the current article and include the original message
 process/prefix convention.
 
 @item S n
-@kindex S n (Summary)
+@kindex S n @r{(Summary)}
 @findex gnus-summary-followup-to-mail
 Post a followup to the current article via news, even if you got the
 message through mail (@code{gnus-summary-followup-to-mail}).
 
 @item S N
-@kindex S N (Summary)
+@kindex S N @r{(Summary)}
 @findex gnus-summary-followup-to-mail-with-original
 Post a followup to the current article via news, even if you got the
 message through mail and include the original message
@@ -4711,7 +4728,7 @@ message through mail and include the original message
 the process/prefix convention.
 
 @item S o p
-@kindex S o p (Summary)
+@kindex S o p @r{(Summary)}
 @findex gnus-summary-post-forward
 Forward the current article to a newsgroup
 (@code{gnus-summary-post-forward}).  
@@ -4726,7 +4743,7 @@ but use the flipped value of (@code{message-forward-as-mime}).  By
 default, the message is decoded and forwarded as an rfc822 MIME section.
 
 @item S O p
-@kindex S O p (Summary)
+@kindex S O p @r{(Summary)}
 @findex gnus-uu-digest-post-forward
 @cindex digests
 @cindex making digests
@@ -4735,7 +4752,7 @@ Digest the current series and forward the result to a newsgroup
 process/prefix convention.
 
 @item S u
-@kindex S u (Summary)
+@kindex S u @r{(Summary)}
 @findex gnus-uu-post-news
 @c @icon{gnus-uu-post-news}
 Uuencode a file, split it into parts, and post it as a series
@@ -4750,7 +4767,7 @@ Also @pxref{(message)Header Commands} for more information.
 
 @table @kbd
 @item S y
-@kindex S y (Summary)
+@kindex S y @r{(Summary)}
 @findex gnus-summary-yank-message
 Yank the current article into an already existing Message composition
 buffer (@code{gnus-summary-yank-message}).  This command prompts for
@@ -4771,7 +4788,7 @@ really, really wish you hadn't posted that?
 Well, you can't cancel mail, but you can cancel posts.
 
 @findex gnus-summary-cancel-article
-@kindex C (Summary)
+@kindex C @r{(Summary)}
 @c @icon{gnus-summary-cancel-article}
 Find the article you wish to cancel (you can only cancel your own
 articles, so don't try any funny stuff).  Then press @kbd{C} or @kbd{S
@@ -4792,7 +4809,7 @@ corrections, you can post a @dfn{superseding} article that will replace
 your original article.
 
 @findex gnus-summary-supersede-article
-@kindex S (Summary)
+@kindex S @r{(Summary)}
 Go to the original article and press @kbd{S s}
 (@code{gnus-summary-supersede-article}).  You will be put in a buffer
 where you can edit the article all you want before sending it off the
@@ -4873,7 +4890,7 @@ Marked as dormant (@code{gnus-dormant-mark}).
 are followups to it.  If you want to see them even if they don't have
 followups, you can use the @kbd{/ D} command (@pxref{Limiting}).
 
-@item SPACE
+@item @key{SPC}
 @vindex gnus-unread-mark
 Marked as unread (@code{gnus-unread-mark}).
 
@@ -5026,8 +5043,8 @@ All the marking commands understand the numeric prefix.
 @table @kbd
 @item M c
 @itemx M-u
-@kindex M c (Summary)
-@kindex M-u (Summary)
+@kindex M c @r{(Summary)}
+@kindex M-u @r{(Summary)}
 @findex gnus-summary-clear-mark-forward
 @cindex mark as unread
 Clear all readedness-marks from the current article
@@ -5036,38 +5053,38 @@ article as unread.
 
 @item M t
 @itemx !
-@kindex ! (Summary)
-@kindex M t (Summary)
+@kindex ! @r{(Summary)}
+@kindex M t @r{(Summary)}
 @findex gnus-summary-tick-article-forward
 Tick the current article (@code{gnus-summary-tick-article-forward}).
 @xref{Article Caching}.
 
 @item M ?
 @itemx ?
-@kindex ? (Summary)
-@kindex M ? (Summary)
+@kindex ? @r{(Summary)}
+@kindex M ? @r{(Summary)}
 @findex gnus-summary-mark-as-dormant
 Mark the current article as dormant
 (@code{gnus-summary-mark-as-dormant}).  @xref{Article Caching}.
 
 @item M d
 @itemx d
-@kindex M d (Summary)
-@kindex d (Summary)
+@kindex M d @r{(Summary)}
+@kindex d @r{(Summary)}
 @findex gnus-summary-mark-as-read-forward
 Mark the current article as read
 (@code{gnus-summary-mark-as-read-forward}).
 
 @item D
-@kindex D (Summary)
+@kindex D @r{(Summary)}
 @findex gnus-summary-mark-as-read-backward
 Mark the current article as read and move point to the previous line
 (@code{gnus-summary-mark-as-read-backward}).
 
 @item M k
 @itemx k
-@kindex k (Summary)
-@kindex M k (Summary)
+@kindex k @r{(Summary)}
+@kindex M k @r{(Summary)}
 @findex gnus-summary-kill-same-subject-and-select
 Mark all articles that have the same subject as the current one as read,
 and then select the next unread article
@@ -5075,76 +5092,76 @@ and then select the next unread article
 
 @item M K
 @itemx C-k
-@kindex M K (Summary)
-@kindex C-k (Summary)
+@kindex M K @r{(Summary)}
+@kindex C-k @r{(Summary)}
 @findex gnus-summary-kill-same-subject
 Mark all articles that have the same subject as the current one as read
 (@code{gnus-summary-kill-same-subject}).
 
 @item M C
-@kindex M C (Summary)
+@kindex M C @r{(Summary)}
 @findex gnus-summary-catchup
 @c @icon{gnus-summary-catchup}
 Mark all unread articles as read (@code{gnus-summary-catchup}).
 
 @item M C-c
-@kindex M C-c (Summary)
+@kindex M C-c @r{(Summary)}
 @findex gnus-summary-catchup-all
 Mark all articles in the group as read---even the ticked and dormant
 articles (@code{gnus-summary-catchup-all}).
 
 @item M H
-@kindex M H (Summary)
+@kindex M H @r{(Summary)}
 @findex gnus-summary-catchup-to-here
 Catchup the current group to point
 (@code{gnus-summary-catchup-to-here}).
 
 @item C-w
-@kindex C-w (Summary)
+@kindex C-w @r{(Summary)}
 @findex gnus-summary-mark-region-as-read
 Mark all articles between point and mark as read
 (@code{gnus-summary-mark-region-as-read}).
 
 @item M V k
-@kindex M V k (Summary)
+@kindex M V k @r{(Summary)}
 @findex gnus-summary-kill-below
 Kill all articles with scores below the default score (or below the
 numeric prefix) (@code{gnus-summary-kill-below}).
 
 @item M e
 @itemx E
-@kindex M e (Summary)
-@kindex E (Summary)
+@kindex M e @r{(Summary)}
+@kindex E @r{(Summary)}
 @findex gnus-summary-mark-as-expirable
 Mark the current article as expirable
 (@code{gnus-summary-mark-as-expirable}).
 
 @item M b
-@kindex M b (Summary)
+@kindex M b @r{(Summary)}
 @findex gnus-summary-set-bookmark
 Set a bookmark in the current article
 (@code{gnus-summary-set-bookmark}).
 
 @item M B
-@kindex M B (Summary)
+@kindex M B @r{(Summary)}
 @findex gnus-summary-remove-bookmark
 Remove the bookmark from the current article
 (@code{gnus-summary-remove-bookmark}).
 
 @item M V c
-@kindex M V c (Summary)
+@kindex M V c @r{(Summary)}
 @findex gnus-summary-clear-above
 Clear all marks from articles with scores over the default score (or
 over the numeric prefix) (@code{gnus-summary-clear-above}).
 
 @item M V u
-@kindex M V u (Summary)
+@kindex M V u @r{(Summary)}
 @findex gnus-summary-tick-above
 Tick all articles with scores over the default score (or over the
 numeric prefix) (@code{gnus-summary-tick-above}).
 
 @item M V m
-@kindex M V m (Summary)
+@kindex M V m @r{(Summary)}
 @findex gnus-summary-mark-above
 Prompt for a mark, and mark all articles with scores over the default
 score (or over the numeric prefix) with this mark
@@ -5157,7 +5174,7 @@ be taken after setting a mark.  If non-@code{nil}, point will move to
 the next/previous unread article.  If @code{nil}, point will just move
 one line up or down.  As a special case, if this variable is
 @code{never}, all the marking commands as well as other commands (like
-@kbd{SPACE}) will move to the next article, whether it is unread or not.
+@key{SPC}) will move to the next article, whether it is unread or not.
 The default is @code{t}.
 
 
@@ -5171,7 +5188,7 @@ even though I haven't heard of anybody wanting it to go to the
 previous (unread) article, I'm sure there are people that want that as
 well.
 
-Multiply these five behaviours by five different marking commands, and
+Multiply these five behaviors by five different marking commands, and
 you get a potentially complex set of variable to control what each
 command should do.
 
@@ -5207,8 +5224,8 @@ or
 
 @item M P p
 @itemx #
-@kindex # (Summary)
-@kindex M P p (Summary)
+@kindex # @r{(Summary)}
+@kindex M P p @r{(Summary)}
 @findex gnus-summary-mark-as-processable
 Mark the current article with the process mark
 (@code{gnus-summary-mark-as-processable}).
@@ -5216,94 +5233,94 @@ Mark the current article with the process mark
 
 @item M P u
 @itemx M-#
-@kindex M P u (Summary)
-@kindex M-# (Summary)
+@kindex M P u @r{(Summary)}
+@kindex M-# @r{(Summary)}
 Remove the process mark, if any, from the current article
 (@code{gnus-summary-unmark-as-processable}).
 
 @item M P U
-@kindex M P U (Summary)
+@kindex M P U @r{(Summary)}
 @findex gnus-summary-unmark-all-processable
 Remove the process mark from all articles
 (@code{gnus-summary-unmark-all-processable}).
 
 @item M P i
-@kindex M P i (Summary)
+@kindex M P i @r{(Summary)}
 @findex gnus-uu-invert-processable
 Invert the list of process marked articles
 (@code{gnus-uu-invert-processable}).
 
 @item M P R
-@kindex M P R (Summary)
+@kindex M P R @r{(Summary)}
 @findex gnus-uu-mark-by-regexp
 Mark articles that have a @code{Subject} header that matches a regular
 expression (@code{gnus-uu-mark-by-regexp}).
 
 @item M P G
-@kindex M P G (Summary)
+@kindex M P G @r{(Summary)}
 @findex gnus-uu-unmark-by-regexp
 Unmark articles that have a @code{Subject} header that matches a regular
 expression (@code{gnus-uu-unmark-by-regexp}).
 
 @item M P r
-@kindex M P r (Summary)
+@kindex M P r @r{(Summary)}
 @findex gnus-uu-mark-region
 Mark articles in region (@code{gnus-uu-mark-region}).
 
 @item M P t
-@kindex M P t (Summary)
+@kindex M P t @r{(Summary)}
 @findex gnus-uu-mark-thread
 Mark all articles in the current (sub)thread
 (@code{gnus-uu-mark-thread}).
 
 @item M P T
-@kindex M P T (Summary)
+@kindex M P T @r{(Summary)}
 @findex gnus-uu-unmark-thread
 Unmark all articles in the current (sub)thread
 (@code{gnus-uu-unmark-thread}).
 
 @item M P v
-@kindex M P v (Summary)
+@kindex M P v @r{(Summary)}
 @findex gnus-uu-mark-over
 Mark all articles that have a score above the prefix argument
 (@code{gnus-uu-mark-over}).
 
 @item M P s
-@kindex M P s (Summary)
+@kindex M P s @r{(Summary)}
 @findex gnus-uu-mark-series
 Mark all articles in the current series (@code{gnus-uu-mark-series}).
 
 @item M P S
-@kindex M P S (Summary)
+@kindex M P S @r{(Summary)}
 @findex gnus-uu-mark-sparse
 Mark all series that have already had some articles marked
 (@code{gnus-uu-mark-sparse}).
 
 @item M P a
-@kindex M P a (Summary)
+@kindex M P a @r{(Summary)}
 @findex gnus-uu-mark-all
 Mark all articles in series order (@code{gnus-uu-mark-series}).
 
 @item M P b
-@kindex M P b (Summary)
+@kindex M P b @r{(Summary)}
 @findex gnus-uu-mark-buffer
 Mark all articles in the buffer in the order they appear
 (@code{gnus-uu-mark-buffer}).
 
 @item M P k
-@kindex M P k (Summary)
+@kindex M P k @r{(Summary)}
 @findex gnus-summary-kill-process-mark
 Push the current process mark set onto the stack and unmark all articles
 (@code{gnus-summary-kill-process-mark}).
 
 @item M P y
-@kindex M P y (Summary)
+@kindex M P y @r{(Summary)}
 @findex gnus-summary-yank-process-mark
 Pop the previous process mark set from the stack and restore it
 (@code{gnus-summary-yank-process-mark}).
 
 @item M P w
-@kindex M P w (Summary)
+@kindex M P w @r{(Summary)}
 @findex gnus-summary-save-process-mark
 Push the current process mark set onto the stack
 (@code{gnus-summary-save-process-mark}).
@@ -5331,19 +5348,19 @@ additional articles.
 
 @item / /
 @itemx / s
-@kindex / / (Summary)
+@kindex / / @r{(Summary)}
 @findex gnus-summary-limit-to-subject
 Limit the summary buffer to articles that match some subject
 (@code{gnus-summary-limit-to-subject}).
 
 @item / a
-@kindex / a (Summary)
+@kindex / a @r{(Summary)}
 @findex gnus-summary-limit-to-author
 Limit the summary buffer to articles that match some author
 (@code{gnus-summary-limit-to-author}).
 
 @item / x
-@kindex / x (Summary)
+@kindex / x @r{(Summary)}
 @findex gnus-summary-limit-to-extra
 Limit the summary buffer to articles that match one of the ``extra''
 headers (@pxref{To From Newsgroups})
@@ -5351,8 +5368,8 @@ headers (@pxref{To From Newsgroups})
 
 @item / u
 @itemx x
-@kindex / u (Summary)
-@kindex x (Summary)
+@kindex / u @r{(Summary)}
+@kindex x @r{(Summary)}
 @findex gnus-summary-limit-to-unread
 Limit the summary buffer to articles not marked as read
 (@code{gnus-summary-limit-to-unread}).  If given a prefix, limit the
@@ -5360,82 +5377,82 @@ buffer to articles strictly unread.  This means that ticked and
 dormant articles will also be excluded.
 
 @item / m
-@kindex / m (Summary)
+@kindex / m @r{(Summary)}
 @findex gnus-summary-limit-to-marks
 Ask for a mark and then limit to all articles that have been marked
 with that mark (@code{gnus-summary-limit-to-marks}).
 
 @item / t
-@kindex / t (Summary)
+@kindex / t @r{(Summary)}
 @findex gnus-summary-limit-to-age
 Ask for a number and then limit the summary buffer to articles older than (or equal to) that number of days
 (@code{gnus-summary-limit-to-age}).  If given a prefix, limit to
 articles younger than that number of days.
 
 @item / n
-@kindex / n (Summary)
+@kindex / n @r{(Summary)}
 @findex gnus-summary-limit-to-articles
 Limit the summary buffer to the current article
 (@code{gnus-summary-limit-to-articles}).  Uses the process/prefix
 convention (@pxref{Process/Prefix}).
 
 @item / w
-@kindex / w (Summary)
+@kindex / w @r{(Summary)}
 @findex gnus-summary-pop-limit
 Pop the previous limit off the stack and restore it
 (@code{gnus-summary-pop-limit}).  If given a prefix, pop all limits off
 the stack.
 
 @item / v
-@kindex / v (Summary)
+@kindex / v @r{(Summary)}
 @findex gnus-summary-limit-to-score
 Limit the summary buffer to articles that have a score at or above some
 score (@code{gnus-summary-limit-to-score}).
 
 @item / E
 @itemx M S
-@kindex M S (Summary)
-@kindex / E (Summary)
+@kindex M S @r{(Summary)}
+@kindex / E @r{(Summary)}
 @findex gnus-summary-limit-include-expunged
 Include all expunged articles in the limit
 (@code{gnus-summary-limit-include-expunged}).
 
 @item / D
-@kindex / D (Summary)
+@kindex / D @r{(Summary)}
 @findex gnus-summary-limit-include-dormant
 Include all dormant articles in the limit
 (@code{gnus-summary-limit-include-dormant}).
 
 @item / *
-@kindex / * (Summary)
+@kindex / * @r{(Summary)}
 @findex gnus-summary-limit-include-cached
 Include all cached articles in the limit
 (@code{gnus-summary-limit-include-cached}).
 
 @item / d
-@kindex / d (Summary)
+@kindex / d @r{(Summary)}
 @findex gnus-summary-limit-exclude-dormant
 Exclude all dormant articles from the limit
 (@code{gnus-summary-limit-exclude-dormant}).
 
 @item / M
-@kindex / M (Summary)
+@kindex / M @r{(Summary)}
 @findex gnus-summary-limit-exclude-marks
 Exclude all marked articles (@code{gnus-summary-limit-exclude-marks}).
 
 @item / T
-@kindex / T (Summary)
+@kindex / T @r{(Summary)}
 @findex gnus-summary-limit-include-thread
 Include all the articles in the current thread in the limit.
 
 @item / c
-@kindex / c (Summary)
+@kindex / c @r{(Summary)}
 @findex gnus-summary-limit-exclude-childless-dormant
 Exclude all dormant articles that have no children from the limit
 (@code{gnus-summary-limit-exclude-childless-dormant}).
 
 @item / C
-@kindex / C (Summary)
+@kindex / C @r{(Summary)}
 @findex gnus-summary-limit-mark-excluded-as-read
 Mark all excluded unread articles as read
 (@code{gnus-summary-limit-mark-excluded-as-read}).   If given a prefix,
@@ -5827,8 +5844,8 @@ meaningful.  Here's one example:
 
 @item T k
 @itemx M-C-k
-@kindex T k (Summary)
-@kindex M-C-k (Summary)
+@kindex T k @r{(Summary)}
+@kindex M-C-k @r{(Summary)}
 @findex gnus-summary-kill-thread
 Mark all articles in the current (sub-)thread as read
 (@code{gnus-summary-kill-thread}).  If the prefix argument is positive,
@@ -5837,65 +5854,65 @@ articles instead.
 
 @item T l
 @itemx M-C-l
-@kindex T l (Summary)
-@kindex M-C-l (Summary)
+@kindex T l @r{(Summary)}
+@kindex M-C-l @r{(Summary)}
 @findex gnus-summary-lower-thread
 Lower the score of the current (sub-)thread
 (@code{gnus-summary-lower-thread}).
 
 @item T i
-@kindex T i (Summary)
+@kindex T i @r{(Summary)}
 @findex gnus-summary-raise-thread
 Increase the score of the current (sub-)thread
 (@code{gnus-summary-raise-thread}).
 
 @item T #
-@kindex T # (Summary)
+@kindex T # @r{(Summary)}
 @findex gnus-uu-mark-thread
 Set the process mark on the current (sub-)thread
 (@code{gnus-uu-mark-thread}).
 
 @item T M-#
-@kindex T M-# (Summary)
+@kindex T M-# @r{(Summary)}
 @findex gnus-uu-unmark-thread
 Remove the process mark from the current (sub-)thread
 (@code{gnus-uu-unmark-thread}).
 
 @item T T
-@kindex T T (Summary)
+@kindex T T @r{(Summary)}
 @findex gnus-summary-toggle-threads
 Toggle threading (@code{gnus-summary-toggle-threads}).
 
 @item T s
-@kindex T s (Summary)
+@kindex T s @r{(Summary)}
 @findex gnus-summary-show-thread
 Expose the (sub-)thread hidden under the current article, if any
 (@code{gnus-summary-show-thread}).
 
 @item T h
-@kindex T h (Summary)
+@kindex T h @r{(Summary)}
 @findex gnus-summary-hide-thread
 Hide the current (sub-)thread (@code{gnus-summary-hide-thread}).
 
 @item T S
-@kindex T S (Summary)
+@kindex T S @r{(Summary)}
 @findex gnus-summary-show-all-threads
 Expose all hidden threads (@code{gnus-summary-show-all-threads}).
 
 @item T H
-@kindex T H (Summary)
+@kindex T H @r{(Summary)}
 @findex gnus-summary-hide-all-threads
 Hide all threads (@code{gnus-summary-hide-all-threads}).
 
 @item T t
-@kindex T t (Summary)
+@kindex T t @r{(Summary)}
 @findex gnus-summary-rethread-current
 Re-thread the current article's thread
 (@code{gnus-summary-rethread-current}).  This works even when the
 summary buffer is otherwise unthreaded.
 
 @item T ^
-@kindex T ^ (Summary)
+@kindex T ^ @r{(Summary)}
 @findex gnus-summary-reparent-thread
 Make the current article the child of the marked (or previous) article
 (@code{gnus-summary-reparent-thread}).
@@ -5908,35 +5925,35 @@ understand the numeric prefix.
 @table @kbd
 
 @item T n
-@kindex T n (Summary)
+@kindex T n @r{(Summary)}
 @itemx M-C-n
-@kindex M-C-n (Summary)
+@kindex M-C-n @r{(Summary)}
 @itemx M-down
-@kindex M-down (Summary)
+@kindex M-down @r{(Summary)}
 @findex gnus-summary-next-thread
 Go to the next thread (@code{gnus-summary-next-thread}).
 
 @item T p
-@kindex T p (Summary)
+@kindex T p @r{(Summary)}
 @itemx M-C-p
-@kindex M-C-p (Summary)
+@kindex M-C-p @r{(Summary)}
 @itemx M-up
-@kindex M-up (Summary)
+@kindex M-up @r{(Summary)}
 @findex gnus-summary-prev-thread
 Go to the previous thread (@code{gnus-summary-prev-thread}).
 
 @item T d
-@kindex T d (Summary)
+@kindex T d @r{(Summary)}
 @findex gnus-summary-down-thread
 Descend the thread (@code{gnus-summary-down-thread}).
 
 @item T u
-@kindex T u (Summary)
+@kindex T u @r{(Summary)}
 @findex gnus-summary-up-thread
 Ascend the thread (@code{gnus-summary-up-thread}).
 
 @item T o
-@kindex T o (Summary)
+@kindex T o @r{(Summary)}
 @findex gnus-summary-top-thread
 Go to the top of the thread (@code{gnus-summary-top-thread}).
 @end table
@@ -5944,7 +5961,7 @@ Go to the top of the thread (@code{gnus-summary-top-thread}).
 @vindex gnus-thread-operation-ignore-subject
 If you ignore subject while threading, you'll naturally end up with
 threads that have several different subjects in them.  If you then issue
-a command like `T k' (@code{gnus-summary-kill-thread}) you might not
+a command like @kbd{T k} (@code{gnus-summary-kill-thread}) you might not
 wish to kill the entire thread, but just those parts of the thread that
 have the same subject as the current article.  If you like this idea,
 you can fiddle with @code{gnus-thread-operation-ignore-subject}.  If it
@@ -6236,12 +6253,12 @@ you use two explicit commands for managing persistent articles:
 @table @kbd
 
 @item *
-@kindex * (Summary)
+@kindex * @r{(Summary)}
 @findex gnus-cache-enter-article
 Make the current article persistent (@code{gnus-cache-enter-article}).
 
 @item M-*
-@kindex M-* (Summary)
+@kindex M-* @r{(Summary)}
 @findex gnus-cache-remove-article
 Remove the current article from the persistent articles
 (@code{gnus-cache-remove-article}).  This will normally delete the
@@ -6307,58 +6324,58 @@ deleted before saving.
 
 @item O o
 @itemx o
-@kindex O o (Summary)
-@kindex o (Summary)
+@kindex O o @r{(Summary)}
+@kindex o @r{(Summary)}
 @findex gnus-summary-save-article
 @c @icon{gnus-summary-save-article}
 Save the current article using the default article saver
 (@code{gnus-summary-save-article}).
 
 @item O m
-@kindex O m (Summary)
+@kindex O m @r{(Summary)}
 @findex gnus-summary-save-article-mail
 Save the current article in mail format
 (@code{gnus-summary-save-article-mail}).
 
 @item O r
-@kindex O r (Summary)
+@kindex O r @r{(Summary)}
 @findex gnus-summary-save-article-rmail
 Save the current article in rmail format
 (@code{gnus-summary-save-article-rmail}).
 
 @item O f
-@kindex O f (Summary)
+@kindex O f @r{(Summary)}
 @findex gnus-summary-save-article-file
 @c @icon{gnus-summary-save-article-file}
 Save the current article in plain file format
 (@code{gnus-summary-save-article-file}).
 
 @item O F
-@kindex O F (Summary)
+@kindex O F @r{(Summary)}
 @findex gnus-summary-write-article-file
 Write the current article in plain file format, overwriting any previous
 file contents (@code{gnus-summary-write-article-file}).
 
 @item O b
-@kindex O b (Summary)
+@kindex O b @r{(Summary)}
 @findex gnus-summary-save-article-body-file
 Save the current article body in plain file format
 (@code{gnus-summary-save-article-body-file}).
 
 @item O h
-@kindex O h (Summary)
+@kindex O h @r{(Summary)}
 @findex gnus-summary-save-article-folder
 Save the current article in mh folder format
 (@code{gnus-summary-save-article-folder}).
 
 @item O v
-@kindex O v (Summary)
+@kindex O v @r{(Summary)}
 @findex gnus-summary-save-article-vm
 Save the current article in a VM folder
 (@code{gnus-summary-save-article-vm}).
 
 @item O p
-@kindex O p (Summary)
+@kindex O p @r{(Summary)}
 @findex gnus-summary-pipe-output
 Save the current article in a pipe.  Uhm, like, what I mean is---Pipe
 the current article to a process (@code{gnus-summary-pipe-output}).
@@ -6537,7 +6554,8 @@ a spool, you could
 
 @lisp
 (setq gnus-use-long-file-name '(not-save)) ; to get a hierarchy
-(setq gnus-default-article-saver 'gnus-summary-save-in-file) ; no encoding
+(setq gnus-default-article-saver 
+      'gnus-summary-save-in-file) ; no encoding
 @end lisp
 
 Then just save with @kbd{o}.  You'd then read this hierarchy with
@@ -6591,24 +6609,24 @@ commands, and you have to mark the articles manually with @kbd{#}.
 @table @kbd
 
 @item X u
-@kindex X u (Summary)
+@kindex X u @r{(Summary)}
 @findex gnus-uu-decode-uu
 @c @icon{gnus-uu-decode-uu}
 Uudecodes the current series (@code{gnus-uu-decode-uu}).
 
 @item X U
-@kindex X U (Summary)
+@kindex X U @r{(Summary)}
 @findex gnus-uu-decode-uu-and-save
 Uudecodes and saves the current series
 (@code{gnus-uu-decode-uu-and-save}).
 
 @item X v u
-@kindex X v u (Summary)
+@kindex X v u @r{(Summary)}
 @findex gnus-uu-decode-uu-view
 Uudecodes and views the current series (@code{gnus-uu-decode-uu-view}).
 
 @item X v U
-@kindex X v U (Summary)
+@kindex X v U @r{(Summary)}
 @findex gnus-uu-decode-uu-and-save-view
 Uudecodes, views and saves the current series
 (@code{gnus-uu-decode-uu-and-save-view}).
@@ -6649,22 +6667,22 @@ some commands to deal with these:
 @table @kbd
 
 @item X s
-@kindex X s (Summary)
+@kindex X s @r{(Summary)}
 @findex gnus-uu-decode-unshar
 Unshars the current series (@code{gnus-uu-decode-unshar}).
 
 @item X S
-@kindex X S (Summary)
+@kindex X S @r{(Summary)}
 @findex gnus-uu-decode-unshar-and-save
 Unshars and saves the current series (@code{gnus-uu-decode-unshar-and-save}).
 
 @item X v s
-@kindex X v s (Summary)
+@kindex X v s @r{(Summary)}
 @findex gnus-uu-decode-unshar-view
 Unshars and views the current series (@code{gnus-uu-decode-unshar-view}).
 
 @item X v S
-@kindex X v S (Summary)
+@kindex X v S @r{(Summary)}
 @findex gnus-uu-decode-unshar-and-save-view
 Unshars, views and saves the current series
 (@code{gnus-uu-decode-unshar-and-save-view}).
@@ -6678,24 +6696,24 @@ Unshars, views and saves the current series
 @table @kbd
 
 @item X p
-@kindex X p (Summary)
+@kindex X p @r{(Summary)}
 @findex gnus-uu-decode-postscript
 Unpack the current PostScript series (@code{gnus-uu-decode-postscript}).
 
 @item X P
-@kindex X P (Summary)
+@kindex X P @r{(Summary)}
 @findex gnus-uu-decode-postscript-and-save
 Unpack and save the current PostScript series
 (@code{gnus-uu-decode-postscript-and-save}).
 
 @item X v p
-@kindex X v p (Summary)
+@kindex X v p @r{(Summary)}
 @findex gnus-uu-decode-postscript-view
 View the current PostScript series
 (@code{gnus-uu-decode-postscript-view}).
 
 @item X v P
-@kindex X v P (Summary)
+@kindex X v P @r{(Summary)}
 @findex gnus-uu-decode-postscript-and-save-view
 View and save the current PostScript series
 (@code{gnus-uu-decode-postscript-and-save-view}).
@@ -6707,13 +6725,13 @@ View and save the current PostScript series
 
 @table @kbd
 @item X o
-@kindex X o (Summary)
+@kindex X o @r{(Summary)}
 @findex gnus-uu-decode-save
 Save the current series
 (@code{gnus-uu-decode-save}).
 
 @item X b
-@kindex X b (Summary)
+@kindex X b @r{(Summary)}
 @findex gnus-uu-decode-binhex
 Unbinhex the current series (@code{gnus-uu-decode-binhex}).  This
 doesn't really work yet.
@@ -6984,7 +7002,7 @@ you want it to look like technicolor fruit salad.
 @table @kbd
 
 @item W H a
-@kindex W H a (Summary)
+@kindex W H a @r{(Summary)}
 @findex gnus-article-highlight
 @findex gnus-article-maybe-highlight
 Do much highlighting of the current article
@@ -6992,7 +7010,7 @@ Do much highlighting of the current article
 text, the signature, and adds buttons to the body and the head.
 
 @item W H h
-@kindex W H h (Summary)
+@kindex W H h @r{(Summary)}
 @findex gnus-article-highlight-headers
 @vindex gnus-header-face-alist
 Highlight the headers (@code{gnus-article-highlight-headers}).  The
@@ -7006,7 +7024,7 @@ the header value.  The first match made will be used.  Note that
 @var{regexp} shouldn't have @samp{^} prepended---Gnus will add one.
 
 @item W H c
-@kindex W H c (Summary)
+@kindex W H c @r{(Summary)}
 @findex gnus-article-highlight-citation
 Highlight cited text (@code{gnus-article-highlight-citation}).
 
@@ -7064,7 +7082,7 @@ cited text belonging to the attribution.
 
 
 @item W H s
-@kindex W H s (Summary)
+@kindex W H s @r{(Summary)}
 @vindex gnus-signature-separator
 @vindex gnus-signature-face
 @findex gnus-article-highlight-signature
@@ -7085,7 +7103,7 @@ default.
 @cindex article emphasis
 
 @findex gnus-article-emphasize
-@kindex W e (Summary)
+@kindex W e @r{(Summary)}
 People commonly add emphasis to words in news articles by writing things
 like @samp{_this_} or @samp{*this*} or @samp{/this/}.  Gnus can make
 this look nicer by running the article through the @kbd{W e}
@@ -7156,32 +7174,32 @@ too much cruft in most articles.
 @table @kbd
 
 @item W W a
-@kindex W W a (Summary)
+@kindex W W a @r{(Summary)}
 @findex gnus-article-hide
 Do quite a lot of hiding on the article buffer
 (@kbd{gnus-article-hide}).  In particular, this function will hide
 headers, PGP, cited text and the signature.
 
 @item W W h
-@kindex W W h (Summary)
+@kindex W W h @r{(Summary)}
 @findex gnus-article-hide-headers
 Hide headers (@code{gnus-article-hide-headers}).  @xref{Hiding
 Headers}.
 
 @item W W b
-@kindex W W b (Summary)
+@kindex W W b @r{(Summary)}
 @findex gnus-article-hide-boring-headers
 Hide headers that aren't particularly interesting
 (@code{gnus-article-hide-boring-headers}).  @xref{Hiding Headers}.
 
 @item W W s
-@kindex W W s (Summary)
+@kindex W W s @r{(Summary)}
 @findex gnus-article-hide-signature
 Hide signature (@code{gnus-article-hide-signature}).  @xref{Article
 Signature}.
 
 @item W W l
-@kindex W W l (Summary)
+@kindex W W l @r{(Summary)}
 @findex gnus-article-hide-list-identifiers
 @vindex gnus-list-identifiers
 Strip list identifiers specified in @code{gnus-list-identifiers}.  These
@@ -7200,7 +7218,7 @@ subject.  This can also be a list of regular expressions.
 @end table
 
 @item W W p
-@kindex W W p (Summary)
+@kindex W W p @r{(Summary)}
 @findex gnus-article-hide-pgp
 @vindex gnus-article-hide-pgp-hook
 Hide @sc{pgp} signatures (@code{gnus-article-hide-pgp}).  The
@@ -7223,13 +7241,13 @@ articles that have signatures in them do:
 @end lisp
 
 @item W W P
-@kindex W W P (Summary)
+@kindex W W P @r{(Summary)}
 @findex gnus-article-hide-pem
 Hide @sc{pem} (privacy enhanced messages) cruft
 (@code{gnus-article-hide-pem}).
 
 @item W W B
-@kindex W W B (Summary)
+@kindex W W B @r{(Summary)}
 @findex gnus-article-strip-banner
 @cindex banner
 @cindex OneList
@@ -7248,7 +7266,7 @@ corresponding regular expression in @code{gnus-article-banner-alist} is
 used.
 
 @item W W c
-@kindex W W c (Summary)
+@kindex W W c @r{(Summary)}
 @findex gnus-article-hide-citation
 Hide citation (@code{gnus-article-hide-citation}).  Some variables for
 customizing the hiding:
@@ -7284,7 +7302,7 @@ and bottom of the text, respectively, to remain visible.
 @end table
 
 @item W W C-c
-@kindex W W C-c (Summary)
+@kindex W W C-c @r{(Summary)}
 @findex gnus-article-hide-citation-maybe
 
 Hide citation (@code{gnus-article-hide-citation-maybe}) depending on the
@@ -7303,7 +7321,7 @@ is hidden.
 @end table
 
 @item W W C
-@kindex W W C (Summary)
+@kindex W W C @r{(Summary)}
 @findex gnus-article-hide-citation-in-followups
 Hide cited text in articles that aren't roots
 (@code{gnus-article-hide-citation-in-followups}).  This isn't very
@@ -7346,14 +7364,14 @@ you type this, you see the article exactly as it exists on disk or on
 the server.
 
 @item W l
-@kindex W l (Summary)
+@kindex W l @r{(Summary)}
 @findex gnus-summary-stop-page-breaking
 Remove page breaks from the current article
 (@code{gnus-summary-stop-page-breaking}).  @xref{Misc Article}, for page
 delimiters.
 
 @item W r
-@kindex W r (Summary)
+@kindex W r @r{(Summary)}
 @findex gnus-summary-caesar-message
 @c @icon{gnus-summary-caesar-message}
 Do a Caesar rotate (rot13) on the article buffer
@@ -7361,32 +7379,32 @@ Do a Caesar rotate (rot13) on the article buffer
 Unreadable articles that tell you to read them with Caesar rotate or rot13.
 (Typically offensive jokes and such.)
 
-It's commonly called ``rot13'' because each letter is rotated 13
+It's commonly called @dfn{rot13} because each letter is rotated 13
 positions in the alphabet, e. g. @samp{B} (letter #2) -> @samp{O} (letter
 #15).  It is sometimes referred to as ``Caesar rotate'' because Caesar
 is rumored to have employed this form of, uh, somewhat weak encryption.
 
 @item W t
 @item t
-@kindex W t (Summary)
-@kindex t (Summary)
+@kindex W t @r{(Summary)}
+@kindex t @r{(Summary)}
 @findex gnus-summary-toggle-header
 Toggle whether to display all headers in the article buffer
 (@code{gnus-summary-toggle-header}).
 
 @item W v
-@kindex W v (Summary)
+@kindex W v @r{(Summary)}
 @findex gnus-summary-verbose-header
 Toggle whether to display all headers in the article buffer permanently
 (@code{gnus-summary-verbose-header}).
 
 @item W o
-@kindex W o (Summary)
+@kindex W o @r{(Summary)}
 @findex gnus-article-treat-overstrike
 Treat overstrike (@code{gnus-article-treat-overstrike}).
 
 @item W d
-@kindex W d (Summary)
+@kindex W d @r{(Summary)}
 @findex gnus-article-treat-dumbquotes
 @vindex gnus-article-dumbquotes-map
 @cindex Smartquotes
@@ -7405,7 +7423,7 @@ Messages in this character set often have a MIME header saying that
 they are Latin-1.
 
 @item W w
-@kindex W w (Summary)
+@kindex W w @r{(Summary)}
 @findex gnus-article-fill-cited-article
 Do word wrap (@code{gnus-article-fill-cited-article}).
 
@@ -7413,18 +7431,18 @@ You can give the command a numerical prefix to specify the width to use
 when filling.
 
 @item W Q
-@kindex W Q (Summary)
+@kindex W Q @r{(Summary)}
 @findex gnus-article-fill-long-lines 
 Fill long lines (@code{gnus-article-fill-long-lines}).
 
 @item W C
-@kindex W C (Summary)
+@kindex W C @r{(Summary)}
 @findex gnus-article-capitalize-sentences
 Capitalize the first word in each sentence
 (@code{gnus-article-capitalize-sentences}).
 
 @item W c
-@kindex W c (Summary)
+@kindex W c @r{(Summary)}
 @findex gnus-article-remove-cr
 Translate CRLF pairs (i. e., @samp{^M}s on the end of the lines) into LF
 (this takes care of DOS line endings), and then translate any remaining
@@ -7432,7 +7450,7 @@ CRs into LF (this takes care of Mac line endings)
 (@code{gnus-article-remove-cr}).
 
 @item W q
-@kindex W q (Summary)
+@kindex W q @r{(Summary)}
 @findex gnus-article-de-quoted-unreadable
 Treat quoted-printable (@code{gnus-article-de-quoted-unreadable}).
 Quoted-Printable is one common @sc{mime} encoding employed when sending
@@ -7443,7 +7461,7 @@ Gnus if the message in question has a @code{Content-Transfer-Encoding}
 header that says that this encoding has been done.
 
 @item W 6
-@kindex W 6 (Summary)
+@kindex W 6 @r{(Summary)}
 @findex gnus-article-de-base64-unreadable
 Treat base64 (@code{gnus-article-de-base64-unreadable}).
 Base64 is one common @sc{mime} encoding employed when sending non-ASCII
@@ -7453,14 +7471,14 @@ automatically by Gnus if the message in question has a
 been done.
 
 @item W Z
-@kindex W Z (Summary)
+@kindex W Z @r{(Summary)}
 @findex gnus-article-decode-HZ
 Treat HZ or HZP (@code{gnus-article-decode-HZ}).  HZ (or HZP) is one
 common encoding employed when sending Chinese articles.  It typically
 makes strings look like @samp{~@{<:Ky2;S@{#,NpJ)l6HK!#~@}}.
 
 @item W h
-@kindex W h (Summary)
+@kindex W h @r{(Summary)}
 @findex gnus-article-wash-html
 Treat HTML (@code{gnus-article-wash-html}).  
 Note that the this is usually done automatically by Gnus if the message
@@ -7468,7 +7486,7 @@ in question has a @code{Content-Type} header that says that this type
 has been done.
 
 @item W f
-@kindex W f (Summary)
+@kindex W f @r{(Summary)}
 @cindex x-face
 @findex gnus-article-display-x-face
 @findex gnus-article-x-face-command
@@ -7503,62 +7521,62 @@ want to have this function in the display hook, it should probably come
 last.
 
 @item W b
-@kindex W b (Summary)
+@kindex W b @r{(Summary)}
 @findex gnus-article-add-buttons
 Add clickable buttons to the article (@code{gnus-article-add-buttons}).
 @xref{Article Buttons}.
 
 @item W B
-@kindex W B (Summary)
+@kindex W B @r{(Summary)}
 @findex gnus-article-add-buttons-to-head
 Add clickable buttons to the article headers
 (@code{gnus-article-add-buttons-to-head}).
 
 @item W W H
-@kindex W W H (Summary)
+@kindex W W H @r{(Summary)}
 @findex gnus-article-strip-headers-from-body
 Strip headers like the @code{X-No-Archive} header from the beginning of
 article bodies (@code{gnus-article-strip-headers-from-body}).
 
 @item W E l
-@kindex W E l (Summary)
+@kindex W E l @r{(Summary)}
 @findex gnus-article-strip-leading-blank-lines
 Remove all blank lines from the beginning of the article
 (@code{gnus-article-strip-leading-blank-lines}).
 
 @item W E m
-@kindex W E m (Summary)
+@kindex W E m @r{(Summary)}
 @findex gnus-article-strip-multiple-blank-lines
 Replace all blank lines with empty lines and then all multiple empty
 lines with a single empty line.
 (@code{gnus-article-strip-multiple-blank-lines}).
 
 @item W E t
-@kindex W E t (Summary)
+@kindex W E t @r{(Summary)}
 @findex gnus-article-remove-trailing-blank-lines
 Remove all blank lines at the end of the article
 (@code{gnus-article-remove-trailing-blank-lines}).
 
 @item W E a
-@kindex W E a (Summary)
+@kindex W E a @r{(Summary)}
 @findex gnus-article-strip-blank-lines
 Do all the three commands above
 (@code{gnus-article-strip-blank-lines}).
 
 @item W E A
-@kindex W E A (Summary)
+@kindex W E A @r{(Summary)}
 @findex gnus-article-strip-all-blank-lines
 Remove all blank lines
 (@code{gnus-article-strip-all-blank-lines}).
 
 @item W E s
-@kindex W E s (Summary)
+@kindex W E s @r{(Summary)}
 @findex gnus-article-strip-leading-space
 Remove all white space from the beginning of all lines of the article
 body (@code{gnus-article-strip-leading-space}).
 
 @item W E e
-@kindex W E e (Summary)
+@kindex W E e @r{(Summary)}
 @findex gnus-article-strip-trailing-space
 Remove all white space from the end of all lines of the article
 body (@code{gnus-article-strip-trailing-space}).
@@ -7574,7 +7592,7 @@ body (@code{gnus-article-strip-trailing-space}).
 
 People often include references to other stuff in articles, and it would
 be nice if Gnus could just fetch whatever it is that people talk about
-with the minimum of fuzz when you hit @kbd{RET} or use the middle mouse
+with the minimum of fuzz when you hit @key{RET} or use the middle mouse
 button on these references.
 
 Gnus adds @dfn{buttons} to certain standard references by default:
@@ -7664,25 +7682,25 @@ when the article was sent.
 @table @kbd
 
 @item W T u
-@kindex W T u (Summary)
+@kindex W T u @r{(Summary)}
 @findex gnus-article-date-ut
 Display the date in UT (aka. GMT, aka ZULU)
 (@code{gnus-article-date-ut}).
 
 @item W T i
-@kindex W T i (Summary)
+@kindex W T i @r{(Summary)}
 @findex gnus-article-date-iso8601
 @cindex ISO 8601
 Display the date in international format, aka. ISO 8601
 (@code{gnus-article-date-iso8601}).
 
 @item W T l
-@kindex W T l (Summary)
+@kindex W T l @r{(Summary)}
 @findex gnus-article-date-local
 Display the date in the local timezone (@code{gnus-article-date-local}).
 
 @item W T s
-@kindex W T s (Summary)
+@kindex W T s @r{(Summary)}
 @vindex gnus-article-time-format
 @findex gnus-article-date-user
 @findex format-time-string
@@ -7693,7 +7711,7 @@ to @code{format-time-string}.  See the documentation of that variable
 for a list of possible format specs.
 
 @item W T e
-@kindex W T e (Summary)
+@kindex W T e @r{(Summary)}
 @findex gnus-article-date-lapsed
 @findex gnus-start-date-timer
 @findex gnus-stop-date-timer
@@ -7701,7 +7719,7 @@ Say how much time has elapsed between the article was posted and now
 (@code{gnus-article-date-lapsed}).  It looks something like:
 
 @example
-X-Sent: 9 years, 6 weeks, 4 days, 9 hours, 3 minutes, 28 seconds ago
+X-Sent: 6 weeks, 4 days, 1 hour, 3 minutes, 8 seconds ago
 @end example
 
 The value of @code{gnus-article-date-lapsed-new-header} determines
@@ -7722,7 +7740,7 @@ you want to stop the timer, you can use the @code{gnus-stop-date-timer}
 command.
 
 @item W T o
-@kindex W T o (Summary)
+@kindex W T o @r{(Summary)}
 @findex gnus-article-date-original
 Display the original date (@code{gnus-article-date-original}).  This can
 be useful if you normally use some other conversion function and are
@@ -7803,7 +7821,7 @@ signature after all.
 
 @table @kbd
 @item A t
-@kindex A t (Summary)
+@kindex A t @r{(Summary)}
 @findex gnus-article-babel
 Translate the article from one language to another
 (@code{gnus-article-babel}). 
@@ -7823,28 +7841,28 @@ instance, @kbd{3 b} means ``view the third @sc{mime} part''.
 @table @kbd
 @item b
 @itemx K v
-@kindex b (Summary)
-@kindex K v (Summary)
+@kindex b @r{(Summary)}
+@kindex K v @r{(Summary)}
 View the @sc{mime} part.
 
 @item K o
-@kindex K o (Summary)
+@kindex K o @r{(Summary)}
 Save the @sc{mime} part.
 
 @item K c
-@kindex K c (Summary)
+@kindex K c @r{(Summary)}
 Copy the @sc{mime} part.
 
 @item K e
-@kindex K e (Summary)
+@kindex K e @r{(Summary)}
 View the @sc{mime} part externally.
 
 @item K i
-@kindex K i (Summary)
+@kindex K i @r{(Summary)}
 View the @sc{mime} part internally.
 
 @item K |
-@kindex K | (Summary)
+@kindex K | @r{(Summary)}
 Pipe the @sc{mime} part to an external command.
 @end table
 
@@ -7853,13 +7871,13 @@ the same manner:
 
 @table @kbd
 @item K b
-@kindex K b (Summary)
+@kindex K b @r{(Summary)}
 Make all the @sc{mime} parts have buttons in front of them.  This is
 mostly useful if you wish to save (or perform other actions) on inlined
 parts.
 
 @item K m
-@kindex K m (Summary)
+@kindex K m @r{(Summary)}
 @findex gnus-summary-repair-multipart
 Some multipart messages are transmitted with missing or faulty headers.
 This command will attempt to ``repair'' these messages so that they can
@@ -7867,25 +7885,25 @@ be viewed in a more pleasant manner
 (@code{gnus-summary-repair-multipart}).
 
 @item X m
-@kindex X m (Summary)
+@kindex X m @r{(Summary)}
 @findex gnus-summary-save-parts
 Save all parts matching a @sc{mime} type to a directory
 (@code{gnus-summary-save-parts}).  Understands the process/prefix
 convention (@pxref{Process/Prefix}).
 
 @item M-t
-@kindex M-t (Summary)
+@kindex M-t @r{(Summary)}
 @findex gnus-summary-display-buttonized
 Toggle the buttonized display of the article buffer
 (@code{gnus-summary-toggle-display-buttonized}).
 
 @item W M w
-@kindex W M w (Summary)
+@kindex W M w @r{(Summary)}
 Decode RFC 2047-encoded words in the article headers
 (@code{gnus-article-decode-mime-words}).
 
 @item W M c
-@kindex W M c (Summary)
+@kindex W M c @r{(Summary)}
 Decode encoded article bodies as well as charsets
 (@code{gnus-article-decode-charset}).
 
@@ -7897,7 +7915,7 @@ MIME headers), you can set the @code{charset} group/topic parameter to
 the required charset (@pxref{Group Parameters}).
 
 @item W M v
-@kindex W M v (Summary)
+@kindex W M v @r{(Summary)}
 View all the @sc{mime} parts in the current article
 (@code{gnus-mime-view-all-parts}).
 
@@ -8054,7 +8072,7 @@ Latin-1 subset of @code{windows-1252} using:
 @item A P
 @cindex PostScript
 @cindex printing
-@kindex A P (Summary)
+@kindex A P @r{(Summary)}
 @vindex gnus-ps-print-hook
 @findex gnus-summary-print-article
 Generate and print a PostScript image of the article buffer
@@ -8074,37 +8092,37 @@ can't really see why you'd want that.
 @table @kbd
 
 @item C-c C-s C-n
-@kindex C-c C-s C-n (Summary)
+@kindex C-c C-s C-n @r{(Summary)}
 @findex gnus-summary-sort-by-number
 Sort by article number (@code{gnus-summary-sort-by-number}).
 
 @item C-c C-s C-a
-@kindex C-c C-s C-a (Summary)
+@kindex C-c C-s C-a @r{(Summary)}
 @findex gnus-summary-sort-by-author
 Sort by author (@code{gnus-summary-sort-by-author}).
 
 @item C-c C-s C-s
-@kindex C-c C-s C-s (Summary)
+@kindex C-c C-s C-s @r{(Summary)}
 @findex gnus-summary-sort-by-subject
 Sort by subject (@code{gnus-summary-sort-by-subject}).
 
 @item C-c C-s C-d
-@kindex C-c C-s C-d (Summary)
+@kindex C-c C-s C-d @r{(Summary)}
 @findex gnus-summary-sort-by-date
 Sort by date (@code{gnus-summary-sort-by-date}).
 
 @item C-c C-s C-l
-@kindex C-c C-s C-l (Summary)
+@kindex C-c C-s C-l @r{(Summary)}
 @findex gnus-summary-sort-by-lines
 Sort by lines (@code{gnus-summary-sort-by-lines}).
 
 @item C-c C-s C-c
-@kindex C-c C-s C-c (Summary)
+@kindex C-c C-s C-c @r{(Summary)}
 @findex gnus-summary-sort-by-chars
 Sort by article length (@code{gnus-summary-sort-by-chars}).
 
 @item C-c C-s C-i
-@kindex C-c C-s C-i (Summary)
+@kindex C-c C-s C-i @r{(Summary)}
 @findex gnus-summary-sort-by-score
 Sort by score (@code{gnus-summary-sort-by-score}).
 @end table
@@ -8124,7 +8142,7 @@ Commands}).
 
 @table @kbd
 @item ^
-@kindex ^ (Summary)
+@kindex ^ @r{(Summary)}
 @findex gnus-summary-refer-parent-article
 If you'd like to read the parent of the current article, and it is not
 displayed in the summary buffer, you might still be able to.  That is,
@@ -8142,15 +8160,15 @@ grandparent and the grandgrandparent of the current article.  If you say
 @kbd{-3 ^}, Gnus will only fetch the grandgrandparent of the current
 article.
 
-@item A R (Summary)
+@item A R @r{(Summary)}
 @findex gnus-summary-refer-references
-@kindex A R (Summary)
+@kindex A R @r{(Summary)}
 Fetch all articles mentioned in the @code{References} header of the
 article (@code{gnus-summary-refer-references}).
 
-@item A T (Summary)
+@item A T @r{(Summary)}
 @findex gnus-summary-refer-thread
-@kindex A T (Summary)
+@kindex A T @r{(Summary)}
 Display the full thread where the current article appears
 (@code{gnus-summary-refer-thread}).  This command has to fetch all the
 headers in the current group to work, so it usually takes a while.  If
@@ -8166,9 +8184,9 @@ fetch when doing this command.  The default is 200.  If @code{t}, all
 the available headers will be fetched.  This variable can be overridden
 by giving the @kbd{A T} command a numerical prefix.
 
-@item M-^ (Summary)
+@item M-^ @r{(Summary)}
 @findex gnus-summary-refer-article
-@kindex M-^ (Summary)
+@kindex M-^ @r{(Summary)}
 @cindex Message-ID
 @cindex fetching by Message-ID
 You can also ask the @sc{nntp} server for an arbitrary article, no
@@ -8255,8 +8273,8 @@ it selects just the article.  If given a numerical prefix, go to that
 thread or article and pick it.  (The line number is normally displayed
 at the beginning of the summary pick lines.)
 
-@item SPACE
-@kindex SPACE (Pick)
+@item @key{SPC}
+@kindex @key{SPC} (Pick)
 @findex gnus-pick-next-page
 Scroll the summary buffer up one page (@code{gnus-pick-next-page}).  If
 at the end of the buffer, start reading the picked articles.
@@ -8271,8 +8289,8 @@ thread if used at the first article of the thread.  Otherwise it unpicks
 just the article.  You can give this key a numerical prefix to unpick
 the thread or article at that line.
 
-@item RET
-@kindex RET (Pick)
+@item @key{RET}
+@kindex @key{RET} (Pick)
 @findex gnus-pick-start-reading
 @vindex gnus-pick-display-summary
 Start reading the picked articles (@code{gnus-pick-start-reading}).  If
@@ -8316,7 +8334,7 @@ Variables}).  It accepts the same format specs that
 @findex gnus-binary-mode
 @kindex M-x gnus-binary-mode
 If you spend much time in binary groups, you may grow tired of hitting
-@kbd{X u}, @kbd{n}, @kbd{RET} all the time.  @kbd{M-x gnus-binary-mode}
+@kbd{X u}, @kbd{n}, @key{RET} all the time.  @kbd{M-x gnus-binary-mode}
 is a minor mode for summary buffers that makes all ordinary Gnus article
 selection functions uudecode series of articles and display the result
 instead of just displaying the articles the normal way.
@@ -8483,21 +8501,21 @@ process/prefix convention (@pxref{Process/Prefix}).
 @table @kbd
 
 @item B e
-@kindex B e (Summary)
+@kindex B e @r{(Summary)}
 @findex gnus-summary-expire-articles
 Expire all expirable articles in the group
 (@code{gnus-summary-expire-articles}).
 
 @item B M-C-e
-@kindex B M-C-e (Summary)
+@kindex B M-C-e @r{(Summary)}
 @findex gnus-summary-expire-articles-now
 Delete all the expirable articles in the group
 (@code{gnus-summary-expire-articles-now}).  This means that @strong{all}
 articles eligible for expiry in the current group will
 disappear forever into that big @file{/dev/null} in the sky.
 
-@item B DEL
-@kindex B DEL (Summary)
+@item B @key{DEL}
+@kindex B @key{DEL} @r{(Summary)}
 @findex gnus-summary-delete-article
 @c @icon{gnus-summary-mail-delete}
 Delete the mail article.  This is ``delete'' as in ``delete it from your
@@ -8505,7 +8523,7 @@ disk forever and ever, never to return again.'' Use with caution.
 (@code{gnus-summary-delete-article}).
 
 @item B m
-@kindex B m (Summary)
+@kindex B m @r{(Summary)}
 @cindex move mail
 @findex gnus-summary-move-article
 @vindex gnus-preserve-marks
@@ -8514,7 +8532,7 @@ Move the article from one mail group to another
 @var{gnus-preserve-marks} is non-@code{nil} (which is the default). 
 
 @item B c
-@kindex B c (Summary)
+@kindex B c @r{(Summary)}
 @cindex copy mail
 @findex gnus-summary-copy-article
 @c @icon{gnus-summary-mail-copy}
@@ -8523,7 +8541,7 @@ Copy the article from one group (mail group or not) to a mail group
 @var{gnus-preserve-marks} is non-@code{nil} (which is the default).
 
 @item B B
-@kindex B B (Summary)
+@kindex B B @r{(Summary)}
 @cindex crosspost mail
 @findex gnus-summary-crosspost-article
 Crosspost the current article to some other group
@@ -8532,14 +8550,14 @@ the article in the other group, and the Xref headers of the article will
 be properly updated.
 
 @item B i
-@kindex B i (Summary)
+@kindex B i @r{(Summary)}
 @findex gnus-summary-import-article
 Import an arbitrary file into the current mail newsgroup
 (@code{gnus-summary-import-article}).  You will be prompted for a file
 name, a @code{From} header and a @code{Subject} header.
 
 @item B r
-@kindex B r (Summary)
+@kindex B r @r{(Summary)}
 @findex gnus-summary-respool-article
 Respool the mail article (@code{gnus-summary-respool-article}).
 @code{gnus-summary-respool-default-method} will be used as the default
@@ -8550,30 +8568,30 @@ Marks will be preserved if @var{gnus-preserve-marks} is non-@code{nil}
 
 @item B w
 @itemx e
-@kindex B w (Summary)
-@kindex e (Summary)
+@kindex B w @r{(Summary)}
+@kindex e @r{(Summary)}
 @findex gnus-summary-edit-article
-@kindex C-c C-c (Article)
+@kindex C-c C-c @r{(Article)}
 Edit the current article (@code{gnus-summary-edit-article}).  To finish
 editing and make the changes permanent, type @kbd{C-c C-c}
 (@kbd{gnus-summary-edit-article-done}).  If you give a prefix to the
 @kbd{C-c C-c} command, Gnus won't re-highlight the article.
 
 @item B q
-@kindex B q (Summary)
+@kindex B q @r{(Summary)}
 @findex gnus-summary-respool-query
 If you want to re-spool an article, you might be curious as to what group
 the article will end up in before you do the re-spooling.  This command
 will tell you (@code{gnus-summary-respool-query}).
 
 @item B t
-@kindex B t (Summary)
+@kindex B t @r{(Summary)}
 @findex gnus-summary-respool-trace
 Similarly, this command will display all fancy splitting patterns used
 when repooling, if any (@code{gnus-summary-respool-trace}).
 
 @item B p
-@kindex B p (Summary)
+@kindex B p @r{(Summary)}
 @findex gnus-summary-article-posted-p
 Some people have a tendency to send you "courtesy" copies when they
 follow up to articles you have posted.  These usually have a
@@ -8676,7 +8694,7 @@ the list in one particular group:
 @table @kbd
 
 @item H f
-@kindex H f (Summary)
+@kindex H f @r{(Summary)}
 @findex gnus-summary-fetch-faq
 @vindex gnus-group-faq-directory
 Try to fetch the FAQ (list of frequently asked questions) for the
@@ -8688,20 +8706,20 @@ between the various sites.  @code{ange-ftp} or @code{efs} will probably
 be used for fetching the file.
 
 @item H d
-@kindex H d (Summary)
+@kindex H d @r{(Summary)}
 @findex gnus-summary-describe-group
 Give a brief description of the current group
 (@code{gnus-summary-describe-group}).  If given a prefix, force
 rereading the description from the server.
 
 @item H h
-@kindex H h (Summary)
+@kindex H h @r{(Summary)}
 @findex gnus-summary-describe-briefly
 Give an extremely brief description of the most important summary
 keystrokes (@code{gnus-summary-describe-briefly}).
 
 @item H i
-@kindex H i (Summary)
+@kindex H i @r{(Summary)}
 @findex gnus-info-find-node
 Go to the Gnus info node (@code{gnus-info-find-node}).
 @end table
@@ -8713,19 +8731,19 @@ Go to the Gnus info node (@code{gnus-info-find-node}).
 @table @kbd
 
 @item M-s
-@kindex M-s (Summary)
+@kindex M-s @r{(Summary)}
 @findex gnus-summary-search-article-forward
 Search through all subsequent articles for a regexp
 (@code{gnus-summary-search-article-forward}).
 
 @item M-r
-@kindex M-r (Summary)
+@kindex M-r @r{(Summary)}
 @findex gnus-summary-search-article-backward
 Search through all previous articles for a regexp
 (@code{gnus-summary-search-article-backward}).
 
 @item &
-@kindex & (Summary)
+@kindex & @r{(Summary)}
 @findex gnus-summary-execute-command
 This command will prompt you for a header, a regular expression to match
 on this field, and a command to be executed if the match is made
@@ -8733,11 +8751,11 @@ on this field, and a command to be executed if the match is made
 string, the match is done on the entire article.  If given a prefix,
 search backward instead.
 
-For instance, @kbd{& RET some.*string #} will put the process mark on
+For instance, @kbd{& @key{RET} some.*string #} will put the process mark on
 all articles that have heads or bodies that match @samp{some.*string}.
 
 @item M-&
-@kindex M-& (Summary)
+@kindex M-& @r{(Summary)}
 @findex gnus-summary-universal-argument
 Perform any operation on all articles that have been marked with
 the process mark (@code{gnus-summary-universal-argument}).
@@ -8749,12 +8767,12 @@ the process mark (@code{gnus-summary-universal-argument}).
 @table @kbd
 
 @item Y g
-@kindex Y g (Summary)
+@kindex Y g @r{(Summary)}
 @findex gnus-summary-prepare
 Regenerate the current summary buffer (@code{gnus-summary-prepare}).
 
 @item Y c
-@kindex Y c (Summary)
+@kindex Y c @r{(Summary)}
 @findex gnus-summary-insert-cached-articles
 Pull all cached articles (for the current group) into the summary buffer
 (@code{gnus-summary-insert-cached-articles}).
@@ -8769,8 +8787,8 @@ Pull all cached articles (for the current group) into the summary buffer
 
 @item A D
 @itemx C-d
-@kindex C-d (Summary)
-@kindex A D (Summary)
+@kindex C-d @r{(Summary)}
+@kindex A D @r{(Summary)}
 @findex gnus-summary-enter-digest-group
 If the current article is a collection of other articles (for instance,
 a digest), you might use this command to enter a group based on the that
@@ -8782,7 +8800,7 @@ some format, you @kbd{C-d} and read these messages in a more convenient
 fashion.
 
 @item M-C-d
-@kindex M-C-d (Summary)
+@kindex M-C-d @r{(Summary)}
 @findex gnus-summary-read-document
 This command is very similar to the one above, but lets you gather
 several documents into one biiig group
@@ -8793,7 +8811,7 @@ command understands the process/prefix convention
 (@pxref{Process/Prefix}).
 
 @item C-t
-@kindex C-t (Summary)
+@kindex C-t @r{(Summary)}
 @findex gnus-summary-toggle-truncation
 Toggle truncation of summary lines
 (@code{gnus-summary-toggle-truncation}).  This will probably confuse the
@@ -8801,19 +8819,19 @@ line centering function in the summary buffer, so it's not a good idea
 to have truncation switched off while reading articles.
 
 @item =
-@kindex = (Summary)
+@kindex = @r{(Summary)}
 @findex gnus-summary-expand-window
 Expand the summary buffer window (@code{gnus-summary-expand-window}).
 If given a prefix, force an @code{article} window configuration.
 
 @item M-C-e
-@kindex M-C-e (Summary)
+@kindex M-C-e @r{(Summary)}
 @findex gnus-summary-edit-parameters
 Edit the group parameters (@pxref{Group Parameters}) of the current
 group (@code{gnus-summary-edit-parameters}).
 
 @item M-C-a
-@kindex M-C-a (Summary)
+@kindex M-C-a @r{(Summary)}
 @findex gnus-summary-customize-parameters
 Customize the group parameters (@pxref{Group Parameters}) of the current
 group (@code{gnus-summary-customize-parameters}).
@@ -8833,8 +8851,8 @@ group and return you to the group buffer.
 
 @item Z Z
 @itemx q
-@kindex Z Z (Summary)
-@kindex q (Summary)
+@kindex Z Z @r{(Summary)}
+@kindex q @r{(Summary)}
 @findex gnus-summary-exit
 @vindex gnus-summary-exit-hook
 @vindex gnus-summary-prepare-exit-hook
@@ -8849,35 +8867,35 @@ group mode having no more (unread) groups.
 
 @item Z E
 @itemx Q
-@kindex Z E (Summary)
-@kindex Q (Summary)
+@kindex Z E @r{(Summary)}
+@kindex Q @r{(Summary)}
 @findex gnus-summary-exit-no-update
 Exit the current group without updating any information on the group
 (@code{gnus-summary-exit-no-update}).
 
 @item Z c
 @itemx c
-@kindex Z c (Summary)
-@kindex c (Summary)
+@kindex Z c @r{(Summary)}
+@kindex c @r{(Summary)}
 @findex gnus-summary-catchup-and-exit
 @c @icon{gnus-summary-catchup-and-exit}
 Mark all unticked articles in the group as read and then exit
 (@code{gnus-summary-catchup-and-exit}).
 
 @item Z C
-@kindex Z C (Summary)
+@kindex Z C @r{(Summary)}
 @findex gnus-summary-catchup-all-and-exit
 Mark all articles, even the ticked ones, as read and then exit
 (@code{gnus-summary-catchup-all-and-exit}).
 
 @item Z n
-@kindex Z n (Summary)
+@kindex Z n @r{(Summary)}
 @findex gnus-summary-catchup-and-goto-next-group
 Mark all articles as read and go to the next group
 (@code{gnus-summary-catchup-and-goto-next-group}).
 
 @item Z R
-@kindex Z R (Summary)
+@kindex Z R @r{(Summary)}
 @findex gnus-summary-reselect-current-group
 Exit this group, and then enter it again
 (@code{gnus-summary-reselect-current-group}).  If given a prefix, select
@@ -8885,8 +8903,8 @@ all articles, both read and unread.
 
 @item Z G
 @itemx M-g
-@kindex Z G (Summary)
-@kindex M-g (Summary)
+@kindex Z G @r{(Summary)}
+@kindex M-g @r{(Summary)}
 @findex gnus-summary-rescan-group
 @c @icon{gnus-summary-mail-get}
 Exit the group, check for new articles in the group, and select the
@@ -8894,19 +8912,19 @@ group (@code{gnus-summary-rescan-group}).  If given a prefix, select all
 articles, both read and unread.
 
 @item Z N
-@kindex Z N (Summary)
+@kindex Z N @r{(Summary)}
 @findex gnus-summary-next-group
 Exit the group and go to the next group
 (@code{gnus-summary-next-group}).
 
 @item Z P
-@kindex Z P (Summary)
+@kindex Z P @r{(Summary)}
 @findex gnus-summary-prev-group
 Exit the group and go to the previous group
 (@code{gnus-summary-prev-group}).
 
 @item Z s
-@kindex Z s (Summary)
+@kindex Z s @r{(Summary)}
 @findex gnus-summary-save-newsrc
 Save the current number of read/marked articles in the dribble buffer
 and then save the dribble buffer (@code{gnus-summary-save-newsrc}).  If
@@ -9235,38 +9253,38 @@ The following commands are available when you have placed point over a
 
 @table @kbd
 @findex gnus-article-press-button
-@item RET (Article)
-@itemx BUTTON-2 (Article)
+@item @key{RET} @r{(Article)}
+@itemx Mouse-2 @r{(Article)}
 Toggle displaying of the @sc{mime} object
 (@code{gnus-article-press-button}).
 
 @findex gnus-mime-view-part
-@item M-RET (Article)
-@itemx v (Article)
+@item M-@key{RET} @r{(Article)}
+@itemx v @r{(Article)}
 Prompt for a method, and then view the @sc{mime} object using this
 method (@code{gnus-mime-view-part}).
 
 @findex gnus-mime-save-part
-@item o (Article)
+@item o @r{(Article)}
 Prompt for a file name, and then save the @sc{mime} object
 (@code{gnus-mime-save-part}).
 
 @findex gnus-mime-copy-part
-@item c (Article)
+@item c @r{(Article)}
 Copy the @sc{mime} object to a fresh buffer and display this buffer
 (@code{gnus-mime-copy-part}).
 
 @findex gnus-mime-view-part-as-type
-@item t (Article)
+@item t @r{(Article)}
 View the @sc{mime} object as if it were a different @sc{mime} media type
 (@code{gnus-mime-view-part-as-type}). 
 
 @findex gnus-mime-pipe-part
-@item | (Article)
+@item | @r{(Article)}
 Output the @sc{mime} object to a process (@code{gnus-mime-pipe-part}).
 
 @findex gnus-mime-inline-part
-@item i (Article)
+@item i @r{(Article)}
 Insert the contents of the @sc{mime} object into the buffer
 (@code{gnus-mime-inline-part}) as text/plain.  If given a prefix, insert
 the raw contents without decoding.  If given a numerical prefix, you can
@@ -9275,7 +9293,7 @@ do semi-manual charset stuff (see
 Article}).
 
 @findex gnus-mime-action-on-part
-@item . (Article)
+@item . @r{(Article)}
 Interactively run an action on the @sc{mime} object
 (@code{gnus-mime-action-on-part}).
 
@@ -9425,49 +9443,49 @@ A few additional keystrokes are available:
 
 @table @kbd
 
-@item SPACE
-@kindex SPACE (Article)
+@item @key{SPC}
+@kindex @key{SPC} @r{(Article)}
 @findex gnus-article-next-page
 Scroll forwards one page (@code{gnus-article-next-page}).
 
-@item DEL
-@kindex DEL (Article)
+@item @key{DEL}
+@kindex @key{DEL} @r{(Article)}
 @findex gnus-article-prev-page
 Scroll backwards one page (@code{gnus-article-prev-page}).
 
 @item C-c ^
-@kindex C-c ^ (Article)
+@kindex C-c ^ @r{(Article)}
 @findex gnus-article-refer-article
 If point is in the neighborhood of a @code{Message-ID} and you press
 @kbd{C-c ^}, Gnus will try to get that article from the server
 (@code{gnus-article-refer-article}).
 
 @item C-c C-m
-@kindex C-c C-m (Article)
+@kindex C-c C-m @r{(Article)}
 @findex gnus-article-mail
 Send a reply to the address near point (@code{gnus-article-mail}).  If
 given a prefix, include the mail.
 
 @item s
-@kindex s (Article)
+@kindex s @r{(Article)}
 @findex gnus-article-show-summary
 Reconfigure the buffers so that the summary buffer becomes visible
 (@code{gnus-article-show-summary}).
 
 @item ?
-@kindex ? (Article)
+@kindex ? @r{(Article)}
 @findex gnus-article-describe-briefly
 Give a very brief description of the available keystrokes
 (@code{gnus-article-describe-briefly}).
 
 @item TAB
-@kindex TAB (Article)
+@kindex TAB @r{(Article)}
 @findex gnus-article-next-button
 Go to the next button, if any (@code{gnus-article-next-button}).  This
 only makes sense if you have buttonizing turned on.
 
 @item M-TAB
-@kindex M-TAB (Article)
+@kindex M-TAB @r{(Article)}
 @findex gnus-article-prev-button
 Go to the previous button, if any (@code{gnus-article-prev-button}).
 
@@ -10152,8 +10170,8 @@ Add a new server (@code{gnus-server-add-server}).
 @findex gnus-server-edit-server
 Edit a server (@code{gnus-server-edit-server}).
 
-@item SPACE
-@kindex SPACE (Server)
+@item @key{SPC}
+@kindex @key{SPC} (Server)
 @findex gnus-server-read-server
 Browse the current server (@code{gnus-server-read-server}).
 
@@ -10300,7 +10318,7 @@ First you need to add a new server.  The @kbd{a} command does that.  It
 would probably be best to use @code{nnspool} to read the cache.  You
 could also use @code{nnml} or @code{nnmh}, though.
 
-Type @kbd{a nnspool RET cache RET}.
+Type @kbd{a nnspool @key{RET} cache @key{RET}}.
 
 You should now have a brand new @code{nnspool} virtual server called
 @samp{cache}.  You now need to edit it to have the right definitions.
@@ -10321,7 +10339,7 @@ Change that to:
 @end lisp
 
 Type @kbd{C-c C-c} to return to the server buffer.  If you now press
-@kbd{RET} over this virtual server, you should be entered into a browse
+@key{RET} over this virtual server, you should be entered into a browse
 buffer, and you should be able to enter any of the groups displayed.
 
 
@@ -10555,7 +10573,8 @@ The default value is
 
 @lisp
 '(("nntpd 1\\.5\\.11t"
-   (remove-hook 'nntp-server-opened-hook 'nntp-send-mode-reader)))
+   (remove-hook 'nntp-server-opened-hook 
+                'nntp-send-mode-reader)))
 @end lisp
 
 This ensures that Gnus doesn't send the @code{MODE READER} command to
@@ -10695,10 +10714,12 @@ define a server as follows:
 @lisp
 ;; Type `C-c C-c' after you've finished editing.
 ;;
-;; "snews" is port 563 and is predefined in our /etc/services
+;; "snews" is port 563 and is predefined 
+;; in our /etc/services
 ;;
 (nntp "snews.bar.com"
-      (nntp-open-connection-function nntp-open-ssl-stream)
+      (nntp-open-connection-function 
+        nntp-open-ssl-stream)
       (nntp-port-number "snews")
       (nntp-address "snews.bar.com"))
 @end lisp
@@ -11027,7 +11048,7 @@ thinks should carry this mail message.
 Note that the mail backends are free to maul the poor, innocent,
 incoming headers all they want to.  They all add @code{Lines} headers;
 some add @code{X-Gnus-Group} headers; most rename the Unix mbox
-@code{From<SPACE>} line to something else.
+@samp{From } line to something else.
 
 @vindex nnmail-crosspost
 The mail backends all support cross-posting.  If several regexps match,
@@ -11316,11 +11337,13 @@ from locking problems).
 Two example maildir mail sources:
 
 @lisp
-(maildir :path "/home/user-name/Maildir/" :subdirs ("cur" "new"))
+(maildir :path "/home/user-name/Maildir/" 
+         :subdirs ("cur" "new"))
 @end lisp
 
 @lisp
-(maildir :path "/user@@remotehost.org:~/Maildir/" :subdirs ("new"))
+(maildir :path "/user@@remotehost.org:~/Maildir/" 
+         :subdirs ("new"))
 @end lisp
 
 @item imap
@@ -11412,7 +11435,9 @@ after finishing the fetch.
 An example @sc{imap} mail source:
 
 @lisp
-(imap :server "mail.mycorp.com" :stream kerberos4 :fetchflag "\\Seen")
+(imap :server "mail.mycorp.com" 
+      :stream kerberos4 
+      :fetchflag "\\Seen")
 @end lisp
 
 @item webmail
@@ -11451,7 +11476,9 @@ folder after finishing the fetch.
 An example webmail source:
 
 @lisp
-(webmail :subtype 'hotmail :user "user-name" :password "secret")
+(webmail :subtype 'hotmail 
+         :user "user-name" 
+         :password "secret")
 @end lisp
 @end table
 
@@ -11976,18 +12003,18 @@ Here's how:
 Go to the group buffer.
 
 @item
-Type `G f' and give the path to the mbox file when prompted to create an
+Type @kbd{G f} and give the path to the mbox file when prompted to create an
 @code{nndoc} group from the mbox file (@pxref{Foreign Groups}).
 
 @item
-Type `SPACE' to enter the newly created group.
+Type @key{SPC} to enter the newly created group.
 
 @item
-Type `M P b' to process-mark all articles in this group's buffer
+Type @kbd{M P b} to process-mark all articles in this group's buffer
 (@pxref{Setting Process Marks}).
 
 @item
-Type `B r' to respool all the process-marked articles, and answer
+Type @kbd{B r} to respool all the process-marked articles, and answer
 @samp{nnml} when prompted (@pxref{Mail Group Commands}).
 @end enumerate
 
@@ -12224,7 +12251,7 @@ This can also be done non-destructively with
 
 @item nnmail-remove-tabs
 @findex nnmail-remove-tabs
-Translate all @samp{TAB} characters into @samp{SPACE} characters.
+Translate all tab characters into space characters.
 
 @item nnmail-fix-eudora-headers
 @findex nnmail-fix-eudora-headers
@@ -12867,7 +12894,7 @@ groups.  (Note that the default subscription method is to subscribe new
 groups as zombies.  Other methods are available (@pxref{Subscription
 Methods}).
 
-If you want to remove an old @code{nnslashdot} group, the @kbd{G DEL}
+If you want to remove an old @code{nnslashdot} group, the @kbd{G @key{DEL}}
 command is the most handy tool (@pxref{Foreign Groups}).
 
 When following up to @code{nnslashdot} comments (or posting new
@@ -12899,13 +12926,13 @@ The password to use when posting.
 
 @item nnslashdot-directory
 @vindex nnslashdot-directory
-Where @code{nnslashdot} will store its files.  The default value is
+Where @code{nnslashdot} will store its files.  The default is
 @samp{~/News/slashdot/}.
 
 @item nnslashdot-active-url
 @vindex nnslashdot-active-url
-The @sc{url} format string that will be used to fetch the information on 
-news articles and comments.  The default is
+The @sc{url} format string that will be used to fetch the information on
+news articles and comments.  Default:
 @samp{http://slashdot.org/search.pl?section=&min=%d}.
 
 @item nnslashdot-comments-url
@@ -12944,8 +12971,8 @@ quite regular and nice interface, and it's possible to get the
 information Gnus needs to keep groups updated.
 
 The easiest way to get started with @code{nnultimate} is to say
-something like the following in the group buffer:  @kbd{B nnultimate RET 
-http://www.tcj.com/messboard/ubbcgi/ RET}.  (Substitute the @sc{url}
+something like the following in the group buffer:  @kbd{B nnultimate @key{RET} 
+http://www.tcj.com/messboard/ubbcgi/ @key{RET}}.  (Substitute the @sc{url}
 (not including @samp{Ultimate.cgi} or the like at the end) for a forum
 you're interested in; there's quite a list of them on the Ultimate web
 site.)  Then subscribe to the groups you're interested in from the
@@ -12974,11 +13001,11 @@ groups updated.
 
 The easiest way to get started with @code{nnwarchive} is to say
 something like the following in the group buffer: @kbd{M-x
-gnus-group-make-warchive-group RET an_egroup RET egroups RET
-www.egroups.com RET your@@email.address RET}.  (Substitute the
+gnus-group-make-warchive-group @key{RET} an_egroup @key{RET} egroups @key{RET}
+www.egroups.com @key{RET} your@@email.address @key{RET}}.  (Substitute the
 @sc{an_egroup} with the mailing list you subscribed, the
 @sc{your@@email.address} with your email address.), or to browse the
-backend by @kbd{B nnwarchive RET mail-archive RET}.
+backend by @kbd{B nnwarchive @key{RET} mail-archive @key{RET}}.
 
 The following @code{nnwarchive} variables can be altered:
 
@@ -13459,35 +13486,35 @@ These are commands for creating and manipulating @sc{soup} packets.
 
 @table @kbd
 @item G s b
-@kindex G s b (Group)
+@kindex G s b @r{(Group)}
 @findex gnus-group-brew-soup
 Pack all unread articles in the current group
 (@code{gnus-group-brew-soup}).  This command understands the
 process/prefix convention.
 
 @item G s w
-@kindex G s w (Group)
+@kindex G s w @r{(Group)}
 @findex gnus-soup-save-areas
 Save all @sc{soup} data files (@code{gnus-soup-save-areas}).
 
 @item G s s
-@kindex G s s (Group)
+@kindex G s s @r{(Group)}
 @findex gnus-soup-send-replies
 Send all replies from the replies packet
 (@code{gnus-soup-send-replies}).
 
 @item G s p
-@kindex G s p (Group)
+@kindex G s p @r{(Group)}
 @findex gnus-soup-pack-packet
 Pack all files into a @sc{soup} packet (@code{gnus-soup-pack-packet}).
 
 @item G s r
-@kindex G s r (Group)
+@kindex G s r @r{(Group)}
 @findex nnsoup-pack-replies
 Pack all replies into a replies packet (@code{nnsoup-pack-replies}).
 
 @item O s
-@kindex O s (Summary)
+@kindex O s @r{(Summary)}
 @findex gnus-soup-add-article
 This summary-mode command adds the current article to a @sc{soup} packet
 (@code{gnus-soup-add-article}).  It understands the process/prefix
@@ -13695,9 +13722,10 @@ Here's an example:
 
 @lisp
 (setq gnus-post-method
-      '(nngateway "mail2news@@replay.com"
-                  (nngateway-header-transformation
-                   nngateway-mail2news-header-transformation)))
+      '(nngateway 
+        "mail2news@@replay.com"
+        (nngateway-header-transformation
+         nngateway-mail2news-header-transformation)))
 @end lisp
 
 @end table
@@ -13906,7 +13934,7 @@ Unlike Parmenides, the @sc{imap} designers decided that things that
 don't exist actually do exist.  More specifically, @sc{imap} has
 the concept of marking articles @code{Deleted} which doesn't actually
 delete them, and this (marking them @code{Deleted}, that is) is what
-nnimap does when you delete a article in Gnus (with @kbd{G DEL} or
+nnimap does when you delete a article in Gnus (with @kbd{G @key{DEL}} or
 similar).
 
 Since the articles aren't really removed when we mark them with the
@@ -14013,7 +14041,8 @@ Neither did I, we need examples.
 
 @lisp
 (setq nnimap-split-rule
-      '(("INBOX.nnimap"  "^Sender: owner-nnimap@@vic20.globalcom.se")
+      '(("INBOX.nnimap"  
+         "^Sender: owner-nnimap@@vic20.globalcom.se")
         ("INBOX.junk"    "^Subject:.*MAKE MONEY")
         ("INBOX.private" "")))
 @end lisp
@@ -14022,7 +14051,7 @@ This will put all articles from the nnimap mailing list into mailbox
 INBOX.nnimap, all articles containing MAKE MONEY in the Subject: line
 into INBOX.spam and everything else in INBOX.private.
 
-The first string may contain `\\1' forms, like the ones used by
+The first string may contain @samp{\\@var{digit}} forms, like the ones used by
 replace-match to insert sub-expressions from the matched text.  For
 instance:
 
@@ -14038,7 +14067,7 @@ if it thinks that the mail belongs in that group.
 Nnmail users might recollect that the last regexp had to be empty to
 match all articles (like in the example above).  This is not required in
 nnimap.  Articles not matching any of the regexps will not be moved out
-of your inbox.  (This might might affect performance if you keep lots of
+of your inbox.  (This might affect performance if you keep lots of
 unread articles in your inbox, since the splitting code would go over
 them every time you fetch new mail.)
 
@@ -14262,7 +14291,7 @@ the news feed''.  @code{nnkiboze} is a backend that will do this for
 you.  Oh joy!  Now you can grind any @sc{nntp} server down to a halt
 with useless requests!  Oh happiness!
 
-@kindex G k (Group)
+@kindex G k @r{(Group)}
 To create a kibozed group, use the @kbd{G k} command in the group
 buffer.
 
@@ -14707,7 +14736,7 @@ your desired @code{downloading} criteria for a group are the same as your
 
 These directives in either the category definition or a group's
 parameters will cause the agent to read in all the applicable score
-files for a group, *filtering out* those those sections that do not
+files for a group, *filtering out* those sections that do not
 relate to one of the permitted subset of scoring keywords.
 
 @itemize @bullet
@@ -14989,7 +15018,7 @@ disconnected, and synchronize these flags when you plug back in.
 Gnus keep track of flag changes when reading nnimap groups under the
 Agent by default.  When you plug back in, by default Gnus will check if
 you have any changed any flags and ask if you wish to synchronize these
-with the server.  This behaviour is customizable with
+with the server.  This behavior is customizable with
 @code{gnus-agent-synchronize-flags}.
 
 @vindex gnus-agent-synchronize-flags
@@ -15217,24 +15246,24 @@ General score commands that don't actually change the score file:
 @table @kbd
 
 @item V s
-@kindex V s (Summary)
+@kindex V s @r{(Summary)}
 @findex gnus-summary-set-score
 Set the score of the current article (@code{gnus-summary-set-score}).
 
 @item V S
-@kindex V S (Summary)
+@kindex V S @r{(Summary)}
 @findex gnus-summary-current-score
 Display the score of the current article
 (@code{gnus-summary-current-score}).
 
 @item V t
-@kindex V t (Summary)
+@kindex V t @r{(Summary)}
 @findex gnus-score-find-trace
 Display all score rules that have been used on the current article
 (@code{gnus-score-find-trace}).
 
 @item V R
-@kindex V R (Summary)
+@kindex V R @r{(Summary)}
 @findex gnus-summary-rescore
 Run the current summary through the scoring process
 (@code{gnus-summary-rescore}).  This might be useful if you're playing
@@ -15242,32 +15271,32 @@ around with your score files behind Gnus' back and want to see the
 effect you're having.
 
 @item V c
-@kindex V c (Summary)
+@kindex V c @r{(Summary)}
 @findex gnus-score-change-score-file
 Make a different score file the current
 (@code{gnus-score-change-score-file}).
 
 @item V e
-@kindex V e (Summary)
+@kindex V e @r{(Summary)}
 @findex gnus-score-edit-current-scores
 Edit the current score file (@code{gnus-score-edit-current-scores}).
 You will be popped into a @code{gnus-score-mode} buffer (@pxref{Score
 File Editing}).
 
 @item V f
-@kindex V f (Summary)
+@kindex V f @r{(Summary)}
 @findex gnus-score-edit-file
 Edit a score file and make this score file the current one
 (@code{gnus-score-edit-file}).
 
 @item V F
-@kindex V F (Summary)
+@kindex V F @r{(Summary)}
 @findex gnus-score-flush-cache
 Flush the score cache (@code{gnus-score-flush-cache}).  This is useful
 after editing score files.
 
 @item V C
-@kindex V C (Summary)
+@kindex V C @r{(Summary)}
 @findex gnus-score-customize
 Customize a score file in a visually pleasing manner
 (@code{gnus-score-customize}).
@@ -15279,13 +15308,13 @@ The rest of these commands modify the local score file.
 @table @kbd
 
 @item V m
-@kindex V m (Summary)
+@kindex V m @r{(Summary)}
 @findex gnus-score-set-mark-below
 Prompt for a score, and mark all articles with a score below this as
 read (@code{gnus-score-set-mark-below}).
 
 @item V x
-@kindex V x (Summary)
+@kindex V x @r{(Summary)}
 @findex gnus-score-set-expunge-below
 Prompt for a score, and add a score rule to the current score file to
 expunge all articles below this score
@@ -15443,7 +15472,7 @@ There aren't many of these as yet, I'm afraid.
 @table @kbd
 
 @item W f
-@kindex W f (Group)
+@kindex W f @r{(Group)}
 @findex gnus-score-flush-cache
 Gnus maintains a cache of score alists to avoid having to reload them
 all the time.  This command will flush the cache
@@ -15589,7 +15618,8 @@ returned is the local score file.  Phu.
 For example, to do hierarchical scoring but use a non-server-specific
 overall score file, you could use the value
 @example
-(list (lambda (group) ("all.SCORE")) 'gnus-score-find-hierarchical)
+(list (lambda (group) ("all.SCORE")) 
+      'gnus-score-find-hierarchical)
 @end example
 
 @item gnus-score-expiry-days
@@ -16127,7 +16157,7 @@ A list.  The elements in this list can be:
 @enumerate
 @item
 @code{(@var{regexp} @var{file-name})}.  If the @var{regexp} matches the
-group name, the @var{file-name} will will be used as the home score file.
+group name, the @var{file-name} will be used as the home score file.
 
 @item
 A function.  If the function returns non-nil, the result will be used as
@@ -16267,7 +16297,9 @@ the @code{Xref} header.
 If you want to lower the score of articles that have been crossposted to
 more than, say, 3 groups:
 @lisp
-("xref" ("[^:\n]+:[0-9]+ +[^:\n]+:[0-9]+ +[^:\n]+:[0-9]+" -1000 nil r))
+("xref" 
+  ("[^:\n]+:[0-9]+ +[^:\n]+:[0-9]+ +[^:\n]+:[0-9]+"
+   -1000 nil r))
 @end lisp
 
 @item Matching on the body
@@ -16333,9 +16365,10 @@ All you have to do to use other people's score files is to set the
 or each score file directory.  Gnus will decide by itself what score
 files are applicable to which group.
 
-Say you want to use the score file
+To use the score file
 @file{/ftp@@ftp.gnus.org:/pub/larsi/ding/score/soc.motss.SCORE} and
-all score files in the @file{/ftp@@ftp.some-where:/pub/score} directory:
+all score files in the @file{/ftp@@ftp.some-where:/pub/score} directory,
+say this:
 
 @lisp
 (setq gnus-global-score-files
@@ -16344,6 +16377,7 @@ all score files in the @file{/ftp@@ftp.some-where:/pub/score} directory:
 @end lisp
 
 @findex gnus-score-search-global-directories
+@noindent
 Simple, eh?  Directory names must end with a @samp{/}.  These
 directories are typically scanned only once during each Gnus session.
 If you feel the need to manually re-scan the remote directories, you can
@@ -16426,12 +16460,12 @@ Two summary functions for editing a GNUS kill file:
 @table @kbd
 
 @item M-k
-@kindex M-k (Summary)
+@kindex M-k @r{(Summary)}
 @findex gnus-summary-edit-local-kill
 Edit this group's kill file (@code{gnus-summary-edit-local-kill}).
 
 @item M-K
-@kindex M-K (Summary)
+@kindex M-K @r{(Summary)}
 @findex gnus-summary-edit-global-kill
 Edit the general kill file (@code{gnus-summary-edit-global-kill}).
 @end table
@@ -16441,12 +16475,12 @@ Two group mode functions for editing the kill files:
 @table @kbd
 
 @item M-k
-@kindex M-k (Group)
+@kindex M-k @r{(Group)}
 @findex gnus-group-edit-local-kill
 Edit this group's kill file (@code{gnus-group-edit-local-kill}).
 
 @item M-K
-@kindex M-K (Group)
+@kindex M-K @r{(Group)}
 @findex gnus-group-edit-global-kill
 Edit the general kill file (@code{gnus-group-edit-global-kill}).
 @end table
@@ -17003,7 +17037,7 @@ Many commands do not use the process/prefix convention.  All commands
 that do explicitly say so in this manual.  To apply the process/prefix
 convention to commands that do not use it, you can use the @kbd{M-&}
 command.  For instance, to mark all the articles in the group as
-expirable, you could say `M P b M-& E'.
+expirable, you could say @kbd{M P b M-& E}.
 
 
 @node Interactive
@@ -17055,7 +17089,7 @@ for instance.  But what if you want to save without making a backup
 file, and you want Emacs to flash lights and play a nice tune at the
 same time?  You can't, and you're probably perfectly happy that way.
 
-@kindex M-i (Summary)
+@kindex M-i @r{(Summary)}
 @findex gnus-symbolic-argument
 I'm not, so I've added a second prefix---the @dfn{symbolic prefix}.  The
 prefix key is @kbd{M-i} (@code{gnus-symbolic-argument}), and the next
@@ -17397,13 +17431,13 @@ To be slightly more formal, here's a definition of what a valid split
 may look like:
 
 @example
-split       = frame | horizontal | vertical | buffer | form
-frame       = "(frame " size *split ")"
-horizontal  = "(horizontal " size *split ")"
-vertical    = "(vertical " size *split ")"
-buffer      = "(" buffer-name " " size *[ "point" ] *[ "frame-focus"] ")"
-size        = number | frame-params
-buffer-name = group | article | summary ...
+split      = frame | horizontal | vertical | buffer | form
+frame      = "(frame " size *split ")"
+horizontal = "(horizontal " size *split ")"
+vertical   = "(vertical " size *split ")"
+buffer     = "(" buf-name " " size *[ "point" ] *[ "frame-focus"] ")"
+size       = number | frame-params
+buf-name   = group | article | summary ...
 @end example
 
 The limitations are that the @code{frame} split can only appear as the
@@ -17499,13 +17533,14 @@ for composing mail and news while leaving the original frame intact.  To
 accomplish that, something like the following can be done:
 
 @lisp
-(message (frame 1.0
-                (if (not (buffer-live-p gnus-summary-buffer))
-                    (car (cdr (assoc 'group gnus-buffer-configuration)))
-                  (car (cdr (assoc 'summary gnus-buffer-configuration))))
-                (vertical ((user-position . t) (top . 1) (left . 1)
-                           (name . "Message"))
-                          (message 1.0 point))))
+(message 
+  (frame 1.0
+         (if (not (buffer-live-p gnus-summary-buffer))
+             (car (cdr (assoc 'group gnus-buffer-configuration)))
+           (car (cdr (assoc 'summary gnus-buffer-configuration))))
+         (vertical ((user-position . t) (top . 1) (left . 1)
+                    (name . "Message"))
+                   (message 1.0 point))))
 @end lisp
 
 @findex gnus-add-configuration
@@ -17756,7 +17791,7 @@ Hook called after creating the score mode menu.
 @cindex mouse
 @cindex click
 
-Those new-fangled @dfn{mouse} contraptions is very popular with the
+Those new-fangled @dfn{mouse} contraptions are very popular with the
 young, hep kids who don't want to learn the proper way to do things
 these days.  Why, I remember way back in the summer of '89, when I was
 using Emacs on a Tops 20 system.  Three hundred users on one single
@@ -18055,7 +18090,7 @@ never be totally undoable.
 @findex gnus-undo
 The undoability is provided by the @code{gnus-undo-mode} minor mode.  It
 is used if @code{gnus-use-undo} is non-@code{nil}, which is the
-default.  The @kbd{M-C-_} key performs the @code{gnus-undo} command
+default.  The @kbd{M-C-_} key performs the @code{gnus-undo} 
 command, which should feel kinda like the normal Emacs @code{undo}
 command.
 
@@ -18654,11 +18689,12 @@ check for legitimate mail, though.  If you feel like being a good net
 citizen, you can even send off complaints to the proper authorities on
 each unsolicited commercial email---at your leisure.
 
-If you are also a lazy net citizen, you will probably prefer complaining
-automatically with the @file{gnus-junk.el} package, available FOR FREE
-at @* @uref{http://stud2.tuwien.ac.at/~e9426626/gnus-junk.html}.
-Since most e-mail spam is sent automatically, this may reconcile the
-cosmic balance somewhat.
+If you are also a lazy net citizen, you will probably prefer
+complaining automatically with the @file{gnus-junk.el} package,
+available as free software at @*
+@uref{http://stud2.tuwien.ac.at/~e9426626/gnus-junk.html}.  Since most
+e-mail spam is sent automatically, this may reconcile the cosmic
+balance somewhat.
 
 This works for me.  It allows people an easy way to contact me (they can
 just press @kbd{r} in the usual way), and I'm not bothered at all with
@@ -18854,7 +18890,6 @@ renamed it back again to ``Gnus''.  But in mixed case.  ``Gnus'' vs.
 * Gnus Development::    How Gnus is developed.
 * Contributors::        Oodles of people.
 * New Features::        Pointers to some of the new stuff in Gnus.
-* Newest Features::     Features so new that they haven't been written yet.
 @end menu
 
 
@@ -19447,16 +19482,16 @@ actually are people who are using Gnus.  Who'd'a thunk it!
 
 @menu
 * ding Gnus::          New things in Gnus 5.0/5.1, the first new Gnus.
-* September Gnus::     The Thing Formally Known As Gnus 5.3/5.3.
+* September Gnus::     The Thing Formally Known As Gnus 5.2/5.3.
 * Red Gnus::           Third time best---Gnus 5.4/5.5.
 * Quassia Gnus::       Two times two is four, or Gnus 5.6/5.7.
+* Pterodactyl Gnus::   Pentad also starts with P, AKA Gnus 5.8/5.9.
 @end menu
 
 These lists are, of course, just @emph{short} overviews of the
 @emph{most} important new features.  No, really.  There are tons more.
 Yes, we have feeping creaturism in full effect.
 
-
 @node ding Gnus
 @subsubsection (ding) Gnus
 
@@ -20029,7 +20064,7 @@ control over simplification.
 limit.
 
 @item
- @kbd{M-RET} is a new Message command for breaking cited text.
+ @kbd{M-@key{RET}} is a new Message command for breaking cited text.
 
 @item
  @samp{\\1}-expressions are now valid in @code{nnmail-split-methods}.
@@ -20096,1313 +20131,60 @@ updated by the @code{gnus-start-date-timer} command.
 
 @end itemize
 
+@node Pterodactyl Gnus
+@subsubsection Pterodactyl Gnus
 
-@node Newest Features
-@subsection Newest Features
-@cindex todo
-
-Also known as the @dfn{todo list}.  Sure to be implemented before the
-next millennium.
-
-Be afraid.  Be very afraid.
-
-(That a feature appears in this list doesn't necessarily mean that I've
-decided to actually implement it.  It just means that I think it sounds
-interesting.)
-
-(Yes, this is the actual, up-to-the-second todo list.)
+New features in Gnus 5.8:
 
 @itemize @bullet
 
-@item
- I would like the zombie-page to contain an URL to the source of the
-latest version of gnus or some explanation on where to find it.
+@item The mail-fetching functions have changed.  See the manual for the
+many details.  In particular, all procmail fetching variables are gone.
 
-@item
- A way to continue editing the latest Message composition.
+If you used procmail like in
 
-@item
-@uref{http://www.sonicnet.com/feature/ari3/}
+@lisp
+(setq nnmail-use-procmail t)
+(setq nnmail-spool-file 'procmail)
+(setq nnmail-procmail-directory "~/mail/incoming/")
+(setq nnmail-procmail-suffix "\\.in")
+@end lisp
 
-@item
- facep is not declared.
+this now has changed to 
 
-@item
- Include a section in the manual on why the number of articles
-isn't the same in the group buffer and on the SPC prompt.
+@lisp
+(setq mail-sources
+      '((directory :path "~/mail/incoming/"
+                  :suffix ".in")))
+@end lisp
 
-@item
- Interacting with rmail fcc isn't easy.
+More information is available in the info doc at Select Methods ->
+Getting Mail -> Mail Sources
 
-@item
-@example
- Hypermail:
-<URL:http://www.falch.no/people/pepper/DSSSL-Lite/archives/>
-<URL:http://www.eit.com/software/hypermail/hypermail.html>
-<URL:http://homer.ncm.com/>
-<URL:http://www.yahoo.com/Computers_and_Internet/Internet/World_Wide_Web/HTML_Converters/>
-http://www.uwsg.indiana.edu/hypermail/linux/kernel/9610/index.html
-<URL:http://union.ncsa.uiuc.edu/HyperNews/get/www/html/converters.html>
-http://www.miranova.com/gnus-list/
+@item Gnus is now a MIME-capable reader.  This affects many parts of
+Gnus, and adds a slew of new commands.  See the manual for details.
 
-@end example
+@item Gnus has also been multilingualized.  This also affects too
+many parts of Gnus to summarize here, and adds many new variables.
 
-@item
-@samp{^-- } is made into - in LaTeX.
+@item @code{gnus-auto-select-first} can now be a function to be
+called to position point.
 
-@item
- gnus-kill is much slower than it was in GNUS 4.1.3.
+@item The user can now decide which extra headers should be included in
+summary buffers and NOV files.
 
-@item
- when expunging articles on low score, the sparse nodes keep hanging on?
-@item
- starting the first time seems to hang Gnus on some systems.  Does
-NEWGROUPS answer too fast?
-@item
- nndir doesn't read gzipped files.
-@item
- FAQ doesn't have an up node?
-@item
- when moving mail from a procmail spool to the crash-box,
-the crash-box is only appropriate to one specific group.
-@item
- `t' `t' makes X-Faces disappear.
-@item
- nnmh-be-safe means that crossposted articles will
-be marked as unread.
-@item
- Orphan score entries don't show on "V t" score trace
-@item
- when clearing out data, the cache data should also be reset.
-@item
- rewrite gnus-summary-limit-children to be non-recursive
-to avoid exceeding lisp nesting on huge groups.
-@item
- expunged articles are counted when computing scores.
-@item
- implement gnus-batch-brew-soup
-@item
- ticked articles aren't easy to read in pick mode -- `n' and
-stuff just skips past them.  Read articles are the same.
-@item
- topics that contain just groups with ticked
-articles aren't displayed.
-@item
- nndoc should always allocate unique Message-IDs.
-@item
- If there are mail groups the first time you use Gnus, Gnus'll
-make the mail groups killed.
-@item
- no "no news is good news" when using topics.
-@item
- when doing crosspost marking, the cache has to be consulted
-and articles have to be removed.
-@item
- nnweb should fetch complete articles when they are split into several
-parts.
-@item
- scoring on head immediate doesn't work.
-@item
- finding short score file names takes forever.
-@item
- canceling articles in foreign groups.
-@item
- nntp-open-rlogin no longer works.
-@item
- C-u C-x C-s (Summary) switches to the group buffer.
-@item
- move nnmail-split-history out to the backends.
-@item
- nnweb doesn't work properly.
-@item
- using a virtual server name as `gnus-select-method' doesn't work?
-@item
- when killing/yanking a group from one topic to another in a slave, the
-master will yank it first to one topic and then add it to another.
-Perhaps.
+@item @code{gnus-article-display-hook} has been removed.  Instead, a number
+of variables starting with @code{gnus-treat-} have been added.
 
-@item
- warn user about `=' redirection of a group in the active file?
-@item
- take over the XEmacs menubar and offer a toggle between the XEmacs
-bar and the Gnus bar.
-@item
-@example
- push active file and NOV file parsing down into C code.
-`(canonize-message-id id)'
-`(mail-parent-message-id references n)'
-`(parse-news-nov-line &optional dependency-hashtb)'
-`(parse-news-nov-region beg end &optional dependency-hashtb fullp)'
-`(parse-news-active-region beg end hashtb)'
+@item The Gnus posting styles have been redone again and now works in a
+subtly different manner.
 
-@end example
+@item New web-based backends have been added: @code{nnslashdot}, 
+@code{nnwarchive} and @code{nnultimate}.  nnweb has been revamped,
+again, to keep up with ever-changing layouts.
 
-@item
- nnml .overview directory with splits.
-@item
- asynchronous cache
-@item
- postponed commands.
-@item
- the selected article show have its Subject displayed in its summary line.
-@item
- when entering groups, get the real number of unread articles from
-the server?
-@item
- sort after gathering threads -- make false roots have the
-headers of the oldest orphan with a 0 article number?
-@item
- nndoc groups should inherit the score files of their parents?  Also
-inherit copy prompts and save files.
-@item
- command to start up Gnus (if not running) and enter a mail mode buffer.
-@item
- allow editing the group description from the group buffer
-for backends that support that.
-@item
-gnus-hide,show-all-topics
-@item
- groups and sub-topics should be allowed to mingle inside each topic,
-and not just list all subtopics at the end.
-@item
- a command to remove all read articles that are not needed to connect
-threads -- `gnus-summary-limit-to-sparse-unread'?
-@item
- a variable to turn off limiting/cutting of threads in the tree buffer.
-@item
- a variable to limit how many files are uudecoded.
-@item
- add zombie groups to a special "New Groups" topic.
-@item
- server mode command: close/open all connections
-@item
- put a file date in gnus-score-alist and check whether the file
-has been changed before using it.
-@item
- on exit from a digest group, go to the next article in the parent group.
-@item
- hide (sub)threads with low score.
-@item
- when expiring, remove all marks from expired articles.
-@item
- gnus-summary-limit-to-body
-@item
- a regexp alist that says what level groups are to be subscribed
-on.  Eg. -- `(("nnml:" . 1))'.
-@item
- easier interface to nnkiboze to create ephemeral groups that
-contain groups that match a regexp.
-@item
- allow newlines in <URL:> urls, but remove them before using
-the URL.
-@item
- If there is no From line, the mail backends should fudge one from the
-"From " line.
-@item
- fuzzy simplifying should strip all non-alpha-numerical info
-from subject lines.
-@item
- gnus-soup-brew-soup-with-high-scores.
-@item
- nntp-ping-before-connect
-@item
- command to check whether NOV is evil.  "list overview.fmt".
-@item
- when entering a group, Gnus should look through the score
-files very early for `local' atoms and set those local variables.
-@item
- message annotations.
-@item
- topics are always yanked before groups, and that's not good.
-@item
- (set-extent-property extent 'help-echo "String to display in minibuf")
-to display help in the minibuffer on buttons under XEmacs.
-@item
- allow group line format spec to say how many articles there
-are in the cache.
-@item
- AUTHINFO GENERIC
-@item
- `run-with-idle-timer' in gnus-demon.
-@item
- stop using invisible text properties and start using overlays instead
-@item
- C-c C-f C-e to add an Expires header.
-@item
- go from one group to the next; everything is expunged; go to the
-next group instead of going to the group buffer.
-@item
- gnus-renumber-cache -- to renumber the cache using "low" numbers.
-@item
- record topic changes in the dribble buffer.
-@item
- `nnfolder-generate-active-file' should look at the folders it
-finds and generate proper active ranges.
-@item
- nneething-look-in-files-for-article-heads variable to control
-whether nneething should sniff all files in the directories.
-@item
- gnus-fetch-article -- start Gnus, enter group, display article
-@item
- gnus-dont-move-articles-to-same-group variable when respooling.
-@item
- when messages are crossposted between several auto-expirable groups,
-articles aren't properly marked as expirable.
-@item
- nneething should allow deletion/moving.
-@item
- TAB on the last button should go to the first button.
-@item
- if the car of an element in `mail-split-methods' is a function,
-and the function returns non-nil, use that as the name of the group(s) to
-save mail in.
-@item
- command for listing all score files that have been applied.
-@item
- a command in the article buffer to return to `summary' config.
-@item
- `gnus-always-post-using-current-server' -- variable to override
-`C-c C-c' when posting.
-@item
- nnmail-group-spool-alist -- says where each group should use
-as a spool file.
-@item
- when an article is crossposted to an auto-expirable group, the article
-should be marker as expirable.
-@item
- article mode command/menu for "send region as URL to browser".
-@item
- on errors, jump to info nodes that explain the error.  For instance,
-on invalid From headers, or on error messages from the nntp server.
-@item
- when gathering threads, make the article that has no "Re: " the parent.
-Also consult Date headers.
-@item
- a token in splits to call shrink-window-if-larger-than-buffer
-@item
- `1 0 A M' to do matches on the active hashtb.
-@item
- duplicates -- command to remove Gnus-Warning header, use the read
-Message-ID, delete the "original".
-@item
- when replying to several messages at once, put the "other" message-ids
-into a See-Also header.
-@item
- support setext: @uref{http://www.bsdi.com/setext/}
-@item
- support ProleText: @uref{http://proletext.clari.net/prole/proletext.html}
-@item
- when browsing a foreign server, the groups that are already subscribed
-should be listed as such and not as "K".
-@item
- generate font names dynamically.
-@item
- score file mode auto-alist.
-@item
- allow nndoc to change/add/delete things from documents.  Implement
-methods for each format for adding an article to the document.
-@item
- `gnus-fetch-old-headers' `all' value to incorporate
-absolutely all headers there is.
-@item
- function like `|', but concatenate all marked articles
-and pipe them to the process.
-@item
- cache the list of killed (or active) groups in a separate file.  Update
-the file whenever we read the active file or the list
-of killed groups in the .eld file reaches a certain length.
-@item
- function for starting to edit a file to put into
-the current mail group.
-@item
- score-find-trace should display the total score of the article.
-@item
- "ghettozie" -- score on Xref header and nix it out after using it
-to avoid marking as read in other groups it has been crossposted to.
-@item
- look at procmail splitting.  The backends should create
-the groups automatically if a spool file exists for that group.
-@item
- function for backends to register themselves with Gnus.
-@item
- when replying to several process-marked articles,
-have all the From end up in Cc headers?  Variable to toggle.
-@item
- command to delete a crossposted mail article from all
-groups it has been mailed to.
-@item
- `B c' and `B m' should be crosspost aware.
-@item
- hide-pgp should also hide PGP public key blocks.
-@item
- Command in the group buffer to respool process-marked groups.
-@item
- `gnus-summary-find-matching' should accept
-pseudo-"headers" like "body", "head" and "all"
-@item
- When buttifying <URL: > things, all white space (including
-newlines) should be ignored.
-@item
- Process-marking all groups in a topic should process-mark
-groups in subtopics as well.
-@item
- Add non-native groups to the list of killed groups when killing them.
-@item
- nntp-suggest-kewl-config to probe the nntp server and suggest
-variable settings.
-@item
- add edit and forward secondary marks.
-@item
- nnml shouldn't visit its .overview files.
-@item
- allow customizing sorting within gathered threads.
-@item
- `B q' shouldn't select the current article.
-@item
- nnmbox should support a newsgroups file for descriptions.
-@item
- allow fetching mail from several pop servers.
-@item
- Be able to specify whether the saving commands save the original
-or the formatted article.
-@item
- a command to reparent with the child process-marked (cf. `T ^'.).
-@item
- I think the possibility to send a password with nntp-open-rlogin
-should be a feature in Red Gnus.
-@item
- The `Z n' command should be possible to execute from a mouse click.
-@item
- more limiting functions -- date, etc.
-@item
- be able to limit on a random header; on body; using reverse matches.
-@item
- a group parameter (`absofucking-total-expiry') that will make Gnus expire
-even unread articles.
-@item
- a command to print the article buffer as postscript.
-@item
- variable to disable password fetching when opening by nntp-open-telnet.
-@item
- manual: more example servers -- nntp with rlogin, telnet
-@item
- checking for bogus groups should clean topic alists as well.
-@item
- canceling articles in foreign groups.
-@item
- article number in folded topics isn't properly updated by
-Xref handling.
-@item
- Movement in the group buffer to the next unread group should go to the
-next closed topic with unread messages if no group can be found.
-@item
- Extensive info pages generated on the fly with help everywhere --
-in the "*Gnus edit*" buffers, for instance.
-@item
- Topic movement commands -- like thread movement.  Up, down, forward, next.
-@item
- a way to tick/mark as read Gcc'd articles.
-@item
- a way to say that all groups within a specific topic comes
-from a particular server?  Hm.
-@item
- `gnus-article-fill-if-long-lines' -- a function to fill
-the article buffer if there are any looong lines there.
-@item
- `T h' should jump to the parent topic and fold it.
-@item
- a command to create an ephemeral nndoc group out of a file,
-and then splitting it/moving it to some other group/backend.
-@item
- a group parameter for nnkiboze groups that says that
-all kibozed articles should be entered into the cache.
-@item
- It should also probably be possible to delimit what
-`gnus-jog-cache' does -- for instance, work on just some groups, or on
-some levels, and entering just articles that have a score higher than
-a certain number.
-@item
- nnfolder should append to the folder instead of re-writing
-the entire folder to disk when accepting new messages.
-@item
- allow all backends to do the proper thing with .gz files.
-@item
- a backend for reading collections of babyl files nnbabylfolder?
-@item
- a command for making the native groups into foreign groups.
-@item
- server mode command for clearing read marks from all groups
-from a server.
-@item
- when following up multiple articles, include all To, Cc, etc headers
-from all articles.
-@item
- a command for deciding what the total score of the current
-thread is.  Also a way to highlight based on this.
-@item
- command to show and edit group scores
-@item
- a gnus-tree-minimize-horizontal to minimize tree buffers
-horizontally.
-@item
- command to generate nnml overview file for one group.
-@item
- `C-u C-u a' -- prompt for many crossposted groups.
-@item
- keep track of which mail groups have received new articles (in this session).
-Be able to generate a report and perhaps do some marking in the group
-buffer.
-@item
- gnus-build-sparse-threads to a number -- build only sparse threads
-that are of that length.
-@item
- have nnmh respect mh's unseen sequence in .mh_profile.
-@item
- cache the newsgroups descriptions locally.
-@item
- asynchronous posting under nntp.
-@item
- be able to control word adaptive scoring from the score files.
-@item
- a variable to make `C-c C-c' post using the "current" select method.
-@item
- `limit-exclude-low-scored-articles'.
-@item
- if `gnus-summary-show-thread' is a number, hide threads that have
-a score lower than this number.
-@item
- split newsgroup subscription variable up into "order" and "method".
-@item
- buttonize ange-ftp file names.
-@item
- a command to make a duplicate copy of the current article
-so that each copy can be edited separately.
-@item
- nnweb should allow fetching from the local nntp server.
-@item
- record the sorting done in the summary buffer so that
-it can be repeated when limiting/regenerating the buffer.
-@item
- nnml-generate-nov-databses should generate for
-all nnml servers.
-@item
- when the user does commands in the group buffer, check
-the modification time of the .newsrc.eld file and use
-ask-user-about-supersession-threat.  Also warn when trying
-to save .newsrc.eld and it has changed.
-@item
- M-g on a topic will display all groups with 0 articles in
-the topic.
-@item
- command to remove all topic stuff.
-@item
- allow exploding incoming digests when reading incoming mail
-and splitting the resulting digests.
-@item
- nnsoup shouldn't set the `message-' variables.
-@item
- command to nix out all nnoo state information.
-@item
- nnmail-process-alist that calls functions if group names
-matches an alist -- before saving.
-@item
- use buffer-invisibility-spec everywhere for hiding text.
-@item
- variable to activate each group before entering them
-to get the (new) number of articles.  `gnus-activate-before-entering'.
-@item
- command to fetch a Message-ID from any buffer, even
-starting Gnus first if necessary.
-@item
- when posting and checking whether a group exists or not, just
-ask the nntp server instead of relying on the active hashtb.
-@item
- buttonize the output of `C-c C-a' in an apropos-like way.
-@item
- `G p' should understand process/prefix, and allow editing
-of several groups at once.
-@item
- command to create an ephemeral nnvirtual group that
-matches some regexp(s).
-@item
- nndoc should understand "Content-Type: message/rfc822" forwarded messages.
-@item
- it should be possible to score "thread" on the From header.
-@item
- hitting RET on a "gnus-uu-archive" pseudo article should unpack it.
-@item
- `B i' should display the article at once in the summary buffer.
-@item
- remove the "*" mark at once when unticking an article.
-@item
- `M-s' should highlight the matching text.
-@item
- when checking for duplicated mails, use Resent-Message-ID if present.
-@item
- killing and yanking groups in topics should be better.  If killing one copy
-of a group that exists in multiple topics, only that copy should
-be removed.  Yanking should insert the copy, and yanking topics
-should be possible to be interspersed with the other yankings.
-@item
- command for enter a group just to read the cached articles.  A way to say
-"ignore the nntp connection; just read from the cache."
-@item
- `X u' should decode base64 articles.
-@item
- a way to hide all "inner" cited text, leaving just the most
-recently cited text.
-@item
- nnvirtual should be asynchronous.
-@item
- after editing an article, gnus-original-article-buffer should
-be invalidated.
-@item
- there should probably be a way to make Gnus not connect to the
-server and just read the articles in the server
-@item
- allow a `set-default' (or something) to change the default
-value of nnoo variables.
-@item
- a command to import group infos from a .newsrc.eld file.
-@item
- groups from secondary servers have the entire select method
-listed in each group info.
-@item
- a command for just switching from the summary buffer to the group
-buffer.
-@item
- a way to specify that some incoming mail washing functions
-should only be applied to some groups.
-@item
- Message `C-f C-t' should ask the user whether to heed
-mail-copies-to: never.
-@item
- new group parameter -- `post-to-server' that says to post
-using the current server.  Also a variable to do the same.
-@item
- the slave dribble files should auto-save to the slave file names.
-@item
- a group parameter that says what articles to display on group entry, based
-on article marks.
-@item
- a way to visually distinguish slave Gnusae from masters.  (Whip instead
-of normal logo?)
-@item
- Use DJ Bernstein "From " quoting/dequoting, where applicable.
-@item
- Why is hide-citation-maybe and hide-citation different?  Also
-clear up info.
-@item
- group user-defined meta-parameters.
-
-
-
-From: John Griffith <griffith@@sfs.nphil.uni-tuebingen.de>
-@item
- I like the option for trying to retrieve the FAQ for a group and I was
-thinking it would be great if for those newsgroups that had archives
-you could also try to read the archive for that group.  Part of the
-problem is that archives are spread all over the net, unlike FAQs.
-What would be best I suppose is to find the one closest to your site.
-
-In any case, there is a list of general news group archives at @*
-@uref{ftp://ftp.neosoft.com/pub/users/claird/news.lists/newsgroup_archives.html}
-
-
-
-
-@item
-@example
-From: Jason L Tibbitts III <tibbs@@hpc.uh.edu>
-(add-hook 'gnus-select-group-hook
-  (lambda ()
-    (gnus-group-add-parameter group
-       (cons 'gnus-group-date-last-entered (list (current-time-string))))))
-
-(defun gnus-user-format-function-d (headers)
-  "Return the date the group was last read."
-  (cond ((car (gnus-group-get-parameter gnus-tmp-group 'gnus-group-date-last-entered)))
-      (t "")))
-@end example
-
-@item
- tanken var at når du bruker `gnus-startup-file' som prefix (FOO) til å lete
-opp en fil FOO-SERVER, FOO-SERVER.el, FOO-SERVER.eld, kan du la den være en
-liste hvor du bruker hvert element i listen som FOO, istedet.  da kunne man
-hatt forskjellige serveres startup-filer forskjellige steder.
-
-
-@item
-LMI> Well, nnbabyl could alter the group info to heed labels like
-LMI> answered and read, I guess.
-
-It could also keep them updated (the same for the Status: header of
-unix mbox files).
-
-They could be used like this:
-
-
-@example
-`M l <name> RET' add label <name> to current message.
-`M u <name> RET' remove label <name> from current message.
-`/ l <expr> RET' limit summary buffer according to <expr>.
-
-<expr> would be a boolean expression on the labels, e.g.
-
-`/ l bug & !fixed RET'
-@end example
-
-would show all the messages which are labeled `bug' but not labeled
-`fixed'.
-
-One could also imagine the labels being used for highlighting, or
-affect the summary line format.
-
-
-@item
-Sender: abraham@@dina.kvl.dk
-
-I'd like a gnus-find-file which work like find file, except that it
-would recognize things that looks like messages or folders:
-
-- If it is a directory containing numbered files, create an nndir
-summary buffer.
-
-- For other directories, create a nneething summary buffer.
-
-- For files matching "\\`From ", create a nndoc/mbox summary.
-
-- For files matching "\\`BABYL OPTIONS:", create a nndoc/baby summary.
-
-- For files matching "\\`[^ \t\n]+:", create an *Article* buffer.
-
-- For other files, just find them normally.
-
-I'd like `nneething' to use this function, so it would work on a
-directory potentially containing mboxes or babyl files.
-
-@item
-Please send a mail to bwarsaw@@cnri.reston.va.us (Barry A. Warsaw) and
-tell him what you are doing.
-
-@item
-Currently, I get prompted:
-
-decend into sci?
-- type y
-decend into sci.something ?
-- type n
-decend into ucd?
-
-The problem above is that since there is really only one subsection of
-science, shouldn't it prompt you for only descending sci.something?  If
-there was a sci.somethingelse group or section, then it should prompt
-for sci? first the sci.something? then sci.somethingelse?...
-
-@item
-Ja, det burde være en måte å si slikt.  Kanskje en ny variabel?
-`gnus-use-few-score-files'?  Så kunne score-regler legges til den
-"mest" lokale score-fila.  F. eks. ville no-gruppene betjenes av
-"no.all.SCORE", osv.
-
-@item
-What i want is for Gnus to treat any sequence or combination of the following
-as a single spoiler warning and hide it all, replacing it with a "Next Page"
-button:
-
-
-^L's
-
-more than n blank lines
-
-more than m identical lines
-(which should be replaced with button to show them)
-
-any whitespace surrounding any of the above
-
-
-@item
-Well, we could allow a new value to `gnus-thread-ignore-subject' --
-`spaces', or something.  (We could even default to that.)  And then
-subjects that differ in white space only could be considered the
-"same" subject for threading purposes.
-
-@item
-Modes to preprocess the contents (e.g. jka-compr) use the second form
-"(REGEXP FUNCTION NON-NIL)" while ordinary modes (e.g. tex) use the first
-form "(REGEXP . FUNCTION)", so you could use it to distinguish between
-those two types of modes. (auto-modes-alist, insert-file-contents-literally.)
-
-@item
- Under XEmacs -- do funny article marks:
-tick - thumb tack
-killed - skull
-soup - bowl of soup
-score below - dim light bulb
-score over - bright light bulb
-
-@item
-Yes. I think the algorithm is as follows:
-
-@example
-Group-mode
-
-   show-list-of-articles-in-group
-        if (key-pressed == SPACE)
-                if (no-more-articles-in-group-to-select)
-                        if (articles-selected)
-                                start-reading-selected-articles;
-                        junk-unread-articles;
-                        next-group;
-                 else
-                        show-next-page;
-
-         else if (key-pressed = '.')
-                if (consolidated-menus)         # same as hide-thread in Gnus
-                        select-thread-under-cursor;
-                else
-                        select-article-under-cursor;
-
-
-Article-mode
-        if (key-pressed == SPACE)
-                if (more-pages-in-article)
-                        next-page;
-                else if (more-selected-articles-to-read)
-                        next-article;
-                else
-                        next-group;
-@end example
-
-@item
-My precise need here would have been to limit files to Incoming*.
-One could think of some `nneething-only-files' variable, but I guess
-it would have been unacceptable if one was using many unrelated such
-nneething groups.
-
-A more useful approach would be to, in response to the `G D' prompt, be
-allowed to say something like: `~/.mail/Incoming*', somewhat limiting
-the top-level directory only (in case directories would be matched by
-the wildcard expression).
-
-@item
-It would be nice if it also handled
-
-        <URL:news://sunsite.auc.dk/>
-
-which should correspond to `B nntp RET sunsite.auc.dk' in *Group*.
-
-
-@item
-
-  Take a look at w3-menu.el in the Emacs-W3 distribution - this works out
-really well.  Each menu is 'named' by a symbol that would be on a
-gnus-*-menus (where * would be whatever, but at least group, summary, and
-article versions) variable.
-
-  So for gnus-summary-menus, I would set to '(sort mark dispose ...)
-
-  A value of '1' would just put _all_ the menus in a single 'GNUS' menu in
-the main menubar.  This approach works really well for Emacs-W3 and VM.
-
-
-@item
- nndoc should take care to create unique Message-IDs for all its
-articles.
-@item
- gnus-score-followup-article only works when you have a summary buffer
-active.  Make it work when posting from the group buffer as well.
-(message-sent-hook).
-@item
- rewrite gnus-demon to use run-with-idle-timers.
-
-@item
- * Enhancements to Gnus:
-
-  Add two commands:
-
-  * gnus-servers (gnus-start-server-buffer?)--enters Gnus and goes
-    straight to the server buffer, without opening any connections to
-    servers first.
-
-  * gnus-server-read-server-newsrc--produces a buffer very similar to
-    the group buffer, but with only groups from that server listed;
-    quitting this buffer returns to the server buffer.
-
-@item
- add a command to check the integrity of an nnfolder folder --
-go through the article numbers and see that there are no duplicates,
-and stuff.
-
-@item
- `unsmileyfy-buffer' to undo smileification.
-
-@item
- a command to give all relevant info on an article, including all
-secondary marks.
-
-@item
- when doing `-request-accept-article', the backends should do
-the nnmail duplicate checking.
-
-@item
- allow `message-signature-file' to be a function to return the
-value of the signature file.
-
-@item
- In addition, I would love it if I could configure message-tab so that it
-could call `bbdb-complete-name' in other headers.  So, some sort of
-interface like
-
-(setq message-tab-alist
-      '((message-header-regexp message-expand-group)
-        ("^\\(To\\|[cC]c\\|[bB]cc\\)"  bbdb-complete-name)))
-
-then you could run the relevant function to complete the information in
-the header
-
-@item
- cache the newsgroups file locally to avoid reloading it all the time.
-
-@item
- a command to import a buffer into a group.
-
-@item
- nnweb should allow fetching by Message-ID from servers.
-
-@item
- point in the article buffer doesn't always go to the
-beginning of the buffer when selecting new articles.
-
-@item
- a command to process mark all unread articles.
-
-@item
- `gnus-gather-threads-by-references-and-subject' -- first
-do gathering by references, and then go through the dummy roots and
-do more gathering by subject.
-
-@item
- gnus-uu-mark-in-numerical-order -- process mark articles in
-article numerical order.
-
-@item
- (gnus-thread-total-score
- (gnus-id-to-thread (mail-header-id (gnus-summary-article-header))))
-bind to a key.
-
-@item
- sorting by score is wrong when using sparse threads.
-
-@item
- a command to fetch an arbitrary article -- without having to be
-in the summary buffer.
-
-@item
- a new nncvs backend.  Each group would show an article, using
-version branches as threading, checkin date as the date, etc.
-
-@item
-@uref{http://www.dejanews.com/forms/dnsetfilter_exp.html}?
-This filter allows one to construct advance queries on the Dejanews
-database such as specifying start and end dates, subject, author,
-and/or newsgroup name.
-
-@item
- new Date header scoring type -- older, newer
-
-@item
- use the summary toolbar in the article buffer.
-
-@item
- a command to fetch all articles that are less than X days old.
-
-@item
- in pick mode, `q' should save the list of selected articles in the
-group info.  The next time the group is selected, these articles
-will automatically get the process mark.
-
-@item
- Isn't it possible to (also?) allow M-^ to automatically try the
-default server if it fails on the current server?  (controlled by a
-user variable, (nil, t, 'ask)).
-
-@item
- make it possible to cancel articles using the select method for the
-current group.
-
-@item
- `gnus-summary-select-article-on-entry' or something.  It'll default
-to t and will select whatever article decided by `gnus-auto-select-first'.
-
-@item
- a new variable to control which selection commands should be unselecting.
-`first', `best', `next', `prev', `next-unread', `prev-unread' are
-candidates.
-
-@item
- be able to select groups that have no articles in them
-to be able to post in them (using the current select method).
-
-@item
- be able to post via DejaNews.
-
-@item
- `x' should retain any sortings that have been performed.
-
-@item
- allow the user to specify the precedence of the secondary marks.  Also
-allow them to be displayed separately.
-
-@item
- gnus-summary-save-in-pipe should concatenate the results from
-the processes when doing a process marked pipe.
-
-@item
- a new match type, like Followup, but which adds Thread matches on all
-articles that match a certain From header.
-
-@item
- a function that can be read from kill-emacs-query-functions to offer
-saving living summary buffers.
-
-@item
- a function for selecting a particular group which will contain
-the articles listed in a list of article numbers/id's.
-
-@item
- a battery of character translation functions to translate common
-Mac, MS (etc) characters into ISO 8859-1.
-
-@example
-(defun article-fix-m$word ()
-  "Fix M$Word smartquotes in an article."
-  (interactive)
-  (save-excursion
-    (let ((buffer-read-only nil))
-      (goto-char (point-min))
-      (while (search-forward "\221" nil t)
-        (replace-match "`" t t))
-      (goto-char (point-min))
-      (while (search-forward "\222" nil t)
-        (replace-match "'" t t))
-      (goto-char (point-min))
-      (while (search-forward "\223" nil t)
-        (replace-match "\"" t t))
-      (goto-char (point-min))
-      (while (search-forward "\224" nil t)
-        (replace-match "\"" t t)))))
-@end example
-
-@item
-@example
- (add-hook 'gnus-exit-query-functions
- (lambda ()
-   (if (and (file-exists-p nnmail-spool-file)
-            (> (nnheader-file-size nnmail-spool-file) 0))
-       (yes-or-no-p "New mail has arrived.  Quit Gnus anyways? ")
-       (y-or-n-p "Are you sure you want to quit Gnus? "))))
-@end example
-
-@item
- allow message-default-headers to be a function.
-
-@item
- new Date score match types -- < > = (etc) that take floating point
-numbers and match on the age of the article.
-
-@item
-@example
->  > > If so, I've got one gripe: It seems that when I fire up gnus 5.2.25
->  > > under xemacs-19.14, it's creating a new frame, but is erasing the
->  > > buffer in the frame that it was called from =:-O
->
->  > Hm.  How do you start up Gnus?  From the toolbar or with
->  > `M-x gnus-other-frame'?
->
->    I normally start it up from the toolbar; at
-> least that's the way I've caught it doing the
-> deed before.
-@end example
-
-@item
- all commands that react to the process mark should push
-the current process mark set onto the stack.
-
-@item
- gnus-article-hide-pgp
-Selv ville jeg nok ha valgt å slette den dersom teksten matcher
-@example
-"\\(This\s+\\)?[^ ]+ has been automatically signed by"
-@end example
-og det er maks hundre tegn mellom match-end og ----linja.  Men -det-
-er min type heuristikk og langt fra alles.
-
-@item
- `gnus-subscribe-sorted' -- insert new groups where they would have been
-sorted to if `gnus-group-sort-function' were run.
-
-@item
- gnus-(group,summary)-highlight should respect any `face' text props set
-on the lines.
-
-@item
- use run-with-idle-timer for gnus-demon instead of the
-home-brewed stuff for better reliability.
-
-@item
- add a way to select which NoCeM type to apply -- spam, troll, etc.
-
-@item
- nndraft-request-group should tally auto-save files.
-
-@item
- implement nntp-retry-on-break and nntp-command-timeout.
-
-@item
- gnus-article-highlight-limit that says when not to highlight (long)
-articles.
-
-@item
- (nnoo-set SERVER VARIABLE VALUE)
-
-@item
- nn*-spool-methods
-
-@item
- interrupitng agent fetching of articles should save articles.
-
-@item
- command to open a digest group, and copy all the articles there to the
-current group.
-
-@item
- a variable to disable article body highlights if there's more than
-X characters in the body.
-
-@item
- handle 480/381 authinfo requests separately.
-
-@item
- include the texi/dir file in the distribution.
-
-@item
- format spec to "tab" to a position.
-
-@item
- Move all prompting to the new `M-n' default style.
-
-@item
- command to display all dormant articles.
-
-@item
- gnus-auto-select-next makeover -- list of things it should do.
-
-@item
- a score match type that adds scores matching on From if From has replied
-to something someone else has said.
-
-@item
- Read Netscape discussion groups:
-snews://secnews.netscape.com/netscape.communicator.unix
-
-@item
-One command to edit the original version if an article, and one to edit
-the displayed version.
-
-@item
-@kbd{T v} -- make all process-marked articles the children of the
-current article.
-
-@item
-Switch from initial text to the new default text mechanism.
-
-@item
-How about making it possible to expire local articles?  Will it be
-possible to make various constraints on when an article can be
-expired, e.g. (read), (age > 14 days), or the more interesting (read
-& age > 14 days)?
-
-@item
-New limit command---limit to articles that have a certain string
-in the head or body.
-
-@item
-Allow breaking lengthy @sc{nntp} commands.
-
-@item
-gnus-article-highlight-limit, to disable highlighting in big articles.
-
-@item
-Editing an article should put the article to be edited
-in a special, unique buffer.
-
-@item
-A command to send a mail to the admin-address group param.
-
-@item
-A Date scoring type that will match if the article
-is less than a certain number of days old.
-
-@item
-New spec: %~(tab 56) to put point on column 56
-
-@item
-Allow Gnus Agent scoring to use normal score files.
-
-@item
-Rething the Agent active file thing.  `M-g' doesn't update the active
-file, for instance.
-
-@item
-With dummy roots, `^' and then selecing the first article
-in any other dummy thread will make Gnus highlight the
-dummy root instead of the first article.
-
-@item
-Propagate all group properties (marks, article numbers, etc) up to the
-topics for displaying.
-
-@item
-`n' in the group buffer with topics should go to the next group
-with unread articles, even if that group is hidden in a topic.
-
-@item
-gnus-posting-styles doesn't work in drafts.
-
-@item
-gnus-summary-limit-include-cached is slow when there are
-many articles in the cache, since it regenerates big parts of the
-summary buffer for each article.
-
-@item
-Implement gnus-batch-brew-soup.
-
-@item
-Group parameters and summary commands for un/subscribing to mailing
-lists.
-
-@item
-Introduce nnmail-home-directory.
-
-@item
-gnus-fetch-group and friends should exit Gnus when the user
-exits the group.
-
-@item
-The jingle is only played on the second invocation of Gnus.
-
-@item
-Bouncing articles should do MIME.
-
-@item
-Crossposted articles should "inherit" the % or @ mark from the other
-groups it has been crossposted to, or something.  (Agent.)
-
-@item
-If point is on a group that appears multiple times in topics, and
-you press `l', point will move to the first instance of the group.
-
-@item
-A spec for the group line format to display the number of
-agent-downloaded articles in the group.
-
-@item
-Some nntp servers never respond when posting, so there should be a
-timeout for all commands.
-
-@item
-When stading on a topic line and `t'-ing, point goes to the last line.
-It should go somewhere else.
-
-@item
-I'm having trouble accessing a newsgroup with a "+" in its name with
-Gnus.  There is a new newsgroup on msnews.microsoft.com named
-"microsoft.public.multimedia.directx.html+time" that I'm trying to
-access as
-"nntp+msnews.microsoft.com:microsoft.public.multimedia.directx.html+time"
-but it gives an error that it cant access the group.
-
-Is the "+" character illegal in newsgroup names?  Is there any way in
-Gnus to work around this?  (gnus 5.6.45 - XEmacs 20.4)
-
-@item
-
-When `#F', do:
-
-@example
-Subject: Answer to your mails 01.01.1999-01.05.1999
- --text follows this line--
-Sorry I killfiled you...
-
-Under the subject "foo", you wrote on 01.01.1999:
-> bar
-Under the subject "foo1", you wrote on 01.01.1999:
-> bar 1
-@end example
-
-@item
-Allow "orphan" scores in the Agent scoring.
-
-@item
-@example
-    - Edit article's summary line. 
-    - End edit
-    - Sort lines in buffer by subject
-
-    --> the old subject line appears in Summary buffer, not the one that was
-    just changed to.
-@end example
-
-
-@item
-Remove list identifiers from the subject in the summary when doing `^'
-and the like.
-
-@item
-Have the Agent write out articles, one by one, as it retrieves them,
-to avoid having to re-fetch them all if Emacs should crash while
-fetching. 
-
-@item
-Be able to forward groups of messages as MIME digests.
-
-@item
-nnweb should include the "get whole article" article when getting articles. 
-
-@item
-When I type W W c (gnus-article-hide-citation) in the summary
-buffer, the citations are revealed, but the [+] buttons don't turn
-into [-] buttons.  (If I click on one of the [+] buttons, it does
-turn into a [-] button.)
-
-@item
-Perhaps there should be a command to "attach" a buffer of comments to
-a message?  That is, `B WHATEVER', you're popped into a buffer, write
-something, end with `C-c C-c', and then the thing you've written gets
-to be the child of the message you're commenting.
-
-@item
-Handle external-body parts.
-
-@item
-When renaming a group name, nnmail-split-history does not get the group
-name renamed.
-
-@item
-Allow mail splitting on bodies when using advanced mail splitting.
-
-@lisp
-  (body "whatever.text")
-@end lisp
-
-@item
-Be able to run `J u' from summary buffers.
-
-@item
-Solve the halting problem.
+@item Gnus can now read IMAP mail via @code{nnimap}.
 
-@c TODO
 @end itemize
 
 @iftex
@@ -21708,7 +20490,7 @@ Gnus has to get from the @sc{nntp} server.
 
 @item gnus-read-active-file
 Set this to @code{nil}, which will inhibit Gnus from requesting the
-entire active file from the server.  This file is often v large.  You
+entire active file from the server.  This file is often very large.  You
 also have to set @code{gnus-check-new-newsgroups} and
 @code{gnus-check-bogus-newsgroups} to @code{nil} to make sure that Gnus
 doesn't suddenly decide to fetch the active file anyway.
@@ -21855,7 +20637,7 @@ If all else fails, report the problem as a bug.
 @kindex M-x gnus-bug
 @findex gnus-bug
 If you find a bug in Gnus, you can report it with the @kbd{M-x gnus-bug}
-command.  @kbd{M-x set-variable RET debug-on-error RET t RET}, and send
+command.  @kbd{M-x set-variable @key{RET} debug-on-error @key{RET} t @key{RET}}, and send
 me the backtrace.  I will fix bugs, but I can only fix them if you send
 me a precise description as to how to reproduce the bug.
 
@@ -22706,7 +21488,9 @@ Below is a slightly shortened version of the @code{nndir} backend.
   "*Non-nil means that nndir will never retrieve NOV headers."
   nnml-nov-is-evil)
 
-(defvoo nndir-current-group "" nil nnml-current-group nnmh-current-group)
+(defvoo nndir-current-group "" 
+  nil 
+  nnml-current-group nnmh-current-group)
 (defvoo nndir-top-directory nil nil nnml-directory nnmh-directory)
 (defvoo nndir-get-new-mail nil nil nnml-get-new-mail nnmh-get-new-mail)
 
@@ -22724,7 +21508,8 @@ Below is a slightly shortened version of the @code{nndir} backend.
   (unless (assq 'nndir-directory defs)
     (push `(nndir-directory ,server) defs))
   (push `(nndir-current-group
-          ,(file-name-nondirectory (directory-file-name nndir-directory)))
+          ,(file-name-nondirectory 
+            (directory-file-name nndir-directory)))
         defs)
   (push `(nndir-top-directory
           ,(file-name-directory (directory-file-name nndir-directory)))
@@ -22863,47 +21648,47 @@ Here's a typical score file:
 BNF definition of a score file:
 
 @example
-score-file       = "" / "(" *element ")"
-element          = rule / atom
-rule             = string-rule / number-rule / date-rule
-string-rule      = "(" quote string-header quote space *string-match ")"
-number-rule      = "(" quote number-header quote space *number-match ")"
-date-rule        = "(" quote date-header quote space *date-match ")"
-quote            = <ascii 34>
-string-header    = "subject" / "from" / "references" / "message-id" /
-                   "xref" / "body" / "head" / "all" / "followup"
-number-header    = "lines" / "chars"
-date-header      = "date"
-string-match     = "(" quote <string> quote [ "" / [ space score [ "" /
-                   space date [ "" / [ space string-match-t ] ] ] ] ] ")"
-score            = "nil" / <integer>
-date             = "nil" / <natural number>
-string-match-t   = "nil" / "s" / "substring" / "S" / "Substring" /
-                   "r" / "regex" / "R" / "Regex" /
-                   "e" / "exact" / "E" / "Exact" /
-                   "f" / "fuzzy" / "F" / "Fuzzy"
-number-match     = "(" <integer> [ "" / [ space score [ "" /
-                   space date [ "" / [ space number-match-t ] ] ] ] ] ")"
-number-match-t   = "nil" / "=" / "<" / ">" / ">=" / "<="
-date-match       = "(" quote <string> quote [ "" / [ space score [ "" /
-                   space date [ "" / [ space date-match-t ] ] ] ] ")"
-date-match-t     = "nil" / "at" / "before" / "after"
-atom             = "(" [ required-atom / optional-atom ] ")"
-required-atom    = mark / expunge / mark-and-expunge / files /
-                   exclude-files / read-only / touched
-optional-atom    = adapt / local / eval
-mark             = "mark" space nil-or-number
-nil-or-number    = "nil" / <integer>
-expunge          = "expunge" space nil-or-number
+score-file      = "" / "(" *element ")"
+element         = rule / atom
+rule            = string-rule / number-rule / date-rule
+string-rule     = "(" quote string-header quote space *string-match ")"
+number-rule     = "(" quote number-header quote space *number-match ")"
+date-rule       = "(" quote date-header quote space *date-match ")"
+quote           = <ascii 34>
+string-header   = "subject" / "from" / "references" / "message-id" /
+                  "xref" / "body" / "head" / "all" / "followup"
+number-header   = "lines" / "chars"
+date-header     = "date"
+string-match    = "(" quote <string> quote [ "" / [ space score [ "" /
+                  space date [ "" / [ space string-match-t ] ] ] ] ] ")"
+score           = "nil" / <integer>
+date            = "nil" / <natural number>
+string-match-t  = "nil" / "s" / "substring" / "S" / "Substring" /
+                  "r" / "regex" / "R" / "Regex" /
+                  "e" / "exact" / "E" / "Exact" /
+                  "f" / "fuzzy" / "F" / "Fuzzy"
+number-match    = "(" <integer> [ "" / [ space score [ "" /
+                  space date [ "" / [ space number-match-t ] ] ] ] ] ")"
+number-match-t  = "nil" / "=" / "<" / ">" / ">=" / "<="
+date-match      = "(" quote <string> quote [ "" / [ space score [ "" /
+                  space date [ "" / [ space date-match-t ] ] ] ] ")"
+date-match-t    = "nil" / "at" / "before" / "after"
+atom            = "(" [ required-atom / optional-atom ] ")"
+required-atom   = mark / expunge / mark-and-expunge / files /
+                  exclude-files / read-only / touched
+optional-atom   = adapt / local / eval
+mark            = "mark" space nil-or-number
+nil-or-number   = "nil" / <integer>
+expunge         = "expunge" space nil-or-number
 mark-and-expunge = "mark-and-expunge" space nil-or-number
-files            = "files" *[ space <string> ]
-exclude-files    = "exclude-files" *[ space <string> ]
-read-only        = "read-only" [ space "nil" / space "t" ]
-adapt            = "adapt" [ space "ignore" / space "t" / space adapt-rule ]
-adapt-rule       = "(" *[ <string> *[ "(" <string> <integer> ")" ] ")"
-local            = "local" *[ space "(" <string> space <form> ")" ]
-eval             = "eval" space <form>
-space            = *[ " " / <TAB> / <NEWLINE> ]
+files           = "files" *[ space <string> ]
+exclude-files   = "exclude-files" *[ space <string> ]
+read-only       = "read-only" [ space "nil" / space "t" ]
+adapt        = "adapt" [ space "ignore" / space "t" / space adapt-rule ]
+adapt-rule      = "(" *[ <string> *[ "(" <string> <integer> ")" ] ")"
+local           = "local" *[ space "(" <string> space <form> ")" ]
+eval            = "eval" space <form>
+space           = *[ " " / <TAB> / <NEWLINE> ]
 @end example
 
 Any unrecognized elements in a score file should be ignored, but not
@@ -23270,9 +22055,9 @@ Here's a pseudo-BNF definition of this file:
 
 @example
 active      = *group-line
-group-line  = group space high-number space low-number space flag <NEWLINE>
+group-line  = group spc high-number spc low-number spc flag <NEWLINE>
 group       = <non-white-space string>
-space       = " "
+spc         = " "
 high-number = <non-negative integer>
 low-number  = <positive integer>
 flag        = "y" / "n" / "m" / "j" / "x" / "=" group