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

StackOverflow https://stackoverflow.com/questions/402086

  •  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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top