Latex算法-IF-ELSE-IF在开始ELSE之前显示结束

Latex算法-IF-ELSE-IF在开始ELSE之前显示结束,latex,Latex,正如您在我的latex中看到的,它显示了假设在Else之后结束的end-after-If语句。我试着去掉IF的花括号,但它不起作用 \documentclass[journal]{IEEEtran} \ifCLASSINFOpdf \usepackage[pdftex]{graphicx} \usepackage[dvips]{graphicx} \usepackage{graphicx} \usepackage{xcolor} \usepackage{amsfonts} \usepackage

正如您在我的latex中看到的,它显示了假设在Else之后结束的end-after-If语句。我试着去掉IF的花括号,但它不起作用

\documentclass[journal]{IEEEtran}
\ifCLASSINFOpdf
\usepackage[pdftex]{graphicx}
\usepackage[dvips]{graphicx}
\usepackage{graphicx}
\usepackage{xcolor}
\usepackage{amsfonts}
\usepackage{amssymb,mathtools}
\usepackage[linesnumbered,ruled,vlined] {algorithm2e}
\usepackage{nomencl}
\usepackage{algpseudocode}
\usepackage{algorithm}
\hyphenation{op-tical net-works semi-conduc-tor}

\begin{document}


\begin{algorithm}
    \caption{PEC, \texttt{PEC}}
    \SetAlgoLined
    \DontPrintSemicolon
    \textbf{Input:} I, P, C.
    
    
    \textbf{Output:} Set of $PS^*$= $\{{PS_{1},PS_{2}, ...,PS_{n}}\}$ 
    
    //Initialization
    
    \quad \quad \quad $PS^* \gets \emptyset$
    
    
    \For  {each, $i \in I$} {
        // Calculate
        
        $PS^{temp}_{i} \gets P$
        
        $PS^{loss}_{i} \gets C)$
        
        \If { $ C_{i}- P_{i} > 0$}{
            
            $PS_{i} \gets $($PS^{temp}_{i} - PS^{loss}_{i}$)
            
        }
        \Else {
            $PS_{i} \gets 0$
        }
    }

    
    return ($PS^*$)
    
    \label{alg:PoEG}
\end{algorithm}


\end{document}
这个问题的输出如下所示,正如您看到的突出显示的end,我需要消除它


由于两个主要问题,您的代码无法编译:

  • 不能多次加载带有冲突选项的graphicx包。如果您的tex发行版自石器时代以来至少更新过一次,那么最好不要选择加载它,让latex自行决定所需的驱动程序

  • 不能为算法加载冲突包。决定要使用哪一个并加载此文件。Latex非常清楚地给出了关于已经定义的命令的错误消息,不要忽略错误


。。。另外还有一个附加的
end
:如果有in-else语句,只需使用
\eIf
宏而不是
\If

最后一个建议是:如果你不想手动处理
\quad
s,而是使用合适的关键字,事情就会自动对齐

\documentclass[journal]{IEEEtran}
\ifCLASSINFOpdf
%\usepackage[pdftex]{graphicx}
%\usepackage[dvips]{graphicx}
\usepackage{graphicx}
\usepackage{xcolor}
\usepackage{amsfonts}
\usepackage{amssymb,mathtools}
\usepackage{algpseudocode}
%\usepackage{algorithm}
\usepackage[linesnumbered,ruled,vlined]{algorithm2e}
\usepackage{nomencl}

\hyphenation{op-tical net-works semi-conduc-tor}

\begin{document}

\begin{algorithm}
    \caption{Proof of Energy Generation, \texttt{PoEG}}
    \SetAlgoLined
    \SetKwInOut{Input}{input}
    \SetKwInOut{Output}{output}
    \DontPrintSemicolon
    \Input{Prosumer Set, $\textit{I}=\{{\textit{I}_{1},\textit{I}_{2},...,\textit{I}_{n}}$\},\linebreak
    Predicted energy production, $\textit{P}= \{{\textit{P}_{1},\textit{P}_{2},...,\textit{P}_{n}}$\}, \linebreak
    Predicted energy consumption, $\textit{C}= \{{\textit{C}_{1},\textit{C}_{2},...,\textit{C}_{n}}.$\},\linebreak
    Distance from DS, $\textit{D}= \{{\textit{d}_{1},\textit{d}_{2},...,\textit{d}_{n}}$\}.}
    
    \Output{Set of $PS^*$= $\{{PS_{1},PS_{2}, ...,PS_{n}}\}$ }
    
    //Initialization
    
    \quad \quad \quad $PS^* \gets \emptyset$
    
    
    \For  {each prosumers, $i \in I$} {
        // Calculate proof score for energy balance and loss,
        
        $PS^{temp}_{i} \gets \log(1/e^{C_i-P_i})$
        
        $PS^{loss}_{i} \gets \log(e^{E_{d_i}})$
        
        \eIf { $ C_{i}- P_{i} > 0$}{
            
            $PS_{i} \gets $($PS^{temp}_{i} - PS^{loss}_{i}$)
            
        }{
            $PS_{i} \gets 0$
        }
        $PS^* \gets$ $PS^* \cup   \{PS_{i}\}$
    }
    
    
    return ($PS^*$)
    
    \label{alg:PoEG}
\end{algorithm}


\end{document}

我犯了一个错误。你能用新编辑的代码更改代码吗?因为解决方案会误导寻求答案的人,因为我以前的代码和图片有点不同?提前谢谢。