Можете ли вы выполнить итерацию в LaTeX?

Я новичок в 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 |
--------+---+---+---+

Кто-нибудь знает, возможно ли что-то подобное?

Спасибо!

поскольку LaTeX - это макро-пакет для TeX, а TeX - полный по Тьюрингу, это должно быть возможно, хотя вам понадобится серьезный взлом TeX

bandi 31.12.2008 05:06

возможный дубликат итерация в латексе

Gilles 'SO- stop being evil' 07.04.2012 06:02
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
5
2
7 550
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Ответ принят как подходящий

Тетя Гугл говорит да.

Этот код требует, чтобы пользователь назвал счетчик, что означает, что циклы вложенности хрупкие.

DanielSank 17.05.2015 11:02

Конечно, это возможно. Вы также можете повторить. В eplain есть итерационные макросы, см., например, здесь.

Вы можете использовать токены \loop или \repeat. Или пакет multido.

Просто сделайте следующее в новой команде и обязательно используйте пакет 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

Другие вопросы по теме