Ich habe folgendes Problem. Ich verwende das tabu
Paket zum Erstellen von Tabellen, aber statt einer Formatzeichenfolge wie dieser: \begin{tabu}{ccc}
möchte ich eine Formatzeichenfolge wie diese verwenden (als Zeichenfolgenvariable): \begin{tabu}{\reptemp}
.
Hier ist mein Code:
\documentclass{article}
\usepackage{forloop,tabu}
\begin{document}
\def\reptemp{}
\newcounter{ct}
\forloop{ct}{1}{\value{ct} < 5}%
{%
\g@addto@macro\reptemp{c}
}
\begin{tabu}{\reptemp}
\end{tabu}
\end{document}
Und erhalte den folgenden Kompilierungsfehler:
! Package array Error: Illegal pream-token (\reptemp): 'c' used.
Ich hoffe ihr habt einen Tipp für mich wie ich das Problem lösen kann.
Antwort1
Die tabu
Umgebung führt keine Erweiterung des Präambelarguments durch.
\documentclass{article}
\usepackage{forloop,tabu}
\def\reptemp{}
\makeatletter
\newcounter{ct}
\forloop{ct}{1}{\value{ct} < 5}%
{%
\g@addto@macro\reptemp{c}
}
\makeatother
\newenvironment{xtabu}[1]
{\begingroup\edef\x{\endgroup
\unexpanded{\begin{tabu}}{\unexpanded\expandafter{#1}}}\x}
{\end{tabu}}
\begin{document}
\begin{xtabu}{\reptemp}
1&2&3&4
\end{xtabu}
\end{document}
Antwort2
Sie müssen das Makro erweitern, bevor Sie es an die Umgebung übergeben:
\def\starttabu#1{\begin{tabu}{#1}}
\expandafter\starttabu\expandafter{\reptemp}