Xindy
是一个高效的索引工具,它是一个基于 perl 的外部应用程序,可以随 TexLive 发行版一起提供,但不随 MikTeX 一起提供,对于后者,您需要手动安装它,这线程可以提供帮助。对于xindy
在 TexStudio 编辑器中的配置,我成功地使用 XeLaTeX 编译imakeidx
打包和texindy
过滤,这里是该主题的讨论主题。但是,当涉及到glossaries
创建词汇表/首字母缩略词/等的 nice 包时,事情就变得更加复杂了。我想传递glossaries
包的 xindy 选项,然后配置TexStudio 用作makeglossaries
该xindy
工具,使用快捷键。我发现和makeglossaries
都texindy
列在这个编辑器的命令中,但如何在 TexStudio 中设置所有这些内容以编译带有词汇表的 PDF 文件对我来说仍然是个难题。从命令行制作词汇表并不是完成工作的优雅方式,而这种自动化可以配置到漂亮的 TexStudio 编辑器中。
在下面的 MWE 中,我只能编译 PDF 但没有词汇表列表,我想知道如何使用 TexStudio 编辑器而不是从命令行来做到这一点?
这是一个 MWE:
\documentclass{article}
\usepackage[colorlinks]{hyperref}
\usepackage[xindy]{glossaries}
\makeglossaries
\newglossaryentry{def1}{name={first definition},description={description1}}
\newglossaryentry{def2}{name={second definition},description={description2}}
\begin{document}
This is \gls{def1} and this is \gls{def2}.
\printglossaries
\end{document}
结果:
使用 arara 进行更新:
Windows 中 TexStudio 的配置:
% arara: xelatex
% arara: makeglossaries
% arara: xelatex
% arara: xelatex
\documentclass{article}
\usepackage[colorlinks]{hyperref}
\usepackage[xindy]{glossaries}
\makeglossaries
\newglossaryentry{def1}{name={first definition},description={description1}}
\newglossaryentry{def2}{name={second definition},description={description2}}
\begin{document}
This is \gls{def1} and this is \gls{def2}.
\clearpage
\printglossaries
\end{document}
现在最关键的时刻就是按下++ ALT(这是在 Windows 中,可以是 F1 或 F2,这取决于具体情况):SHIFTF?
结果:
答案1
为了简化编译并更好地控制编译步骤,我推荐使用 cool 工具arara
。该工具在文档中得到了很好的解释,您还可以从中了解什么是 arara 规则。主要思想是在根文件中设置编译步骤。这可以通过以下语法实现
% arara: <rule>
因为pdflatex
它很简单:
% arara: pdflatex
对于词汇表来说,它是:
% arara: makeglossaries
等等。
arara
您可以按如下方式设置 TeXStudio 。
找到可执行文件的位置。通常它与 TeXStudio 设置的
arara
路径相同。如果您使用的是 Unix 系统,则可以执行pdflatex
which arara
这在我的机器上导致:
/usr/texbin/arara
打开 TeXStudio 并添加一个新的用户命令,如图所示: 设置如下:
user0:Arara /usr/texbin/arara -v -l %
保存后,您就完成了 的实现
arara
。如果您想使用 TeXStudio 的内部查看器,您应该使用以下定义:user0:Arara /usr/texbin/arara -v -l % | txs:///view
要使用此新用户命令进行编译,您可以使用快捷方式或菜单:
Tools--> User--Arara
如果要使用菜单栏按钮,您可以将其添加
arara
到自定义菜单面板。
返回您的编译,您可以使用以下标题:
% arara: pdflatex: { draft: true }
% arara: makeglossaries
% arara: pdflatex: { synctex: true }
% arara: pdflatex: { synctex: true }