Можете ли вы выполнить итерацию в LaTeX?
-
03-07-2019 - |
Вопрос
Я новичок в LaTeX и должен сказать, что я действительно борюсь с этим.Я обнаружил команду ewcommand, которая похожа на функцию / метод в обычных языках программирования.Вы можете привести этому аргументы и все такое.
Однако мне было интересно, могу ли я каким-то образом выполнить итерацию в LaTeX?По сути, то, что я хотел бы сделать, это создать таблицу с N + 1 столбцами, где первая строка просто содержит пустую ячейку, а затем числа 1, 2, ..., N в других столбцах.Я только хочу указать N в качестве аргумента для этой "функции" (newcommand).
Вот пример чего-то, что может выглядеть как то, что я ищу (хотя, очевидно, это не сработает):
\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} }
Назовите это с помощью:
\mytable{3}{a & b & c}
Результат должен быть:
| 1 | 2 | 3 | --------+---+---+---+ letters | a | b | c | --------+---+---+---+
Кто-нибудь знает, возможно ли что-то подобное?
Спасибо!
Решение
Тетя Гугл говорит ДА.
Другие советы
Просто преобразуйте следующее в новую команду и обязательно используйте package 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}
Вы можете использовать \loop
или \repeat
жетоны.Или тот multido
посылка.
Конечно, это возможно.Вы также можете повториться.в eplain есть макросы итерации, см., например, здесь.
Другая возможность (если вы ленивы, как я) - это perltex