所以我不太熟悉 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}