我不知道如何设置全局设置来框住每个显示和内联数学。该框装饰有彩色框架、彩色背景和彩色前景(文本或数学)。
通过进行全局设置,我可以轻松地打开或关闭它,其余部分保持不变。
我知道有 2 个宏,\everydisplay
和\everymath
,但除了用 更改描边颜色之外,我无法使用它们\color{red}
。
答案1
为了播放以下示例,添加了一个\fbox
内联数学:
\documentclass{article}
\newsavebox{\mymathbox}
\everymath{%
\mathsurround=0pt$%
\begin{lrbox}{\mymathbox}\everymath{}$%
\aftergroup\mathboxend
}
\newcommand*{\mathboxend}{%
\end{lrbox}%
\fbox{\usebox{\mymathbox}}%
}
\begin{document}
$abc$ Hello\textsuperscript{World}
\begin{tabular}{l}Hello\\World\end{tabular}
\begin{minipage}{4em}Hello\\World\end{minipage}
\begin{minipage}[t]{4em}Hello\\World\end{minipage}
\end{document}
更新:解释及\mathsurround=0pt
补充。
目标是
\fbox{$...$}
如果\everymath
调用,我们已经处于数学模式。因此第一个$
结束数学模式。给出的空间\mathsurround
将设置在空公式周围,因此它被设置为零。
然后打开一个水平框(lrbox
),我们再次切换到数学模式,但 为空\everymath
。通过\aftergroup
我们到达关闭后立即到达的点$
,我们可以关闭框并用 设置框\fbox
。
变化添加。
我们也可以让数学组就位并将其放入lrbox
里面:
\everymath{%
\begin{lrbox}{\mymathbox}%
\everymath{}$\mathsurround=0pt\relax
\aftergroup\mathboxend
}
\newcommand*{\mathboxend}{%
\end{lrbox}%
\fbox{\usebox{\mymathbox}}%
$%
}
这些方法的区别在于\mathsurround
,如果 不为零,则对 的处理方式。在第一种情况下,空间放在框内,在第二种情况下,空间放在框外。
但是,这种通过 实现的通用方法有一个严重的缺点\everymath
。内联数学运算用于许多不同的地方,因此该示例还在不需要内联数学运算的地方显示了方框。