Я новичок в LaTeX и должен сказать, что действительно борюсь с этим. Я обнаружил команду \ newcommand, которая похожа на функцию / метод в обычных языках программирования. Вы можете привести аргументы и все такое.
Однако мне было интересно, могу ли я как-нибудь повторить итерацию в LaTeX? По сути, я хотел бы создать таблицу с N + 1 столбцами, где первая строка содержит только пустую ячейку, а затем числа 1, 2, ..., N в других столбцах. Я хочу указать только N в качестве аргумента этой «функции» (новая команда).
Вот пример того, что может выглядеть как то, что я ищу (хотя, очевидно, это не сработает):
\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 | --------+---+---+---+
Кто-нибудь знает, возможно ли что-то подобное?
Спасибо!
возможный дубликат итерация в латексе





Тетя Гугл говорит да.
Этот код требует, чтобы пользователь назвал счетчик, что означает, что циклы вложенности хрупкие.
Конечно, это возможно. Вы также можете повторить. В eplain есть итерационные макросы, см., например, здесь.
Просто сделайте следующее в новой команде и обязательно используйте пакет 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}
Другой вариант (если вы ленивы, как я) - Perltex
поскольку LaTeX - это макро-пакет для TeX, а TeX - полный по Тьюрингу, это должно быть возможно, хотя вам понадобится серьезный взлом TeX