Алгоритми й псевдокод
Огорніть псевдокод середовищем algorithm з \caption, щоб отримати «Algorithm 1»; усередині Scissor LaTeX читає команди algorithmic у верхньому регістрі (\STATE, \FOR) лише в макетах конференцій, тож для інших документів помістіть кроки в блок verbatim.
Середовище algorithm
Пакет algorithm надає нумероване середовище для псевдокоду, подібне до рисунка: \caption дає йому номер («Algorithm 1»), а \label після підпису дозволяє посилатися на нього через \ref. У Scissor LaTeX алгоритм лишається там, де ви його написали, а підпис ставиться під ним.
Що саме йде всередину, залежить від пакета, яким ви записуєте кроки, і саме тут підтримка відрізняється:
| Пакет | Команди | У Scissor LaTeX |
|---|---|---|
| algorithm | середовище algorithm, \caption, \label | Працює: нумерація «Algorithm N», підпис знизу. |
| algorithmic | \STATE, \IF, \FOR, \WHILE, \RETURN ... (верхній регістр) | Частково: читаються лише в документах із макетом конференції; деінде це невідомі команди. |
| algpseudocode (algorithmicx) | \State, \If, \For, \EndFor, \Return ... | Не підтримується: пропускається з повідомленням, а кроки зливаються в один рядок. |
| algorithm2e | \KwIn, \For{..}{..}, \eIf ... | Не підтримується: пропускається з повідомленням. |
Псевдокод, який працює всюди
Найнадійніший спосіб показати псевдокод у будь-якому документі Scissor LaTeX — блок verbatim усередині algorithm. Номер і підпис зберігаються, а рядки зберігають свої відступи.
Алгоритм із кроками у verbatim
\begin{algorithm}
\caption{Sum of a list}
\label{alg:sum}
\begin{verbatim}
s := 0
for each a in xs:
s := s + a
return s
\end{verbatim}
\end{algorithm}
Algorithm~\ref{alg:sum} adds the numbers of a list.Для псевдокоду з формулами так само працює lstlisting, або ж запишіть кроки звичайним текстом поза середовищем algorithm у вигляді нумерованого списку.
Кроки як нумерований список, з математикою
\textbf{Input:} numbers $a_1, \dots, a_n$.
\begin{enumerate}
\item Set $s \gets 0$.
\item For $i = 1, \dots, n$: set $s \gets s + a_i$.
\item Return $s$.
\end{enumerate}algorithmic у макетах конференцій
Макети, схожі на конференційні (arXiv, IEEE, NeurIPS, ICML та інші), читають команди пакета algorithmic у верхньому регістрі: ключові слова на кшталт for, do, end for і return набираються жирним, а кожна команда починає новий рядок. Номери рядків не виводяться, а рядки центруються. Вкладка «Проблеми» називає макет, що використовується.
algorithmic у документі в стилі arXiv
\documentclass{article}
\usepackage{arxiv}
\usepackage{algorithm,algorithmic}
\begin{document}
\begin{algorithm}
\caption{Sum of a list}
\begin{algorithmic}
\STATE $s \gets 0$
\FOR{$i = 1$ to $n$}
\STATE $s \gets s + a_i$
\ENDFOR
\RETURN $s$
\end{algorithmic}
\end{algorithm}
\end{document}
Вкладка «Проблеми»: Layout in the style of the arXiv preprint style (final mode). Not official. To compile elsewhere, add arxiv.sty from github.com/kourgeorge/arxiv-style.
algpseudocode не підтримується
algpseudocode, найпоширеніший пакет у нещодавніх статтях, використовує команди змішаного регістру, як-от \State і \EndFor. Scissor LaTeX їх не знає: їхні назви пропускаються, формули й слова зберігаються, і все зливається в один рядок. Вкладка «Проблеми» перелічує пропущені команди.
algpseudocode: кроки зливаються
\begin{algorithm}
\caption{Sum of a list}
\begin{algorithmic}[1]
\State $s \gets 0$
\For{$i = 1$ to $n$}
\State $s \gets s + a_i$
\EndFor
\State \Return $s$
\end{algorithmic}
\end{algorithm}Вкладка «Проблеми»: Skipped 4 unknown commands: \State, \For, \EndFor, \Return
Якщо документ має працювати і тут, і в інсталяції TeX, запишіть кроки у verbatim, як показано вище; так він компілюється всюди.
Чим відрізняється від інсталяції TeX
Сторінка пакета: algorithm, algorithmic і algpseudocode. Посібники є на CTAN: algorithms, algorithmicx і algorithm2e.
Див. також пакети для алгоритмів, Лістинги коду і Макети конференцій.
Запитання й відповіді
Як написати алгоритм у LaTeX?
Використайте середовище algorithm з \caption і помістіть кроки всередину. У Scissor LaTeX кроки найкраще працюють у блоці verbatim або з командами \STATE з algorithmic у макеті конференції.
Чому мої рядки \State зливаються?
\State походить з algpseudocode, який Scissor LaTeX не підтримує. Назви команд пропускаються, тож кроки об'єднуються в один рядок. Натомість використайте для кроків verbatim.
Чи можна послатися на алгоритм за номером?
Так. Поставте \label{alg:name} після \caption і напишіть Algorithm~\ref{alg:name}.
Кожен приклад на цій сторінці верстається в Scissor LaTeX під час збирання сайту. Оновлено 2026-11-07.