\IF 的未定義控制序列

\IF 的未定義控制序列
\documentclass{article}
\usepackage{algorithm,algpseudocode}
\begin{document}
\begin{algorithm}
\caption{$Game PrvInd_{G,\phi}$}
\label{pseudoPSO}
\begin{algorithmic}[1]
    \If{$f(\phi(f0) \neq\phi(f1)$} 
    \Return $\perp$ \EndIf
    \If {$ev(f_0, x_0) \neq ev(f_1, x_1)$}
    \Return $\perp$ \EndIf
    \If{$\{x_0,x_1\} \nsubseteq \{0,1\}^{{f_0}.n}$}\Return $\prep$ \EndIf
    $(F, e, d) \leftarrow Gb(1^k, f_b)$; 
    $X \leftarrow En(e, x_b)$
    \Return (F,X, d)

\end{algorithmic}
\end{algorithm}
\end{document}

在用 Latex 寫演算法時,我\If在第 12 行得到了未定義的控制序列。

是否可以使用所有 3 個 if 而沒有 end if?

答案1

你需要amssymb為了\nsubseteq

在此輸入影像描述

\documentclass{article}

\usepackage{algorithm,algpseudocode}
\algtext*{EndIf}% Remove \EndIf
\usepackage{amsmath,amssymb}

\begin{document}

\begin{algorithm}
  \caption{Game $\text{PrvInd}_{G,\phi}$}
  \label{pseudoPSO}
  \begin{algorithmic}[1]
    \If{$f(\phi(f0) \neq \phi(f1))$} \Return $\perp$
    \EndIf
    \If {$\text{ev}(f_0, x_0) \neq \text{ev}(f_1, x_1)$} \Return $\perp$
    \EndIf
    \If{$\{x_0,x_1\} \nsubseteq \{0,1\}^{f_0 \cdot n}$} \Return $\perp$
    \EndIf
    \State $(F, e, d) \leftarrow \text{Gb}(1^k, f_b)$; 
    \State $X \leftarrow \text{En}(e, x_b)$;
    \State \Return $(F, X, d)$;
  \end{algorithmic}
\end{algorithm}

\end{document}

相關內容