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 buffer share the same article buffer.

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:")
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:")
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 that are listed in 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 shoving the articles through gnus-show-mime-method, which is metamail-buffer by default. If gnus-strict-mime is non-nil, the MIME method will only be used it there are MIME headers in the article. Set gnus-show-mime to t if you want to use MIME all the time; 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 streaming out 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 it contains gnus-article-hide-headers, which hides unwanted headers.

Other useful functions you might add to this hook is:

gnus-article-hide-citation
Hide all cited text.
gnus-article-hide-signature
Umn, hides the signature.
gnus-article-treat-overstrike
Treat `^H_' in a reasonable manner.
gnus-article-maybe-highlight
Do fancy article highlighting.
gnus-article-remove-cr
Removes trailing carriage returns.
gnus-article-de-quoted-unreadable
Do naive decoding of articles encoded with Quoted-Printable.
gnus-article-display-x-face
Displays any X-Face headers.

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

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 r, 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).

Misc Article

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-line-format
This variable is a format string along the same lines as gnus-summary-mode-line-format. It accepts exactly the same format specifications as that variable.
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' (form linefeed).

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