编辑
我正在尝试创建一个具有不同背景颜色的框。但是,我尝试过这个,框看起来不太美观。所以我想添加一条线来分隔两种背景颜色。换句话说,特殊背景颜色的开始点和原始文档背景的结束点应该用第三种颜色的线分隔。我想知道我该如何做到这一点...
原始帖子(包含更多详细信息)
我不太了解浮点数。我一直在使用framed
包,这很好,因为我可以轻松地在某物周围放置一个框架。这个包中包含另一个行为,我想将其结合起来。它提供了创建环境的选项shaded
,换句话说,它会更改我想要放置框架的对象的背景颜色。我真的很喜欢这个,但是阴影区域的边缘看起来不够精致。所以我想做的是创建一个具有特殊背景颜色的浮点数,并且我希望边缘在特殊颜色和我用于文档其余部分的正常白色背景之间有一条细线。
我使用这些带框的“浮动”主要显示文本,因此我想知道如何组合所有这些功能。换句话说,我想看一个示例,该示例采用一堆文本,并为其提供一个特殊背景,其中的框与背景边缘完美对齐(从而为其提供漂亮的框架)。我也想看看如何将其实现为float
。
还有一件事虽然不是必需的,但知道了会很好,那就是在环境中实现类似行为的方法align
。我不知道这是否需要特殊处理,但如果有人能告诉我如何做到这一点,我将不胜感激。
答案1
语法是\myFloat[optArgs left]{text left}[optArgs right]{text right}{caption}{label}
最后两个可以为空。
\documentclass{article}
\usepackage[english]{babel}
\usepackage{blindtext}% only for demo
\usepackage{xcolor,mdframed,caption}
\makeatletter
\def\myFLoat{\@ifnextchar[{\myFloat@i}{\myFloat@i[]}}
\def\myFloat@i[#1]#2{\@ifnextchar[%
{\myFloat@ii[#1]{#2}}%
{\myFloat@ii[#1]{#2}[]}}
\def\myFloat@ii[#1]#2[#3]#4#5#6{\par\medskip%
% \mdfsetup{innerleftmargin=10pt,innerrightmargin=10pt}%
\noindent\begin{minipage}[t]{0.475\textwidth}\leavevmode
\begin{mdframed}[#1]#2\end{mdframed}
\end{minipage}\hfill
\begin{minipage}[t]{0.475\textwidth}\leavevmode
\begin{mdframed}[#3]#4\end{mdframed}
\end{minipage}
\ifx\relax#5\relax\else\captionof{figure}{#5}\fi%
\ifx\relax#6\relax\else\label{#6}\fi\par}
\makeatother
\begin{document}
\blindtext
\myFLoat[linecolor=blue,linewidth=2pt,backgroundcolor=yellow]{\blindtext}%
[linecolor=red,linewidth=3pt]{\blindtext}%
{my caption for this float}{myLabel}
as seen in my Figure~\ref{myLabel} it works.
\blindtext
\myFLoat[linecolor=blue,linewidth=2pt,backgroundcolor=yellow]{\blindtext}%
[linecolor=red,linewidth=3pt]{\begin{align}y=\int\limits_1^2 f(x)dx\end{align}}%
{my caption for this float}{myLabelB}
\end{document}
答案2
mdframed
包是一个很好的建议。另外,看看这个例子。