根据标题,我正在尝试使用最新的 TexLive 编译以下内容:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{external}
\tikzexternalize
\tikzexternalenable
\usepackage{glossaries-extra}
\makenoidxglossaries{}
\begin{document}
\begin{figure}[htbp]\tikzsetnextfilename{test-figure}
\begin{tikzpicture}
\node at (0, 0) {hi, mom};
\end{tikzpicture}
\end{figure}
\printnoidxglossary{}
\end{document}
编译失败。检查后test-figure.log
我们发现:
! Too many }'s.
<argument> ...keys {glossaries-extra.sty}{docdef}}
{\PackageError {glossaries...
l.9 \makenoidxglossaries
{}
我甚至不知道如何开始调查这样的错误。我发布的代码是从我的实际用例中提炼出来的最小重现示例。我非常感谢任何形式的帮助,并愿意提供任何可能对您有帮助的东西。提前谢谢大家。
替换glossaries-extra
为glossaries
可以使 MWE 编译正常。
答案1
\tikzexternalize
交换和的顺序\makenoidxglossaries{}
似乎有效
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{external}
\usepackage{glossaries-extra}
\makenoidxglossaries{}
\tikzexternalize
\tikzexternalenable
\begin{document}
\begin{figure}[htbp]\tikzsetnextfilename{test-figure}
\begin{tikzpicture}
\node at (0, 0) {hi, mom};
\end{tikzpicture}
\end{figure}
\printnoidxglossary{}
\end{document}
奇怪的是,这似乎违背了 TikZ 手册中的建议,即\tikzexternalize
可以\usepackage{glossary}
通过放置\tikzexternalize
前 \usepackage{glossary}
。
无论是什么导致了这个问题,似乎都是由最近的更改引起的,您的示例在 TL 2020 上编译得很好,但在最新版本上确实出错了。