自 2015 年 6 月底起已过时。
众所周知,索引工具 Xindy 不包含在 TeX 发行版 MiKTeX 中。由于 MakeIndex 不能很好地与 Unicode 配合使用,但 Xindy 可以,因此我有一个问题:
Xindy 可以手动安装吗?如果可以,如何安装?
答案1
我的以下答案自 2015 年 6 月底起就已过时。我获得了自 2015 年 6 月 25 日起更新的内部 MiKTeX 版本,但显然其他人早在一周前就已经获得了它。
请注意,目前存在一个问题,如果你将 MiKTeX 安装到包含空格的路径中(这是使用C:\\Program Files\
或C:\\Program Files (x86)\
系统文件夹时的默认设置)。请参阅沃尔菲的回答针对相应问题MiKTeX 和 Xindy 问题。
对的,这是可能的。
评论:LaTeX-Community.org 上已经发布了几篇文章 – 请参阅在 MikteX 中安装 Xindy最后Xindy 用于 MiKTeX,但你会发现一些问题。首先,用户“lartkma”提供了一些文件,这些文件已上传到 Megaupload.com,但该服务因已知原因已关闭(请参阅Megaupload 法律案件维基百科)。其次,我强烈反对他关于如何将 Xindy 安装到主 MiKTeX 安装路径的建议。我在回答本地 texmf 树的用途。但最终所有后续指令仍然源自 lartkma 的工作。
最近已提出将 xindy 纳入 MikTeX 的功能请求,其中还包括详细的、最新的安装建议。
先决条件:你需要一个 Perl 解释器——无论如何你都需要它来处理 MiKTeX 中的 Perl 脚本,参见我的回答MiKTeX 和 Perl 脚本寻求建议。
如果 Perl 安装正确,请按照说明进行操作!
如果你还没有创建本地 texmf 路径,请立即创建。请参阅在 MiKTeX 中创建本地 texmf 树。
对于 Xindy 你将需要此结构:
<localtexmf> | |--doc | | | +--xindy | |--miktex | | | +--bin | |--scripts | | | +--xindy | +--xindy | +--modules
不要忘记将该文件夹添加
<localtexmf>\miktex\bin
到 Windows 的系统变量Path
中。注意:在此答案的早期版本中,推荐的二进制路径是
<localtexmf>\bin
,我个人仍然更喜欢此路径。我实际上做的(也是我想给你的建议)是,我创建了一个从<localtexmf>\miktex\bin
到 的符号链接<localtexmf>\bin
,然后我做了不是将新链接添加到系统路径变量。另请参见维基百科:Microsoft Windows 中的符号链接。只要您位于同一驱动器上,使用软链接或连接点都没有关系(另请参阅 Superuser.com:目录连接与目录符号链接?)。顺便说一句,我更喜欢微软自己的命令行工具链接外壳扩展。获取 W32TeX 提供的 Xindy 包:http://mirror.ctan.org/systems/win32/w32tex/xindy-w32.tar.xz– 此文件包含您所需的一切。
备注:确保文件的日期为 2014.4.16 或更晚。文件夹
tex2xindy.exe
中的文件bin
的日期应为 2014.4.14 或更晚。如果不确定,请直接从W32TeX 网站。将所有文件解压到临时文件夹中。您需要一个可以解压 XZ 文件(以及 TAR 文件,但后者很常见)的程序。我的建议是7-Zip或者豌豆压缩。
文件夹中的文件
tex2xindy.exe
、xindy.mem
和进入(两个.dll 文件和另外两个.exe 文件和不再需要),所有内容进入,其他的依此类推。xindy-list.exe
bin
<localtexmf>\miktex\bin
share\texmf-dist\doc
<localtexmf>\doc
如果您已将文件
xindy.exe
和复制texindy.exe
到中<localtexmf>\miktex\bin
,请将其删除。在
<localtexmf>\miktex\bin
文件夹中创建两个空文本文件,名称分别为xindy.bat
和texindy.bat
。如果您更喜欢这样,您也可以选择.cmd
文件扩展名,但是文件名一定不被改变!将以下行复制到
xindy.bat
脚本路径中并调整为您的设置:@echo off set ScriptPath=<localtexmf>\scripts\xindy perl %ScriptPath%\xindy.pl %*
texindy.bat
当然,内容肯定略有不同:@echo off set ScriptPath=<localtexmf>\scripts\xindy perl %ScriptPath%\texindy.pl %*
备注:两种情况下第二行和第三行可以合并,但我认为上述版本更具可读性。
如果您使用默认文本编辑器记事本,请在保存对话框中确保不要保存到扩展名为 .txt 的文件:使用双引号保存
"xindy.bat"
。刷新文件名数据库 (FNDB)。具体操作方法参见在 MiKTeX 中创建本地 texmf 树。
在你最喜欢的 TeX 编辑器中,你可能需要添加对 Xindy 的调用。因为每个编辑器都不一样,所以我不能在这里写任何关于这方面的内容。
快乐索引!
这里有两个测试用例,在你最喜欢的任务管理器中,你将看到perl.exe
和的执行xindy-lisp.exe
:
创建索引:
为了方便起见,我使用了 包
imakeidx
,因为使用 选项,xindy
您可以自动调用 Xindy(实际上是texindy
!)而无需任何配置,但为此您必须先将开关添加--enable-write18
到 的调用pdflatex
(或别名--shell-escape
)。
请注意,texify
有点不同:--tex-option="--enable-write18"
。\documentclass{article} \usepackage[latin,english]{babel} % needed for "blindtext", % "english" is the active language \usepackage{blindtext,lipsum,kantlipsum} \usepackage[xindy]{imakeidx} \makeindex[columns=1] \begin{document} \section*{Package \texttt{blindtext}} \subsection*{English blindtext}\index{blindtext (package)!english} %%% see below before section "kantlipsum" for %%% \index{blindtext (package)!english|seealso{kantlipsum}} \blindtext[1] \subsection*{Latin blindtext}\index{blindtext (package)!latin} %%% see below before section "kantlipsum" for %%% \index{blindtext (package)!latin|seealso{lipsum}} {\selectlanguage{latin}% note the grouping \blindtext[1]} \newpage \index{blindtext (package)!english|seealso{kantlipsum}} \index{blindtext (package)!latin|seealso{lipsum}} \section*{Package \texttt{kantlipsum}}\index{kantlipsum} %%% see below before "\printindex" for %%% \index{kantlipsum|seealso{blindtext (package) with english option}} \kant[123] \section*{Package \texttt{lipsum}}\index{lipsum} %%% see below before "\printindex" for %%% \index{lipsum|seealso{blindtext (package) with latin option}} {\selectlanguage{latin}% actually not needed here \lipsum[123]}% note the grouping again \newpage \index{kantlipsum|seealso{blindtext (package) with english option}} \index{lipsum|seealso{blindtext (package) with latin option}} \printindex \end{document}
使用包创建词汇表
glossaries
:testfile.tex
:\documentclass{article} \usepackage[xindy]{glossaries} \makeglossaries \newglossaryentry{gloss}{ name=glossaries, description=A package for generating glossaries in many styles } \begin{document} \texttt{\gls{gloss}} is a great package! \printglossaries \end{document}
编译一次后
latex
,makeglossaries testfile
在命令行上运行。使用上面的选项和文件名,这将在后台调用xindy -L english -I xindy -M "testfile" -t "testfile.glg" -o "testfile.gls" "testfile.glo"
第二次
latex
运行后,您应该会看到结果。对于其他设置,您必须阅读 的文档glossaries
。
答案2
自 2015 年 6 月起,xindy
可在 miktex 包管理器中安装。请参阅包存储库的 5653 版本。
不要忘记更新数据库。
答案3
已经为 Windows 制作了一个非常简单的 xindy 安装程序。
查看 LaTeX Wikibook 中的条目:使用 xindy 编译词汇表 - 在 Windows 中使用 Texmaker。
备注斯佩拉韦,原为已删除的评论:
我不推荐这种安装方式:它会安装已弃用的xindy
Perl 版本。当您想要执行xindy
更新时,您很可能必须安装完整的 Perl 发行版。