Przejdź do treści

Algorytmy i pseudokod

Umieść pseudokod w środowisku algorithm z \caption, aby otrzymać „Algorithm 1”; w jego wnętrzu Scissor LaTeX odczytuje polecenia algorithmic pisane wielkimi literami (\STATE, \FOR) tylko w układach konferencyjnych, więc w innych dokumentach umieść kroki w bloku verbatim.

Środowisko algorithm

Pakiet algorithm udostępnia numerowane środowisko dla pseudokodu, podobne do rysunku: \caption nadaje mu numer („Algorithm 1”), a \label po podpisie pozwala odwołać się do niego za pomocą \ref. W Scissor LaTeX algorytm zostaje tam, gdzie go napiszesz, a jego podpis jest umieszczany pod nim.

To, co znajdzie się w środku, zależy od pakietu, którego używasz do zapisu kroków, i właśnie tu obsługa się różni:

PakietPoleceniaW Scissor LaTeX
algorithmśrodowisko algorithm, \caption, \labelDziała: numerowany „Algorithm N”, podpis pod spodem.
algorithmic\STATE, \IF, \FOR, \WHILE, \RETURN ... (wielkie litery)Częściowo: odczytywane tylko w dokumentach z układem konferencyjnym; gdzie indziej są nieznanymi poleceniami.
algpseudocode (algorithmicx)\State, \If, \For, \EndFor, \Return ...Nieobsługiwany: pomijany z komunikatem, a kroki zlewają się w jeden wiersz.
algorithm2e\KwIn, \For{..}{..}, \eIf ...Nieobsługiwany: pomijany z komunikatem.

Pseudokod, który działa wszędzie

Najpewniejszy sposób na pokazanie pseudokodu w dowolnym dokumencie Scissor LaTeX to blok verbatim wewnątrz algorithm. Zachowujesz numer i podpis, a wiersze zachowują swoje wcięcia.

Algorytm z krokami w verbatim

LaTeXPreambuła: \usepackage{algorithm}Otwórz w edytorze (otwiera się w nowej karcie)
\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.
Złożone przez Scissor LaTeX: Algorytm z krokami w verbatim

Dla pseudokodu ze wzorami tak samo działa lstlisting; możesz też zapisać kroki jako zwykły tekst poza środowiskiem algorithm, w postaci listy numerowanej.

Kroki jako lista numerowana, z matematyką

\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}
Złożone przez Scissor LaTeX: Kroki jako lista numerowana, z matematyką

algorithmic w układach konferencyjnych

Układy wzorowane na szablonach konferencyjnych (arXiv, IEEE, NeurIPS, ICML i inne) odczytują pisane wielkimi literami polecenia pakietu algorithmic: słowa kluczowe takie jak for, do, end for i return są składane pogrubioną czcionką, a każde polecenie zaczyna nowy wiersz. Numery wierszy nie są rysowane, a wiersze są wyśrodkowane. Karta Problemy podaje nazwę używanego układu.

algorithmic w dokumencie w stylu 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}
Złożone przez Scissor LaTeX: algorithmic w dokumencie w stylu arXiv

Karta Problemy: 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 nie jest obsługiwany

algpseudocode, najpopularniejszy pakiet w nowszych artykułach, używa poleceń pisanych mieszanymi literami, takich jak \State i \EndFor. Scissor LaTeX ich nie zna: ich nazwy są pomijane, wzory i słowa zostają, a wszystko zlewa się w jeden wiersz. Karta Problemy wymienia pominięte polecenia.

algpseudocode: kroki zlewają się w jeden wiersz

LaTeXPreambuła: \usepackage{algorithm,algpseudocode}Otwórz w edytorze (otwiera się w nowej karcie)
\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}

Karta Problemy: Skipped 4 unknown commands: \State, \For, \EndFor, \Return

Jeśli dokument ma działać zarówno tutaj, jak i w instalacji TeX, zapisz kroki w verbatim, jak pokazano wyżej; to kompiluje się wszędzie.

Czym to się różni od instalacji TeX

Strona pakietu to algorithm, algorithmic i algpseudocode. Dokumentacja znajduje się w CTAN: algorithms, algorithmicx i algorithm2e.

Zobacz też pakiety do algorytmów, Listingi kodu i Układy konferencyjne.

Pytania i odpowiedzi

Jak napisać algorytm w LaTeX?

Użyj środowiska algorithm z \caption i umieść kroki w środku. W Scissor LaTeX kroki najlepiej działają w bloku verbatim albo z poleceniami \STATE z algorithmic w układzie konferencyjnym.

Dlaczego moje wiersze \State zlewają się ze sobą?

\State pochodzi z algpseudocode, którego Scissor LaTeX nie obsługuje. Nazwy poleceń są pomijane, więc kroki łączą się w jeden wiersz. Zamiast tego użyj verbatim do zapisu kroków.

Czy mogę odwołać się do algorytmu po numerze?

Tak. Umieść \label{alg:name} po \caption i napisz Algorithm~\ref{alg:name}.

Każdy przykład na tej stronie jest składany przez Scissor LaTeX podczas budowania witryny. Ostatnia aktualizacja: 2026-11-07.