سلام، خانم احمدی از من پرسیده بودند:اگر با renewcommand مثلاً معادل print را به فارسی بنویسیم مشکلی ایجاد نمیشود ولی برای if,else,for با خطا مواجه میشوم. کسی میداند مشکل از چیست؟
مثال به پیوست است.
شما باید عبارات شرطی را با دستور \ENDIF تمام کنید (راهنمای بسته algorithmic را ببینید). بنابراین کد شما باید اینگونه باشد:
\renewcommand{\algorithmicif}{\textbf{اگر}}
\renewcommand{\algorithmicthen}{\textbf{آنگاه}}
\renewcommand{\algorithmicelse}{\textbf{وگرنه}}
\renewcommand{\algorithmicprint}{\textbf{چاپ کن}}
\begin{algorithm}[h]
\caption{الگوریتم همرنگسازی چندبانده.} \label{alg:multibandblending}
\begin{algorithmic}[1]
\REQUIRE تصاویر $A$ و $B$.\\
\ENSURE تصویر $S$ حاصل از نیمهی سمت چپ $A$ و نیمهی سمت راست $B$
\STATE هرمهای لاپلاسین $LA,LB$ از تصاویر $A,B$ ساخته میشوند.
\STATE هرم لاپلاسین سومی به نام $LS$ با کپی کردن نیمههای سمت چپ $LA$ و سمت راست $LB$ ساخته میشود.
\STATE تصویر نهایی $S$ با گسترش هر سطح هرم $LS$ و جمع آن با سطح بعدی حاصل خواهد شد.
\IF{$mod(a,2)==0$}
\PRINT $a$ زوج است.
\ELSE
\PRINT $a$ فرد است.
\ENDIF
\end{algorithmic}
\end{algorithm}