有人能帮我理解一下这个简单的词汇表包用法中缺少什么吗?该文档根本没有打印任何词汇表。日志文件抱怨缺少 test.acr 和 test.gls。
我已经调查了相关问题\printglossary 不产生任何内容 但这似乎没有帮助。
通常我使用 texi2dvi 来编译我的文档。如果我需要手动运行 makeglossaries(或作为 makefile 的一部分),那么使用它的模型是什么。
\documentclass[11pt]{report}
\usepackage[acronym,numberedsection]{glossaries}
\makeglossaries
\newglossaryentry{xyzzy}
{
name=\ensuremath{\bigcup V},
description={Unary union operator}
}
\newacronym{gcd}{GCD}{Greatest Common Divisor}
\begin{document}
\gls{xyzzy}
\acrshort{gcd}
\appendix
\chapter{Test chapter}
\printglossary[type=\acronymtype,title={Custom acronyms title}]
\printglossary[title={Custom glossary title}]
\end{document}
答案1
除非你修改旧texi2dvi
脚本来解决这个问题makeglossaries
,否则我认为你无法摆脱它。
使用新版本arara
(版本 4),您只需在文档顶部添加一些内容并使用以下命令进行编译arara
:
% arara: pdflatex
% arara: makeglossaries if changed('acn') || changed('glo')
% arara: pdflatex if changed('acn') || changed('glo')
\documentclass[11pt]{report}
\usepackage[acronym,numberedsection]{glossaries}
\makeglossaries
\newglossaryentry{xyzzy}
{
name=\ensuremath{\bigcup V},
description={Unary union operator}
}
\newacronym{gcd}{GCD}{Greatest Common Divisor}
\begin{document}
\gls{xyzzy}
\acrshort{gcd}
\appendix
\chapter{Test chapter}
\printglossary[type=\acronymtype,title={Custom acronyms title}]
\printglossary[title={Custom glossary title}]
\end{document}
arara
第一次运行将显示
> arara jim
__ _ _ __ __ _ _ __ __ _
/ _` | '__/ _` | '__/ _` |
| (_| | | | (_| | | | (_| |
\__,_|_| \__,_|_| \__,_|
Processing 'jim.tex' (size: 585 bytes, last modified: 07/12/2018
12:22:13), please wait.
(PDFLaTeX) PDFLaTeX engine .............................. SUCCESS
(MakeGlossaries) The MakeGlossaries software ............ SUCCESS
(PDFLaTeX) PDFLaTeX engine .............................. SUCCESS
Total: 1.52 seconds
第二次我们得到
> arara jim
__ _ _ __ __ _ _ __ __ _
/ _` | '__/ _` | '__/ _` |
| (_| | | | (_| | | | (_| |
\__,_|_| \__,_|_| \__,_|
Processing 'jim.tex' (size: 585 bytes, last modified: 07/12/2018
12:22:13), please wait.
(PDFLaTeX) PDFLaTeX engine .............................. SUCCESS
Total: 0.79 seconds
makeglossaries
这表明和的不必要的运行pdflatex
没有执行。
或者,使用latexmk
:将一个名为的文件添加latexmkrc
到工作目录中,其中包含
add_cus_dep('glo', 'gls', 0, 'run_makeglossaries');
add_cus_dep('acn', 'acr', 0, 'run_makeglossaries');
sub run_makeglossaries {
if ( $silent ) {
system "makeglossaries -q '$_[0]'";
}
else {
system "makeglossaries '$_[0]'";
};
}
(图片来源:https://tex.stackexchange.com/a/44316/4427)
并运行(latexmk -pdf jim
当然texi2dvi -p jim
,使用适当的文件名)。