运行过程中\makeglossaries
我收到警告:
进程已启动:makeglossaries“设置”
makeglossaries 版本 2.12(2014-01-20)添加了词汇表类型“main”(glg、gls、glo)makeindex -s“settings.ist”-t“settings.glg”-o“settings.gls”“settings.glo”
警告:无法分叉“makeindex”:文件描述符错误,不重定向重试。这是 makeindex,版本 2.15 [MiKTeX 2.9](kpathsea + 泰语支持)。扫描样式文件 C:/Users/asus/Downloads/settings.ist................................完成(重新定义 29 个属性,忽略 0 个属性)。扫描输入文件 settings.glo....完成(接受 1 个条目,拒绝 0 个条目)。排序条目...完成(0 次比较)。生成输出文件 settings.gls....完成(写入 6 行,0 个警告)。输出写入 settings.gls。抄录写入 settings.glg。
进程正常退出
\documentclass{article}
\usepackage{glossaries}
\makeglossaries
\newglossaryentry{gloss}{
name=glossaries,
description=A package for generating glossaries in many styles
}
\begin{document}
\texttt{\gls{gloss}} is a great package!ds
\printglossaries
\end{document}
如何避免这个警告?
我的设置有什么问题?
答案1
简短回答:
这不是错误,也不是您的设置有问题。您使用的操作系统不支持 的makeglossaries
首选运行makeindex
/方法xindy
,因此它改用平台无关方法。下一个版本glossaries
(4.04) 将包含一个新版本makeglossaries
(2.14),它将具有一个新-Q
开关,您可以使用它来抑制警告。(我计划在未来几天将新版本上传到 CTAN,但我需要先对用户指南进行一些修改。)
技术答案:
makeglossaries
尝试通过使用管道重定向分叉应用程序来运行makeindex
/ 。这样做有两个原因:xindy
2>&1 |
makeindex
/xindy
不要将所有错误消息都放在记录文件中。此方法会抓取标准输出流中的消息和标准错误流中的错误,以便makeglossaries
检查常见错误并提供建议的修复方法。makeglossaries
这是使选项-q
正常工作的唯一方法。
并非所有操作系统都支持这种运行应用程序的方法,因此,如果这种方法失败,makeglossaries
则会采用更简单的方式运行应用程序,然后再解析记录文件,但这意味着如果出现问题,您将不会收到那么多诊断消息,并且该-q
选项可能不会像您预期的那样安静。
但是,如果makeindex
/xindy
运行成功并且您不介意抑制他们的消息,那么您不必担心这一点。
更新:
我已将glossaries
版本 4.04 上传到 CTAN。它有新版本makeglossaries
2.14,提供了两个新开关:(-Q
抑制此警告)和-k
(防止makeglossaries
尝试管道重定向方法,因此它只会尝试独立于平台的方法)。我还添加了一些诊断检查。