有没有办法修复 pgf-pie 和 tkz-euclide 错误未定义控制序列 @t noexpand 之间的冲突?

有没有办法修复 pgf-pie 和 tkz-euclide 错误未定义控制序列 @t noexpand 之间的冲突?

我正在使用 Overleaf。
如果我同时加载tkz-euclide包和pgf-pie包,我会在每个饼图中得到以下错误:pgfpie @t \noexpand,并且图表不显示扇区的标签。

只使用pgf-pie包 不使用包tkz-euclide,饼图上的标签都很好。有没有办法同时使用这两种标签而不出现错误。

这是我的代码:

\documentclass[11pt]{exam}
\usepackage{tkz-euclide}
\usepackage{pgf-pie}
% \printanswers
\begin{document}
%%%%%%%%%%%%%%%%%%%%%%
\begin{questions}
\question first question

\begin{tikzpicture}
\pie[color={black!10, black!20, black!30, black!40}]
{10/A, 20/B, 30/C, 40/D}
\pie[pos={8,0}, color=blue!20] {10/A, 20/B, 30/C, 40/D}
\end{tikzpicture}
\end{questions}
\end{document}

答案1

这是 v0.5 或更早版本pgf-pie与 tikz 库babel.loads以及后者包 loads及其库之间的兼容性问题。tkz-euclidetkz-basetikzbabel

  • 好消息:该问题已在 2021 年 7 月发布的 v0.6 中得到解决pgf-pie,请参阅相关问题pgf-派#10, 公关pgf-派#11,以及发行说明中的​​“错误修复”部分
  • 坏消息:Overleaf 的 texlive 2021 仍使用 v0.5。要访问pgf-piev0.6 或更新版本,我想您需要等待 overleaf 升级到 texlive 2022。

除了手动上传包文件之外,您还可以使用以下补丁作为pgf-piev0.5 的快速解决方法。

\documentclass{article}
\usepackage{tkz-euclide} % or just \usepackage{tikz} \usetikzlibrary{babel}
\usepackage{pgf-pie}

\usepackage{xpatch}
% workaround for pgfpie v0.5, provided by Overleaf's texlive 2021
\makeatletter
\IfPackageAtLeastTF{pgf-pie}{2021/07/30}{}{%
  \xpretocmd\pgfpie@@pie
    {\scope[handle active characters in nodes=false]}
    {}{\PatchFailed}%
  \xapptocmd\pgfpie@@pie
    {\endscope}
    {}{\PatchFailed}%
}
\makeatother

\begin{document}
\begin{tikzpicture}
   \pie {10/A, 20/B, 30/C, 40/D}
\end{tikzpicture}
\end{document}

相关内容