我的论文使用 latex,但是我的语言是波斯语,所以我必须使用 xepersian 包。最近我遇到一个问题,当我使用算法和算法包时,我的算法代码被反汇编,例如我的代码右对齐,任何数字都是阿拉伯语,我该怎么办?
答案1
如果您需要标题标签及其编号以波斯语显示并右对齐,但您的代码以英语显示并左对齐:
\begin{algorithm}
\caption{ PUMPED-CONFIGURATION(n)}
\begin{latin}
\begin{algorithmic}[1]
\STATE $V\gets 0$
\WHILE {$|V|\neq n$}
\STATE $v \gets RANDOM-SAMPLE()$
\STATE $valid\gets TRUE$
\FORALL { $ v' \in V,v\neq v'$}
\IF {$r(v)\cap r(v')\neq 0$}
\STATE $ valid \gets FALSE$
\ENDIF
\ENDFOR
\IF {$valid$}
\STATE $ V\gets V \cup \{v\}$
\ENDIF
\ENDWHILE
\RETURN{ $V$}
\end{algorithmic}
\end{latin}
\end{algorithm}
如果您需要英文标题标签、编号和代码且左对齐:
\begin{latin}
\begin{algorithm}
\caption{ PUMPED-CONFIGURATION(n)}
\begin{algorithmic}[1]
\STATE $V\gets 0$
\WHILE {$|V|\neq n$}
\STATE $v \gets RANDOM-SAMPLE()$
\STATE $valid\gets TRUE$
\FORALL { $ v' \in V,v\neq v'$}
\IF {$r(v)\cap r(v')\neq 0$}
\STATE $ valid \gets FALSE$
\ENDIF
\ENDFOR
\IF {$valid$}
\STATE $ V\gets V \cup \{v\}$
\ENDIF
\ENDWHILE
\RETURN{ $V$}
\end{algorithmic}
\end{algorithm}
\end{latin}
如果您需要波斯语的标题标签、编号和代码并右对齐:
\renewcommand{\algorithmicif}{\textbf{اگر}}
\renewcommand{\algorithmicthen}{\textbf{آنگاه}}
\renewcommand{\algorithmicelse}{\textbf{وگرنه}}
\renewcommand{\algorithmicprint}{\textbf{چاپ کن}}
\renewcommand{\algorithmicendif}{\textbf{پایان اگر}}
\begin{algorithm}
\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}