禁用算法末尾的最后一行

禁用算法末尾的最后一行

如果我这样使用算法包

\begin{algorithm}[h!]
...insert algorithm here...
\end{algorithm}

我发现我的算法末尾有一行。不详细说了,我想要一个没有结尾行的算法。如何删除算法末尾的行?

下面是我的一个算法的示例:

在此处输入图片描述

这是一个最小的工作示例:

\documentclass{article}

\usepackage{algorithm}
\usepackage{algpseudocode}

\begin{document}

\begin{algorithm}[h]
\caption{foo}
\begin{algorithmic}[1]
\State bar
\end{algorithmic}
\end{algorithm}

\end{document}

答案1

algorithm使用定义algorithm环境/浮点float包裹。因此,您可以使用其工具重新设计它。

你可以定义一个新的浮动样式,比如nobottomruled,删除“后”(规则)构造:

在此处输入图片描述

\documentclass{article}

\usepackage{algorithm,algpseudocode}

\makeatletter
\newcommand\fs@nobottomruled{\def\@fs@cfont{\bfseries}\let\@fs@capt\floatc@ruled
  \def\@fs@pre{\hrule height.8pt depth0pt \kern2pt}%
  \def\@fs@post{}% Formerly \def\@fs@post{\kern2pt\hrule\relax}%
  \def\@fs@mid{\kern2pt\hrule\kern2pt}%
  \let\@fs@iftopcapt\iftrue}
\makeatother

\floatstyle{nobottomruled}
\restylefloat{algorithm}

\begin{document}

\begin{algorithm}[H]
  \caption{foo}
  \begin{algorithmic}[1]
    \State bar
  \end{algorithmic}
\end{algorithm}

\end{document}

答案2

您还可以删除算法的边框,然后手动在算法的行标题上方和下方放置水平线。方法如下:

\documentclass{article}
\usepackage{algorithmic}
\usepackage[plain]{algorithm}

\begin{document}

\begin{algorithm}[h]
\caption{foo}
\begin{algorithmic}[1]
\State bar
\end{algorithmic}
\end{algorithm}

\end{document}

相关内容