reftex: Reference Styles
3.6 Reference Styles
====================
In case you defined your own macros for referencing or you are using
LaTeX packages providing specialized macros to be used instead of
‘\ref’, RefTeX provides ways to select and insert them in a convenient
way.
RefTeX comes equipped with a set of so-called reference styles where
each relates to one or more reference macros. The standard macros
‘\ref’ and ‘\pageref’ or provided by the “Default” style. The
“Varioref” style offers macros for the ‘varioref’ LaTeX package
(‘\vref’, ‘\Vref’, ‘\Ref’, ‘\vpageref’), “Fancyref” for the ‘fancyref’
package (‘\fref’, ‘\Fref’) and “Hyperref” for the ‘hyperref’ package
(‘\autoref’, ‘\autopageref’).
A style can be toggled by selecting the respective entry in the
‘Reference Style’ menu. Changes made through the menu will only last
for the Emacs session. In order to configure a preference permanently,
the variable ‘reftex-ref-style-default-list’ should be customized. This
variable specifies the list of styles to be activated. It can also be
set as a file variable if the preference should be set for a specific
file.
In case the built-in styles do not suffice, you can add additional
macros and styles to the variable ‘reftex-ref-style-alist’. Those do
not necessarily have to be related to a certain LaTeX package but can
follow an arbitrary grouping rule. For example you could define a style
called “Personal” for your personal referencing macros. (When changing
the variable you should be aware that other Emacs packages, like AUCTeX,
might rely on the entries from the default value to be present.)
Once a style is active the macros it relates to are available for
selection when you are about to insert a reference. In general this
process involves three steps: the selection of a reference macro, a
label type and a label. Reference macros can be chosen in the first and
last step.
In the first step you will be presented with a list of macros from
which you can select one by typing a single key. If you dislike having
an extra step for reference macro selection, you can disable it by
customizing ‘reftex-ref-macro-prompt’ and relying only on the selection
facilities provided in the last step.
In the last step, i.e., the label selection, two key bindings are
provided to set the reference macro. Type <v> in order to cycle forward
through the list of available macros or <V> to cycle backward. The mode
line of the selection buffer shows the macro currently selected.
In case you are not satisfied with the order of macros when cycling
through them you should adapt the order of entries in the variable
‘reftex-ref-style-alist’ to fit your liking.
For each entry in ‘reftex-ref-style-alist’ a function with the name
‘reftex-<package>-<macro>’ (e.g., ‘reftex-varioref-vref’) will be
created automatically by RefTeX. These functions can be used instead of
‘C-c )’ and provide an alternative way of having your favorite
referencing macro preselected and if cycling through the macros seems
inconvenient to you.(1)
In former versions of RefTeX only support for ‘varioref’ and
‘fancyref’ was included. ‘varioref’ is a LaTeX package to create
cross-references with page information. ‘fancyref’ is a package where a
macro call like ‘\fref{FIG:MAP-OF-GERMANY}’ creates not only the number
of the referenced counter but also the complete text around it, like
‘Figure 3 on the preceding page’. In order to make it work you need to
use label prefixes like ‘fig:’ consistently—something RefTeX does
automatically. For each of these packages a variable could be
configured to make its macros to take precedence over ‘\ref’. Those
were ‘reftex-vref-is-default’ and ‘reftex-fref-is-default’ respectively.
While still working, these variables are deprecated now. Instead of
setting them, the variable ‘reftex-ref-style-default-list’ should be
adapted now.
---------- Footnotes ----------
(1) You could, e.g., bind ‘reftex-varioref-vref’ to ‘C-c v’ and
‘reftex-fancyref-fref’ to ‘C-c f’.