Next: Adding Magic Words, Previous: Quick Equation, Up: Defining Label Environments

#### 3.4.3 Figure Wrapping Macro

Suppose you want to make figures not directly with the figure environment, but with a macro like

         \newcommand{\myfig}[5][tbp]{%
           \begin{figure}[#1]
             \epsimp[#5]{#2}
             \caption{#3}
             \label{#4}
           \end{figure}}

which would be called like

         \myfig[htp]{filename}{caption text}{label}{1}

Now we need to tell RefTeX that the 4th argument of the `\myfig` macro is itself a figure label, and where to find the context.

         (setq reftex-label-alist
               '(("\\myfig[]{}{}{*}{}" ?f nil nil 3)))

The empty pairs of brackets indicate the different arguments of the `\myfig` macro. The ‘`*`’ marks the label argument. `?f` indicates that this is a figure label which will be listed together with labels from normal figure environments. The `nil` entries for prefix and reference format mean to use the defaults for figure labels. The ‘`3`’ for the context method means to grab the 3rd macro argument - the caption.

As a side effect of this configuration, `reftex-label` will now insert the required naked label (without the `\label` macro) when point is directly after the opening parenthesis of a `\myfig` macro argument.

Again, here the configuration in the customization buffer:

         [INS] [DEL] Package or Detailed   : [Value Menu] Detailed:
                     Environment or \macro : [Value Menu] String: \myfig[]{}{}{*}{}
                     Type specification    : [Value Menu] Char  : f
                     Label prefix string   : [Value Menu] Default
                     Label reference format: [Value Menu] Default
                     Context method        : [Value Menu] Macro arg nr: 3
                     Magic words:
                       [INS]
                     [ ] Make TOC entry    : [Value Menu] No entry