算法中的“与”

算法中的“与”

所以我不太熟悉 LaTeX 中的算法包。我猜一定有办法

如果条件1条件2然后...

但我找不到它。我检查了我能找到的文档。如果我编译下面的代码,我会在 \And 处收到未定义命令的错误。看起来算法中有一些东西,使用\AND,但这在这里不起作用,我真的不明白发生了什么。

\documentclass{article}
\usepackage[noend]{algpseudocode}
\usepackage[nothing]{algorithm}
\algrenewcommand{\algorithmicrequire}{\textbf{Input:}}
\algrenewcommand{\algorithmicensure}{\textbf{Output:}}

\begin{document}

\begin{figure}
\begin{algorithmic}
\If{$x> y$ \And $ x<z$}
\State{some code here}
\EndIf
\end{algorithmic}
\end{figure}
\end{document}

有什么办法可以实现我想要的效果吗?

答案1

我找不到\And命令,但我们可以创建一个:

\algnewcommand\And{\textbf{and}}

并添加一些空间...

\documentclass{article}
\usepackage[noend]{algpseudocode}
\usepackage[nothing]{algorithm}
\algrenewcommand{\algorithmicrequire}{\textbf{Input:}}
\algrenewcommand{\algorithmicensure}{\textbf{Output:}}
\algnewcommand\And{\textbf{and} }

\begin{document}

\begin{figure}
\begin{algorithmic}
\If{$x> y$ \And  $ x<z$}
\State{some code here}
\EndIf
\end{algorithmic}
\end{figure}
\end{document}

感谢:@Werner

答案2

如果您使用算法包,我建议使用 Werner 的答案。链接:使用“算法”包-不能使用\OR?

在此处输入图片描述

\documentclass{article}

\usepackage{algpseudocode}

\algnewcommand{\algorithmicand}{\textbf{ and }}
\algnewcommand{\algorithmicor}{\textbf{ or }}
\algnewcommand{\OR}{\algorithmicor}
\algnewcommand{\AND}{\algorithmicand}
\algnewcommand{\var}{\texttt}

\begin{document}

\begin{algorithmic}
  \Procedure{proc}{$v$}
    \State $\var{v.bool} \gets \var{v.bool} \OR \var{c.bool}$;
  \EndProcedure
\end{algorithmic}

\end{document}

相关内容