Pregunta
Soy nuevo en LaTeX y debo decir que realmente estoy luchando con él. Descubrí el comando \ newcommand que es como una función / método en lenguajes de programación regulares. Puedes darle argumentos y todo.
Sin embargo, me estaba preguntando, ¿puedo iterar de alguna manera en LaTeX? Básicamente, lo que me gustaría hacer es crear una tabla con N + 1 columnas donde la primera fila solo contenga una celda en blanco y luego los números 1, 2, ..., N en las otras columnas. Solo quiero dar N como argumento a esta 'función' (nuevo comando).
Este es un ejemplo de algo que podría parecerse a lo que estoy buscando (aunque obviamente esto no funcionará):
\newcommand{\mytable}[2]{ \begin{tabular}{l|*{#1}{c|}} % table with first argument+1 columns for(int i = 1; i <= #1; i++) "& i" % 'output' numbers in different columns \\\hline letters & #2 % second argument should contain actual content for row \\\hline \end{tabular} }
Llámalo con:
\mytable{3}{a & b & c}
La salida debe ser:
| 1 | 2 | 3 | --------+---+---+---+ letters | a | b | c | --------+---+---+---+
¿Alguien sabe si algo como esto es posible?
¡Gracias!
Solución
La tía Google dice sí .
Otros consejos
Simplemente convierta lo siguiente en un nuevo comando y asegúrese de usar el paquete ifthen
.
\begin{tabular}{l|*{10}{c|}}
\newcounter{count}
\whiledo{\value{count}<10}{
\ifthenelse{\value{count}=0}{}{\the\value{count}}
\ifthenelse{\value{count}<9}{&}{\\}
\stepcounter{count}
}
letters&a&b&c&d&e&f&g&h&i\\
\end{tabular}
Puedes usar los tokens \ loop
o \ repeat
. O el paquete multido
.
Claro que es posible. También puedes recurrir. eplain tiene macros de iteración, vea, por ejemplo, aquí .
Otra posibilidad (si eres perezoso como yo) es perltex