표시된 모든 인라인 수학을 상자에 표시하도록 전역 설정을 만드는 방법을 모르겠습니다. 상자는 색상 프레임, 색상 배경 및 색상 전경(텍스트 또는 수학)으로 장식되어 있습니다.
전역 설정을 함으로써 쉽게 켜거나 끌 수 있고 나머지는 그대로 유지됩니다.
\everydisplay
2개의 매크로 와 가 있다는 것을 알고 있지만 \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
빈 수식 주위에 설정되므로 0으로 설정됩니다.
그런 다음 가로 상자가 열리고( lrbox
) 수학 모드로 다시 전환하지만 비어 있습니다 \everymath
. 이를 통해 \aftergroup
종료 직후 지점에 도달 $
하고 상자를 닫고 로 상자를 설정할 수 있습니다 \fbox
.
변화추가되었습니다.
또한 수학 그룹을 제자리에 두고 lrbox
내부에 넣을 수도 있습니다.
\everymath{%
\begin{lrbox}{\mymathbox}%
\everymath{}$\mathsurround=0pt\relax
\aftergroup\mathboxend
}
\newcommand*{\mathboxend}{%
\end{lrbox}%
\fbox{\usebox{\mymathbox}}%
$%
}
이러한 방법의 차이점은 \mathsurround
0이 아닌 경우를 처리하는 것입니다. 첫 번째 경우에는 공간이 상자 내부에 배치되고, 두 번째 경우에는 공간이 외부에 배치됩니다.
그러나 이러한 일반적인 방법에는 를 통한 심각한 단점이 있습니다 \everymath
. 인라인 수학은 다양한 위치에서 사용되므로 이 예에서는 인라인 수학이 예상되지 않는 위치에 상자도 표시합니다.