Mosè Giordano <m...@gnu.org> writes: Hi Mosè,
> 2015-08-18 22:19 GMT+02:00 Arash Esbati <esb...@gmx.de>: [...] >> My question is, does AUCTeX has something equivalent to `reftex-label' >> or should I just read the label as a string? > > To insert a new label there is `TeX-arg-define-label', instead to read > a label we have `TeX-arg-label'. There is also `LaTeX-label' to > insert the whole "\label{}" macro (which is probably what you're > looking for, right?). thanks for your response. Indeed, I want to read-in the label and then insert it at once with the caption text. The issue with the other functions you mentioned is that they insert text at point upon execution, i.e.: --8<---------------cut here---------------start------------->8--- \begin{figure} % with (reftex-label nil t): Works \captionbox{foobar\label{fig:foo}}{} % with (TeX-arg-define-label) \captionbox{fig:foo}{foobar\label{nil}}{} % with (LaTeX-label 'environment) \captionbox\label{fig:foo}{foobar\label{fig:foo}}{} \end{figure} --8<---------------cut here---------------end--------------->8--- The function was modified like this: --8<---------------cut here---------------start------------->8--- (defun LaTeX-arg-caption-captionbox (optional &optional prompt) "Query for the arguments of `\\captionbox' incl. a label and insert them." (let* ((caption (TeX-read-string (TeX-argument-prompt optional prompt "Caption"))) (label ; (if (fboundp 'reftex-label) Version 1 ; (reftex-label nil t) Version 1 ; (TeX-read-string (TeX-argument-prompt optional prompt "Label"))) Version 1 ; (TeX-arg-define-label optional prompt) ; Version 2 (LaTeX-label 'environment) ;; Version 3 ) (width (completing-read (TeX-argument-prompt t prompt "Width") (mapcar (lambda(elt) (concat TeX-esc (car elt))) (LaTeX-length-list)))) (inpos (completing-read (TeX-argument-prompt t prompt "Inner position") '("c" "l" "r" "s"))) (heading (format "%s\\label{%s}" caption label))) (LaTeX-indent-line) (TeX-argument-insert heading optional) (cond (;; 2 optional args (and width (not (string-equal width "")) inpos (not (string-equal inpos ""))) (insert (format "[%s][%s]" width inpos))) (;; 1st empty opt. arg, 2nd opt. arg (and (string-equal width "") inpos (not (string-equal inpos ""))) (insert (format "[][%s]" inpos))) (;; 1st opt. arg, 2nd empty opt. arg (and width (not (string-equal width "")) (string-equal inpos "")) (insert (format "[%s]" width))) (t ; Do nothing if both empty (ignore))) (LaTeX-fill-paragraph))) --8<---------------cut here---------------end--------------->8--- > As a rule of thumb, in AUCTeX you should always use these functions > and avoid using reftex' ones, since the jobs are seamlessly > transferred to the reftex equivalents if `reftex-plug-into-AUCTeX' has > been called. Of course, you're right. But do you a hint how I can achieve the desired result with AUCTeX functions? Or am I missing something? Best, Arash _______________________________________________ auctex-devel mailing list auctex-devel@gnu.org https://lists.gnu.org/mailman/listinfo/auctex-devel