Go to the first, previous, next, last section, table of contents.


The Article Buffer

The articles are displayed in the article buffer, of which there is only one. All the summary buffers share the same article buffer unless you tell Gnus otherwise.

Hiding Headers

The top section of each article is the head. (The rest is the body, but you may have guessed that already.)

There is a lot of useful information in the head: the name of the person who wrote the article, the date it was written and the subject of the article. That's well and nice, but there's also lots of information most people do not want to see--what systems the article has passed through before reaching you, the Message-ID, the References, etc. ad nauseum--and you'll probably want to get rid of some of those lines. If you want to keep all those lines in the article buffer, you can set gnus-show-all-headers to t.

Gnus provides you with two variables for sifting headers:

gnus-visible-headers
If this variable is non-nil, it should be a regular expression that says what headers you wish to keep in the article buffer. All headers that do not match this variable will be hidden. For instance, if you only want to see the name of the person who wrote the article and the subject, you'd say:
(setq gnus-visible-headers "^From:\\|^Subject:")
This variable can also be a list of regexps to match headers to remain visible.
gnus-ignored-headers
This variable is the reverse of gnus-visible-headers. If this variable is set (and gnus-visible-headers is nil), it should be a regular expression that matches all lines that you want to hide. All lines that do not match this variable will remain visible. For instance, if you just want to get rid of the References line and the Xref line, you might say:
(setq gnus-ignored-headers "^References:\\|^Xref:")
This variable can also be a list of regexps to match headers to be removed. Note that if gnus-visible-headers is non-nil, this variable will have no effect.

Gnus can also sort the headers for you. (It does this by default.) You can control the sorting by setting the gnus-sorted-header-list variable. It is a list of regular expressions that says in what order the headers are to be displayed.

For instance, if you want the name of the author of the article first, and then the subject, you might say something like:

(setq gnus-sorted-header-list '("^From:" "^Subject:"))

Any headers that are to remain visible, but are not listed in this variable, will be displayed in random order after all the headers listed in this variable.

You can hide further boring headers by entering gnus-article-hide-boring-headers into gnus-article-display-hook. What this function does depends on the gnus-boring-article-headers variable. It's a list, but this list doesn't actually contain header names. Instead is lists various boring conditions that Gnus can check and remove from sight.

These conditions are:

empty
Remove all empty headers.
followup-to
Remove the Followup-To header if it is identical to the Newsgroups header.
reply-to
Remove the Reply-To header if it lists the same address as the From header.
newsgroups
Remove the Newsgroups header if it only contains the current group name.
date
Remove the Date header if the article is less than three days old.
long-to
Remove the To header if it is very long.
many-to
Remove all To headers if there are more than one.

To include the four three elements, you could say something like;

(setq gnus-boring-article-headers
      '(empty followup-to reply-to))

This is also the default value for this variable.

Using MIME

Mime is a standard for waving your hands through the air, aimlessly, while people stand around yawning.

MIME, however, is a standard for encoding your articles, aimlessly, while all newsreaders die of fear.

MIME may specify what character set the article uses, the encoding of the characters, and it also makes it possible to embed pictures and other naughty stuff in innocent-looking articles.

Gnus handles MIME by pushing the articles through gnus-show-mime-method, which is metamail-buffer by default. This function calls the external metamail program to actually do the work. One common problem with this program is that is thinks that it can't display 8-bit things in the Emacs buffer. To tell it the truth, put something like the following in your `.bash_profile' file. (You do use bash, don't you?)

export MM_CHARSET="iso-8859-1"

For more information on metamail, see its manual page.

Set gnus-show-mime to t if you want to use MIME all the time. However, if gnus-strict-mime is non-nil, the MIME method will only be used if there are MIME headers in the article. If you have gnus-show-mime set, then you'll see some unfortunate display glitches in the article buffer. These can't be avoided.

It might be best to just use the toggling functions from the summary buffer to avoid getting nasty surprises. (For instance, you enter the group `alt.sing-a-long' and, before you know it, MIME has decoded the sound file in the article and some horrible sing-a-long song comes screaming out your speakers, and you can't find the volume button, because there isn't one, and people are starting to look at you, and you try to stop the program, but you can't, and you can't find the program to control the volume, and everybody else in the room suddenly decides to look at you disdainfully, and you'll feel rather stupid.)

Any similarity to real events and people is purely coincidental. Ahem.

Customizing Articles

The gnus-article-display-hook is called after the article has been inserted into the article buffer. It is meant to handle all treatment of the article before it is displayed.

By default this hook just contains gnus-article-maybe-hide-headers, gnus-hide-boring-headers, gnus-article-treat-overstrike, and gnus-article-maybe-highlight (and under XEmacs, gnus-article-display-x-face), but there are thousands, nay millions, of functions you can put in this hook. For an overview of functions see section Article Highlighting, see section Article Hiding, see section Article Washing, see section Article Buttons and see section Article Date. Note that the order of functions in this hook might affect things, so you may have to fiddle a bit to get the desired results.

You can, of course, write your own functions. The functions are called from the article buffer, and you can do anything you like, pretty much. There is no information that you have to keep in the buffer--you can change everything. However, you shouldn't delete any headers. Instead make them invisible if you want to make them go away.

Article Keymap

Most of the keystrokes in the summary buffer can also be used in the article buffer. They should behave as if you typed them in the summary buffer, which means that you don't actually have to have a summary buffer displayed while reading. You can do it all from the article buffer.

A few additional keystrokes are available:

SPACE
Scroll forwards one page (gnus-article-next-page).
DEL
Scroll backwards one page (gnus-article-prev-page).
C-c ^
If point is in the neighborhood of a Message-ID and you press C-c ^, Gnus will try to get that article from the server (gnus-article-refer-article).
C-c C-m
Send a reply to the address near point (gnus-article-mail). If given a prefix, include the mail.
s
Reconfigure the buffers so that the summary buffer becomes visible (gnus-article-show-summary).
?
Give a very brief description of the available keystrokes (gnus-article-describe-briefly).
TAB
Go to the next button, if any (gnus-article-next-button). This only makes sense if you have buttonizing turned on.
M-TAB
Go to the previous button, if any (gnus-article-prev-button).

Misc Article

gnus-single-article-buffer
If non-nil, use the same article buffer for all the groups. (This is the default.) If nil, each group will have its own article buffer.
gnus-article-prepare-hook
This hook is called right after the article has been inserted into the article buffer. It is mainly intended for functions that do something depending on the contents; it should probably not be used for changing the contents of the article buffer.
gnus-article-display-hook
This hook is called as the last thing when displaying an article, and is intended for modifying the contents of the buffer, doing highlights, hiding headers, and the like.
gnus-article-mode-hook
Hook called in article mode buffers.
gnus-article-mode-syntax-table
Syntax table used in article buffers. It is initialized from text-mode-syntax-table.
gnus-article-mode-line-format
This variable is a format string along the same lines as gnus-summary-mode-line-format (see section Mode Line Formatting). It accepts the same format specifications as that variable, with one extension:
`w'
The wash status of the article. This is a short string with one character for each possible article wash operation that may have been performed.
gnus-break-pages
Controls whether page breaking is to take place. If this variable is non-nil, the articles will be divided into pages whenever a page delimiter appears in the article. If this variable is nil, paging will not be done.
gnus-page-delimiter
This is the delimiter mentioned above. By default, it is `^L' (formfeed).


Go to the first, previous, next, last section, table of contents.