Wie erstelle ich eine Tabelle, die eine variable Anzahl von Spalten hat?
Ich möchte eine Punktetabelle erstellen, die mir aus einer kommaseparierten Liste erstellt wird, wobei die Anzahl der Einträge in dieser Liste variabel sind.
Folgendes nicht-lauffähiges Grundgerüst stelle ich mir vor:
\documentclass[12pt,a4paper]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage{tabularx}
\newcommand{\punkte}{2,4,5,1,10}
\newcommand{\anzahl}{% Soll berechnet werden: 5% }
\newcommand{\summe}{% Soll berechnet werden: 2+4+5+1+10 =22 %}
\newcommand{\aufgabennummern}{% Soll die Aufgabennummern enthalten: 1 & 2 & 3 & 4 & 5 %}
\newcommand{\leerzeile}{% Soll die leere Tabellenzeile erzeugen & & & & & % }
\begin{document}
\renewcommand{\arraystretch}{1.8}
\newcolumntype{C}{>{\centering\arraybackslash}X}
\begin{tabularx}{\textwidth}{|l*{\anzahl}{|C}|C|}
\hline
Aufgabe & \aufgabennummern & $\Sigma$\\
\hline
maximale Punktzahl & \punkte & \summe\\
\hline
erreichte Punkte & \leerzeile & \\
\hline
\end{tabularx}
\end{document}
Es sollen idealerweise nur die Punkte in `\punkte` eingegeben werden, der Rest soll "berechnet" werden. Ich habe mit `l3regex` experimentiert, aber nicht zum gewünschten Ergebnis gekommen.
Der erste Versuch war
\documentclass[12pt,a4paper]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage{tabularx}
\usepackage{l3regex}
\ExplSyntaxOn
\tl_new:N \l_my_tl
\cs_new:Npn \punkteZeile #1 {
\tl_set:Nx \l_my_tl {#1}
\regex_replace_all:nnN { , } { & } \l_my_tl
\tl_use:N \l_my_tl
}
\ExplSyntaxOff
\newcommand{\punkte}{2,4,5,1,10}
\begin{document}
\punkteZeile{\punkte}
\renewcommand{\arraystretch}{1.8}
\newcolumntype{C}{>{\centering\arraybackslash}X}
\begin{tabularx}{\textwidth}{|l*{5}{|C}|C|}
\hline
Aufgabe & 1 & 2 & 3 & 4 & 5 & $\Sigma$\\
\hline
maximale Punktzahl & \punkteZeile{\punkte} & 22\\
\hline
erreichte Punkte & & & & & & \\
\hline
\end{tabularx}
\end{document}
Dies klappt aber nicht. Ich kann nun aber hab dann weiterhin mit `\regex_count` experimentiert, um die Anzahl der Einträge in der Liste zu ermitteln. Hier bin ich überhaupt nicht in obige Tabelle `\punkteZeile{\punkte}` eintragen.weitergekommen.