新建的Box环境按照图中各方面进行

新建的Box环境按照图中各方面进行

我尝试创建盒子环境并将所有图形未来包含在盒子环境中,如(BOX - 单列,BOX* - 双列,placemnt - [tphb],以及单独的自动盒子标签计数器BOX 1,BOX 2 和BOX 3....)

但我不知道如何在新框环境中实现图形环境逻辑。请提供建议。

下面提到的编码是固定的单列和双列框

单列Box环境

 \begin{BOX}[htbp]{caption here}
Box Content here.
\end{BOX}

双列箱体环境(单列流)

\begin{BOX*}[htbp]{caption here, can be empty}
Box Content here.
\end{BOX*}

下面我的输出提到了此处可用的标题文本:

框 1 | 标题文字。

盒子内容在这里。

有时标题文本不可用。在这种情况下,下面提到的输出

框 1 |

盒子内容在这里。

此盒子环境用框架盒子覆盖。

答案1

您可以定义(需要environ包)

\NewEnviron{BOX}[2][htbp]%
{%
\begin{figure}[#1]%
    \BODY
 \ifx\relax#2\relax\else\caption{#2}\fi
\end{figure}%
}

\NewEnviron{BOX*}[2][htbp]%
{%
\begin{figure*}[#1]%
    \BODY
 \ifx\relax#2\relax\else\caption{#2}\fi
\end{figure*}%
}

平均能量损失

\documentclass{article}
\usepackage{environ}

\NewEnviron{BOX}[2][htbp]%
{%
\begin{figure}[#1]%
    \BODY
 \ifx\relax#2\relax\else\caption{#2}\fi
\end{figure}%
}

\NewEnviron{BOX*}[2][htbp]%
{%
\begin{figure*}[#1]%
    \BODY
 \ifx\relax#2\relax\else\caption{#2}\fi
\end{figure*}%
}

\begin{document}
\begin{BOX}[h]{A caption}
\centering
A figure with caption
\end{BOX}

\begin{BOX}[h]{}
\centering
A figure without caption
\end{BOX}
\end{document} 

输出:

在此处输入图片描述

BOX*请注意,当您处于双列模式时,您还可以使用其带星号的变体将其排版为两列。


相反,如果您想创建一个BOX像图形一样运行的新浮动环境,请使用float包并定义:

\newfloat{BOX}{htbp}{lob}

通过这种方式,您可以创建一个名为的新浮动对象BOX,并创建一个.lob文件来包含这些浮动对象的列表,然后可以通过以下命令调用这些浮动对象

\listof{BOX}{List of Boxes}

BOX*请注意,在这种情况下,当您处于双列模式时,您也可以使用其带星号的变体将其排版为两列。

平均能量损失

\documentclass{article}
\usepackage{float}
\newfloat{BOX}{htbp}{lob}
\begin{document}
\listof{BOX}{List of Boxes}
\begin{BOX}[t]
\centering
Some text
\caption{A box}
\end{BOX}
\end{document} 

输出

在此处输入图片描述

然后,如果你愿意,你可以定义(需要environ包)

\NewEnviron{myBOX}[2][htbp]%
{%
\begin{BOX}[#1]%
    \BODY
 \ifx\relax#2\relax\else\caption{#2}\fi
\end{BOX}%
}

\NewEnviron{myBOX*}[2][htbp]%
{%
\begin{BOX*}[#1]%
    \BODY
 \ifx\relax#2\relax\else\caption{#2}\fi
\end{BOX*}%
}

这样你就可以写

\begin{myBOX}[t]{caption}
....
\end{myBOX}

平均能量损失

\documentclass{article}
\usepackage{float}
\newfloat{BOX}{htbp}{lob}

\usepackage{environ}

\NewEnviron{myBOX}[2][htbp]%
{%
\begin{BOX}[#1]%
    \BODY
 \ifx\relax#2\relax\else\caption{#2}\fi
\end{BOX}%
}

\NewEnviron{myBOX*}[2][htbp]%
{%
\begin{BOX*}[#1]%
    \BODY
 \ifx\relax#2\relax\else\caption{#2}\fi
\end{BOX*}%
}

\begin{document}
\listof{BOX}{List of Boxes}
\begin{myBOX}[t]{A box}
\centering
Some text
\end{myBOX}
\end{document} 

输出与上面相同。

相关内容