答案1
该包float
或多或少提供了您想要的东西,甚至是一种盒装风格。然而,似乎必须定义一种新风格boxedtop
才能让标题出现在盒子顶部,如下所示:
\makeatletter
\newcommand\fs@boxedtop
{\fs@boxed
\def\@fs@mid{\vspace\abovecaptionskip\relax}%
\let\@fs@iftopcapt\iftrue
}
\makeatother
这是一个例子。
\documentclass{book}
\usepackage{lipsum}
\usepackage{float}
\makeatletter
\newcommand\fs@boxedtop
{\fs@boxed
\def\@fs@mid{\vspace\abovecaptionskip\relax}%
\let\@fs@iftopcapt\iftrue
}
\makeatother
\floatstyle{boxedtop}
\floatname{framedbox}{Box}
\newfloat{framedbox}{tbp}{lob}[chapter]
\begin{document}
\chapter{First Chapter}
\lipsum[2]
\begin{framedbox}[htbp]
\caption{The Newton-Raphson whatever}
\begin{minipage}{0.95\textwidth}
\begin{enumerate}
\item \lipsum[2]
\item \lipsum[2]
\end{enumerate}
\end{minipage}
\end{framedbox}
\lipsum[2]
\listof{framedbox}{List of Boxes}
\end{document}
编辑:如果您不想让标题以粗体显示,请将样式的定义更改boxedtop
为
\newcommand\fs@boxedtop
{\fs@boxed
\def\@fs@mid{\vspace\abovecaptionskip\relax}%
\let\@fs@iftopcapt\iftrue
\def\@fs@cfont{\rmfamily}%
}
(请注意添加的最后一行。)
答案2
由于您没有说要使用哪个类别,因此我采用了章节划分的标准。
\documentclass{book}
\usepackage{float,framed,lipsum}
\newfloat{Box}{h}{lob}[chapter]
\newenvironment{Mybox}{\begin{Box}\begin{framed}}{\end{framed}\end{Box}}
\begin{document}
\chapter{Some chapter}
\lipsum[1]
\begin{Mybox}
\caption{My caption}
This is a boxed float
\end{Mybox}
\chapter{Other chapter}
\lipsum[2]
\begin{Mybox}
\caption{Some caption}
Another boxed float
\end{Mybox}
\end{document}
您可以检查float
手册以获取有关如何自定义浮点数的更多信息。