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:
| Pakiet | Polecenia | W Scissor LaTeX |
|---|---|---|
| algorithm | środowisko algorithm, \caption, \label | Dział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
\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.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}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}
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
\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.