我的问题很简单:我\boxed
从amsmath
包装中使用它,到目前为止一切顺利。
我遇到的唯一问题是,我在自己的行上使用盒装环境,但框仅围绕方程式,而不是整行。
示例代码:
\[ \boxed{ p(v,h) = \frac{1}{Z} e ^{-E(v,h)} } \]
我怎样才能将盒子扩展到整个线路?
谢谢你!
答案1
使用环境mdframed
代替命令\boxed
梅威瑟:
\documentclass{article}
\usepackage{amsmath,mdframed}
\begin{document}
\begin{mdframed}
\[ p(v,h) = \frac{1}{Z} e ^{-E(v,h)} \]
\end{mdframed}
\end{document}
输出:
如果您需要任何背景,您可以backgroundcolor
向mdframed
环境添加一个选项。
例如:
\documentclass{article}
\usepackage{amsmath,mdframed,xcolor}
\begin{document}
\begin{mdframed}[backgroundcolor=green!10]
\[ p(v,h) = \frac{1}{Z} e ^{-E(v,h)} \]
\end{mdframed}
\begin{mdframed}[backgroundcolor=cyan!20]
\begin{equation}
p(v,h) = \frac{1}{Z} e ^{-E(v,h)}
\end{equation}
\end{mdframed}
\end{document}
输出:
答案2
我的解决方案有点不寻常,但最终它可以让您保留方程编号并突出显示包含方程的框。
为了实现这一点,我定义了一个\newcommand
,\fancyboxed
其概要如下:
\fancyboxed[<background color>]{<equation>}
请注意,在这种情况下,参数<equation>
已经处于数学模式,因此您不必插入诸如$...$
、\[...\]
等内容。
我的解决方案背后的基本思想是将方程视为跨越整个的(矩形) tikz 节点的参数\linewidth
。
以下是代码:
\documentclass{article}
\usepackage{tikz} %drawing
\usepackage{amsmath}
\usepackage{lipsum} %dummy text
\newcommand{\fancyboxed}[2][white]{ %white is default background
\begin{equation}
\tikz \node at(0,0) [shape=rectangle,draw,thick,minimum width=\linewidth,fill=#1] {$\displaystyle #2$};
\end{equation}
}
\begin{document}
\lipsum[1]
\fancyboxed{p(v,h) = \frac{1}{Z} e ^{-E(v,h)}}
\fancyboxed[red!30]{p(v,h) = \frac{1}{Z} e ^{-E(v,h)}}
\lipsum[2]
\end{document}