Archiv verlassen und diese Seite im Standarddesign anzeigen : Dynamische Tabelle
Hallo. Eine Tabelle soll sich über die ganze Seite erstrecken und eine dynamische Anzahl Spalten haben, wobei der Tabellenkopf die Zahlen von "n" bis "m" beinhaltet.
Bisher habe ich dies:
\usepackage{forloop}
\newcommand{\punkteliste}[2]{\begin{tabular*}{\linewidth}[]{@{\extracolsep\fill}}
\newcounter{punktelistectr}
\forloop{punktelistectr}{#1}{\value{punktelistectr } < #2 } %
{%
\arabic{punktelistectr} &
}
#2 \\
\hline
\forloop{punktelistectr}{#1}{\value{punktelistectr } < #2 } %
{%
&
} \\
\end{tabular*}
}
\punkteliste{5}{8}
Da fehlt natürlich die Anzahl / Ausrichtung der Spalten. Wie kann man die dynamisch einbringen?
Moin moin,
Hallo. Eine Tabelle soll sich über die ganze Seite erstrecken und eine dynamische Anzahl Spalten haben, wobei der Tabellenkopf die Zahlen von "n" bis "m" beinhaltet.
Bisher habe ich dies:
\usepackage{forloop}
\newcommand{\punkteliste}[2]{\begin{tabular*}{\linewidth}[]{@{\extracolsep\fill}}
\newcounter{punktelistectr}
Afaik ist \newcounter innerhalb einer Makrodefinition unzulässig.
Da fehlt natürlich die Anzahl / Ausrichtung der Spalten. Wie kann man die dynamisch einbringen?
Wie sollen die Spalten denn ausgerichtet werden? Zentriert?
\documentclass{article}
\usepackage{forloop,tabularx}
\newcounter{punktelistectr}
\newcounter{punkte}
\newcommand{\punkteliste}[2]{%
\setcounter{punkte}{#2}%
\addtocounter{punkte}{-#1}%
\stepcounter{punkte}%<-- also punkte = m-n+1 = Anzahl Spalten[1]
\begin{center}%
\begin{tabularx}{\linewidth}[]{@{}*{\thepunkte}{>{\centering\arraybackslash}X}@{}}
\forloop{punktelistectr}{#1}{\value{punktelistectr } < #2 } %
{%
\thepunktelistectr &
}
#2 \\
\hline
\forloop{punktelistectr}{#1}{\value{punktelistectr } < #2 } %
{%
&
} \\
\end{tabularx}
\end{center}
}
\begin{document}
\punkteliste{5}{8}
\punkteliste{12}{18}
\end{document}
wobei mir Dein zweiter \forloop schleierhaft ist.
[1] m>=n vorausgesetzt, ggf. musst Du im \punkteliste-Makro den Fall m<n abfangen ... und vllt auch gleich m-n>MAXCOLUMNS, den Du Dir gleich mit ausdenken darfst.;-)
MfG
Das ist genau was ich wollte! Danke!
Das abfangen der "Fehler" werde ich später machen, da ich zum einen der einzige bin der es benutzt und zum anderen es schon echt dämlich wäre wenn man so etwas einfaches falsch benutzt :D
Die zweite Schleife erzeugt nur eine zweite Zeile, da es einen inneren Rahmen gibt.
\begin{tabularx}{\linewidth}[]{@{}*{\thepunkte}{>{\centering\arraybackslash}X|}@{}>{\centering\arraybackslash}X}
Zudem ist eine letzte Spalte hinzugekommen in der ein Summenzeichen steht ;)
Vielen Dank für die Hilfe!
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.