رفتن به محتوا

بسته‌های الگوریتم در Scissor LaTeX

بسته‌های الگوریتم در Scissor LaTeX تا حدی کار می‌کنند: محیط algorithm با زیرنویس شماره‌دار و \label کار می‌کند؛ دستورهای با حرف بزرگ algorithmic (\STATE، \FOR) فقط در چیدمان‌های کنفرانس خوانده می‌شوند؛ algpseudocode (\State، \For) و algorithm2e (\KwIn، \For{}{}) پشتیبانی نمی‌شوند، پس به جای آن گام‌ها را در یک بلوک verbatim بگذارید.

کار این بسته‌ها

شبه‌کد در LaTeX معمولاً دو بسته لازم دارد. algorithm محیطی شماره‌دار با زیرنویس، «Algorithm 1: ...»، می‌دهد که مانند یک شکل شناور است. بستهٔ دوم گام‌ها را می‌نویسد: algorithmic (دستورها با حرف بزرگ، \STATE، \IF، \ENDIF)، algpseudocode از مجموعهٔ algorithmicx (حروف آمیخته، \State، \If، \EndIf)، یا algorithm2e که محیط algorithm خودش و دستورهایی مانند \KwIn و \For{condition}{body} را می‌آورد.

آنچه این‌جا کار می‌کند

بستهویژگیدر Scissor LaTeX
algorithm\begin{algorithm}، \caption، \label، \refکار می‌کند: «Algorithm N»، زیرنویس در پایین، شناور نمی‌شود.
algorithmجای‌گذاری [H]، [t]، [h]کنار گذاشته شده: الگوریتم همان جایی که می‌نویسید می‌ماند.
algorithm\listofalgorithmsپشتیبانی نمی‌شود: با پیامی نادیده گرفته می‌شود.
algorithmic\STATE، \IF، \FOR، \WHILE، \RETURN ...تا حدی: در سندهایی با چیدمان کنفرانس، بدون شمارهٔ سطر، خوانده می‌شوند. جای دیگر ناشناخته‌اند.
algpseudocode\State، \If، \For، \Function، \Return ...پشتیبانی نمی‌شود: نام دستورها نادیده گرفته می‌شوند و گام‌ها در یک سطر به هم می‌چسبند.
algorithm2e\KwIn، \KwOut، \For{..}{..}، \eIf، \;پشتیبانی نمی‌شود: با پیامی نادیده گرفته می‌شوند؛ گام‌ها به هم می‌چسبند.

درون algorithm، محتوا مانند یک شکل وسط‌چین است. یک بلوک verbatim به‌طور کلی وسط‌چین می‌شود، در حالی که سطرهایش چپ‌چین و با تورفتگی همان‌طور که تایپ شده‌اند می‌مانند، و این آن را مطمئن‌ترین راه نمایش گام‌ها در این‌جا می‌کند.

نمونه‌ها

گام‌ها در verbatim، با شماره و ارجاع:

algorithm با گام‌های verbatim

\begin{algorithm}
\caption{Find the largest value}
\label{alg:max}
\begin{verbatim}
best := xs[1]
for i := 2 to n:
    if xs[i] > best:
        best := xs[i]
return best
\end{verbatim}
\end{algorithm}
Algorithm~\ref{alg:max} looks at each value once.
حروف‌چینی با Scissor LaTeX: algorithm با گام‌های verbatim

دستورهای algorithm2e نادیده گرفته می‌شوند، پس سطرها به هم می‌چسبند. زبانهٔ «مشکلات» دستورهایی را که نشناخته فهرست می‌کند:

algorithm2e پشتیبانی نمی‌شود

\begin{algorithm}
\caption{Sum of a list}
\KwIn{numbers $a_1, \dots, a_n$}
$s \gets 0$\;
\For{$i \gets 1$ \KwTo $n$}{$s \gets s + a_i$\;}
\Return{$s$}\;
\end{algorithm}
حروف‌چینی با Scissor LaTeX: algorithm2e پشتیبانی نمی‌شود

زبانهٔ مشکلات: Skipped 4 unknown commands: \KwIn, \For, \KwTo, \Return

صفحهٔ الگوریتم‌ها و شبه‌کد algorithmic را در یک چیدمان کنفرانس و algpseudocode را کنار هم نشان می‌دهد.

سازگاری

  • از یک نصب TeX به این‌جا: الگوریتم‌ها شماره و زیرنویسشان را نگه می‌دارند. گام‌هایی که با algpseudocode یا algorithm2e نوشته شده‌اند به هم می‌چسبند؛ آن‌ها را در verbatim، یا با algorithmic در یک چیدمان کنفرانس، از نو بنویسید.
  • از این‌جا به یک نصب TeX: algorithm با گام‌های verbatim همه‌جا کامپایل می‌شود و یکسان به نظر می‌رسد، جز این‌که ممکن است الگوریتم به بالای یک صفحه شناور شود.

راهنماها در CTAN هستند: algorithms (algorithm و algorithmic)، algorithmicx (algpseudocode) و algorithm2e.

همچنین الگوریتم‌ها، listings و چیدمان‌های کنفرانس را ببینید.

پرسش و پاسخ

در Scissor LaTeX از کدام بستهٔ الگوریتم استفاده کنم؟

برای شماره و زیرنویس از algorithm استفاده کنید و گام‌ها را در یک بلوک verbatim بنویسید. این روش در هر سندی این‌جا و در هر نصب TeX کار می‌کند.

چرا سطرهای الگوریتم من در یک سطر به هم پیوسته‌اند؟

گام‌ها دستورهای algpseudocode یا algorithm2e را به کار می‌برند که Scissor LaTeX نمی‌خواند. نام آن‌ها نادیده گرفته می‌شود، پس متن همهٔ گام‌ها در یک سطر قرار می‌گیرد.

هر مثال این صفحه هنگام ساخت سایت با Scissor LaTeX حروف‌چینی می‌شود. آخرین به‌روزرسانی: 2026-11-07.