算法环境中的水平线

算法环境中的水平线

我想algorithmic用水平线将环境中的两个部分分开,例如:

-------------
Algorithm 1: MyAlgorithm
-------------
  Part 1:
  Do some stuff
-------------
  Part 2:
  Other stuff

\hline导致错误。到目前为止,我的代码如下所示:

\begin{algorithm}
  \caption{Caption}
  \begin{algorithmic}
    \STATE algorithm here
    %I'd like to do \hline here!
    \STATE part 2 here
  \end{algorithmic}
\end{algorithm}

答案1

此命令\hline仅在表格内有效。要绘制一条沿整个宽度的线,可以使用命令\hrulefill

\STATE源于algorithms而更先进和最新的algorithmicx包裹定义\State

\documentclass{article}
\usepackage{algpseudocode}
\usepackage{algorithm}


\begin{document}
\begin{algorithm}
  \caption{Caption}
  \begin{algorithmic}
    \State algorithm here
    \\\hrulefill
    \State part 2 here
  \end{algorithmic}
\end{algorithm}
\end{document}

结果是:

在此处输入图片描述

如果您想要特殊的线条格式,您也可以使用其他工具来绘制线条。这是最简单的解决方案。

答案2

这是与 Marco 的答案略有不同的方法(使用\hrulefill- 领导者)。以下 MWE 定义在两行代码之间垂直居中\algrule[<thickness>]设置\hrule宽度\textwidth和高度<thickness>(默认值为):.4pt

在此处输入图片描述

\documentclass{article}
\usepackage{algpseudocode}% http://ctan.org/pkg/algorithmicx
\usepackage{algorithm}% http://ctan.org/pkg/algorithms
\makeatletter
\newcommand{\algrule}[1][.2pt]{\par\vskip.5\baselineskip\hrule height #1\par\vskip.5\baselineskip}
\makeatother
\begin{document}
\begin{algorithm}
  \caption{Caption}
  \begin{algorithmic}[1]
    \State First part of algorithm here
    \algrule
    \State Second part of algorithm here
    \algrule[5pt]
    \State Third part of algorithm here
  \end{algorithmic}
\end{algorithm}
\end{document}​

相关内容