我怎样才能将多个对齐的方程式装箱?

我怎样才能将多个对齐的方程式装箱?

这个问题有两个方面。在我的文档中,我目前在单个方程周围有方框,如下所示:

\documentclass[11pt]{article}
\usepackage{amsmath}
\begin{document}
\begin{equation}
\setlength\fboxsep{0.25cm}
\setlength\fboxrule{0.4pt}
\boxed{\bar{\nabla}^{\mu}\bar{h}_{\mu\nu}=0. 
\end{equation}
\end{document}
  • 我现在希望能够fboxsep分别调整每侧的顶部和底部边距以及左侧和右侧边距

  • 另外,我想用相同的样式将多个对齐的方程式装箱。

我怎样才能做到这些?

(a)显示了与 MWE 中的框相对应的输出,(b)显示了我希望通过独立于顶部和底部边距调整左右边距获得的结果的示例,(c)显示了我希望以一致的方式对当前环境中的方程式进行装箱align(在 内部subequations):

在此处输入图片描述

答案1

包装empheq是你的朋友。宽盒由普通盒子制成,左右留有一些空间,你可以根据自己的喜好进行调整。

\documentclass[11pt]{article}
\usepackage{empheq}

\newcommand*\widefbox[1]{\fbox{\hspace{2em}#1\hspace{2em}}}

\begin{document}
\begin{empheq}[box=\widefbox]{equation}
  \bar{\nabla}^{\mu} \bar{h}_{\mu\nu} = 0
\end{empheq}

\begin{subequations}
\begin{empheq}[box=\widefbox]{align}
  \bar{\nabla}^{\mu} \bar{h}_{\mu\nu} & = 0 \\
  \bar{\nabla}^{\mu} \bar{h}_{\mu\nu} & = 0
\end{empheq}
\end{subequations}
\end{document}

产量

示例输出

答案2

tcolorbox该包提供了生成彩色框的命令,这些命令也可以应用于math环境。

\tcboxmath\tcbhighmath命令将框添加到数学表达式中。第二个命令用于突出显示数学表达式的某些部分,即使在带框的表达式内部也是如此。此类框的默认配置如下

\begin{equation}
\tcboxmath{\bar{\nabla}^{\mu}\bar{h}_{\mu\nu}=0.}
\end{equation}

\begin{equation}
\tcboxmath{\tcbhighmath{\bar{\nabla}^{\mu}\bar{h}_{\mu\nu}}=0.}
\end{equation}

在此处输入图片描述

如果必须将方程编号包含在框中,theorems库提供ams equationams alignams gather环境。两个自定义示例:

\newtcolorbox{mymathbox}[1][]{colback=white, sharp corners, #1}

\begin{mymathbox}[ams equation]
\bar{\nabla}^{\mu}\bar{h}_{\mu\nu}=0.
\end{mymathbox}

\begin{mymathbox}[ams gather, title=two equations, colframe=blue!30!black]
\sum\limits_{n=1}^{\infty} \frac{1}{n} = \infty.\\
\int x^2 ~\text{d}x = \frac13 x^3 + c.
\end{mymathbox}

在此处输入图片描述

最后,tcboxes可以用来定义与empheq包兼容的盒子来装箱多线方程(盒子里没有数字)。

\newtcbox{\othermathbox}[1][]{nobeforeafter, math upper, tcbox raise base, 
          enhanced, sharp corners, colback=black!10, colframe=red!30!black, 
          drop fuzzy shadow, left=1em, top=2em, right=3em, bottom=4em}

lefttoprightbottom定义框内的额外边距。

\begin{empheq}[box=\othermathbox]{align}
\sum\limits_{n=1}^{\infty} \frac{1}{n} &= \infty.\\
\int x^2 ~\text{d}x &= \frac13 x^3 + c.
\end{empheq} 

在此处输入图片描述

完整代码

\documentclass{report}

\usepackage{amsmath}
\usepackage{empheq}
\usepackage[theorems,skins]{tcolorbox}

\newtcolorbox{mymathbox}[1][]{colback=white, sharp corners, #1}

\newtcbox{\othermathbox}[1][]{nobeforeafter, math upper, tcbox raise base, enhanced, sharp corners, colback=black!10, colframe=red!30!black, drop fuzzy shadow, left=1em, top=2em, right=3em, bottom=4em}

\begin{document}

\begin{equation}
\tcboxmath{\bar{\nabla}^{\mu}\bar{h}_{\mu\nu}=0.}
\end{equation}

\begin{equation}
\tcboxmath{\tcbhighmath{\bar{\nabla}^{\mu}\bar{h}_{\mu\nu}}=0.}
\end{equation}

\begin{mymathbox}[ams equation]
\bar{\nabla}^{\mu}\bar{h}_{\mu\nu}=0.
\end{mymathbox}

\begin{mymathbox}[ams gather, title=two equations, colframe=blue!30!black]
\sum\limits_{n=1}^{\infty} \frac{1}{n} = \infty.\\
\int x^2 ~\text{d}x = \frac13 x^3 + c.
\end{mymathbox}

\begin{empheq}[box=\othermathbox]{align}
\sum\limits_{n=1}^{\infty} \frac{1}{n} &= \infty.\\
\int x^2 ~\text{d}x &= \frac13 x^3 + c.
\end{empheq}

\end{document}

答案3

对于 A 部分,\fbox使用\kern\fboxsep在框住的物体周围留出水平空白,然后\@frameb@x使用\vskip\fboxsep将其包裹在垂直空白中。因此,一个快速而粗略的解决方案是引入两个不同的长度\fboxseph\fboxsepv,然后逐字逐句地重新实现命令,只是对垂直和水平空间使用不同的长度。

在序言中包含以下内容后,使用\longboxed而不是:\boxed

\newlength\fboxseph
\newlength\fboxsepv

\setlength\fboxsepv{0.25cm}
\setlength\fboxseph{1cm}

\makeatletter

\def\longboxed#1{\leavevmode\setbox\@tempboxa\hbox{\color@begingroup%
\kern\fboxseph{\m@th$\displaystyle #1 $}\kern\fboxseph%
\color@endgroup }\my@frameb@x\relax}

\def\my@frameb@x#1{%
\@tempdima\fboxrule \advance\@tempdima \fboxsepv \advance\@tempdima \dp\@tempboxa\hbox {%
\lower \@tempdima \hbox {%
\vbox {\hrule\@height\fboxrule \hbox{\vrule\@width\fboxrule #1 \vbox{%
\vskip\fboxsepv \box\@tempboxa \vskip\fboxsepv}#1 \vrule\@width\fboxrule }%
\hrule \@height \fboxrule }}}}

\makeatother

但对 B 部分一无所知。

相关内容