bz-mof
11-06-2012, 20:02
Hallo!
Da dies mein erstes Posting in diesem Forum ist, zunächst ein großes Dankeschön an alle beteiligten für die Hilfe, die ich hier bisher (als passiver Forennutzer) gefunden habe!
Nun zu meinem Problem: Da ich oft viele Tabellen mit booktabs und den damit möglichen kürzeren Linien erstelle, wollte ich mir eine Abkürzung für
\cmidrule(lr){1-1}\cmidrule(lr){2-2}\cmidrule(lr){3-3}...
erstellen, die auf den Aufruf
\cmidrules{Anz. Spalten}
hört. Leider hat das nicht ganz funktioniert. Ich habe wohl Probleme mit einem \noalign, welches nicht direkt am Zeilenanfang steht, wenn ich meinen Befehl verwende.
Hier ist erstmal mein Minimalbeispiel:
\documentclass{article}
\usepackage{booktabs}
\def\addMyToks#1{\MyToks=\expandafter{\the\MyToks\ cmidrule(lr){#1-#1}}}
\newcommand{\cmidrules}[1]{%
\newtoks\MyToks%
\newcount\spaltenzaehler%
\MyToks={\tabularnewline}% Warum geht's nicht ohne dieses tabularnewline?
\spaltenzaehler=0\relax%
\loop%
\advance\spaltenzaehler 1\relax%
\expandafter\addMyToks\expandafter{\the\spaltenzae hler}%
\ifnum\spaltenzaehler<#1%
\repeat%
\the\MyToks%
}%
\begin{document}
\begin{tabular}{ccc}
\toprule
foo & foo & foo \tabularnewline %soll so bleiben
\cmidrules{3}
1 & 11 & 1111111 \tabularnewline
2 & 22 & 2222222 \tabularnewline
\bottomrule
\end{tabular}
\end{document}
Mein Problem ist, daß ich eigentlich das \tabularynewline in Zeile 8 nicht haben möchte, ohne aber massig "! Misplaced \noalign."-Fehler kommen. Die anscheined einfache Lösung, die entsprechenden \tabularnewline in den Tabellen (hier z.B. nach "foo & foo & foo") wegzulassen, möchte ich nicht nutzen.
Kann mir jemand erklären, was das genaue Problem ist bzw. warum mein Kommando nach dem Expandieren KEIN \noalign (aus dem expandierten \cmidrule) an erster Stelle hat?
Vielen Dank im Voraus!
Da dies mein erstes Posting in diesem Forum ist, zunächst ein großes Dankeschön an alle beteiligten für die Hilfe, die ich hier bisher (als passiver Forennutzer) gefunden habe!
Nun zu meinem Problem: Da ich oft viele Tabellen mit booktabs und den damit möglichen kürzeren Linien erstelle, wollte ich mir eine Abkürzung für
\cmidrule(lr){1-1}\cmidrule(lr){2-2}\cmidrule(lr){3-3}...
erstellen, die auf den Aufruf
\cmidrules{Anz. Spalten}
hört. Leider hat das nicht ganz funktioniert. Ich habe wohl Probleme mit einem \noalign, welches nicht direkt am Zeilenanfang steht, wenn ich meinen Befehl verwende.
Hier ist erstmal mein Minimalbeispiel:
\documentclass{article}
\usepackage{booktabs}
\def\addMyToks#1{\MyToks=\expandafter{\the\MyToks\ cmidrule(lr){#1-#1}}}
\newcommand{\cmidrules}[1]{%
\newtoks\MyToks%
\newcount\spaltenzaehler%
\MyToks={\tabularnewline}% Warum geht's nicht ohne dieses tabularnewline?
\spaltenzaehler=0\relax%
\loop%
\advance\spaltenzaehler 1\relax%
\expandafter\addMyToks\expandafter{\the\spaltenzae hler}%
\ifnum\spaltenzaehler<#1%
\repeat%
\the\MyToks%
}%
\begin{document}
\begin{tabular}{ccc}
\toprule
foo & foo & foo \tabularnewline %soll so bleiben
\cmidrules{3}
1 & 11 & 1111111 \tabularnewline
2 & 22 & 2222222 \tabularnewline
\bottomrule
\end{tabular}
\end{document}
Mein Problem ist, daß ich eigentlich das \tabularynewline in Zeile 8 nicht haben möchte, ohne aber massig "! Misplaced \noalign."-Fehler kommen. Die anscheined einfache Lösung, die entsprechenden \tabularnewline in den Tabellen (hier z.B. nach "foo & foo & foo") wegzulassen, möchte ich nicht nutzen.
Kann mir jemand erklären, was das genaue Problem ist bzw. warum mein Kommando nach dem Expandieren KEIN \noalign (aus dem expandierten \cmidrule) an erster Stelle hat?
Vielen Dank im Voraus!