我将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))
答案 0 :(得分:1)
是的,那是elisp。
您可以使用以下测试来测试扩展名:
(equal ".tex" (substring "file.tex" -4))
要删除它,请再次使用substring
:
(substring "file.tex" 0 -4)
负数从右侧算起位置。