有一种环境(如下所示)我使用得非常频繁。我想定义一个新环境,用单个命令来开始和结束它。
\begin{equation}\boxed{\boxed{
\begin{gathered}
i(t)=\frac{V_s}{R}\left[1-e^{-\frac{R}{L}t}\right]\\
\textnormal{Time Constant (} \tau_L \textnormal{)} =\frac{L}{R}
\end{gathered}
}}\end{equation}
然而,似乎*\boxed{}*
无法分割在 \newenvironment{} 的开始和结束括号之间\newenvironment{envname}{ *\boxed{* }{ *}* }
(星号内的部分语法不正确)。
从句法上来说,拆分两个“ \boxed{}
”的情况更糟糕。
我必须频繁地输入这些格式化的方程式,并且任何可以浓缩必要命令的方法都值得赞赏... 有没有办法解决语法问题并正确定义 \newenvironment{name}{beginning}{ending}?如果可能的话,我想避免使用额外的包。
如果这篇文章的任何部分看起来愚蠢,请见谅。我是 StackExchange 的新手...
答案1
当然,您不能在 begin/end 代码中使用不匹配的括号。一种解决方法是使用\box
es:
\documentclass[twocolumn]{article}
\usepackage{amsmath}
\newenvironment{boxedeq}{%
\equation\setbox0=\hbox\bgroup$\gathered
}{%
\endgathered$\egroup
\fbox{\fbox{\box0}}%
\endequation
}
\begin{document}
\begin{boxedeq}
i(t)=\frac{V_s}{R}\left[1-e^{-\frac{R}{L}t}\right] \\
\textnormal{Time Constant ($\tau_L$)} =\frac{L}{R}
\end{boxedeq}
\end{document}
答案2
使用“保存箱”:
\documentclass{article}
\usepackage{amsmath}
\newsavebox{\doubleboxedbox}
\newenvironment{doubleboxed}
{\begin{lrbox}{\doubleboxedbox}$\displaystyle}
{$\end{lrbox}\boxed{\boxed{\usebox{\doubleboxedbox}}}}
\begin{document}
\begin{equation}
\begin{doubleboxed}
\begin{gathered}
i(t)=\frac{V_s}{R}\left[1-e^{-\frac{R}{L}t}\right]\\
\text{Time Constant ($\tau_L$)}=\frac{L}{R}
\end{gathered}
\end{doubleboxed}
\end{equation}
\end{document}
(我简化了第二行的输入)。
设施齐全expl3
:
\documentclass{article}
\usepackage{amsmath}
\NewDocumentEnvironment{doubleboxed}{b}{\boxed{\boxed{#1}}}{}
\begin{document}
\begin{equation}
\begin{doubleboxed}
\begin{gathered}
i(t)=\frac{V_s}{R}\left[1-e^{-\frac{R}{L}t}\right]\\
\text{Time Constant ($\tau_L$)}=\frac{L}{R}
\end{gathered}
\end{doubleboxed}
\end{equation}
\end{document}
答案3
\doublebox
另一个解决方案是使用来自的命令的修补版本fancybox
:
\documentclass{article}
\usepackage{amsmath}
\usepackage{fancybox}
\usepackage{xpatch}
\makeatletter
\xpatchcmd{\@doublebox}{\advance\fboxsep .5pt}{\advance\fboxsep 2.5pt}{}{}
\newenvironment{boxedequation}{\equation\doublebox\bgroup$\gathered}
{\endgathered$\egroup\endequation}
\makeatother
\begin{document}
\begin{boxedequation}
i(t)=\frac{V_s}{R}\left[1-e^{-\frac{R}{L}t}\right]\\
\textnormal{Time Constant (} \tau_L \textnormal{)} =\frac{L}{R}
\end{boxedequation}
\end{document}