扩展.emacs init文件中的列表

扩展.emacs init文件中的列表,emacs,auctex,Emacs,Auctex,我正在将Emacs与AUCTeX一起使用,我想在TeX命令列表中添加一个命令,即makeglossaries。 我参考了手册,取得了以下成果: (eval-after-load "tex" '(add-to-list 'TeX-command-list '("Makeglossaries" "makeglossaries %t" TeX-run-command nil (latex-mode) :help "Run makeglossarie

我正在将Emacs与AUCTeX一起使用,我想在TeX命令列表中添加一个命令,即makeglossaries。 我参考了手册,取得了以下成果:

(eval-after-load "tex"
  '(add-to-list 'TeX-command-list
       '("Makeglossaries" "makeglossaries %t" TeX-run-command nil
         (latex-mode)
         :help "Run makeglossaries script, which will choose xindy or makeindex") t))
然而,当我用C-C-C在emacs中执行此操作时,我得到

在nameOfFile”上运行带有“Makeglossaries nameOfFile.tex”的
Makeglossaries'
不要将tex文件传递给makeglossaries:
省略扩展名以生成所有词汇表,或者指定一个词汇表文件,例如nameOfFile.tex.glo,以仅生成该词汇表

信息非常清楚。我不得不改变%t,这样它就省略了“.tex”,但是我不知道怎么做,也不知道在哪里查找它。这是elisp代码吗?我不想为了这个而学习语言

有人知道我如何解决这个问题吗

提前谢谢

经过进一步研究,我发现我可以用%s替换%t.%s显然是没有扩展名的文件名,尽管我不知道这是在哪里定义的。不管怎样,这对我来说很有用:

(eval-after-load "tex"   '(add-to-list 'TeX-command-list
       '("Makeglossaries" "makeglossaries %s" TeX-run-command nil
         (latex-mode)
         :help "Run makeglossaries script, which will choose xindy or makeindex") t))
是的,那是elisp

您可以通过以下测试来测试扩展:

(equal ".tex" (substring "file.tex" -4))
要删除它,请再次使用
子字符串

(substring "file.tex" 0 -4)
负数从右边开始计算位置