我使用fancybox
的\boxput
命令在文档中创建提醒框。我喜欢 的一点是\boxput
,它允许您在框上方放置标签。此标签的放置方式与水印类似,因此不会占用任何空间。
以下是文档中的一段引文:
命令
\boxput*(x,y){LR stuff1}{LR stuff2}
放置LR 资料1位于后面(默认)或前面(带有 *)LR 资料2。生成的盒子尺寸为LR 资料2。
坐标
(x,y)
决定了LR 资料1定位。例如,(0,0)
将其放在LR 资料2,(0,1)
将其放在顶部中央,并将(-1,-1)
其放在左下角。更一般地,坐标系的原点位于LR 资料2,垂直方向的一个单位是垂直尺寸的一半LR 资料2,水平方向一个单位是LR 资料2。因此,
x
和y
应该始终是数字(没有单位,例如pt
或cm
),但有一个例外:如果y
是b
或B
,LR 资料1垂直放置在LR 资料2.(x,y)
是可选的 — 默认是(0,0)
。
我的问题是,这(0,0)
是LR 资料2(框内的文本)。我希望它位于LR 资料2对我来说,问题是,我想放置LR 资料1作为框上方的标题。但由于定位是相对于LR 资料2,当LR 资料2变得更长,因此我必须y
手动调整坐标。
以下是我创建提醒框的方法:
\newcommand{\reminder}[2][1.58]{%
\begin{center}
\Ovalbox{%
\begin{minipage}{\dimexpr\linewidth-2\fboxsep-2\fboxrule\relax}%
\boxput(0.7,#1)%
{\textcolor{gray!60}{\textbf{\Large R e m i n d e r}}}%
{\parbox[t]{\dimexpr\linewidth-2\fboxsep-2\fboxrule\relax}{~\\#2}}
\end{minipage}%
}%
\end{center}%
}
这里有一张图来向你展示我想要表达的意思:
注意,当框内的文本变长时,第二个提醒框如何向上移动。第一个提醒框实际上是我想要的。
最后是 MWE:
\documentclass{article}
\usepackage{tikz}
\usepackage{fancybox}
\usepackage{lipsum}
\usepackage{amsmath}
\newcommand{\reminder}[2][1.58]{%
\begin{center}
\Ovalbox{%
\begin{minipage}{\dimexpr\linewidth-2\fboxsep-2\fboxrule\relax}%
\boxput(0.7,#1)%
{\textcolor{gray!60}{\textbf{\Large R e m i n d e r}}}%
{\parbox[t]{\dimexpr\linewidth-2\fboxsep-2\fboxrule\relax}{~\\#2}}
\end{minipage}%
}%
\end{center}%
}
\begin{document}
\lipsum[2]
\reminder{This is to remind you:
\begin{equation}
a \cdot b = b \cdot a
\end{equation}
}
\lipsum[2]
\reminder{And now I remind you three times in a row:
\begin{align}
a \cdot b &= b \cdot a\\
a \cdot b &= b \cdot a\\
a \cdot b &= b \cdot a
\end{align}
}
\lipsum[2]
\end{document}
据我所知,我必须计算从盒子中心到我想要放置的位置的距离LR 资料1并将其除以高度的一半LR 资料2。但我不知道该怎么做。非常感谢您的帮助!
答案1
我想建议你tcolorbox
相反,它为您提供了无限的自定义可能性,现在您的框允许分页符(如果您愿意,否则,请删除breakable
):
代码(根据需要调整设置):
\documentclass{article}
\usepackage[many]{tcolorbox}
\usepackage{amsmath}
\usepackage{lipsum}
\newtcolorbox{reminder}{
breakable,
enhanced,
colback=white,
colframe=black,
arc=10pt,
outer arc=10pt,
boxrule=0.4pt,
attach boxed title to top right,
boxed title style={
colback=white,
empty
},
coltitle=gray!80,
fonttitle=\Large,
title=Reminder
}
\begin{document}
\lipsum[2]
\begin{reminder}
This is to remind you:
\begin{equation}
a \cdot b = b \cdot a
\end{equation}
\end{reminder}
\lipsum[2]
\begin{reminder}
And now I remind you three times in a row:
\begin{align}
a \cdot b &= b \cdot a\\
a \cdot b &= b \cdot a\\
a \cdot b &= b \cdot a
\end{align}
\end{reminder}
\lipsum[2]
\end{document}