Answers:
这是一个简单的elisp函数:
(defun labelnameref (string)
"Insert \label{ARG} \index{\nameref{ARG}} at point"
(interactive "sString for \\label and \\nameref: ")
(insert "\\label{" string "} \\index{\\nameref{" string "}}"))
此函数在迷你缓冲区中查询字符串,然后将其全部插入。要使用它,您可以将其放在.emacs中,然后通过调用它M-x labelnameref
或将其绑定到键。
如果要使用许多相似的结构,将它们编写为yasnippets可能会更容易。使用YASnippet,您可以轻松创建具有上述类似行为的代码段。例如,您可以使用以下命令(如果您要对其进行键绑定,则用适当的键绑定替换“ keybinding”):
# -*- mode: snippet -*-
# name: foo
# key: foo
# binding: "keybinding"
# --
\label{$1} \index{\nameref{$1}}
这样,您可以编写foo,然后Tab直接按将其扩展为\label{$1} \index{\nameref{$1}}
并查询$1
。