我想在 algorithmicx 环境中将 a <- b 和 e <- f 并行放在一行上。我希望 c <- d 和 g <- h 也这样做。然后我想对齐这两行。输出应该如下所示。
1. a <- b e <- f
2. c <- d g <- h
这是我现在的代码:
\begin{algorithm}
\begin{algorithmic}[1]
\Procedure{Test}{}
\State{$a \gets b$}
\State{$e \gets f$}
\State{$c \gets d$}
\State{$g \gets h$}
\EndProcedure
\end{algorithmic}
\end{algorithm}
有人知道怎么做吗?我可以使用多列环境吗?
答案1
\BiState
您可以定义一个接受两个参数的新命令
\newcommand{\BiState}[2]{%
\State{\makebox[2cm]{#1\hfill}#2}%
}
像这样使用它
\documentclass{article}
\usepackage{algorithm}
\usepackage{algpseudocode}
\newcommand{\BiState}[2]{%
\State{\makebox[2cm]{#1\hfill}#2}%
}
\begin{document}
\begin{algorithm}
\begin{algorithmic}[1]
\Procedure{Test}{}
\BiState{$a \gets b$}{$e \gets f$}
\BiState{$c \gets d$}{$g \gets h$}
\EndProcedure
\end{algorithmic}
\end{algorithm}
\end{document}
结果
调整2cm
其定义以使其更适合您的要求。
答案2
一个解决方案是:
\documentclass{article}
\usepackage{algorithm}% http://ctan.org/pkg/algorithms
\usepackage{algpseudocode}% http://ctan.org/pkg/algorithmicx
\begin{document}
\begin{algorithm}
\begin{algorithmic}[1]
\Procedure{Test}{}
\State{$a \gets b \qquad e \gets f$}
\State{$c \gets d \qquad g \gets h$}
\EndProcedure
\end{algorithmic}
\end{algorithm}
\end{document}
输出: