![上一版本 (3.1.9b) 中的 DTLpiechart 问题](https://linux22.com/image/452115/%E4%B8%8A%E4%B8%80%E7%89%88%E6%9C%AC%20(3.1.9b)%20%E4%B8%AD%E7%9A%84%20DTLpiechart%20%E9%97%AE%E9%A2%98.png)
我对上一个版本有疑问,但相同的代码在 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}