Перейти до вмісту

Пакети для алгоритмів у 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

LaTeXПреамбула: \usepackage{algorithm}Відкрити в редакторі (відкриється в новій вкладці)
\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.
Зверстано в Scissor LaTeX: algorithm з кроками у verbatim

Команди algorithm2e пропускаються, тож рядки зливаються. Вкладка «Проблеми» перелічує команди, яких рушій не знав:

algorithm2e не підтримується

LaTeXПреамбула: \usepackage{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}
Зверстано в Scissor LaTeX: algorithm2e не підтримується

Вкладка «Проблеми»: 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.