我有类似的东西:
\usepackage{algorithm}
\usepackage{algpseudocode}
...
\begin{document}
\begin{algorithm}[H]
\begin{algorithmic}[1]
\Function {function}{a}
\State a = a + 1
\EndFunction
\end{algorithmic}
\end{algorithm}
\end{document}
我使用 [H] 是因为我想设置代码的位置。但这样做之后,出现了一个我不想要的标题空间,而且现在我的代码前面有两条水平线。你可以在这张图片中看到我的意思:
我怎样才能删除其中的一行?
谢谢!
答案1
定义您自己的版本:
\documentclass{article}
\usepackage{algpseudocode}
\usepackage{lipsum} % for the example
\newenvironment{algo}
{\par\addvspace{\topsep}
\centering
\begin{minipage}{\linewidth}
\hrule\kern2pt}
{\par\kern2pt\hrule
\end{minipage}
\par\addvspace{\topsep}}
\begin{document}
\lipsum[2]
\begin{algo}
\begin{algorithmic}[1]
\Function {function}{a}
\State a = a + 1
\EndFunction
\end{algorithmic}
\end{algo}
\lipsum[3]
\end{document}
答案2
为了实现这一点,您需要定义一个新的\floatstyle
。这里有一个这样的选项(我称之为nocaptionruled
):
\documentclass{article}
\usepackage{algorithm,algpseudocode}
\makeatletter
\newcommand\fs@nocaptionruled{%\def\@fs@cfont{\bfseries}%
\let\@fs@capt\relax%\floatc@ruled
\def\@fs@pre{}%{\hrule height.8pt depth0pt \kern2pt}%
\def\@fs@post{\kern2pt\hrule\relax}%
\def\@fs@mid{\kern2pt\hrule\kern2pt}%
\let\@fs@iftopcapt\iftrue}
\makeatother
\begin{document}
\begin{algorithm}[H]
\begin{algorithmic}[1]
\Function{function}{a}
\State a = a + 1
\EndFunction
\end{algorithmic}
\end{algorithm}
\floatstyle{nocaptionruled}
\restylefloat{algorithm}
\begin{algorithm}[H]
\begin{algorithmic}[1]
\Function{function}{a}
\State a = a + 1
\EndFunction
\end{algorithmic}
\end{algorithm}
\end{document}