latex中的算法语法

latex中的算法语法

我的论文使用 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}

第三

相关内容