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