我正在尝试创建一个列出代码的环境,该环境将使用带标尺的标题(采用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}