在下面的评论中这个问题pdflatex
,出现的情况是,如果您使用了一个使用了词汇表但尚未运行的文档,则 LaTeX 构建工具的输出中没有任何警告makeglossaries
。
这是真的吗?真的没有这样的警告吗?我检查了输出中warning
和的出现情况(因此发现单数和复数)(不区分大小写) ,没有发现任何这样的警告。它是否碰巧没有使用这些术语/子字符串?glossar
pdflatex
如果没有这样的警告:这是包装的错误pdflatex
吗glossaries
?
答案1
没有办法判断词汇表是否需要更新(就像没有办法判断目录、图表等是否需要更新一样)但您可以makeglossaries
通过检查文件来判断是否需要在构建过程中进行更新.aux
。
该\makeglossaries
命令会自动将信息写入文件.aux
,仅供构建工具使用。这些命令的实际定义只是忽略它们的参数。此信息由makeglossaries
和使用makeglossaries-lite
,命令在 部分中描述前端和脚本开发人员须知用户手册中已进行了详细的说明glossaries
,但它们的总结如下。
\@istfilename{
文件名}
这表明makeindex
或xindy
是必需的。文件名是 生成的自定义样式文件glossaries
。如果以 结尾,.xdy
则xindy
需要(带有-M
文件名不带.xdy
扩展名),否则makeindex
应使用(带-s
文件名)。
\@newglossary{
标签}{
日志}{
外部}{
内外}
这表示由以下项标识的词汇表所需的文件扩展名:标签\@newglossary
。每个定义的词汇表都会有单独的词汇表。既不需要xindy
也不makeindex
需要知道标签但是标签需要具有xindy
识别每个词汇表的语言和代码页设置的选项(见下文),并且对于转录消息也很有用。
\@glsorder{
命令}
这表明是否需要单词或字母排序命令是word
或letter
。makeindex
字母排序需要-l
切换 ,xindy
您需要使用-M ord/letorder
。
\@gls@extramakeindexopts{
选项}
这可能不会发生,但如果存在选项必须传递给makeindex
。最常见的情况是,\@gls@extramakeindexopts{-g}
它由引号字符的变化触发:
\GlsSetQuote{+}
(该命令只能与 一起使用makeindex
。)
接下来的两个命令仅在使用时出现xindy
:
\@xdylanguage{
标签}{
语言}
这表明标签应该具有给定的语言。(传递给xindy
。-L
)这通常是文档语言标签,可能与xindy
语言标签不同。(makeglossaries
具有一组将babel
标签转换为已知xindy
语言的映射。轻量级 Luamakeglossaries-lite
没有。)如果构建工具无法翻译语言标签,则文档必须设置正确的xindy
语言。
\@gls@codepage{
标签}{
代码}
这是代码页(传递给xindy
)-C
。同样,它可能需要由构建工具从inputenc
标签 转换为 可识别的标签xindy
。
因此,确定是否makeglossaries
需要的最简单方法是搜索\@istfilename{
文件名}
在.aux
文件中。如果您想绕过makeglossaries
并明确运行makeindex
或xindy
,则需要检查所有其他命令。