Как создать глобальную настройку для упаковки всех отображаемых и встроенных математических формул?

Как создать глобальную настройку для упаковки всех отображаемых и встроенных математических формул?

Я понятия не имею, как сделать глобальную настройку для упаковки каждой отображаемой и встроенной математики. Ящик украшен цветными рамками, цветным фоном и цветным передним планом (либо текстом, либо математикой).

Создав глобальную настройку, я могу легко включить или выключить ее, оставив остальное нетронутым.

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

Встроенная математика с \fbox

Связанный контент