我不知道如何進行全域設定來框出每個顯示的內聯數學。盒子裝飾有彩色框架、彩色背景和彩色前景(文字或數學)。
透過進行全域設置,我可以輕鬆地打開或關閉它,而其餘部分保持不變。
我知道有 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
。內聯數學在許多不同的地方使用,因此該範例還在不需要內聯數學的地方顯示了框。