我对 LaTeX 的使用经验很少。请原谅我的无知,但有没有浮点数等价的呢\framebox
?
理想情况下,我想要一个简单的框架文本构造,可以将其放置在页面的顶部 [t] 或底部 [b]。
我发现有两篇帖子似乎不能完全满足我的需求:
答案1
tcolorbox
这是创建浮动框的另一种方法。
第一个版本是一种简约的方法:
\documentclass{article}
\usepackage[many]{tcolorbox}
\usepackage{lipsum}
\newtcolorbox{framefloat}[1][!tb]{arc=0pt,outer arc=0pt,boxrule=0.4pt,
colframe=black,colback=white,float=#1}
\begin{document}
\begin{framefloat}
\textbf{Box on top:}
\lipsum[2]
\end{framefloat}
\begin{framefloat}[b]
\textbf{Box on bottom:}
\lipsum[2]
\end{framefloat}
\lipsum[1-3]
\end{document}
tcolorbox
如果您正在寻找类似的东西,可以使用更多选项来创建更漂亮的样式。第二个版本使用一些颜色选项并交换选项参数以采用逗号分隔的选项列表。该float
选项采用已知的浮动参数。
\documentclass{article}
\usepackage[many]{tcolorbox}
\usepackage{lipsum}
\newtcolorbox{framefloat}[1][]{fonttitle=\bfseries,
colframe=yellow!30!black,colback=yellow!10!white,float=!tb,#1}
\begin{document}
\begin{framefloat}[title=Box on top]
\lipsum[2]
\end{framefloat}
\begin{framefloat}[title=Box on bottom,float=b]
\lipsum[2]
\end{framefloat}
\lipsum[1-3]
\end{document}
答案2
\documentclass{scrartcl}
\usepackage{varwidth}
\newsavebox\FBox
\newenvironment{framefloat}[1][!htb]
{\begin{table}[#1]\centering\begin{lrbox}{\FBox}
\varwidth{\dimexpr\linewidth-2\fboxsep-2\fboxrule}}
{\endvarwidth\end{lrbox}\fbox{\usebox\FBox}\end{table}}
\usepackage{blindtext}
\begin{document}
\blindtext
\begin{framefloat}[t]
\blindtext
\end{framefloat}
\blindtext
\begin{framefloat}
\blindtext
\end{framefloat}
\end{document}
答案3
这是一个使用以下组合的选项mdframed
,newfloat
, 和xparse
包(由 加载mdframed
)。
以下行:
\DeclareFloatingEnvironment[placement={!ht}]{myfloat}
声明了一个名为的新浮动环境myfloat
,它具有默认的放置!ht
,并且可以被覆盖。
以下几行创建了一个新的浮动环境,该myfloat
环境与包中的环境结合在一起mdframed
:
\NewDocumentEnvironment{framefloat}{O{}O{}}
{% #1: float position (optional)
% #2: options for mdframed (optional)
\begin{myfloat}[#1]
\begin{mdframed}[roundcorner=10pt,backgroundcolor=green,#2]
}
{\end{mdframed}\end{myfloat}
}
如您所见,它使用包中的语法xparse
来声明两个可选参数:
% #1: float position (optional)
% #2: options for mdframed (optional)
它可以以下列任一方式使用(例如):
\begin{framefloat}
\begin{framefloat}[t]
\begin{framefloat}[b][backgroundcolor=blue]
\begin{framefloat}[][backgroundcolor=red]
这是一个完整的 MWE,可供使用。我使用过的每个包都有很多更多功能;根据需要进行探索。
% arara: pdflatex
\documentclass{article}
\usepackage{newfloat}
\usepackage{lipsum}
\usepackage[framemethod=TikZ]{mdframed}
% new float
\DeclareFloatingEnvironment[placement={!ht}]{myfloat}
% new floating framed environment
\NewDocumentEnvironment{framefloat}{O{}O{}}
{\begin{myfloat}[#1]
\begin{mdframed}[roundcorner=10pt,backgroundcolor=green,#2]
}
{\end{mdframed}\end{myfloat}
}
\begin{document}
\lipsum
\begin{framefloat}
\lipsum[1]
\end{framefloat}
\lipsum
\begin{framefloat}[t]
\lipsum[1]
\end{framefloat}
\lipsum
\begin{framefloat}[b][backgroundcolor=blue]
\lipsum[1]
\end{framefloat}
\lipsum
\begin{framefloat}[][backgroundcolor=red]
\lipsum[1]
\end{framefloat}
\end{document}