我无法使用该glossaries
软件包打印词汇表和缩写目录。它生成一个空白页,我在其中调用\makeglossaries
。我怀疑 biber、babel 或我的构建目录可能会干扰它。
我的main.tex
样子是这样的:
\documentclass{report}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[english,ngerman]{babel}
\usepackage{biblatex}
\usepackage[xindy]{glossaries}
\setacronymstyle{long-short}
\shorthandoff{"}
\makeglossaries
\addbibresource{head/bibliography.bib}
\loadglsentries{head/glossary}
\begin{document}
...40 pages of actual content about \gls{acr:ipd} and
\gls{BIM} and even more \gls{acr:ipd}...
\printglossaries
\printbibliography
\end{document}
在glossary.tex
目录中head
:
\newglossaryentry{BIM}{name={Building Information Modeling},description={3D and shit. \lipsum}}
\newacronym{acr:ipd}{IPD}{Integrated Project Delivery}
为了简洁起见,我确信不相关的包被省略了。
我已将 TexStudio 配置为运行以下序列:
pdflatex.exe -src -synctex=1 -interaction=nonstopmode -aux-directory=build main.tex
makeglossaries.exe -d build main
biber.exe --input_directory build --output_directory build main
pdflatex.exe -src -synctex=1 -interaction=nonstopmode -aux-directory=build main.tex
pdflatex.exe -src -synctex=1 -interaction=nonstopmode -aux-directory=build main.tex
问题似乎是 makeglossaries 实际上什么都没做。它只记录
makeglossaries version 4.41 (2018-07-23)
Changed to 'build'
当我手动运行 makeglossaries 时,没有文件发生更改。我已手动将 Perl 目录添加到 ENV;可从我的工作目录访问它。我已尝试根据文档切换到 xindy 并返回,但无济于事。我已切换 biber 和 makeglossaries 的顺序。build
每次尝试后我都会删除该目录。
出了什么问题?
更新:我已确认 makeglossaries 确实不执行任何操作。在单独的目录中运行 MWE 可获得所需的结果,并且 makeglossaries 的控制台输出更为详细。
答案1
事实证明,makeglossaries
问题出在脚本上。它什么都没做。不知道为什么。幸运的是,它除了调用Xindy
或 之外,不应该做太多事情Makeindex
。我通过使用名为 的文件绕过它解决了这个问题build.bat
:
pdflatex.exe -src -synctex=1 -interaction=nonstopmode -aux-directory=build main.tex
xindy -L german -C din5007-utf8 -I xindy -M "build\main" -t "build\main.glg" -o "build\main.gls" "build\main.glo"
biber.exe --input_directory build --output_directory build main
pdflatex.exe -src -synctex=1 -interaction=nonstopmode -aux-directory=build main.tex
pdflatex.exe -src -synctex=1 -interaction=nonstopmode -aux-directory=build main.tex
因为我喜欢使用 TexStudio,所以我将第二行设置为配置中的 makeglossaries 命令并继续我的常规构建序列。