我尝试创建盒子环境并将所有图形未来包含在盒子环境中,如(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}
输出与上面相同。