Пакеты для алгоритмов в Scissor LaTeX
Пакеты для алгоритмов работают в Scissor LaTeX частично: окружение algorithm работает с нумерованной подписью и \label; команды algorithmic в верхнем регистре (\STATE, \FOR) читаются только в макетах конференций; algpseudocode (\State, \For) и algorithm2e (\KwIn, \For{}{}) не поддерживаются, поэтому записывайте шаги в блоке verbatim.
Что делают пакеты
Для псевдокода в LaTeX обычно нужны два пакета. algorithm даёт нумерованное окружение с подписью «Algorithm 1: ...», которое плавает, как рисунок. Второй пакет записывает шаги: algorithmic (команды в верхнем регистре, \STATE, \IF, \ENDIF), algpseudocode из набора algorithmicx (смешанный регистр, \State, \If, \EndIf) или algorithm2e, который приносит собственное окружение algorithm и команды вроде \KwIn и \For{condition}{body}.
Что здесь работает
| Пакет | Возможность | В Scissor LaTeX |
|---|---|---|
| algorithm | \begin{algorithm}, \caption, \label, \ref | Работает: «Algorithm N», подпись снизу, не плавает. |
| algorithm | Размещение [H], [t], [h] | Пропускается: алгоритм остаётся там, где вы его написали. |
| algorithm | \listofalgorithms | Не поддерживается: пропускается с сообщением. |
| algorithmic | \STATE, \IF, \FOR, \WHILE, \RETURN ... | Частично: читаются в документах с макетом конференции, без номеров строк. В остальных случаях неизвестны. |
| algpseudocode | \State, \If, \For, \Function, \Return ... | Не поддерживается: имена команд пропускаются, и шаги сливаются в одну строку. |
| algorithm2e | \KwIn, \KwOut, \For{..}{..}, \eIf, \; | Не поддерживается: пропускаются с сообщением; шаги сливаются. |
Внутри algorithm содержимое центрируется, как в рисунке. Блок verbatim центрируется целиком, а его строки выровнены влево и имеют отступы, как набрано, поэтому это самый надёжный способ показать шаги здесь.
Примеры
Шаги в verbatim, с номером и ссылкой:
algorithm с шагами в verbatim
\begin{algorithm}
\caption{Find the largest value}
\label{alg:max}
\begin{verbatim}
best := xs[1]
for i := 2 to n:
if xs[i] > best:
best := xs[i]
return best
\end{verbatim}
\end{algorithm}
Algorithm~\ref{alg:max} looks at each value once.Команды algorithm2e пропускаются, поэтому строки сливаются. Вкладка «Проблемы» перечисляет команды, которые движок не знает:
algorithm2e не поддерживается
\begin{algorithm}
\caption{Sum of a list}
\KwIn{numbers $a_1, \dots, a_n$}
$s \gets 0$\;
\For{$i \gets 1$ \KwTo $n$}{$s \gets s + a_i$\;}
\Return{$s$}\;
\end{algorithm}Вкладка «Проблемы»: Skipped 4 unknown commands: \KwIn, \For, \KwTo, \Return
Страница Алгоритмы и псевдокод показывает рядом algorithmic в макете конференции и algpseudocode.
Совместимость
- Из установленного TeX сюда: алгоритмы сохраняют номер и подпись. Шаги, записанные с algpseudocode или algorithm2e, сливаются; перепишите их в
verbatimили с algorithmic в макете конференции. - Отсюда в установленный TeX:
algorithmс шагами вverbatimкомпилируется везде и выглядит так же, разве что алгоритм может уплыть в верх страницы.
Руководства есть на CTAN: algorithms (algorithm и algorithmic), algorithmicx (algpseudocode) и algorithm2e.
См. также Алгоритмы, listings и Макеты конференций.
Вопросы и ответы
Какой пакет для алгоритмов использовать в Scissor LaTeX?
Используйте algorithm для номера и подписи, а шаги записывайте в блоке verbatim. Так работает в любом документе здесь и в любом установленном TeX.
Почему строки моего алгоритма слились в одну?
Шаги используют команды algpseudocode или algorithm2e, которые Scissor LaTeX не читает. Их имена пропускаются, поэтому текст всех шагов оказывается в одной строке.
Каждый пример на этой странице верстается в Scissor LaTeX при сборке сайта. Обновлено 2026-11-07.