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: Öffne in Overleaf
\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 Der erste Versuch war Öffne in Overleaf
\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} \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 hab dann weiterhin mit gefragt 07 Jan '17, 18:59 tom75 |
Da die Punkte eine durch Komma separierte Liste darstellen, kann man diese einfach mit Hilfe von Öffne in Overleaf
\documentclass[12pt,a4paper]{scrartcl} \usepackage[utf8]{inputenc} \newcounter{anzahl} \newcounter{summe} \makeatletter \newcommand*{\processpunkteliste}[1]{% \setcounter{anzahl}{0}% \setcounter{summe}{0}% \let\aufgabennummern\@empty \let\leerzeile\@empty \let\punkte\@empty \@for \reserved@a:=#1\do{ \stepcounter{anzahl}% \addtocounter{summe}{\reserved@a}% \edef\aufgabennummern{\aufgabennummern & \theanzahl}% \edef\leerzeile{\leerzeile &}% \edef\punkte{\punkte & \reserved@a}% }% } \makeatother \processpunkteliste{2,4,5,1,10} \begin{document} \renewcommand{\arraystretch}{1.8} \begin{tabular}{|l*{\value{anzahl}}{|r}|r|} \hline Aufgabe \aufgabennummern & $\Sigma$\\ \hline maximale Punktzahl \punkte & \thesumme\\ \hline erreichte Punkte \leerzeile & \\ \hline \end{tabular} \end{document} Sollte es auch gebrochene Punktezahlen geben, kann natürlich nicht mehr einfach ein Zähler für die Punkte verwendet werden. In diesem Fall muss man dann auf andere Mittel wie das Paket Natürlich könnte man auch einen Datensatz mit beantwortet 08 Jan '17, 13:36 saputello @saputello Danke!
(10 Jan '17, 11:11)
tom75
|
In ConTeXt MKIV kann man mit dem Öffne in Overleaf
\usemodule[database] \defineseparatedlist [points] [separator=comma, left=\NC,last=\NC\NR, before=\startTABLE,after=\stopTABLE] \starttext \startseparatedlist[points] Aufgabe, 1, 2, 3, 4, 5, $\Sigma$ maximale Punktzahl, 2, 4, 5, 1, 10, 22 erreichte Punkte \stopseparatedlist \stoptext Zusammen mit dem Öffne in Overleaf
\usemodule[database,spreadsheet] \defineseparatedlist [points] [separator=comma, left=\NC,last=\NC\NR, before=\startTABLE,after=\stopTABLE] \starttext \startspreadsheet \startseparatedlist[points] Aufgabe, 1, 2, 3, 4, 5, $\Sigma$ maximale Punktzahl, 2, 4, 5, 1, 10, 22 erreichte Punkte, \getspr{1}, \getspr{3}, \getspr{2}, \getspr{0}, \getspr{9}, \getspr{B[3] + C[3] + D[3] + E[3] + F[3]} \stopseparatedlist \stopspreadsheet \stoptext beantwortet 08 Jan '17, 11:32 Henri |
Sieht für mich so aus, als wolltest Du irgendwelche Aufgaben und dazu einen Punkte/Notenspiegel setzen. Für so etwas gibt es fertige Pakete wie
exsheets
.@saputello Nein, das ist nur für das Minimalbeispiel so gewählt, ich brauch es für einen anderen Zweck, bei dem es aber auch um Zahlen geht. Nur ist das Originalbeispiel sehr umfangreich und ich habe es auf die Punkte verkürzt.
Schonmal
pgfplotstable
versucht?