上一版本 (3.1.9b) 中的 DTLpiechart 问题

上一版本 (3.1.9b) 中的 DTLpiechart 问题

我对上一个版本有疑问,但相同的代码在 3.1.5b 版本中可以运行。

软件包:tikz 2021/05/15 v3.1.9a (3.1.9a)

数据工具版本:2.32

$ cat /tmp/fruits.csv 
Name,Quantity
"Apples",30
"Pears",25
"Lemons,Limes",40.5
"Peaches",34.5
"Cherries",20

这里是代码:

\documentclass[12pt,a4paper]{article}

\usepackage{datatool}
\usepackage{datapie}

\begin{document}

\DTLloaddb{fruits}{fruits.csv}
\DTLpiechart{variable=\quantity}{fruits}{\name=Name,\quantity=Quantity}

\end{document}

得出的结果为:

! Package tikz Error: Cannot parse this coordinate.

See the tikz package documentation for explanation.
Type  H <return>  for immediate help.
 ...                                              
                                                  
l.9 ...ity}{fruits}{\name=Name,\quantity=Quantity}

                                              

答案1

问题在于 tikz 的变化。您不能再通过命令给出移位坐标(我不知道他们做了什么更改)。datapie 必须调整其代码,例如以下补丁:

\documentclass[12pt,a4paper]{article}

\usepackage{datatool}
\usepackage{datapie}
\usepackage{xpatch}

\makeatletter
\xpatchcmd\DTLpiechart
 {\begin{scope}[shift={\@dtl@shift}]}
 {\edef\next{\noexpand\begin{scope}[shift={\@dtl@shift}]}\next}
 {}
 {\fail}
\makeatother 
\begin{document}

\DTLloaddb{fruits}{fruits.csv}
\DTLpiechart{variable=\quantity}{fruits}{\name=Name,\quantity=Quantity}

\end{document}

或者像这样

\documentclass[12pt,a4paper]{article}

\usepackage{datatool}
\usepackage{datapie}
\usepackage{xpatch}

\makeatletter
\xpatchcmd\DTLpiechart
 {\begin{scope}[shift={\@dtl@shift}]}
 {\begin{scope}[shift={(\dtl@angle:\dtl@cutlen)}]}
 {}
 {\fail}
\makeatother
\begin{document}

\DTLloaddb{fruits}{fruits.csv}
\DTLpiechart{variable=\quantity}{fruits}{\name=Name,\quantity=Quantity}

\end{document}

在此处输入图片描述

相关内容