我以这种风格向我的文档添加了一些伪代码:
\usepackage{algpseudocode}
\begin{algorithmic}[1]
\If {$i\geq maxval$}
\State $i\gets 0$
\Else
\If {$i+k\leq maxval$}
\State $i\gets i+k$
\EndIf
\EndIf
\end{algorithmic}
我希望我的伪代码出现在一个盒子里,也就是框架里。
我试过
\framebox{
\begin{algorithmic}[1] ...
\end{algorithmic}
}
但这给我带来了大量错误,并且没有将代码分成多行。
我怎样才能构建我的伪代码?
答案1
你可以\varwidth
设置一个上限,即行宽减去框边距所占的空间,但如果可能的话,允许它缩小到显示的最长行
\documentclass{article}
\usepackage{varwidth}
\usepackage{algpseudocode}
\begin{document}
\noindent\fbox{%
\begin{varwidth}{\dimexpr\linewidth-2\fboxsep-2\fboxrule\relax}
\begin{algorithmic}[1]
\If {$i\geq maxval$}
\State $i\gets 0$
\Else
\If {$i+k\leq maxval$}
\State $i\gets i+k$
\EndIf
\EndIf
\end{algorithmic}
\end{varwidth}%
}
\end{document}
答案2
您只需调整小页面的宽度即可避免过满。
编辑:添加一些 David 的评论。
\noindent\fbox{%
\begin{minipage}{\dimexpr\linewidth-2\fboxsep-2\fboxrule\relax}
\begin{algorithmic}[1]
\If {$i\geq maxval$}
\State $i\gets 0$
\Else
\If {$i+k\leq maxval$}
\State $i\gets i+k$
\EndIf
\EndIf
\end{algorithmic}
\end{minipage}%
}