这个问题有两个方面。在我的文档中,我目前在单个方程周围有方框,如下所示:
\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 equation
、ams align
和ams 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}
left
、top
和right
值bottom
定义框内的额外边距。
\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 部分一无所知。