Я понятия не имею, как сделать глобальную настройку для упаковки каждой отображаемой и встроенной математики. Ящик украшен цветными рамками, цветным фоном и цветным передним планом (либо текстом, либо математикой).
Создав глобальную настройку, я могу легко включить или выключить ее, оставив остальное нетронутым.
Я знаю, что есть 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
. Встроенная математика используется во многих разных местах, поэтому пример также показывает поля в тех местах, где встроенная математика не ожидается.