Elisp
Voici une fonction elisp simple pour cela:
(defun labelnameref (string)
"Insert \label{ARG} \index{\nameref{ARG}} at point"
(interactive "sString for \\label and \\nameref: ")
(insert "\\label{" string "} \\index{\\nameref{" string "}}"))
Cette fonction interroge dans le mini-tampon pour la chaîne, puis insère tout au point. Pour l'utiliser, vous pouvez le mettre dans votre .emacs puis l'invoquer via M-x labelnameref
ou le lier à une clé.
YASnippet
Si vous souhaitez utiliser de nombreuses constructions similaires, il pourrait être plus facile de les écrire sous forme de yasnippets. Avec YASnippet, vous pouvez facilement créer un extrait avec un comportement similaire à celui ci-dessus. Par exemple, vous pouvez utiliser ce qui suit (vous avez remplacé "keybinding" par un bon keybinding si vous voulez un raccourci clavier pour cela):
# -*- mode: snippet -*-
# name: foo
# key: foo
# binding: "keybinding"
# --
\label{$1} \index{\nameref{$1}}
Avec cela, vous écrivez foo et appuyez Tabdirectement après pour l'étendre \label{$1} \index{\nameref{$1}}
et le rechercher $1
.