为什么 \printglossary 拒绝打印任何内容

为什么 \printglossary 拒绝打印任何内容

有人能帮我理解一下这个简单的词汇表包用法中缺少什么吗?该文档根本没有打印任何词汇表。日志文件抱怨缺少 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,使用适当的文件名)。

相关内容