这是否表明您应该运行“makeglossaries”?

这是否表明您应该运行“makeglossaries”?

在下面的评论中这个问题pdflatex,出现的情况是,如果您使用了一个使用了词汇表但尚未运行的文档,则 LaTeX 构建工具的输出中没有任何警告makeglossaries

这是真的吗?真的没有这样的警告吗?我检查了输出中warning和的出现情况(因此发现单数和复数)(不区分大小写) ,没有发现任何这样的警告。它是否碰巧没有使用这些术语/子字符串?glossarpdflatex

如果没有这样的警告:这是包装的错误pdflatexglossaries

答案1

没有办法判断词汇表是否需要更新(就像没有办法判断目录、图表等是否需要更新一样)但您可以makeglossaries通过检查文件来判断是否需要在构建过程中进行更新.aux

\makeglossaries命令会自动将信息写入文件.aux,仅供构建工具使用。这些命令的实际定义只是忽略它们的参数。此信息由makeglossaries和使用makeglossaries-lite,命令在 部分中描述前端和脚本开发人员须知用户手册中已进行了详细的说明glossaries,但它们的总结如下。

\@istfilename{文件名}

这表明makeindexxindy是必需的。文件名是 生成的自定义样式文件glossaries。如果以 结尾,.xdyxindy需要(带有-M文件名不带.xdy扩展名),否则makeindex应使用(带-s文件名)。

\@newglossary{标签}{日志}{外部}{内外}

这表示由以下项标识的词汇表所需的文件扩展名:标签\@newglossary。每个定义的词汇表都会有单独的词汇表。既不需要xindy也不makeindex需要知道标签但是标签需要具有xindy识别每个词汇表的语言和代码页设置的选项(见下文),并且对于转录消息也很有用。

\@glsorder{命令}

这表明是否需要单词或字母排序命令wordlettermakeindex字母排序需要-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并明确运行makeindexxindy,则需要检查所有其他命令。

相关内容