是否有一个可以自动计算所需列数的表格包?

是否有一个可以自动计算所需列数的表格包?

是否有一个表格包可以自动计算所需的列数?例如:

\documentclass{article}

\usepackage{pgf}
\usepackage{siunitx}
\usepackage{xinttools}

\begin{document}


\def\list{0,0.5,1,2.5,3,4.5,8}
\def\f(#1){#1^2}
\def\pf(#1){\pgfmathparse{\f(#1)}\num[round-precision=1,round-mode=places]{\pgfmathresult}}


\begin{tabular}{l|*{100}{c}} % Just choose 100, practically enough columns... but this ist not very elegant
  $x$ & \xintFor #1 in \list \do { & $#1$} \\\hline
  $f(x)$ & \xintFor #1 in \list \do { & $\pf(#1)$}
\end{tabular}

\end{document}

我可以选择 101 行数(对于实际目的来说已经足够大了),但这似乎不是正确的做法。那么有没有不需要此示例的列数的包呢?

答案1

在列重复中使用一些大数字*并不是那么糟糕,它amsmath matrix避免了指定列的需要,但是如果你想访问 TeX 的原始功能,即&&根据需要重复所有后续列规范,那么你可以执行以下操作

在此处输入图片描述

\documentclass{article}

\usepackage{pgf}
\usepackage{siunitx}
\usepackage{xinttools}

\begin{document}

\makeatletter
\newcolumntype{?}{!{\d@llarend&\span\@gobbletwo}}
\makeatother

\def\list{0,0.5,1,2.5,3,4.5,8}
\def\f(#1){#1^2}
\def\pf(#1){\pgfmathparse{\f(#1)}\num[round-precision=1,round-mode=places]{\pgfmathresult}}


\begin{tabular}{l|?c}
  $x$ & \xintFor #1 in \list \do { & $#1$} \\\hline
  $f(x)$ & \xintFor #1 in \list \do { & $\pf(#1)$}
\end{tabular}

\end{document}

相关内容