Elisp
Hier ist eine einfache Elisp-Funktion dafür:
(defun labelnameref (string)
"Insert \label{ARG} \index{\nameref{ARG}} at point"
(interactive "sString for \\label and \\nameref: ")
(insert "\\label{" string "} \\index{\\nameref{" string "}}"))
Diese Funktion fragt im Minibuffer nach der Zeichenfolge und fügt dann alles an der Stelle ein. Um es zu verwenden, können Sie es in Ihre .emacs einfügen und es dann über aufrufen M-x labelnameref
oder an einen Schlüssel binden.
YASnippet
Wenn Sie viele ähnliche Konstrukte verwenden möchten, ist es möglicherweise einfacher, sie als Yasnippets zu schreiben. Mit YASnippet können Sie ganz einfach ein Snippet mit einem ähnlichen Verhalten wie oben erstellen. Sie können beispielsweise Folgendes verwenden (Sie müssen "Tastenkombination" durch eine ordnungsgemäße Tastenkombination ersetzen, wenn Sie eine Tastenkombination dafür wünschen):
# -*- mode: snippet -*-
# name: foo
# key: foo
# binding: "keybinding"
# --
\label{$1} \index{\nameref{$1}}
Damit schreiben Sie foo und drücken Tabdirekt danach, um es zu erweitern \label{$1} \index{\nameref{$1}}
und abzufragen $1
.