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

# Citations

A citation is the acknowledgement of the original author of a mail message in the body of the reply. There are two basic citation styles which Supercite supports. The first, called nested citations is an anonymous form of citation; in other words, an indication is made that the cited line was written by someone other that the current message author (i.e., other than you, the person composing the reply), but no reference is made as to the identity of the original author. This style should look familiar since its use on the net is widespread. Here's an example of what a message buffer would look like using nested citations after multiple replies:

    >> John originally wrote this
    >> and this as well
    > Jane said that John didn't know
    > what he was talking about
    And that's what I think too.

Note that multiple inclusions of the original messages result in a nesting of the ```>`'` characters. This can sometimes be quite confusing when many levels of citations are included since it may be difficult or impossible to figure out who actually participated in the thread, and multiple nesting of ```>`'` characters can sometimes make the message very difficult for the eye to scan.

In non-nested citations, each cited line begins with an informative string attributing that line to the original author. Only the first level of attribution will be shown; subsequent citations don't nest the citation strings. The above dialog might look like this when non-nested citations are used:

    John> John originally wrote this
    John> and this as well
    Jane> Jane said that John didn't know
    Jane> what he was talking about
    And that's what I think too.

Notice here that my inclusion of Jane's inclusion of John's original message did not result in a line cited with ``Jane>John>'`.

Supercite supports both styles of citation, and the variable `sc-nested-citation-p` controls which style it will use when citing previously uncited text. When this variable is `nil` (the default), non-nested citations are used. When non-`nil`, nested citations are used.

## Citation Elements

Citation strings are composed of one or more elements. Non-nested citations are composed of four elements, three of which are directly user definable. The elements are concatenated together, in this order:

1. The citation leader. The citation leader is contained in the variable `sc-citation-leader`, and has the default value of a string containing four spaces.
2. The attribution string. This element is supplied automatically by Supercite, based on your preferences and the original message's mail headers, though you may be asked to confirm Supercite's choice. See section Selecting an Attribution for more details.
3. The citation delimiter. This string, contained in the variable `sc-citation-delimiter` visually separates the citation from the text of the line. This variable has a default value of `">"` and for best results, the string should consist of only a single character.
4. The citation separator. The citation separator is contained in the variable `sc-citation-separator`, and has the default value of a string containing a single space.

For example, suppose you were using the default values for the above variables, and Supercite provided the attribution string ``Jane'`. In this case, the composed, non-nested citation string used might be something like `" Jane> "`. This citation string will be inserted in front of every line in the original message that is not already cited.

Nested citations, being simpler than non-nested citations, are composed of the same elements, sans the attribution string. Supercite is smart enough to not put additional spaces between citation delimiters for multi-level nested citations.

## Recognizing Citations

Supercite also recognizes citations in the original article, and can transform these already cited lines in a number of ways. This is how Supercite suppresses the multiple citing of non-nested citations. Recognition of cited lines is controlled by variables analogous to those that make up the citation string as mentioned previously.

The variable `sc-citation-leader-regexp` describes how citation leaders can look, by default it matches any number of spaces or tabs. Note that since the lisp function `looking-at` is used to do the matching, if you change this variable it need not start with a leading `"^"`.

Similarly, the variables `sc-citation-delimiter-regexp` and `sc-citation-separator-regexp` respectively describe how citation delimiters and separators can look. They follow the same rule as `sc-citation-leader-regexp` above.

When Supercite composes a citation string, it provides the attribution automatically. The analogous variable which handles recognition of the attribution part of citation strings is `sc-citation-root-regexp`. This variable describes the attribution root for both nested and non-nested citations. By default it can match zero-to-many alphanumeric characters (also ".", "-", and "_"). But in some situations, Supercite has to determine whether it is looking at a nested or non-nested citation. Thus the variable `sc-citation-nonnested-root-regexp` is used to describe only non-nested citation roots. It is important to remember that if you change `sc-citation-root-regexp` you should always also change `sc-citation-nonnested-root-regexp`.

Nemacs users: For best results, try setting `sc-citation-root-regexp` to:

    "\\([-._a-zA-Z0-9]\\|\\cc\\|\\cC\\|\\ch\\|\\cH\\|\\ck\\|\\cK\\|\\ca\\|\\cg\\|\\cr\\|\\cu\\)*"

Mule users: For best results, try setting `sc-citation-root-regexp` to:

    "\\([-._a-zA-Z0-9]\\|\\cj\\)*"

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