使用带标尺的标题创建自定义环境

使用带标尺的标题创建自定义环境

我正在尝试创建一个列出代码的环境,该环境将使用带标尺的标题(采用algorithm)的列表代码环境。我希望它是一个浮动环境,因为我必须允许长段代码的分页符。

\usepackage{minted, caption}
% other code
\newenvironment{code}{\captionsetup{type=listing}}{}

我试过了\captionsetup[ruled]{type=listing},但我收到了消息

Package caption error: \caption outside float

我在这里遗漏了什么?

答案1

caption 包测试各种东西,包括计数器名称、环境名称、\l@listing、\ext@listing 以及 Knuth 知道的其他东西。坦率地说,使用 float 包创建列表浮点类型并重新定义列表环境以不生成浮点要容易得多。

Minted 无法在我的系统上运行,所以我无法对其进行测试。

\documentclass{article}
\usepackage{float}
\usepackage{caption}

\newfloat{listing}{htp}{lol}
\floatname{listing}{Listing}

\makeatletter
\renewenvironment{listing}{\def\@captype{listing}%
  \trivlist
  \vskip\intextsep\item}%
{\par\vskip\intextsep\endtrivlist}
\makeatother

\begin{document}
\begin{listing}
\hrule
\caption{test}
\hrule
\end{listing}
\end{document}

相关内容