auctex
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[AUCTeX] Referencing labels with refstyle.sty


From: Alan Ristow
Subject: [AUCTeX] Referencing labels with refstyle.sty
Date: Wed, 11 Jul 2007 15:33:08 -0400
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.4) Gecko/20070604 Thunderbird/2.0.0.4 Mnenhy/0.7.5.0

Hi,

I often use refstyle.sty for managing cross-references. Since there doesn't seem to be a refstyle.el anywhere, I'm trying to modify my .emacs file to get RefTeX to insert references that are formatted for it. Without going into too much detail about refstyle itself, when I have:

\label{fig:foo}

it lets me write:

\figref{foo}

to mean:

Figure~\ref{fig:foo}

It has similar functionality for tables, equations, sections, chapters, etc., but once I have set up for one I should be able to easily extend it to the others. Focusing only on figures for the moment, I first tried this:

(setq reftex-label-alist
      '(("figure"   ?f "fig:"  "\\figref{%s}"  caption nil)))

This gets me halfway there, inserting \figref{fig:foo} rather than the \figref{foo} that I would like. Not being much of a Lisp programmer, after some struggle I came up with

(setq reftex-label-alist
      '(("figure"   ?f "fig:"  reftex-format-ref-function  caption nil)))

(defun reftex-format-ref-function (label default)
  (concat "\\" (replace-match "ref{" nil nil label ":") "}")
)

My intention here was to take the "fig:foo" label and replace ":" with "ref{", leaving me with "figref{foo", which I then concatenate between "\\" and "}" to give me "\\figref{foo}". In theory, anyway -- it doesn't work, telling me "reftex-reference: Wrong type argument: stringp, reftex-format-ref-function" when I try to insert a figure reference via C-c ) f.

I've done enough programming in enough languages to suspect that this is really a rather simple task, but thanks to my poor Lisp skills I'm finding myself totally lost. I think I need some help. Am I even close to a reasonable solution?

Thanks,

Alan





reply via email to

[Prev in Thread] Current Thread [Next in Thread]