Respuestas:
Aquí hay una función simple de elisp para ello:
(defun labelnameref (string)
"Insert \label{ARG} \index{\nameref{ARG}} at point"
(interactive "sString for \\label and \\nameref: ")
(insert "\\label{" string "} \\index{\\nameref{" string "}}"))
Esta función consulta en el minibúfer la cadena y luego la inserta en el punto. Para usarlo, puede ponerlo en su .emacs y luego invocarlo M-x labelnameref
o vincularlo a una tecla.
Si desea utilizar muchas construcciones similares, podría ser más fácil escribirlas como yasnippets. Con YASnippet puede crear fácilmente un fragmento con un comportamiento similar al anterior. Por ejemplo, puede usar lo siguiente (debe reemplazar "combinación de teclas" con una combinación de teclas adecuada si desea una combinación de teclas):
# -*- mode: snippet -*-
# name: foo
# key: foo
# binding: "keybinding"
# --
\label{$1} \index{\nameref{$1}}
Con esto se escribe foo y presione Tabdirectamente después ampliarlo a \label{$1} \index{\nameref{$1}}
y consulta para $1
.