![xindy 与 AUCTeX](https://linux22.com/image/354874/xindy%20%E4%B8%8E%20AUCTeX.png)
有没有办法将 xindy 与 AUCTeX 无缝集成,以便如果我C-c C-c
重复执行(或者如果我执行C-c C-a
一次),AUCTex 引擎将知道最终生成我的 .tex 源的 PDF 文件所需的命令序列,包括索引?
考虑以下 LaTeX 文档:
\documentclass{amsart}
\usepackage[xindy]{glossaries}
\makeglossaries
\newglossaryentry{x}{name={world},description={the universe}}
\begin{document}
\title{The Title}
\maketitle
Hello, \gls{x}!
\printglossaries
\end{document}
如果我运行以下序列,生成的文档不包含词汇表(见下文)。为什么?如何修复?
C-c Latex
C-c Xindy
C-c Latex
C-c View
生成的pdf文件:
答案1
AUCTeX 中有 Xindy 的条目TeX-command-list
自 2013 年以来,但可能没有人使用过它,因为它似乎是错误的。
原来楼主想运行这个命令
xindy -L english -C utf8 -I xindy -M myDoc -t myDoc.glg -o myDoc.gls myDoc.glo
是myDoc
TeX 文件的基本名称。
可以在 中自定义 Xindy 的条目TeX-command-list
。一种方法是使用customize-variable
,并在此评论,另一个稍微好一点的方法如下:将以下行添加到您的 init 文件中:
(eval-after-load "tex"
'(setf (cadr (assoc "Xindy" TeX-command-list))
"xindy -L english -C utf8 -I xindy -M %s -t %s.glg -o %s.gls %s.glo"))
AUCTeX 提供了创建自定义命令序列的可能性。例如,您可以将序列 LaTeX - Xindy - LaTeX - View 绑定到,C-c a并将以下代码添加到您的初始化文件中:
(eval-after-load "latex"
'(define-key LaTeX-mode-map (kbd "C-c a")
(lambda ()
(interactive)
(TeX-command-sequence '("LaTeX" "Xindy" "LaTeX" "View") t))))
应该可以轻松地根据您的需要调整此代码(更改键盘快捷键或序列)。