Supercite will insert an informative reference header at the beginning of the cited body of text, which display more detail about the original article and provides the mapping between the attribution and the original author in non-nested citations. Whereas the citation string usually only contains a portion of the original author's name, the reference header can contain such information as the author's full name, email address, the original article's subject, etc. In fact any information contained in the info alist can be inserted into a reference header.
There are a number of built-in header rewrite functions supplied
by Supercite, but you can write your own custom header rewrite functions
(perhaps using the built-in ones as examples). The variable
sc-rewrite-header-list
contains the list of such header rewrite
functions. This list is consulted both when inserting the initial
reference header, and when displaying electric references.
See section Electric References.
When Supercite is initially run on a reply buffer (via
sc-cite-original
), it will automatically call one of these
functions. The one it uses is defined in the variable
sc-preferred-header-style
. The value of this variable is an
integer which is an index into the sc-rewrite-header-list
,
beginning at zero.
Below are examples of the various built-in header rewrite functions.
Please note the following: first, the text which appears in the
examples below as infokey indicates that the corresponding value
of the info key from the info alist will be inserted there.
(See section Information Keys and the Info Alist). For example, in sc-header-on-said
below, date and from correspond to the values of the
`Date:' and `From:' mail headers respectively.
Also, the string ">>>>>"
below is really the value of the
variable sc-reference-tag-string
. This variable is used in all
built-in header rewrite functions, and you can customize its value to
change the tag string globally.
Finally, the references headers actually written may omit certain parts of the header if the info key associated with infokey is not present in the info alist. In fact, for all built-in headers, if the `From:' field is not present in the mail headers, the entire reference header will be omitted (but this usually signals a serious problem either in your MUA or in Supercite's installation).
sc-no-header
nil
to produce a blank header. This header can possibly contain
a blank line after the mail-header-separator
line.
sc-no-blank-line-or-header
sc-no-header
except that any blank
line after the mail-header-separator
line will be removed.
sc-header-on-said
>>>>> On date, from said:
sc-header-inarticle-writes
>>>>> In article message-id, from writes:
sc-header-regarding-adds
>>>>> Regarding subject; from adds:
sc-header-attributed-writes
>>>>> "sc-attribution" == sc-author <sc-reply-address> writes:
sc-header-author-writes
>>>>> sc-author writes:
sc-header-verbose
>>>>> On date,
>>>>> sc-author
>>>>> from the organization of organization
>>>>> who can be reached at: sc-reply-address
>>>>> (whose comments are cited below with: "sc-cite")
>>>>> had this to say in article message-id
>>>>> in newsgroups newsgroups
>>>>> concerning the subject of subject
>>>>> see references for more details
By default, when Supercite cites the original message for the first
time, it just goes ahead and inserts the reference header indexed by
sc-preferred-header-style
. However, you may want to select
different reference headers based on the type of reply or forwarding you
are doing. You may also want to preview the reference header before
deciding whether to insert it into the reply buffer or not. Supercite
provides an optional electric reference mode which you can drop
into to give you this functionality.
If the variable sc-electric-references-p
is non-nil
,
Supercite will bring up an electric reference mode buffer and place you
into a recursive edit. The electric reference buffer is read-only, so
you cannot directly modify the reference text until you exit electric
references and insert the text into the reply buffer. But you can cycle
through all the reference header rewrite functions in your
sc-rewrite-header-list
.
You can also set a new preferred header style, jump to any header, or jump to the preferred header. The header will be shown in the electric reference buffer and the header index and function name will appear in the echo area.
The following commands are available while in electric reference mode (shown here with their default key bindings):
sc-eref-next
(n)
sc-electric-circular-p
is non-nil
, invoking
sc-eref-next
while viewing the last reference header in the list
will wrap around to the first header.
sc-eref-prev
(p)
sc-electric-circular-p
is non-nil
,
invoking sc-eref-prev
will wrap around to the last header.
sc-eref-goto
(g)
sc-rewrite-header-list
) can be specified as a numeric argument to
the command. Otherwise, Supercite will query you for the index in the
minibuffer.
sc-eref-jump
(j)
sc-preferred-header-style
.
sc-eref-setn
(s)
sc-preferred-header-style
) to the currently displayed header.
sc-eref-exit
(LFD, RET, and ESC C-c)
sc-eref-abort
(q, x)
Supercite will execute the hook sc-electric-mode-hook
before
entering electric reference mode.