使用 \boxput (fancybox) 作为提醒:有没有办法将相对坐标系更改为盒子的顶部?

使用 \boxput (fancybox) 作为提醒:有没有办法将相对坐标系更改为盒子的顶部?

我使用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。因此,xy应该始终是数字(没有单位,例如ptcm),但有一个例外:如果 ybBLR 资料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}

相关内容