我想绘制一个特殊的图表,其中的数据如最小示例所示:第一行显示年份,第一列显示公司,在交叉点处可以找到一串数据。使用读取数组包,我可以提取每个单元格。此外,我还想分解数据的字符串。对于这样的任务,物品清单随之而来读取数组包。但是,我没能做到这一点。(不)工作示例导致
段落在 \dataA 完成之前结束。
使用 \numberlen(它应该显示列表条目的数量)我得到了 2,而不是 4。
有人能给出解决方案吗?
\documentclass{article}
\usepackage{readarray}
\readarraysepchar{;}
\setsepchar{,}
\begin{document}
\def\dataF{%
;2014;2015
A;36,3,29,4;35,6,27,8
B;19,4,35,7;23,10,33,7}
\readarray*\dataF\dataA[2,2]
\begin{tabular}{c|c}
\dataA[1,1] & \dataA[1,2] \\
\dataA[2,1] & \dataA[2,2] \\
\end{tabular}
\readlist*\numbers{\dataA[2,2]}
%\def\numbersF{\Daten[2,2]}
%\readlist*\numbers{\numbersF} % fails as well
\begin{tabular}{c|c}
\dataA[1,1] & \dataA[1,2] \\
\dataA[2,1] & \dataA[2,2] \\
\dataA[2,1] & \number[1] \\
\end{tabular}
\end{document}
答案1
您有几个拼写错误和一个误解(需要\edef
而不是\def
)。
\def\numbersF...
应该\edef\numbersF...
{\Daten[2,2]}
应该{\dataA[2,2]}
& \number[1] \\
应该& \numbers[1] \\
修订后的 MWE:
\documentclass{article}
\usepackage{readarray}
\readarraysepchar{;}
\setsepchar{,}
\begin{document}
\def\dataF{%
;2014;2015
A;36,3,29,4;35,6,27,8
B;19,4,35,7;23,10,33,7}
\readarray*\dataF\dataA[-,2]
\begin{tabular}{c|c}
\dataA[1,1] & \dataA[1,2] \\
\dataA[2,1] & \dataA[2,2] \\
\end{tabular}
\readlist*\numbers{\dataA[2,2]}
\edef\numbersF{\dataA[2,2]}
\readlist*\numbers{\numbersF} % fails as well
\begin{tabular}{c|c}
\dataA[1,1] & \dataA[1,2] \\
\dataA[2,1] & \dataA[2,2] \\
\dataA[2,1] & \numbers[1] \\
\end{tabular}
\end{document}