\Aboxed
我在以下环境中使用时遇到问题align*
:
\begin{align*}
\omega(\sigma_{ij}) &\equiv 1 - \left(\frac{27J_3}{2\sigma_e^3}\right)^2 \\
& = \omega(L) = 1 - \frac{\left( 9L - L^3\right)^2}{\left(L^2+3\right)^3}.
\end{align*}
我想用\Aboxed
把最后一个等式的最后一部分放在一个框里,即
\begin{align*}
\omega(\sigma_{ij}) &\equiv 1 - \left(\frac{27J_3}{2\sigma_e^3}\right)^2 \\
& = \Aboxed{ \omega(L) = 1 - \frac{\left( 9L - L^3\right)^2}{\left(L^2+3\right)^3}. }
\end{align*}
这给了我标题中的错误消息。但是,\Aboxed
在的上部方程中使用align*
根本不会引起任何问题。我也在我的文档中的其他和的\Aboxed
最后一个方程中使用了。在这种情况下是什么导致了错误?align*
align
答案1
\Aboxed
(从mathtools
)旨在将一个框放在对齐点上(请参阅mathtools
文档,第 3.4.5 节,第 18 页)。因此,
\Aboxed{\omega(\sigma_{ij}) &\equiv 1 - \left(\frac{27J_3}{2\sigma_e^3}\right)^2 }\
有效。该\Aboxed
命令定义为(来自mathtools.sty
)
\newcommand\Aboxed[1]{\@Aboxed#1\ENDDNE}
\def\@Aboxed#1\ENDDNE{%
\settowidth\@tempdima{$\displaystyle#1{}$}%
\addtolength\@tempdima{\fboxsep}%
\addtolength\@tempdima{\fboxrule}%
\global\@tempdima=\@tempdima
\kern\@tempdima
&
\kern-\@tempdima
\boxed{#1#2}
}
因此,当您使用时\Aboxed
,TeX 将贪婪地寻找&
(对齐字符),如果未找到,则会返回错误。
如果你只想要一个盒子,里面没有对齐点,你可以使用boxed
(基本上从amsmath
和mathtools
加载amsmath
也可以)作为
& = \boxed{ \omega(L) = 1 - \frac{\left( 9L - L^3\right)^2}{\left(L^2+3\right)^3}. }
该boxed
命令定义为(来自amsmath.sty
)
\newcommand{\boxed}[1]{\fbox{\m@th$\displaystyle#1$}}
它与对齐字符 无关&
。(因此它无法跨越 起作用&
。)
结论:如果希望框穿过对齐点,请使用\Aboxed
。另一方面,如果框仅用于没有对齐点的部分,请使用\boxed
完整的 MWE 将是:
\documentclass{article}
\usepackage{mathtools}
\begin{document}
\begin{align*}
\Aboxed{\omega(\sigma_{ij}) &\equiv 1 - \left(\frac{27J_3}{2\sigma_e^3}\right)^2 }\\
& = \boxed{ \omega(L) = 1 - \frac{\left( 9L - L^3\right)^2}{\left(L^2+3\right)^3}. }
\end{align*}
\end{document}