pgfplotstable:如何在 pgfplotstablecreatecol 使用 pgfplotsinvokeforeach 正確處理

pgfplotstable:如何在 pgfplotstablecreatecol 使用 pgfplotsinvokeforeach 正確處理

我只得到在以下 pgfplotsinvokeforeach 循環中擴展的最後一個值(即“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}

在此輸入影像描述

相關內容