Pregunta:
Me gustaría poder definir una macro que se pueda usar en la definición tabular. ¿Cómo puedo hacer esto?
Esto no funciona:
\documentclass{article}
\begin{document}
\gdef\buildtabularhead{|||}
\begin{tabular}{\buildtabularhead}
1 & 2 &3\\
\end{tabular}
\end{document}
Respuesta:
Probablemente esto no sea práctico, pero es una buena demostración de \expandafter
y soluciona el problema de las macros en el preámbulo de la tabla con el paquete array
.
\documentclass{article}
\usepackage{array}
\begin{document}
\def\buildtabularhead{|c|c|c|}
\expandafter\tabular\expandafter{\buildtabularhead}
1 & 2 &3\\
\endtabular
\end{document}
Las dos \expandafter
aseguran de que la macro \buildtabularhead
se expanda antes de que LaTeX sepa que debería estar esperando un preámbulo tabular
. Note también que en lugar de \begin{tabular}
… \end{tabular}
tuve que usar \tabular
… \endtabular
. Internamente, el primero hace lo mismo que el segundo, pero rodeándolo con un grupo y haciendo comprobaciones importantes, incluido el anidamiento adecuado (consulte la sección 54.1 de source2e).