我想把一个算法放在一个框里。这是代码
\fbox{\parbox{0.8\linewidth}{
\begin{algorithm}
\caption{My algorithm}
\begin{algorithmic}[1]
\scriptsize
...
\end{algorithmic}
\end{algorithm}
}}
我收到此错误:
Not in outer par mode
algorithm
在以两个花括号结尾的行处出现其他错误。当我删除环境并且只剩下时,问题就解决了algorithmic
。但我希望有算法环境来放置标题。
答案1
为了使这成为一个真正的答案:如果你想要一个盒子
\documentclass{article}
\usepackage{algorithm,algorithmic}
\begin{document}
\begin{algorithm}
\caption{My algorithm}
\begin{algorithmic}[1]
\scriptsize
\STATE Statement
\end{algorithmic}
\end{algorithm}
\end{document}
我建议切换到该algorithm2e
包。上面的内容可以粗略地模仿
\documentclass{article}
\usepackage{algorithm2e}
\begin{document}
% \RestyleAlgo{boxed}
\RestyleAlgo{boxruled}
\LinesNumbered
\begin{algorithm}[ht]
\caption{My algorithm\label{alg}}
Statement
\end{algorithm}
\end{document}
答案2
你不能在框中使用任何类型的浮点数,你可以从figure
或获得相同的效果table
,最直接的解决方案是不使用浮点数,并使用(一行)capt-of
包来允许使用标题
\usepackage{capt-of}
然后
\fbox{\parbox{0.8\linewidth}{
%\begin{algorithm}
\captionof{algorithm}{My algorithm}
\begin{algorithmic}[1]
\scriptsize
...
\end{algorithmic}
%\end{algorithm}
}}
然而,最好使用允许盒装浮动样式的算法包(或使用该float
包来设置此类浮动的样式),然后框位于浮动内部,因此构造仍可能被 LaTeX 浮动。
答案3
似乎还有另一个相当新的算法包叫做伪法典,它确实允许在代码片段周围绘制方框。我猜你正在寻找的 LaTeX 代码很简单
\begin{algorithm}
\caption{My algorithm}
\begin{algorithmic}[1]
\scriptsize
\begin{algorithmic}
\BeginBox
\State first line
\State ...
\EndBox
\end{algorithmic}
\end{algorithm}
\usepackage{algpseudocodex}
在文件头中指定后。