PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Variable Anzahl horizontaler Linien in Tabellen



vonNixNeAhnung
28-03-2008, 20:00
Hallo,

ich spiele gerade ein bischen mit Tabellen herum und habe ein kleines Problem:
Ich möchte ein Makro mit einem Parameter x, dass in einer Tabelle x horizontale Linien einfügt.
Hier mein Minimalbeispiel:


\documentclass[10pt,twoside,a4paper]{book}

\RequirePackage{ifthen}
\RequirePackage{forloop}

\newcounter{linectr}
\providecommand\multiline[1]{\forloop[1]{linectr}{1}{\value{linectr} #1}{\hline}}%

\begin{document}
\begin{tabular}{llll}
a & b & c & d \tabularnewline
\multiline{5} % macht 5 mal \hline
a & b & c & d \tabularnewline
a & b & c & d \tabularnewline
a & b & c & d \tabularnewline
a & b & c & d
\end{tabular}
\end{document}


Das bricht aber mit dem Fehler


! Misplaced \noalign.
\hline ->\noalign
{\ifnum 0=`}\fi \hrule \@height \arrayrulewidth \futurelet...
l.12 \multiline{5}
% macht 4 mal \hline
?

ab.

Manuell (ohne forloop-Schleife) funktionierts: \hline\hline\hline ...
Was mache ich falsch?

Stefan_K
28-03-2008, 22:04
Hallo,

der Vergleich mit dem manuellen \hline\hline\hline... passt nicht ganz: versuch mal {\hline}{\hline}{\hline} ;)

Entweder mach es anders als mit forloop oder repariere es etwa mit
\forloop[1]{...}{\tabularnewline[negativer Korrekturabstand]\hline}}%

Viele Grüße,

Stefan

vonNixNeAhnung
29-03-2008, 11:22
Hallo,
Entweder mach es anders als mit forloop oder repariere es etwa mit
\forloop[1]{...}{\tabularnewline[negativer Korrekturabstand]\hline}}%


Wie könnte man das denn anders machen als mit forloop (ausser mit plainTeX)?

Stefan_K
31-03-2008, 00:28
Hallo,

ich würde es ansonsten entweder mit plain tex machen, oder mit forloop (und plain tex) eine Sequenz \hline\hline\hline... zusammenbauen statt {\hline}{\hline} o.ä. oder, recht direkt, die nicht mehrfach \hline wiederholen sondern das in \hline enthaltene \hrule mehrfach ausführen.

Stefan