표시된 모든 인라인 수학을 상자에 표시하도록 전역 설정을 만드는 방법은 무엇입니까?

표시된 모든 인라인 수학을 상자에 표시하도록 전역 설정을 만드는 방법은 무엇입니까?

표시된 모든 인라인 수학을 상자에 표시하도록 전역 설정을 만드는 방법을 모르겠습니다. 상자는 색상 프레임, 색상 배경 ​​및 색상 전경(텍스트 또는 수학)으로 장식되어 있습니다.

전역 설정을 함으로써 쉽게 켜거나 끌 수 있고 나머지는 그대로 유지됩니다.

\everydisplay2개의 매크로 와 가 있다는 것을 알고 있지만 \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}}%
  $%
}

이러한 방법의 차이점은 \mathsurround0이 아닌 경우를 처리하는 것입니다. 첫 번째 경우에는 공간이 상자 내부에 배치되고, 두 번째 경우에는 공간이 외부에 배치됩니다.

그러나 이러한 일반적인 방법에는 를 통한 심각한 단점이 있습니다 \everymath. 인라인 수학은 다양한 위치에서 사용되므로 이 예에서는 인라인 수학이 예상되지 않는 위치에 상자도 표시합니다.

\fbox를 사용한 인라인 수학

관련 정보