דילוג לתוכן

אלגוריתמים ופסאודו-קוד

עוטפים את הפסאודו-קוד בסביבת 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

LaTeXמבוא: \usepackage{algorithm}פתיחה בעורך (נפתח בכרטיסייה חדשה)
\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.
סודר על ידי Scissor LaTeX: אלגוריתם עם צעדים ב-verbatim

לפסאודו-קוד עם נוסחאות, 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}
סודר על ידי Scissor LaTeX: צעדים כרשימה ממוספרת, עם מתמטיקה

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}
סודר על ידי Scissor LaTeX: algorithmic במסמך בסגנון arXiv

לשונית הבעיות: 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: הצעדים מתחברים זה לזה

LaTeXמבוא: \usepackage{algorithm,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.