如何進行全域設定以對每個顯示的內聯數學進行裝箱?

如何進行全域設定以對每個顯示的內聯數學進行裝箱?

我不知道如何進行全域設定來框出每個顯示的內聯數學。盒子裝飾有彩色框架、彩色背景和彩色前景(文字或數學)。

透過進行全域設置,我可以輕鬆地打開或關閉它,而其餘部分保持不變。

我知道有 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 進行內聯數學計算

相關內容