定制箱体环境

定制箱体环境

我目前正在撰写一份报告,我需要创建一个类似于下图所示的自定义“Box”环境。为了客观起见,我只需要满足以下要求:

  1. 内容要被框架起来(我猜可以使用framed包来实现);
  2. 它应该有一个每章计数器(例如,如果当前在第 2 章,则第三个框应该编号为框 2.3)
  3. 标题应与标准图形标题相同,只是它应出现在顶部。

我将非常感谢你的帮助!

在此处输入图片描述

答案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手册以获取有关如何自定义浮点数的更多信息。

相关内容