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.2
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.
You could, e.g., bind
reftex-varioref-vref
to C-c v and
reftex-fancyref-fref
to C-c f.