循环未在正确位置闭合

循环未在正确位置闭合

我正在尝试在 LaTex 上编写一个算法,我的问题是 for 循环没有在正确的位置关闭。我在循环外部打印输出,但它仍然出现在 for 循环内部

 \title{AlgorithmTemplate}
    \documentclass[11pt]{article}
    \usepackage{fullpage}
    \usepackage{times}
    \usepackage{fancyhdr,graphicx,amsmath,amssymb}
    \usepackage[ruled,vlined,linesnumbered]{algorithm2e}
    \begin{document}
    \begin{algorithm}
    \caption{Algorithm}
    \SetAlgoLined
    \text{X$\{x : \ x \in\ I \}$}
    {$Y1(x,  i\textsubscript{k}) \\
    $Y2$ ($x$,  i\textsubscript{k}) \\
    $Y3$ ($x$,  i\textsubscript{k}) \\
    $Y4$ ($x$,  i\textsubscript{k}) \\
        \For{each {i \in\ Y\ }}{
            \For{ each {x \in\ Z }}{
            \statement{$Y1$ ($x$,  i\textsubscript{k})} \leftarrow {\{i \in  Y \ :\ } \{x, i {k}\} 
            \statement {$Y2$  ($x$,  i\textsubscript{k}})\\ 
            \statement {$Y3$ ($x$,i\textsubscript{k})} \leftarrow {\{i \in  Y \ : \ } \ \frac{| x\ \cap \  i\textsubscript{k} |}{|x\ \cup \ i\textsubscript{k} |}\\
           \statement {$Y4$ ($x$,i\textsubscript{k})} \leftarrow{\{i\in Y\ : }\ \frac{| x\ \cap\ i\textsubscript{k} |}{|x\ \cup \ i\textsubscript{k}|} > threshold \} \\ 
                 \If{x \in  XV \vee \ i \in VI}{
                 color that particular text\\
                 }\\
                \Else {
                default }
            }\\\\
        }\\
    {$Result \leftarrow Y1 (x, i\textsubscript {k}) + Y2 (x, i\textsubscript {k}) + Y3 (x, i\textsubscript {k}) + Y4 (x, i\textsubscript {k}$)}\\
    \end{algorithm}
    \end{document}

以下是输出

在此处输入图片描述

答案1

我无法确定您的初衷是什么,但您的代码显示出对algorithm2e软件包命令以及基本 LaTeX 指令的严重误解。我相信即使在 Overleaf 上,由于所有这些问题,您也应该会遇到多个错误/警告。

以下是各种更正的列表:

  • 检查未闭合的括号,{...}它们中的大多数在你提供的语句中都是无用的,所以我删除了它们
  • 检查未关闭/不匹配$...$。多个根本没有关闭。我合并了一些行中的数学语句,因为这样可以简化,不需要使用多个
  • \textunderscript在文本模式中用数学模式替换\mathrm
  • (可选)替换\leftarrow\gets
  • 替换换行符指令不应在algorithm2e算法中用来分隔语句随说明书\;一起\DontPrintSemicolon
  • 替换为提供的\For{each实际指令以及构造命令\ForEachalgorithm2e\eIfIf-Then-Else

algorithm2e在进一步使用其功能之前,您应该查看包文档。

\documentclass[11pt]{article}
\usepackage{fullpage}
\usepackage{times}
\usepackage{fancyhdr,graphicx,amsmath,amssymb}
\usepackage[ruled,vlined,linesnumbered]{algorithm2e}
\DontPrintSemicolon
\begin{document}
\begin{algorithm}
    \caption{Algorithm}
    \SetAlgoLined
    \text{X$\{x : \ x \in\ I \}$}
    $Y1(x,  i_\mathrm{k})$ \;
    $Y2(x,  i_\mathrm{k})$ \;
    $Y3(x,  i_\mathrm{k})$ \;
    $Y4(x,  i_\mathrm{k})$ \;
    \ForEach{$i \in\ Y$}{
        \ForEach{$x \in\ Z$}{
            $Y1(x,  i_\mathrm{k}) \gets \{i \in  Y : \{x, i {k}\}\}$\;
            $Y2(x,  i_\mathrm{k})$\;
            $Y3(x,i_\mathrm{k}) \gets \{i \in  Y : \frac{| x \cap i_\mathrm{k} |}{|x \cup i_\mathrm{k} |}\}$\;
            $Y4(x,i_\mathrm{k}) \gets \{i\in Y :  \frac{| x \cap i_\mathrm{k} |}{|x \cup i_\mathrm{k}|} > threshold \}$ \;
            \eIf{$x \in  XV \vee \ i \in VI$}{
                      color that particular text\;
                      }{
                     default }
                 }
        }
    $Result \leftarrow Y1 (x, i_\mathrm {k}) + Y2 (x, i_\mathrm {k}) + Y3 (x, i_\mathrm {k}) + Y4 (x, i_\mathrm {k}$)\;
\end{algorithm}
\end{document}

在此处输入图片描述

相关内容