Langkau ke kandungan

Algoritma dan pseudokod

Balut pseudokod dalam persekitaran algorithm dengan \caption untuk mendapat "Algorithm 1"; di dalamnya, Scissor LaTeX membaca perintah huruf besar algorithmic (\STATE, \FOR) hanya dalam susun atur persidangan, jadi untuk dokumen lain letakkan langkahnya dalam blok verbatim.

Persekitaran algorithm

Pakej algorithm menyediakan persekitaran bernombor untuk pseudokod, seperti rajah: \caption memberikannya nombor ("Algorithm 1"), dan \label selepas kapsyen membolehkan anda merujuknya dengan \ref. Dalam Scissor LaTeX, algoritma kekal di tempat anda menulisnya dan kapsyennya diletakkan di bawahnya.

Apa yang dimasukkan di dalamnya bergantung pada pakej yang anda gunakan untuk langkah-langkahnya, dan di situlah sokongannya berbeza:

PakejPerintahDalam Scissor LaTeX
algorithmpersekitaran algorithm, \caption, \labelBerfungsi: bernombor "Algorithm N", kapsyen di bawah.
algorithmic\STATE, \IF, \FOR, \WHILE, \RETURN ... (huruf besar)Sebahagian: dibaca hanya dalam dokumen dengan susun atur persidangan; di tempat lain ia perintah yang tidak dikenali.
algpseudocode (algorithmicx)\State, \If, \For, \EndFor, \Return ...Tidak disokong: dilangkau dengan mesej, dan langkah-langkahnya bercantum dalam satu baris.
algorithm2e\KwIn, \For{..}{..}, \eIf ...Tidak disokong: dilangkau dengan mesej.

Pseudokod yang berfungsi di mana-mana

Cara paling boleh dipercayai untuk menunjukkan pseudokod dalam mana-mana dokumen Scissor LaTeX ialah blok verbatim di dalam algorithm. Anda mengekalkan nombor dan kapsyen, dan baris-barisnya mengekalkan inden.

Algoritma dengan langkah verbatim

LaTeXMukadimah: \usepackage{algorithm}Buka dalam editor (dibuka dalam tab baharu)
\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.
Disusun atur oleh Scissor LaTeX: Algoritma dengan langkah verbatim

Untuk pseudokod dengan formula, lstlisting berfungsi dengan cara yang sama, atau tulis langkah-langkahnya sebagai teks biasa di luar persekitaran algorithm, sebagai senarai bernombor.

Langkah sebagai senarai bernombor, dengan matematik

\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}
Disusun atur oleh Scissor LaTeX: Langkah sebagai senarai bernombor, dengan matematik

algorithmic dalam susun atur persidangan

Susun atur yang meniru gaya persidangan (arXiv, IEEE, NeurIPS, ICML dan lain-lain) membaca perintah huruf besar pakej algorithmic: kata kunci seperti for, do, end for dan return dicetak tebal, dan setiap perintah memulakan baris baharu. Nombor baris tidak dilukis, dan baris-barisnya dipusatkan. Tab Masalah menamakan susun atur yang digunakan.

algorithmic dalam dokumen gaya 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}
Disusun atur oleh Scissor LaTeX: algorithmic dalam dokumen gaya arXiv

Tab Masalah: 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 tidak disokong

algpseudocode, pakej yang paling biasa dalam kertas kerja terkini, menggunakan perintah huruf campuran seperti \State dan \EndFor. Scissor LaTeX tidak mengenalinya: namanya dilangkau, formula dan perkataannya dikekalkan, dan semuanya bercantum dalam satu baris. Tab Masalah menyenaraikan perintah yang dilangkau.

algpseudocode: langkah-langkahnya bercantum

LaTeXMukadimah: \usepackage{algorithm,algpseudocode}Buka dalam editor (dibuka dalam tab baharu)
\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}

Tab Masalah: Skipped 4 unknown commands: \State, \For, \EndFor, \Return

Jika anda memerlukan dokumen yang berfungsi di sini dan juga dalam pemasangan TeX, tulis langkah-langkahnya dalam verbatim seperti yang ditunjukkan di atas; ia boleh dikompil di mana-mana.

Perbezaan daripada pemasangan TeX

Halaman pakejnya ialah algorithm, algorithmic dan algpseudocode. Manualnya ada di CTAN: algorithms, algorithmicx dan algorithm2e.

Lihat juga pakej algoritma, Penyenaraian kod dan Susun atur persidangan.

Soalan dan jawapan

Bagaimanakah saya menulis algoritma dalam LaTeX?

Gunakan persekitaran algorithm dengan \caption, dan letakkan langkah-langkahnya di dalam. Dalam Scissor LaTeX, langkah-langkahnya paling baik dalam blok verbatim, atau dengan perintah \STATE algorithmic dalam susun atur persidangan.

Mengapakah baris \State saya bercantum?

\State datang daripada algpseudocode, yang tidak disokong oleh Scissor LaTeX. Nama perintahnya dilangkau, jadi langkah-langkahnya bergabung menjadi satu baris. Gunakan verbatim untuk langkah-langkahnya sebagai ganti.

Bolehkah saya merujuk algoritma mengikut nombor?

Boleh. Letakkan \label{alg:name} selepas \caption dan tulis Algorithm~\ref{alg:name}.

Setiap contoh di halaman ini disusun atur oleh Scissor LaTeX semasa laman dibina. Kali terakhir dikemas kini 2026-11-07.