pgfplotstable:如何在 pgfplotstablecreatecol 中正确使用 pgfplotsinvokeforeach 进行处理

pgfplotstable:如何在 pgfplotstablecreatecol 中正确使用 pgfplotsinvokeforeach 进行处理

我只获得了以下 pgfplotsinvokeforeach-loop 中扩展的最后一个值(即“0”)。

我该怎么办?

顺便说一句:我想保留create col/set list。我希望这是可能的。

在此处输入图片描述

\documentclass[a4paper, landscape]{article}
\usepackage{pgfplotstable}
\pgfplotsset{compat=1.16}

\begin{document}
\pgfplotstablenew[
create on use/Names/.style={create col/set list={
$k$,$k^2$,$k^3$}},
columns={Names}
]{7}\modulotable

\pgfplotsinvokeforeach{3,2,1,0}{%
% Calculations ================
\pgfmathsetmacro{\k}{#1}
\pgfmathsetmacro{\ksquare}{\k*\k}
\pgfmathsetmacro{\kcube}{\k*\k*\k}
% Column ===================
\pgfplotstablecreatecol[
create col/set list={\k,\ksquare,\kcube}
]{\k}\modulotable
}%
\pgfplotstabletypeset[string type]\modulotable

\end{document}

答案1

\documentclass[a4paper, landscape]{article}
\usepackage{pgfplotstable}
\pgfplotsset{compat=1.16}

\begin{document}
\pgfplotstablenew[
create on use/Names/.style={create col/set list={
$k$,$k^2$,$k^3$}},
columns={Names}
]{7}\modulotable

\pgfplotsinvokeforeach{3,2,1,0}{%
% Calculations ================
\pgfmathsetmacro{\k}{#1}
\pgfmathsetmacro{\ksquare}{\k*\k}
\pgfmathsetmacro{\kcube}{\k*\k*\k}
% Column ===================
\edef\next{%
\noexpand\pgfplotstablecreatecol[
  create col/set list={\k,\ksquare,\kcube}
  ]{\k}\noexpand\modulotable}\next
}%
\pgfplotstabletypeset[string type]\modulotable

\end{document}

在此处输入图片描述

相关内容