扩展.emacs init文件中的列表

时间:2014-11-21 16:40:17

标签: 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 makeglossaries script, which will choose xindy or makeindex") t))

然而,当我在带有C-c C-c的emacs中执行此操作时,我得到了

运行Makeglossaries' on nameOfFile'用``makeglossaries nameOfFile.tex'' 不要将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))

1 个答案:

答案 0 :(得分:1)

是的,那是elisp。

您可以使用以下测试来测试扩展名:

(equal ".tex" (substring "file.tex" -4))

要删除它,请再次使用substring

(substring "file.tex" 0 -4)

负数从右侧算起位置。