\tcbhighmath
환경 내의 세트에서 하나의 방정식만 사용하여 양식화된 상자를 넣는 방법을 알아내려고 노력 중입니다 align*
. 예를 들면 다음과 같습니다.
\begin{align*}
x &= 2 + y \\
y &= 1 + z \\
z &= 3 + x
\end{align*}
나는 마지막 방정식인 z = 3 + x 주위에 상자만 원합니다.
답변1
두 열에 걸쳐 상자를 align
직접 확장할 수는 없지만 원하는 결과를 얻을 수 있는 해결 방법은 다음과 같습니다.
align
두 단계를 사용하여 방정식을 조판합니다. 첫 번째 단계는 모든 구성 요소의 높이/너비를 측정하고 두 번째 단계는 실제로 이를 조판합니다. \mathbox{...&...}
방정식의 왼쪽과 오른쪽 부분을 수집하는 새로운 명령을 정의합니다 . 측정 단계( \ifmeasuring@
true)에서 우리는 일반적으로 올바른 너비를 얻기 위해 열 텍스트를 설정합니다.
두 번째 단계에서는 \tcbhighmath
열의 텍스트가 포함된 너비가 0인 상자를 설정하고, 추가로 왼쪽 열의 텍스트 너비와 상자 스타일의 여러 매개변수(내부 여백, 규칙 너비 등)의 합계에 따라 왼쪽으로 이동합니다. 등호가 상자 외부의 기호와 정렬되도록 합니다. 결과는 기본적으로 왼쪽 열의 상자가 두 열과 겹치는 빈 오른쪽 열입니다.
최소 예제 코드:
\documentclass{article}
\usepackage{mathtools}
\usepackage[theorems]{tcolorbox}
\makeatletter
\def\mathbox#1{\mathbox@#1\@end}
\def\mathbox@#1\@end{%
\ifmeasuring@
#1%
\else
\begingroup
\setbox0=\hbox{$\displaystyle#1$}%
\dimen0=\dimexpr\wd0+\kvtcb@left@rule+\kvtcb@leftupper
+\kvtcb@boxsep+\kvtcb@bbleft\relax
\hskip-\dimen0\relax
\mathrlap{\tcbhighmath{\displaystyle#1 #2}}%
\hskip\dimen0\relax
\endgroup
\fi
&
\ifmeasuring@
#2%
\fi
}
\makeatother
\begin{document}
\begin{align*}
x &= 2 + y \\
y &= 1 + z \\
z &= 3 + x
\end{align*}
\begin{align*}
x &= 2 + y \\
y &= 1 + z \\
\mathbox{z &= 3 + x}
\end{align*}
\end{document}
출력
답변2
\documentclass{article}
\usepackage{mathtools}
\usepackage[theorems]{tcolorbox}
\tcbset{
highlight math/.append style={
grow to left by =4.25mm,}
}
\let\boxed=\tcbhighmath
\begin{document}
\begin{align*}
x &= 2 + y \\
y &= 1 + z \\
\Aboxed{z &= 3 + x}
\end{align*}
\end{document}
몇 가지 설명
패키지 는 다음과 같이 사용할 수 있는 명령을 mathtools
제공합니다 .\Aboxed
\usepackage{mathtools}
...
\begin{align*}
x &= 2 + y \\
y &= 1 + z \\
\Aboxed{z &= 3 + x}
\end{align*}
다음과 같은 솜을 생산하려면 :
매뉴얼 에 따르면 mathtools
: internally \Aboxed does use \boxed
.
\Aboxed
명령이 상자를 사용 하도록 하려면 다음을 사용하여 명령 \tcbhighmath
을 재정의하면 다음을 얻습니다.\boxed
\let\boxed\tcbhightmath
보시다시피 상자의 위치를 조정하여 스타일 grow to left by = <some distance>
에 옵션을 추가해야 합니다 highlight math
.\tcbset{highlight math/.append style={grow to left by =4.25mm,}}