xindy 与 AUCTeX

xindy 与 AUCTeX

有没有办法将 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}

如果我运行以下序列,生成的文档不包含词汇表(见下文)。为什么?如何修复?

  1. C-c Latex
  2. C-c Xindy
  3. C-c Latex
  4. C-c View

生成的pdf文件:

生成的 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

myDocTeX 文件的基本名称。

可以在 中自定义 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))))

应该可以轻松地根据您的需要调整此代码(更改键盘快捷键或序列)。

相关内容